{"version":3,"file":"index-B75coxt-.js","sources":["../../../../types/index.ts","../../../../core/auth.tsx","../../../../core/config.ts","../../../../core/errors.ts","../../../../core/api/base.ts","../../../../core/api/flag.ts","../../../../core/api/appConfiguration.ts","../../../../core/apm.ts","../../../../ui/Spinner/index.tsx","../../../../ui/Loadable/index.tsx","../../../../core/api/merchant.ts","../../types/graphql.tsx","../../types/map.tsx","../../uiv2/link.tsx","../../uiv2/spinner.tsx","../../uiv2/button.tsx","../../components/Page/section.tsx","../../pages/home/index.tsx","../../uiv2/slideout.tsx","../../../../ui/ErrorBoundary/index.tsx","../../../../core/window.tsx","../../pages/setups/rental.tsx","../../pages/insurance/product/channels.tsx","../../components/Page/navigation.tsx","../../uiv2/select.tsx","../../../../ui/Table/index.tsx","../../uiv2/fieldset.tsx","../../pages/insurance/product/referrals.tsx","../../../../core/api/plaid.ts","../../../../ui/Badge/index.tsx","../../../../ui/Banner/index.tsx","../../../../ui/Button/index.tsx","../../uiv2/input.tsx","../../uiv2/textarea.tsx","../../uiv2/checkbox.tsx","../../../../core/mapbox.tsx","../../pages/commercial/naics.tsx","../../pages/commercial/form.tsx","../../pages/insurance/product/payment.tsx","../../pages/insurance/product/payouts.tsx","../../pages/insurance/product/index.tsx","../../uiv2/dialog.tsx","../../pages/team/index.tsx","../../../../ui/Page/section.tsx","../../pages/risk/index.tsx","../../components/Spinner/index.tsx","../../components/Button/index.tsx","../../../../ui/Modal/slideout.tsx","../../../../ui/Form/builder.tsx","../../../../ui/Form/text.tsx","../../../../ui/Form/select.tsx","../../../../ui/Form/datepicker.tsx","../../pages/rental/components.tsx","../../pages/rental/RentalWaiverForm.tsx","../../pages/rental/RentalWaiverSentPage.tsx","../../../../core/statics.ts","../../pages/rental/RentalBookingDetailsPage.tsx","../../../../ui/Form/checkbox.tsx","../../../../ui/Form/address.tsx","../../../../ui/common.tsx","../../../../ui/Attachment/lozenge.tsx","../../../../ui/Attachment/index.tsx","../../pages/rental/RentalClaimForm.tsx","../../pages/rental/RentalAssetPage.tsx","../../../../ui/Form/radio.tsx","../../../../ui/Card/index.tsx","../../../../ui/Page/footer.tsx","../../../../ui/Page/index.tsx","../../../../core/stripe.tsx","../../../../core/analytics/googletags.ts","../../../../core/analytics/analytics.ts","../../../../core/payment.tsx","../../pages/rental/RentalSettings.tsx","../../pages/setups/referralLink.tsx","../../../../ui/Form/switch.tsx","../../pages/rental/index.tsx","../../components/Page/footer.tsx","../../components/Page/index.tsx","../../../../ui/VerticalLayout/index.tsx","../../pages/invite/index.tsx","../../pages/insurance/business/table.tsx","../../uiv2/listbox.tsx","../../../../ui/Logo/index.tsx","../../uiv2/heading.tsx","../../pages/commercial/context.tsx","../../pages/commercial/common.tsx","../../pages/insurance/business/index.tsx","../../pages/index.tsx","../../../../ui/Form/progress.tsx","../../authenticated.tsx","../../../../ui/Form/option.tsx","../../pages/personalization/forms.tsx","../../pages/personalization/index.tsx","../../onboard.tsx","../../../../ui/Form/digits.tsx","../../pages/signin/index.tsx","../../../../core/api/user.ts","../../../../core/debounce.ts","../../../../core/hubspot.tsx","../../pages/certificate/certificate.tsx","../../pages/certificate/skeleton.tsx","../../pages/certificate/index.tsx","../../pages/commercial/landing.tsx","../../uiv2/text.tsx","../../uiv2/divider.tsx","../../uiv2/badge.tsx","../../uiv2/combobox.tsx","../../uiv2/skeleton.tsx","../../pages/commercial/app.tsx","../../index.tsx"],"sourcesContent":["///////////////////////////////////////////////////////\n// SDK-specific types //\n///////////////////////////////////////////////////////\n\nimport { CSSProperties } from 'react';\n\nexport type EcommercePlatform = 'shopify' | 'magento' | 'custom';\n\nexport type DeepPartial = T extends Date | File | number | string\n ? T\n : T extends object\n ? {\n [P in keyof T]?: DeepPartial;\n }\n : T;\n\nexport interface InitOptions {\n apiKey: string;\n integrationID?: string;\n platform?: EcommercePlatform;\n apiBaseUrl?: string;\n metricsBaseUrl?: string;\n staticsBaseUrl?: string;\n environment?: string;\n}\n\nexport interface OysterWidgetState {\n // map of policy ID to policy for each policy added to cart\n Policies?: Record;\n}\n\nexport enum WidgetRenderStyle {\n default = '',\n switch = 'switch',\n single_line = 'single_line',\n cart_widget = 'cart_widget',\n registration_widget = 'registration_widget',\n card_selection_widget = 'card_selection_widget'\n}\n\nexport interface WidgetStyle {\n renderStyle?: WidgetRenderStyle;\n center?: boolean;\n title?: CSSProperties;\n addCoverageButton?: CSSProperties;\n fonts?: FontProperties[];\n}\n\nexport interface FontProperties {\n family: string;\n src: string;\n stretch?: string;\n style?: string;\n weight?: string;\n display?: string;\n unicodeRange?: string;\n}\n\nexport enum WidgetFlowStyle {\n product = 'product',\n hybrid = 'hybrid',\n full = 'full',\n single_click = 'single_click',\n registration = 'registration'\n}\n\nexport interface WidgetFlow {\n style: WidgetFlowStyle;\n enableDefaultInsurance?: boolean;\n}\n\nexport interface InjectOptions {\n products: Product[];\n selectedPolicyId?: string;\n hasInsuranceProductInCart?: boolean;\n insured?: Insured;\n style?: WidgetStyle;\n flow?: WidgetFlow;\n subChannel?: ReferralSubChannel;\n}\n\nexport interface InjectBadgesOptions {\n test?: string;\n}\n\nexport interface InjectSubtotalBadgeOptions {\n products?: Product[];\n addBadgeToItems?: boolean;\n invertBadgeColor?: boolean;\n}\n\nexport interface ShopifyCheckout {\n id: number;\n attributes: Record;\n email: string;\n\n // eslint-disable-next-line\n billing_address: any;\n\n // eslint-disable-next-line\n line_items: any[];\n\n metafields: Record>;\n productType?: ProductType;\n}\n\nexport interface ConfirmPurchaseOptions {\n policyIds: string[];\n productSkus: string[];\n insured?: Insured;\n shopifyCheckout?: ShopifyCheckout;\n injectPostPurchase?: boolean;\n}\n\nexport type InjectCallback = (selectedPolicy?: Policy) => void;\nexport type ConfirmPurchaseCallback = (policy: Policy | null, err?: Error) => void;\n\n///////////////////////////////////////////////////////\n// Types corresponding to product models //\n///////////////////////////////////////////////////////\n\nexport enum ProductType {\n bike = 'bike',\n offroad = 'offroad_vehicle',\n motorcycle = 'motorcycle',\n jewelry = 'jewelry',\n phone = 'phone',\n electronics = 'electronics'\n}\n\nexport enum AdditionalMerchantProductType {\n collectibles = 'collectibles',\n furniture = 'furniture',\n fashion = 'fashion',\n food_and_beverage = 'food_and_beverage',\n beauty_and_supplements = 'beauty_and_supplements',\n outdoor_sports = 'outdoor_sports',\n other = 'other'\n}\n\nexport type MerchantProductType = ProductType | AdditionalMerchantProductType;\n\nexport interface Product {\n ID?: string;\n Type: ProductType;\n SKU: string;\n Name: string;\n Description: string;\n ImageURL: string;\n Quantity: number;\n Price: Price;\n Pending?: boolean;\n HasNotReceived?: boolean;\n Details: T;\n}\n\nexport enum BikeType {\n roadTrack = 'road_track',\n mountain = 'mountain',\n hybridCruiser = 'hybrid_cruiser',\n recumbent = 'recumbent',\n tandem = 'tandem',\n bmx = 'bmx',\n tricycle = 'tricycle',\n electric = 'electric'\n}\n\nexport enum BikeFrameType {\n none = '',\n aluminum = 'aluminum',\n carbonFiber = 'carbon_fiber',\n steel = 'steel',\n titatium = 'titanium',\n wood = 'wood',\n other = 'other'\n}\n\nexport enum BikePowerSource {\n none = '',\n throttleAssist20MPH = 'throttle_assist_20_mph',\n pedalAssist20MPH = 'pedal_assist_20_mph',\n pedalAssist28MPH = 'pedal_assist_28_mph',\n other = 'other'\n}\n\nexport enum MotorProductType {\n // Motorcycles\n preferred_tour = 'preferred_tour',\n tour = 'tour',\n sport_tour = 'sport_tour',\n non_touring_bmw = 'non_touring_bmw',\n big_twin = 'big_twin',\n low_surcharge = 'low_surcharge',\n high_surcharge = 'high_surcharge',\n professional_racing_surcharge = 'professional_racing_surcharge',\n naked_sport = 'naked_sport',\n sportster = 'sportster',\n cruiser = 'cruiser',\n high_performance_cruiser = 'high_performance_cruiser',\n moped = 'moped',\n scooter = 'scooter',\n street_bike = 'street_bike',\n off_road_trail_bike = 'off_road_trail_bike',\n tour_trike = 'tour_trike',\n\n // Offroad vehicles\n sport_performance_atv = 'sport_performance_atv',\n recreation_utility_atv = 'recreation_utility_atv',\n super_utility_atv = 'super_utility_atv',\n golf_cart = 'golf_cart'\n}\n\nexport enum ActivationSource {\n TrackingNumber = 'TrackingNumber',\n SetStartDate = 'SetStartDate',\n ManuallyActivate = 'ManuallyActivate'\n}\n\nexport interface ActivationTrigger {\n Source: ActivationSource;\n TrackingNumber?: string;\n StartDate?: string;\n}\n\nexport interface MotorProduct {\n ModelYear: string;\n PurchaseYear: string;\n\n Type: MotorProductType;\n Make: string;\n Model: string;\n VIN: string;\n CCSize: string;\n\n EstimatedAnnualMileage: string;\n AccessoryValue?: Price;\n\n HasElectronicAlarm?: boolean;\n HasTrackingSystem?: boolean;\n HasLienHolder?: boolean;\n IsPerformanceEnhanced?: boolean;\n IsStructurallyModified?: boolean;\n}\n\nexport const MotorProductValidationKeys: (keyof MotorProduct)[] = [\n 'ModelYear',\n 'PurchaseYear',\n\n 'Type',\n 'Make',\n 'Model',\n 'VIN',\n 'CCSize',\n\n // 'EstimatedAnnualMileage', - this one is checked on a later page\n 'AccessoryValue'\n];\n\nexport interface BikeProduct {\n Type: BikeType;\n FrameType: BikeFrameType;\n PowerSource?: BikePowerSource;\n CanUnlock?: boolean;\n IsPendingSerialNumber?: boolean;\n StartLater?: boolean;\n\n ModelYear: string;\n PurchaseYear: string;\n Make: string;\n Model: string;\n FrameSerialNumber: string;\n IsSecondHandPurchase: boolean;\n\n TotalInsuredValue?: Price;\n}\n\nexport const BikeProductValidationKeys: (keyof BikeProduct)[] = [\n 'Type',\n 'FrameType',\n 'PowerSource',\n 'CanUnlock',\n 'ModelYear',\n 'PurchaseYear',\n 'Make',\n 'Model',\n 'FrameSerialNumber',\n 'TotalInsuredValue'\n];\n\nexport enum ElectronicsType {\n laptop = 'laptop',\n iPhone = 'iphone',\n smartPhone = 'smartphone',\n iPad = 'ipad',\n smallElectronics = 'small_electronics',\n gamingSystem = 'gaming_system',\n eReaderKindle = 'ereader_kindle',\n tablet = 'tablet'\n}\n\nexport interface ElectronicsProduct {\n Type: ElectronicsType;\n Manufacturer: string;\n Model: string;\n SerialNumber: string;\n PurchaseReceiptFileIDs?: string[];\n\n _PurchaseReceiptFiles?: File[];\n}\n\nexport const ElectronicsProductValidationKeys: (keyof ElectronicsProduct)[] = [\n 'Type',\n 'Manufacturer',\n 'Model',\n 'SerialNumber'\n];\n\nexport interface JewelryProduct {\n Type: string;\n Metal: string;\n Brand: string;\n StoneType: string;\n StoneWeight: string;\n StoneCarat: string;\n StoneColor: string;\n StoneClarity: string;\n InSafe: boolean;\n IsNewPurchase: boolean;\n AppraisalFileIDs?: string[];\n\n _AppraisalFiles?: File[];\n}\n\nexport const JewelryProductValidationKeys: (keyof JewelryProduct)[] = [\n 'Type',\n 'Metal',\n 'Brand',\n 'StoneType',\n 'StoneWeight',\n 'StoneCarat',\n 'StoneColor',\n 'StoneClarity'\n];\n\n///////////////////////////////////////////////////////\n// Types corresponding to policy models //\n///////////////////////////////////////////////////////\n\nexport enum Cadence {\n year = 'year',\n month = 'month'\n}\n\nexport enum PolicyState {\n unknown = '',\n offerSubmitted = 'offer_submitted',\n applicationSubmitted = 'application_submitted',\n quoteActive = 'quote_active',\n quoteSigned = 'quote_signed',\n policyBinding = 'policy_binding',\n policyInforce = 'policy_inforce',\n policyCanceled = 'policy_canceled',\n policyExpired = 'policy_expired'\n}\n\nexport enum PolicyType {\n bike = 'bike',\n markelBike = 'markel_bike',\n markelOffroad = 'markel_offroad',\n markelMotorcycle = 'markel_motorcycle',\n minicoJewelry = 'minico_jewelry',\n chubbJewelry = 'chubb_jewelry',\n worthAveElectronics = 'worth_ave_electronics'\n}\n\nexport interface PolicyTableValues {\n CreatedAt: Date;\n InsuredItems: Product[];\n}\n\nexport interface Policy {\n ID: string;\n Name: string;\n UserID: string;\n MerchantID: string;\n\n Type: PolicyType;\n State: PolicyState;\n\n InsuredItems: Product[];\n Underwriting: Underwriting;\n Coverage: Coverage;\n ReferralChannelInfo?: PolicyReferralChannelInfo;\n\n Price?: Price;\n PaymentCadence: Cadence;\n DisableAutoRenew: boolean;\n\n CreatedAt: Date;\n StartedAt: Date;\n ExpiresAt: Date;\n}\n\nexport interface Price {\n Amount: number;\n Currency: string;\n}\n\nexport interface Coverage {\n Deductible: DiscreteOption;\n Options: Option[];\n ActivationTrigger?: ActivationTrigger;\n}\n\nexport interface PolicyReferralChannelInfo {\n ReferralChannel: ReferralChannelType;\n ReferralSubChannel: ReferralSubChannel;\n Settings: MerchantReferralSettings | MarketingCampaignSettings | DirectReferralSettings;\n}\n\nexport enum ReferralSubChannel {\n product = 'ProductPage',\n addToCartButton = 'AddToCartButton',\n cart = 'CartPage',\n confirm = 'OrderConfirmationPage',\n defaultInsurance = 'DefaultInsurance',\n unknown = ''\n}\n\nexport interface MerchantReferralSettings {\n MerchantID: string;\n IntegrationID: string;\n}\n\nexport interface MarketingCampaignSettings {\n Source: string;\n Campaign: string;\n Term: string;\n Medium: string;\n PageHistory: string[];\n}\n\nexport interface DirectReferralSettings {\n Parameters: string;\n PageHistory: string[];\n}\n\nexport enum ReferralChannelType {\n ReferralChannelMerchant = 'Merchant',\n ReferralChannelMarketingCampaign = 'Marketing Campaign',\n ReferralChannelDirect = 'Direct'\n}\n\nexport enum BikeUsageType {\n casual = 'casual',\n fitness = 'fitness',\n commute = 'commute',\n competition = 'competition'\n}\n\nexport enum MarkelPersonalCharacteristicFlag {\n homeowner = 'homeowner',\n motorcycle_endorsed = 'motorcycle_endorsed',\n taken_safety_course = 'taken_safety_course',\n taken_mature_driver_course = 'taken_mature_driver_course'\n}\n\nexport interface MarkelMotorCriteria {\n ZipCode: string;\n\n YearsOfExperience: string;\n MinorViolations: string;\n MajorViolations: string;\n AtFaultAccidents: string;\n\n DriversLicenseNumber: string;\n DriversLicenseState: string;\n\n PersonalCharacteristicFlags: MarkelPersonalCharacteristicFlag[];\n}\n\nexport interface BikeCriteria {\n ZipCode: string;\n UsageTypes: BikeUsageType[];\n\n StorageAddressLine1: string;\n StorageAddressLine2: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n ResidentialIsStorage: boolean;\n}\n\nexport interface MarkelBikeCriteria {\n ZipCode: string;\n UsageTypes: BikeUsageType[];\n\n StorageAddressLine1: string;\n StorageAddressLine2: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n ResidentialIsStorage: boolean;\n YearsOfExperience: string;\n}\n\nexport enum JewelryUnderwritingFlag {\n default = 'default',\n exhibition = 'exhibition',\n bankruptcy = 'bankruptcy',\n judgment = 'judgment',\n conviction = 'conviction'\n}\n\nexport enum JewelryStorageLocationFlag {\n central_station_fire = 'central_station_fire',\n burglar_alarm = 'burglar_alarm',\n central_station_burglar_alarm = 'central_station_burglar_alarm',\n deadbolts = 'deadbolts',\n below_ground = 'below_ground',\n off_the_ground = 'off_the_ground',\n near_fire_hydrant = 'near_fire_hydrant',\n flood_zone = 'flood_zone',\n has_doorman = 'has_doorman',\n storage_climate_controlled = 'storage_climate_controlled'\n}\n\nexport interface JewelryPriorLoss {\n lossIdentifier: string;\n dateOfLoss: Date;\n lossAmount: number;\n description: string;\n}\n\nexport interface JewelryCriteria {\n ZipCode: string;\n PriorLosses: JewelryPriorLoss[];\n UnderwritingFlags: JewelryUnderwritingFlag[];\n UnderwritingJustification: string;\n\n StorageStreetAddress: string;\n StorageAptFloor: string;\n StorageAptUnit: string;\n StorageCity: string;\n StorageState: string;\n StorageZipCode: string;\n StorageIsResidential: boolean;\n\n ConstructionType: string;\n ConstructionYear: string;\n StorageLocationFlags: JewelryStorageLocationFlag[];\n\n HasAdditionalInsured: boolean;\n AdditionalInsuredFirstName: string;\n AdditionalInsuredLastName: string;\n\n IsCurrentlyInsured: boolean;\n CurrentInsurerName: string;\n}\n\nexport interface ChubbAddress {\n line1: string;\n line2: string;\n city: string;\n postalCode: string;\n stateOrProvinceName: string;\n}\n\nexport interface ChubbLoss {\n lossIdentifier: string;\n causeOfLossCode: string;\n sourceOfLossCode: string;\n causeOfLossDescription: string;\n dateOfLoss: string;\n lossPaidDate: string;\n lossPaidAmount: number;\n lossType: string;\n lossCatastrophe: boolean;\n lossStatus: string;\n}\nexport interface ChubbJewelryCriteria {\n ZipCode: string;\n PriorLosses: ChubbLoss[];\n\n StorageAddress: ChubbAddress;\n StorageIsResidential: boolean;\n\n ConstructionType: string;\n ResidenceType: string;\n\n AcceptConsumerDisclosure: string;\n\n HasAdditionalInsured: boolean;\n AdditionalInsuredFirstName: string;\n AdditionalInsuredLastName: string;\n AdditionalInsuredOccupation: string;\n AdditionalInsuredOccupationDetails: string;\n AdditionalInsuredDateOfBirth: { Day: string; Month: string; Year: string };\n\n IsCoveredItemsElevated: boolean;\n IsStoredInClimateControlledStorage: boolean;\n\n OccupationDetails: string;\n OtherOccupationDetails: string;\n\n CentralStationFireAlarm: boolean;\n TwentyFourHourSecurity: boolean;\n SignalContinuity: boolean;\n FullTimeCaretaker: boolean;\n GatedCommunity: boolean;\n GatedCommunityPatrol: boolean;\n FiftyPercentJewelryKeptInVault: boolean;\n SafeAtHome: boolean;\n HasInHouseEmployees: boolean;\n InHouseEmployees: string;\n InsuredTravel: string;\n AverageJewelryValueOnTravel: number;\n JewelrySafeguardOnTravel: string;\n JewelrySafeguardAtHomeInsuredOnTravel: string;\n}\n\nexport interface Underwriting {\n Criteria:\n | MarkelMotorCriteria\n | BikeCriteria\n | MarkelBikeCriteria\n | JewelryCriteria\n | ChubbJewelryCriteria;\n Insured: Insured;\n Underwriter?: string;\n}\n\nexport type OptionDetails =\n | BooleanOption\n | DiscreteOption\n | MultiDiscreteOption\n | RangeOption\n | TextOption;\n\nexport enum OptionType {\n boolean = 'boolean',\n discrete = 'discrete',\n multi_discrete = 'multi_discrete',\n range = 'range',\n text = 'text'\n}\n\nexport interface Option {\n ID: string;\n Name: string;\n Description: string;\n Required: boolean;\n Enabled: boolean;\n Type: OptionType;\n Option: OptionDetails;\n}\n\nexport interface BooleanOption {\n ValueLabel: string;\n}\n\nexport interface DiscreteOption {\n Value: string;\n AllowedValues: string[];\n AllowedValueDescriptions: Record;\n}\n\nexport interface MultiDiscreteOption {\n Values: string[];\n AllowedValues: string[];\n AllowedValueDescriptions?: Record;\n}\n\nexport interface RangeOption {\n Value: number;\n MinValue: number;\n MaxValue: number;\n Step: number;\n}\n\nexport interface TextOption {\n Value: string;\n Validators: string[];\n}\n\nexport enum Gender {\n male = 'male',\n female = 'female',\n non_binary = 'non_binary',\n other = 'other'\n}\n\nexport interface Insured {\n FirstName: string;\n LastName: string;\n Email: string;\n Phone?: string;\n Occupation?: string;\n Gender?: Gender;\n MaritalStatus?:\n | 'married'\n | 'single'\n | 'divorced'\n | 'separated'\n | 'widowed'\n | 'civil_union'\n | 'domestic_partnership';\n DateOfBirth?: { Day: string; Month: string; Year: string };\n\n AddressLine1?: string;\n AddressLine2?: string;\n AddressCity?: string;\n AddressState?: string;\n AddressZipCode?: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to files and metadata //\n///////////////////////////////////////////////////////\n\nexport interface AttachmentFile {\n ID: string;\n Name: string;\n Type: string;\n Size: number;\n\n Attachment?: AttachmentDetails;\n}\n\nexport interface AttachmentDetails {\n FileID: string;\n RefID: string;\n Role: DefaultFileRoles;\n EntityType: string;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport enum DefaultFileRoles {\n jewelryAppraisal = 'JewelryAppraisal',\n purchaseReceipt = 'PurchaseReceipt',\n\n waiverClaimAttachment = 'WaiverClaimAttachment',\n waiverLDWDocument = 'LossDamageWaiver',\n signedRentalAgreement = 'SignedRentalAgreement',\n merchantRentalPDTA = 'ProgramDescriptionTermsAccepance',\n\n commercialDocument = 'CommercialDocument',\n unknown = 'Unknown'\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to claim models //\n///////////////////////////////////////////////////////\n\nexport enum ClaimState {\n unknown = '',\n awaitingProcessing = 'awaiting_processing',\n collectingInformation = 'collecting_information',\n settled = 'settled',\n denied = 'denied'\n}\n\nexport enum ClaimType {\n // General claim types\n unknown = '',\n theft = 'theft',\n damage = 'damage', // for electronics: includes cracked screen and spills\n injury = 'injury', // bike only\n liability = 'liability', // bike only\n other = 'other',\n\n // Electronics-specific claim types\n electricalBreakdown = 'electrical_breakdown', // only if caused by lightning\n mechanicalBreakdown = 'mechanical_breakdown', // only if warranty is added\n naturalDisaster = 'natural_disaster', // fire, flood, lightning, natural disaster, wind\n waterDamage = 'water_damage' // includes spill\n}\n\nexport interface Claim {\n ID: string;\n State: ClaimState;\n UserID: string;\n Policy: Policy;\n Product: Product;\n\n Types: ClaimType[];\n Sections: ClaimSection[];\n\n IncidentDate: Date;\n Attachments: Record;\n Data: Record;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport enum ClaimSectionItemType {\n checkbox = 'checkbox',\n select = 'select',\n text = 'text',\n date = 'date',\n location = 'location',\n longText = 'long_text',\n upload = 'upload',\n confirm = 'confirm'\n}\n\nexport type ClaimSectionItemDetails =\n | CheckboxItem\n | SelectItem\n | TextItem\n | DateItem\n | LocationItem\n | LongTextItem\n | UploadItem\n | ConfirmItem;\n\nexport interface ClaimSection {\n ID: string;\n Field: string;\n Title: string;\n Description: string;\n Items: ClaimSectionItem[];\n}\n\nexport interface ClaimSectionItem {\n SubField: string;\n SubTitle?: string;\n Description?: string;\n Type: ClaimSectionItemType;\n Item: ClaimSectionItemDetails;\n}\n\n// eslint-disable-next-line\nexport interface CheckboxItem {}\n\nexport interface SectionItemDescription {\n Title: string;\n Description: string;\n Value: string;\n Icon: string;\n}\n\nexport interface SelectItem {\n AllowedValues: SectionItemDescription[];\n}\n\nexport interface TextItem {\n Required?: boolean;\n}\n\n// eslint-disable-next-line\nexport interface DateItem {}\n\nexport interface LocationItem {\n AddressField: string;\n LongitudeField: string;\n LatitudeField: string;\n}\n\nexport interface LongTextItem {\n Field: string;\n}\n\nexport interface UploadItem {\n Name: string;\n Description: string;\n AllowedTypes: string[];\n MaxSize: number;\n NumRequired: number;\n}\n\nexport interface Confirmation {\n Title: string;\n Description: string;\n}\n\nexport interface ConfirmItem {\n Confirmation: Confirmation[];\n}\nexport interface ClaimAttachment {\n ID: string;\n Name: string;\n Type: string;\n Size: number;\n URL: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to user models //\n///////////////////////////////////////////////////////\n\nexport interface User {\n ID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n PublicHandle: string;\n CreatedAt: Date;\n}\n\nexport interface UserVerification {\n ID: string;\n Secret: string;\n Status: string;\n Error: string;\n CreatedAt: Date;\n}\n\nexport enum ReferralStatus {\n created = 'created',\n fulfilled = 'fulfilled'\n}\n\nexport interface UserReferral {\n ID: string;\n Referrer: {\n UserID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n BusinessName: string;\n };\n Referee: {\n UserID: string;\n FirstName: string;\n LastName: string;\n Email: string;\n BusinessName: string;\n };\n Status: ReferralStatus;\n Reward: number;\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n\nexport interface AccountSummary {\n PaymentMethods?: PaymentMethod[];\n PastStatements: Statement[];\n User?: User;\n Verification?: UserVerification;\n}\n\nexport enum VerificationStatus {\n RequiresInput = 'requires_input',\n Processing = 'processing',\n Verified = 'verified',\n Canceled = 'canceled'\n}\n\nexport interface PaymentMethod {\n ID: string;\n Brand: string;\n ExpMonth: number;\n ExpYear: number;\n LastFour: string;\n Default: boolean;\n}\n\nexport interface Statement {\n ID: string;\n\n StatementDate: Date;\n GeneratedAt: Date;\n\n PolicyStatements: PolicyStatement[];\n Currency: string;\n TaxRate: number;\n\n SubTotal: number;\n TaxTotal: number;\n Total: number;\n}\n\nexport interface PolicyStatement {\n Name: string;\n LineItems: LineItem[];\n Adjustments: LineItem[];\n Total: number;\n}\n\nexport interface LineItem {\n Title: string;\n Description: string;\n Price: Price;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to general models //\n///////////////////////////////////////////////////////\n\nexport interface ValidationError {\n Field: string;\n SubField?: string;\n Message: string;\n}\n\n///////////////////////////////////////////////////////\n// Types corresponding to merchant models //\n///////////////////////////////////////////////////////\n\nexport interface Address {\n AddressLine1: string;\n AddressLine2?: string;\n\n // Level 1 administrative division depending on country. For example, this is\n // the state in the U.S., the province in Canada, etc.\n Zone: string;\n\n // Level 2 administrative division depending on country. For example, this is\n // the county in the U.S., prefectural city in China, division in India, etc.\n SubZone?: string;\n\n // Level 3 administrative division depending on country. For example, this is\n // the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n City: string;\n\n // Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n // in the U.K., etc.\n PostalCode: string;\n}\n\nexport enum PaymentMethodType {\n Electronic = 'Electronic',\n Check = 'Check',\n Unknown = ''\n}\n\nexport enum SalesChannelType {\n Online = 'Online',\n Dealer = 'Dealer',\n InStore = 'InStore',\n Rental = 'Rental'\n}\n\nexport enum OnlineSalesChannelType {\n Shopify = 'Shopify',\n WooCommerce = 'WooCommerce',\n BigCommerce = 'BigCommerce',\n Lightspeed = 'Lightspeed eCommerce',\n Checkfront = 'Checkfront',\n Adobe = 'Adobe Commerce (Magento)',\n Custom = 'Custom',\n Other = 'Other'\n}\n\nexport enum InStoreSalesChannelType {\n ShopifyPOS = 'Shopify PoS',\n LightspeedRSeries = 'Lightspeed R-Series',\n LightspeedXSeries = 'Lightspeed X-Series',\n Ascend = 'Ascend',\n Edge = 'EDGE',\n Square = 'Square',\n Other = 'Other'\n}\n\nexport enum BusinessOperationType {\n RetailECommerce = 'Retail or E-Commerce',\n Wholesale = 'Wholesale',\n Manufacturing = 'Manufacturing',\n ServiceOrRepair = 'Service or Repair',\n Rental = 'Rental',\n Other = 'Other'\n}\n\nexport enum BusinessInsuranceType {\n BusinessOwners = 'Business Owners',\n CommercialAuto = 'Commercial Auto',\n Cyber = 'Cyber',\n DirectorsAndOfficers = 'Directors and Officers',\n GeneralLiability = 'General Liability',\n JewelersBlock = 'Jewelers Block',\n Other = 'Other',\n Property = 'Property',\n Rental = 'Rental',\n ShippingAndTransportation = 'Shipping and Transportation',\n UmbrellaExcess = 'Umbrella or Excess',\n WorkersCompensation = 'Workers Compensation'\n}\n\nexport enum RentalProductType {\n BikesAndEbikes = 'Bikes and eBikes',\n Kayaks = 'Kayaks',\n Other = 'Other',\n Paddleboards = 'Paddleboards'\n}\n\nexport interface Personalization {\n // Toggle the various types of insurance in the onboarding flow\n BusinessInsuranceEnabled: boolean;\n ProductInsuranceEnabled: boolean;\n RentalInsuranceEnabled: boolean;\n\n // Business insurance settings\n BusinessOperationTypes?: BusinessOperationType[];\n BusinessOperationTypesOtherDesc: string;\n\n BusinessRevenueBreakdownRetail: string;\n BusinessRevenueBreakdownWholesale: string;\n BusinessRevenueBreakdownManufacturing: string;\n BusinessRevenueBreakdownServiceOrRepair: string;\n BusinessRevenueBreakdownRental: string;\n BusinessRevenueBreakdownOther: string;\n BusinessRevenueBreakdownRentalPercentGuided: string;\n\n BusinessTotalPayroll: string;\n\n BusinessManufactureOrWholesaleOwnBrand?: boolean;\n\n BusinessInsuranceTypes?: BusinessInsuranceType[];\n BusinessInsuranceTypesOtherDesc: string;\n\n BusinessNumberOfPriorLosses?: string;\n\n BusinessInsuranceFilloutFormSubmitted: boolean;\n\n // Personal insurance settings\n SalesChannels?: SalesChannelType[];\n\n OnlineSalesChannelType?: OnlineSalesChannelType;\n OnlineSalesChannelName?: string;\n ShopifyAdminURL?: string;\n\n InStoreSalesChannelType?: InStoreSalesChannelType;\n InStoreSalesChannelName?: string;\n\n RentalChannelName?: string;\n\n ProductAnnualRevenue: string;\n\n // Rental insurance settings\n RentalProductTypes?: RentalProductType[];\n RentalProductTypeOtherDesc: string;\n\n RentalMotorizedAssetsExceedEBikeClassification?: boolean;\n\n RentalMaximumAssetValue: string;\n RentalAverageAssetValue: string;\n\n RentalAnnualRevenue: string;\n RentalAnnualVolume: string;\n\n RentalPlatformName: string;\n RentalPointOfSaleName: string;\n}\n\nexport interface BusinessProfile {\n Name: string;\n DBA: string;\n Email: string;\n Phone: string;\n Domain: string;\n Address: Address;\n PaymentMethod: PaymentMethodType;\n\n ProductVerticals?: ProductType[];\n Personalization: Personalization;\n}\n\nexport interface Merchant {\n ID: string;\n MercuryRecipientID: string;\n BusinessProfile: BusinessProfile;\n CreatedAt: Date;\n PublicHandle: string;\n}\n\nexport interface MerchantUser {\n ID: string;\n MerchantID: string;\n\n FirstName: string;\n LastName: string;\n Email: string;\n Phone: string;\n\n ActivationToken?: string;\n CreatedAt: Date;\n}\n\nexport interface MerchantIntegration {\n ID: string;\n Type: MerchantIntegrationType;\n Settings: MerchantIntegrationSettings;\n Status: MerchantIntegrationStatus;\n}\n\nexport enum MerchantIntegrationStatus {\n active = 'Active',\n pending = 'Pending',\n disabled = 'Disabled',\n inactive = 'Inactive'\n}\n\nexport enum MerchantIntegrationType {\n qr_code = 'QRCode',\n referral_link = 'ReferralLink',\n embeddable_marketing_page = 'EmbeddableMarketingPage',\n shopify = 'Shopify',\n custom = 'Custom',\n checkfront = 'Checkfront',\n lsretail_rseries = 'LSRetailRSeries',\n woocommerce = 'WooCommerce',\n not_available = ''\n}\n\nexport type MerchantIntegrationSettings =\n | ShopifyIntegrationSettings\n | LSRetailRSeriesIntegrationSettings\n | QRCodeIntegrationSettings\n | ReferralLinkIntegrationSettings\n | EmbeddableMarketingPageIntegrationSettings\n | WooCommerceIntegrationSettings\n | CustomIntegrationSettings;\n\nexport interface ShopifyIntegrationSettings {\n ShopName: string;\n InsuranceProductID?: string;\n CartPageWidgetEnabled: boolean;\n OrderConfirmationPageWidgetEnabled: boolean;\n ProductPageAddToCartTriggerEnabled: boolean;\n ProductPageWidgetEnabled: boolean;\n UseOysterProductAsIndicator?: boolean;\n OrderConfirmationPageWidgetFirstLoad: Date;\n}\n\nexport interface LSRetailRSeriesIntegrationSettings {\n AccountID: string;\n AccountName: string;\n EmailMarketingEnabled: boolean;\n EmailMarketingRequiresOptIn: boolean;\n EmailMarketingCategoriesEnabled: string[] | null;\n}\n\nexport interface QRCodeIntegrationSettings {\n ReferralLink: string;\n BrandColor?: string;\n FirstDownload?: string;\n}\n\nexport interface ReferralLinkIntegrationSettings {\n ReferralLink: string;\n BrandColor?: string;\n FirstPageLoad?: string;\n}\n\nexport interface EmbeddableMarketingPageIntegrationSettings {\n ReferralLink: string;\n FirstPageLoad?: string;\n}\n\nexport interface WooCommerceIntegrationSettings {\n BaseURL: string;\n OysterVirtualProductID?: number;\n CartPageWidgetEnabled: boolean;\n OrderConfirmationPageWidgetEnabled: boolean;\n ProductPageAddToCartTriggerEnabled: boolean;\n ProductPageWidgetEnabled: boolean;\n}\n\nexport interface CustomIntegrationSettings {\n Data: string;\n}\n\nexport interface MerchantRentalConfiguration {\n ID: string;\n MerchantID: string;\n Details: MerchantRentalConfigurationDetails;\n}\n\nexport interface PublicMerchantRentalConfiguration {\n BillingMode: BillingMode;\n UnifiedWaiverFlowEnabled: boolean;\n AutoRenewWaiver: boolean;\n}\n\nexport enum BillingMode {\n Customer = 'Customer',\n Merchant = 'Merchant'\n}\n\nexport interface MerchantRentalConfigurationDetails {\n BillingMode: BillingMode;\n Pricing: RentalPricingConfiguration;\n State: RentalPolicyState;\n PolicyDocument: AttachmentFile;\n AutoRenewWaiver: boolean;\n UnifiedWaiverFlowEnabled: boolean;\n}\n\nexport enum RentalPolicyState {\n unknown = 'Unknown',\n registered = 'Registered',\n submitted = 'Submitted',\n approved = 'Approved',\n approved_blanket = 'ApprovedBlanketPolicy',\n denied = 'Denied'\n}\n\nexport interface RentalPricingConfiguration {\n Currency: string;\n AssetValueUnitDenominator: number;\n DailyRatingPerValueUnit: number;\n WeeklyRatingPerValueUnit: number;\n MonthlyRatingPerValueUnit: number;\n MinimumPremium: number;\n\n MerchantFeePercent: number;\n MerchantFeeAbs: number;\n MerchantDeductible: number;\n PlatformFeePercent: number;\n PlatformFeeAbs: number;\n}\n\nexport enum MercuryPaymentTypes {\n electronic = 'electronic',\n check = 'check',\n unknown = ''\n}\n\nexport interface ReferralLinkIntegration {\n MerchantName: string;\n IntegrationID: string;\n IntegrationType: MerchantIntegrationType;\n Settings: ReferralLinkIntegrationSettings;\n Disabled?: boolean;\n}\n\nexport enum FeatureFlagExperiments {\n oneliner_widget = 'force_render_oneliner_widget',\n single_click_flow = 'single_click_flow',\n show_logo_on_widget = 'show_logo_on_widget'\n}\n\nexport interface FeatureFlag {\n ID: string;\n Value: boolean;\n}\n\nexport enum MerchantAppType {\n rental = 'rental',\n unknown = ''\n}\n\nexport interface WaiverEntry {\n Waiver?: RentalWaiver;\n Booking?: RentalBooking;\n}\n\nexport enum WaiverState {\n pending = 'Pending',\n canceled = 'Canceled',\n active = 'Active',\n expired = 'Expired',\n upcoming_renewal = 'UpcomingRenewal',\n renewal_canceled = 'RenewalCanceled',\n unknown = ''\n}\n\nexport interface RentalWaiver {\n ID: string;\n MerchantID: string;\n RentalBookingID: string;\n State: WaiverState;\n Details: WaiverDetails;\n}\n\nexport interface WaiverDetails {\n BillingMode: BillingMode;\n WaiverReferenceNumber: string;\n Assets: WaiverAsset[];\n Premium: WaiverPremium;\n PremiumRounding: Price;\n SignatureReference?: AttachmentFile;\n}\n\nexport interface WaiverAsset {\n // Either Asset or BookingLineItem will be present\n Asset?: RentalAsset;\n Premium: WaiverPremium;\n Accessories: AssetAccessory[];\n BookingLineItem?: BookingLineItem;\n}\n\nexport interface WaiverPremium {\n Currency: string;\n Base: number;\n Total: number;\n\n ProcessingFeeAmount: number;\n MerchantFeeAmount: number;\n OysterFeeAmount: number;\n}\n\nexport interface RentalAsset {\n ID: string;\n MerchantID: string;\n\n Type: AssetType;\n Name: string;\n Description: string;\n Value: number;\n Details: AssetDetails;\n}\n\nexport enum AssetType {\n bicycle = 'Bicycle',\n kayak = 'Kayak',\n paddleboard = 'Paddleboard',\n scooter = 'Scooter',\n motorcycle = 'Motorcycle',\n atv = 'ATV',\n other = 'Other'\n}\n\nexport interface AssetDetails {\n SerialNumber: string;\n AvailableAccessories: AssetAccessory[];\n}\n\nexport interface AssetAccessory {\n Name: string;\n Value: number;\n}\n\nexport interface RentalBooking {\n ID: string;\n MerchantID: string;\n\n State: RentalBookingState;\n Details: RentalBookingDetails;\n StartTime: Date;\n EndTime: Date;\n}\n\nexport enum RentalBookingState {\n Unknown = '',\n Confirmed = 'Confirmed'\n}\n\nexport interface BookingLineItem {\n Name: string;\n SKU: string;\n ExternalID: string;\n SerialNumber: string;\n StartDate: Date;\n EndDate: Date;\n Total: number;\n SubTotal: number;\n TaxTotal: number;\n Quantity: number;\n}\n\nexport interface RentalBookingDetails {\n BookingReference: string;\n Insured: Insured;\n Assets?: RentalAsset[];\n Accessories: AssetAccessory[];\n AutoRenew: boolean;\n BookingPlatformDomain?: string;\n BookingLineItems?: BookingLineItem[];\n}\n\nexport interface RentalClaim {\n ID: string;\n MerchantID: string;\n RentalWaiverID: string;\n\n State: RentalClaimState;\n Details: RentalClaimDetails;\n}\n\nexport enum RentalClaimState {\n unknown = '',\n logged = 'Logged',\n submitted = 'Submitted',\n approved = 'Approved',\n denied = 'Denied',\n requires_information = 'RequiresInformation'\n}\n\nexport enum RentalDamageType {\n unknown = '',\n fire = 'Fire',\n theft = 'Theft',\n water = 'Water',\n accident = 'Accident',\n other = 'Other'\n}\n\nexport interface RentalClaimDetails {\n ClaimNumber: string;\n Assets: WaiverAsset[];\n\n IncidentDate: Date;\n IncidentCause: string;\n IncidentAddress: RentalClaimAddress;\n\n DamageType: RentalDamageType;\n\n PoliceReportFiled?: boolean;\n NameOfEmergencyDepartment?: string;\n ReportOrIncidentNumber?: string;\n SourceOfWaterDamage?: string;\n EquipmentExposedToRain?: boolean;\n HasOtherInsuranceCoverage?: boolean;\n}\n\nexport interface RentalClaimAddress {\n AddressLine1?: string;\n AddressLine2?: string;\n AddressCity?: string;\n AddressState?: string;\n AddressZipCode?: string;\n}\n\nexport enum TransactionType {\n credit = 'Credit',\n debit = 'Debit'\n}\n\nexport enum TransactionState {\n created = 'Created',\n pending = 'Pending',\n success = 'Success',\n failure = 'Failure',\n canceled = 'Canceled',\n unknown = ''\n}\n\nexport enum TransactionProcessor {\n stripe = 'Stripe',\n mercury_ach = 'MercuryACH',\n mercury_check = 'MercuryCheck'\n}\n\nexport interface Transaction {\n ID: string;\n PaymentAccountID: string;\n\n Type: TransactionType;\n State: TransactionState;\n Processor: TransactionProcessor;\n ProcessorID: string;\n\n Amount: number;\n Currency: string;\n\n CreatedAt: Date;\n UpdatedAt: Date;\n ClearedAt: Date;\n}\n\nexport enum BusinessLocationType {\n unknown = '',\n home = 'Home',\n buildingLeased = 'BuildingLeased',\n buildingOwned = 'BuildingOwned'\n}\n\nexport interface BusinessInformation {\n // Identity\n BusinessName: string;\n DBA: string;\n Email: string;\n Website: string;\n FirstName?: string;\n LastName?: string;\n PhoneNumber?: string;\n\n // Operation\n ProductVerticals: ProductType[];\n Operations?: BusinessOperationType[];\n InsuranceTypes?: BusinessInsuranceType[];\n NumberOfEmployees?: number;\n BusinessAgeInMonths?: number;\n OptInOysterBundle?: boolean;\n ManufactureOrWholesaleOwnBrand?: boolean;\n\n // Location\n MailingAddress?: Address;\n Address?: Address;\n SquareFootage?: number;\n LocationType?: BusinessLocationType;\n HasSprinklers?: boolean;\n BuildingValue?: number;\n BPPValue?: number;\n\n // Limits\n GLLimit?: number;\n BPPLimit?: number;\n BuildingLimit?: number;\n\n // Stats\n AnnualRevenue?: number;\n AnnualPayroll?: number;\n RetailRevenue?: number;\n WholesaleRevenue?: number;\n ManufacturingRevenue?: number;\n ServiceOrRepairRevenue?: number;\n RentalRevenue?: number;\n OtherRevenue?: number;\n RentalPercentGuided?: number;\n\n BPPDeductible?: number;\n BuildingDeductible?: number;\n\n PolicyStartDate?: Date;\n}\n\nexport enum WorflowStatus {\n Started = 'started',\n Completed = 'completed',\n Canceled = 'canceled',\n Failed = 'failed'\n}\n\nexport enum InsightSourceType {\n Shopify = 'shopify',\n PolicyDocument = 'policy_doc'\n}\n\nexport interface WorkflowError {\n Code: string;\n Desc: string;\n}\n\nexport interface Insights {\n ID: string;\n WorkflowID: string;\n Source: InsightSourceType;\n\n BusinessInformation: BusinessInformation;\n WorkflowStatus: WorflowStatus;\n WorkflowError: WorkflowError;\n}\n\nexport interface CommercialPolicyQuote {\n ID: string;\n\n Type: BusinessInsuranceType;\n Limit: number;\n Quote: Price;\n OysterPartnerQuote: Price;\n StartDate: Date;\n EndDate: Date;\n\n CreatedAt: Date;\n}\n\nexport interface BusinessInsuranceApplication {\n ID: string;\n MerchantID: string;\n\n BusinessInformation: BusinessInformation;\n Integrations?: MerchantIntegration[];\n FileIDs?: string[];\n\n // TODO: Rename this to Extractions\n Insights: Insights[];\n\n AggregatedInformation: BusinessInformation;\n\n Quotes?: CommercialPolicyQuote[];\n\n // TODO: Rename this to Insights\n AIInsights: string[];\n CreatedAt: Date;\n UpdatedAt: Date;\n}\n","import apm from '@oysterjs/core/apm';\n\nimport * as React from 'react';\nimport { MerchantUser, User } from '@oysterjs/types';\n\ninterface Auth {\n Token?: string;\n // TODO: the backend currently returns a separate field, `MerchantUser`\n // for merchant users. We should unify these based on the typing here.\n User?: T;\n MerchantUser?: MerchantUser;\n}\n\nexport type SetAuthFn = (auth: Auth) => void;\n\nexport const useAuth = (): [Auth, SetAuthFn] => {\n const getAuth = () => {\n const data = window.localStorage.getItem('oyster_token');\n if (data) {\n const auth: Auth = JSON.parse(data);\n apm().setUserContext({\n id: auth.User?.ID || auth.MerchantUser?.ID,\n email: auth.User?.Email || auth.MerchantUser?.Email\n });\n return auth;\n }\n\n return {};\n };\n\n const setAuth = (auth: Auth) => {\n apm().setUserContext({\n id: auth.User?.ID || auth.MerchantUser?.ID,\n email: auth.User?.Email || auth.MerchantUser?.Email\n });\n\n window.localStorage.setItem('oyster_token', JSON.stringify(auth));\n _setAuth(auth);\n };\n\n const [auth, _setAuth] = React.useState(getAuth());\n\n React.useEffect(() => {\n const updateAuth = () => setAuth(getAuth());\n window.addEventListener('storage', updateAuth);\n return () => window.removeEventListener('storage', updateAuth);\n }, []);\n\n return [auth, setAuth];\n};\n\nexport const getToken = (): string | null => {\n const data = window.localStorage.getItem('oyster_token');\n return !data ? null : JSON.parse(data)?.Token;\n};\n\nexport const getUser = (): T | null => {\n const data = window.localStorage.getItem('oyster_token');\n return !data ? null : JSON.parse(data)?.User || JSON.parse(data)?.MerchantUser;\n};\n\nexport const resetToken = (redirect?: string): void => {\n window.localStorage.removeItem('oyster_token');\n window.location.href = `/signin${redirect ? `?redirect=${encodeURIComponent(redirect)}` : ''}`;\n};\n","export type Environment = 'production' | 'staging' | 'dev' | 'local';\n\nexport type Service = 'getoyster' | 'dashboard' | 'partners' | 'oysterjs' | 'webhooks';\nexport type Backend = 'admin' | 'api' | 'merchant' | 'integrate' | 'metrics' | 'statics';\n\nconst getEnvironment = (): Environment => {\n if (typeof window === 'undefined') {\n return 'local';\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const environment = process.env.OYSTER_ENVIRONMENT || window?.oyster?.opts?.environment;\n switch (environment) {\n case 'production':\n case 'staging':\n case 'dev':\n case 'local':\n return environment;\n default:\n return 'local';\n }\n};\n\nconst getApiBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://api.withoyster.com';\n case 'staging':\n return 'https://api.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('api');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\nconst getAdminBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://admin.oysterinc.net';\n case 'staging':\n return 'https://admin.staging.oysterinc.net';\n case 'dev':\n return devServiceUrl('admin');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\nconst getMerchantBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://merchant.withoyster.com';\n case 'staging':\n return 'https://merchant.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('merchant');\n case 'local':\n return 'http://localhost:8084';\n }\n};\n\nconst getMetricsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://mtx.withoyster.com';\n case 'staging':\n return 'https://mtx.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('metrics');\n case 'local':\n return 'http://localhost:8083';\n }\n};\n\nconst getStaticsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://s.withoyster.com';\n case 'staging':\n return 'https://s.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('statics');\n case 'local':\n return 'http://localhost:8081';\n }\n};\n\nconst getIntegrateBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://integrate.withoyster.com';\n case 'staging':\n return 'https://integrate.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('integrate');\n case 'local':\n return 'http://localhost:8085';\n }\n};\n\nconst getOysterJsBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://js.withoyster.com';\n case 'staging':\n return 'https://js.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('oysterjs');\n case 'local':\n return 'http://localhost:8001';\n }\n};\n\nconst getDashboardBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://dashboard.withoyster.com';\n case 'staging':\n return 'https://dashboard.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('dashboard');\n case 'local':\n return 'http://localhost:8180';\n }\n};\n\nconst getGetOysterBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://get.withoyster.com';\n case 'staging':\n return 'https://get.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('getoyster');\n case 'local':\n return 'http://localhost:8181';\n }\n};\n\nconst getPartnersBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://partners.withoyster.com';\n case 'staging':\n return 'https://partners.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('partners');\n case 'local':\n return 'http://localhost:8182';\n }\n};\n\nconst getWebhooksBaseUrl = (): string => {\n switch (getEnvironment()) {\n case 'production':\n return 'https://webhooks.withoyster.com';\n case 'staging':\n return 'https://webhooks.staging.withoyster.com';\n case 'dev':\n return devServiceUrl('webhooks');\n case 'local':\n return 'http://localhost:8080';\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst getServiceName = (): Service => (process.env.SERVICE_NAME as Service) || '';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst getServiceVersion = (): string => process.env.SERVICE_VERSION || '';\n\nconst devServiceUrl = (service: string) => {\n // Get the user from the URL\n const [, user] = window.location.host.split('.');\n\n // Host will be in the format of {service}.{user}.dev.oysterinc.net\n return `https://${service}.${user}.dev.oysterinc.net`;\n};\n\nconst getSecret = (secretName: string, devSecret?: string) =>\n devSecret || window?.['oyster']?.['opts']?.[secretName];\n\n// Configuration defines the various configuration values that can\n// be set on the app\ntype StaticConfiguration = {\n readonly serviceName: Service;\n readonly serviceVersion: string;\n readonly environment: Environment;\n readonly serviceBaseUrl: { [K in Service]: string };\n readonly backendBaseUrl: { [K in Backend]: string };\n readonly secrets: {\n readonly mapboxPublicKey?: string;\n readonly shopifyPublicKey?: string;\n readonly stripePublicKey?: string;\n readonly coterieStripePublicKey?: string;\n readonly sentryDsn?: string;\n };\n};\n\ntype DynamicConfiguration = {\n readonly merchant?: {\n readonly id?: string;\n readonly apiKey?: string;\n readonly integrationId?: string;\n };\n};\n\nlet dynamicConfig: DynamicConfiguration = {};\nexport const configure = (opts: DynamicConfiguration) => {\n dynamicConfig = opts;\n};\n\nexport type Configuration = StaticConfiguration & DynamicConfiguration;\n\n// config builds and exports the configuration for usage.\nexport default (): Configuration => ({\n serviceName: getServiceName(),\n serviceVersion: getServiceVersion(),\n environment: getEnvironment(),\n serviceBaseUrl: {\n dashboard: getDashboardBaseUrl(),\n getoyster: getGetOysterBaseUrl(),\n partners: getPartnersBaseUrl(),\n oysterjs: getOysterJsBaseUrl(),\n webhooks: getWebhooksBaseUrl()\n },\n backendBaseUrl: {\n admin: getAdminBaseUrl(),\n api: getApiBaseUrl(),\n merchant: getMerchantBaseUrl(),\n integrate: getIntegrateBaseUrl(),\n metrics: getMetricsBaseUrl(),\n statics: getStaticsBaseUrl()\n },\n secrets: {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n mapboxPublicKey: getSecret('mapboxPublicKey', process.env.MAPBOX_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n shopifyPublicKey: getSecret('shopifyPublicKey', process.env.SHOPIFY_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n stripePublicKey: getSecret('stripePublicKey', process.env.STRIPE_PUBLIC_KEY),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n coterieStripePublicKey: getSecret(\n 'coterieStripePublicKey',\n process.env.COTERIE_STRIPE_PUBLIC_KEY\n ),\n sentryDsn: process.env.SENTRY_DSN\n },\n ...dynamicConfig\n});\n","import { GraphQLErrors } from '@apollo/client/errors';\nimport { ValidationError } from '@oysterjs/types';\n\nexport const isValidationError = (err: unknown): err is ValidationError => {\n return (err as { Type?: string }).Type === 'validation_error';\n};\n\nexport const isUnderwritingError = (\n err: unknown\n): err is { Message: string; Type: string; Code: string } => {\n return (err as { Type?: string }).Type === 'underwriting_error';\n};\n\nexport const isType = (\n err: unknown,\n type: string\n): err is { Message: string; Type: string; Code: string } => {\n return (err as { Type?: string }).Type === type;\n};\n\nexport enum ErrorCode {\n unknown = '',\n unsupportedGeo = 'unsupported_geo',\n riskRejected = 'risk_rejected',\n alreadySubmitted = 'already_submitted',\n submissionFailed = 'submission_failed'\n}\n\nexport enum ErrorType {\n unknown = '',\n\n networkError = 'js.fetch.network_error',\n unknownApiError = 'js.api.unknown_error',\n\n validationError = 'validation_error',\n processingError = 'processing_error',\n underwritingError = 'underwriting_error',\n preconditionFailed = 'precondition_failed'\n}\n\nexport interface WrappedErrorOptions {\n code: ErrorCode;\n type: ErrorType;\n details?: string;\n metadata?: Record;\n cause?: WrappedError | Error;\n}\n\nexport class WrappedError extends Error {\n constructor(\n message: string,\n public opts: WrappedErrorOptions = { code: ErrorCode.unknown, type: ErrorType.unknown }\n ) {\n super(message);\n this.name = 'WrappedError';\n }\n\n type = () => {\n return this.opts.type;\n };\n\n code = () => {\n return this.opts.code;\n };\n\n details = () => {\n return this.opts.details;\n };\n\n cause = () => {\n return this.opts.cause;\n };\n\n metadata = () => {\n return this.opts.metadata || {};\n };\n\n getValidationError = () => {\n return {\n Field: this.opts.metadata?.Field || '',\n SubField: this.opts.metadata?.SubField || '',\n Message: this.message\n };\n };\n\n getGraphQLSchemaValidationError = () => {\n return {\n field: this.opts.metadata?.Field || '',\n subField: this.opts.metadata?.SubField || '',\n message: this.message\n };\n };\n\n // Figure out how to type this better\n // eslint-disable-next-line\n static fromApiError(err: any): WrappedError {\n const x = new WrappedError(err.Message, {\n code: err.Code || ErrorCode.unknown,\n type: err.Type || ErrorType.unknown,\n metadata: {\n Field: err.Field,\n SubField: err.SubField,\n RequestID: err.RequestID\n }\n });\n return x;\n }\n\n static fromValidationError(validationError: ValidationError): WrappedError {\n return new WrappedError(validationError.Message, {\n code: ErrorCode.unknown,\n type: ErrorType.validationError,\n metadata: {\n Field: validationError.Field,\n SubField: validationError.SubField || ''\n }\n });\n }\n\n static fromGraphQLError(errors: GraphQLErrors): WrappedError {\n return new WrappedError(errors.join(''), {\n code: ErrorCode.unknown,\n type: ErrorType.networkError\n });\n }\n\n // Figure out how to type this better\n // eslint-disable-next-line\n static asWrappedError(err: any): WrappedError {\n // TODO: this does not yet handle converting non-WrappedErrors\n // to WrappedError, as Javascript is weird about `instanceof`\n // mixed with catch blocks.\n return err;\n }\n}\n","import { getToken, resetToken } from '@oysterjs/core/auth';\nimport config from '@oysterjs/core/config';\nimport { ErrorCode, ErrorType, WrappedError } from '@oysterjs/core/errors';\n\nexport const getEncodedQueryString = (m: Record): string => {\n const params = new URLSearchParams();\n Object.entries(m).forEach(([key, value]) => {\n if (value) {\n params.set(key, value.toString());\n }\n });\n\n return params.toString();\n};\n\ninterface RequestOpts extends RequestInit {\n redirectUrl?: string;\n disableUnauthorizedRedirect?: boolean;\n}\n\nexport const Get = (path: RequestInfo, init?: RequestOpts) =>\n request(path, undefined, { ...init, method: 'GET' });\n\nexport const Post = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'POST' });\n\nexport const Put = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'PUT' });\n\nexport const Delete = (path: RequestInfo, json?: unknown, opts?: RequestOpts) =>\n request(path, json ? JSON.stringify(json) : undefined, { ...opts, method: 'DELETE' });\n\nconst request = (path: RequestInfo, json: string | undefined, opts: RequestOpts): Promise =>\n fetch(config().backendBaseUrl.api + path, {\n ...opts,\n mode: 'cors',\n credentials: 'include',\n headers: {\n ...(json ? { 'Content-Type': 'application/json' } : {}),\n ...(getToken() ? { Authorization: `Bearer ${getToken()}` } : {}),\n ...opts.headers\n },\n body: opts.body || json\n })\n .catch((err) => {\n throw new WrappedError('Error performing network request', {\n code: ErrorCode.unknown,\n type: ErrorType.networkError,\n details: `Error performing ${opts.method} ${path}`,\n cause: err\n });\n })\n .then((res) =>\n res.json().then((data) => {\n if (res.status < 300 && data) {\n return data;\n }\n\n if (!opts.disableUnauthorizedRedirect && res.status === 401) {\n resetToken(opts.redirectUrl);\n return data;\n }\n\n if (data.Error) {\n throw WrappedError.fromApiError(data.Error);\n }\n\n throw new WrappedError(`An unknown error with status ${res.status} occurred`, {\n type: ErrorType.unknownApiError,\n code: ErrorCode.unknown,\n details: data.toString()\n });\n })\n );\n","import apm from '@oysterjs/core/apm';\nimport { FeatureFlag, MerchantUser } from '@oysterjs/types';\nimport { Get, getEncodedQueryString } from './base';\nimport { getUser } from '@oysterjs/core/auth';\nimport config from '@oysterjs/core/config';\n\nconst getFlagOptions = () =>\n getEncodedQueryString({\n MerchantAPIKey: config().merchant?.apiKey,\n MerchantID: getUser()?.MerchantID,\n UserID: apm().getSession().userId\n });\n\nconst evaluateFlag = (flagId: string) => Get(`/flag/${flagId}?${getFlagOptions()}`);\n\nconst listFlags: () => Promise<{ FeatureFlags: FeatureFlag[] }> = () =>\n Get(`/flags?${getFlagOptions()}`);\n\nconst evaluateBooleanFlag = (flag: string) =>\n evaluateFlag<{ Enabled: boolean }>(flag).then((d) => d.Enabled);\n\nexport const shouldRender = () => evaluateBooleanFlag('render_widget');\n\nexport const shouldRenderPostCheckoutOffer = () =>\n evaluateBooleanFlag('render_post_checkout_offer');\n\nexport const enableDefaultInsurance = () => evaluateBooleanFlag('enable_default_insurance');\n\nexport const enableCartWidget = () => evaluateBooleanFlag('enable_cart_widget');\n\nexport const shouldRenderOnelinerWidget = () => evaluateBooleanFlag('force_render_oneliner_widget');\n\nexport const shouldRenderLandingPage = () => evaluateBooleanFlag('render_marketing_page');\n\nexport const enableCommercialOauth = () => evaluateBooleanFlag('enable_commercial_oauth');\n\nexport const enableCommercialDocumentExtraction = () =>\n evaluateBooleanFlag('enable_commercial_document_extraction');\n\nexport const allowCartWidgetObservables = () =>\n evaluateBooleanFlag('allow_cart_widget_observables');\n\nexport const enableRiskManagement = () => evaluateBooleanFlag('enable-risk-management');\n\nexport const retrieveAllFeatureFlags = (): Promise =>\n listFlags().then((res) => res.FeatureFlags);\n","import { FeatureFlag, FeatureFlagExperiments } from '@oysterjs/types';\nimport { retrieveAllFeatureFlags } from './flag';\n\nlet appConfiguration: AppConfiguration;\n\nexport interface AppConfiguration {\n ensureFeatureFlags(): Promise;\n getAll(): Promise;\n getAllSync(): FeatureFlag[];\n get(flagId: string): Promise;\n update(flagId: string, updateFunction: (featureFlag: FeatureFlag) => void): Promise;\n}\n\nclass MainAppConfiguration implements AppConfiguration {\n featureFlags: FeatureFlag[] = [];\n retrieveFlagsPromise: Promise | undefined;\n\n async ensureFeatureFlags(): Promise {\n if (this.featureFlags.length === 0) {\n if (!this.retrieveFlagsPromise) {\n // Set a 2 second timeout so we don't have missing events\n // if FF API is not available\n const timeoutPromise = new Promise((resolve) => {\n const timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n resolve(undefined);\n }, 2000);\n });\n\n this.retrieveFlagsPromise = Promise.race([timeoutPromise, retrieveAllFeatureFlags()]);\n }\n\n // Update flags variable on resolve\n await this.retrieveFlagsPromise?.then((res) => {\n if (res) {\n this.featureFlags = res;\n }\n });\n\n // Clean up the promise\n this.retrieveFlagsPromise = undefined;\n }\n\n return;\n }\n\n async getAll(): Promise {\n await this.ensureFeatureFlags();\n return this.featureFlags;\n }\n\n getAllSync(): FeatureFlag[] {\n return this.featureFlags;\n }\n\n async get(flagId: string): Promise {\n await this.ensureFeatureFlags();\n return this.featureFlags.find((ff) => ff.ID === flagId);\n }\n\n async update(flagId: string, updateFunction: (featureFlag: FeatureFlag) => void): Promise {\n await this.ensureFeatureFlags();\n const updateIndex = this.featureFlags.findIndex((f) => f.ID === flagId);\n if (updateIndex >= 0) {\n // Update existing feature flags\n updateFunction(this.featureFlags[updateIndex]);\n } else {\n // Create a new feature flag and insert it\n const ff: FeatureFlag = {\n ID: flagId,\n Value: false\n };\n updateFunction(ff);\n\n this.featureFlags = [...this.featureFlags, ff];\n }\n\n return;\n }\n}\n\nexport class MockAppConfiguration implements AppConfiguration {\n featureFlags = [\n {\n ID: FeatureFlagExperiments.oneliner_widget,\n Value: true\n }\n ];\n\n async ensureFeatureFlags(): Promise {\n return;\n }\n async getAll(): Promise {\n return this.featureFlags;\n }\n getAllSync(): FeatureFlag[] {\n return this.featureFlags;\n }\n async get(flagId: string): Promise {\n return this.featureFlags.find((ff) => ff.ID === flagId);\n }\n async update(): Promise {\n // Do nothing for now\n return;\n }\n}\n\n// This needs to be called after apm has been initialized.\nexport const init = async () => {\n appConfiguration = new MainAppConfiguration();\n await appConfiguration.ensureFeatureFlags();\n};\n\nexport const setAppConfiguration = (config: AppConfiguration) => {\n appConfiguration = config;\n};\n\n// eslint-disable-next-line\n// @ts-ignore\nexport default (): AppConfiguration => appConfiguration;\n","import * as Sentry from '@sentry/react';\nimport appConfiguration from './api/appConfiguration';\nimport { ReferralSubChannel } from '@oysterjs/types';\nimport { getUser } from './auth';\nimport config from './config';\n\nclass Apm {\n constructor(private session: Session) {}\n\n // eslint-disable-next-line\n captureError(error: any) {\n if (Sentry.isInitialized()) {\n Sentry.captureException(error);\n }\n }\n\n setUserContext(userObject: { id?: string; email?: string }) {\n if (Sentry.isInitialized()) {\n Sentry.setUser(userObject);\n }\n this.session.userId = userObject.id?.toString() || this.session.userId;\n }\n\n setProductInfo(product) {\n if (!product) return;\n\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n window.sessionStorage.setItem(key, JSON.stringify(product));\n\n let itemList: string[] = JSON.parse(\n window.sessionStorage.getItem('oyster_session_product_keys') || '[]'\n );\n\n if (itemList) {\n itemList = itemList.filter((item) => item !== key);\n window.sessionStorage.setItem(\n 'oyster_session_product_keys',\n JSON.stringify([...itemList, key])\n );\n } else {\n window.sessionStorage.setItem('oyster_session_product_keys', JSON.stringify([key]));\n }\n }\n\n getSession(): Session {\n return this.session;\n }\n\n getSessionId() {\n return Sentry.getReplay()?.getReplayId();\n }\n\n getProductInfo() {\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n return JSON.parse(window.sessionStorage.getItem(key) || '\"\"');\n }\n\n clearProductInfo() {\n const key = `oyster_product_for_user_${this.getSession().userId}`;\n window.sessionStorage.removeItem(key);\n }\n\n setReferralSubChannel(subChannel?: ReferralSubChannel) {\n if (!subChannel) {\n this.clearReferralSubChannel();\n return;\n }\n\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n window.sessionStorage.setItem(key, subChannel);\n }\n\n getReferralSubChannel(): ReferralSubChannel {\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n return (window.sessionStorage.getItem(key) || ReferralSubChannel.unknown) as ReferralSubChannel;\n }\n\n clearReferralSubChannel() {\n const key = `oyster_referral_subchannel_for_user_${this.getSession().userId}`;\n window.sessionStorage.removeItem(key);\n }\n\n // eslint-disable-next-line\n async sendEvent(id: string, metadata?: Record) {\n const productType = this.getProductInfo();\n const data = {\n UserID: getUser()?.ID || this.session.userId,\n PageLoadID: this.session.pageLoadId\n };\n const featureFlags = await appConfiguration().getAll();\n\n // Get formatted feature flags\n let formattedFeatureFlags = {};\n featureFlags.forEach(\n (ff) =>\n (formattedFeatureFlags = {\n ...formattedFeatureFlags,\n [ff.ID]: ff.Value\n })\n );\n\n const updatedMetadata = {\n ...metadata,\n ProductType: productType,\n feature_flags: formattedFeatureFlags,\n referral_sub_channel: metadata?.referral_sub_channel || this.getReferralSubChannel() // Prioritize passed-in values\n };\n\n const url = `${config().backendBaseUrl.metrics}/event/${id}`;\n\n fetch(url, {\n method: 'POST',\n mode: 'cors',\n credentials: 'same-origin',\n headers: {\n 'Content-type': 'application/json',\n 'X-Merchant-API-Key': config().merchant?.apiKey || metadata?.merchant_api_key || '',\n 'X-Merchant-Integration-ID':\n config().merchant?.integrationId || metadata?.integration_id || ''\n },\n body: JSON.stringify({ ...data, Metadata: updatedMetadata })\n });\n }\n}\n\nlet apm: Apm;\n\ninterface Session {\n userId: string;\n pageLoadId: string;\n merchantId?: string;\n}\n\nconst initSession = (): Session => {\n const getRandomString = (len: number): string => {\n const characters = '0123456789abcdef';\n let str = '';\n for (let i = 0; i < len; i++) {\n str += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return str;\n };\n\n // Check if we have an authenticated user ID\n let userId = getUser()?.ID;\n\n // Check if we already stored an ID locally\n if (!userId) {\n userId = window.localStorage.getItem('oyster_user_id') || undefined;\n }\n\n // Otherwise, generate an ID and store it\n if (!userId) {\n userId = getRandomString(24);\n window.localStorage.setItem('oyster_user_id', userId);\n }\n\n return {\n userId,\n pageLoadId: getRandomString(24)\n };\n};\n\nexport const init = (): void => {\n const session = initSession();\n\n Sentry.init({\n dsn: config().secrets.sentryDsn,\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.browserProfilingIntegration(),\n Sentry.captureConsoleIntegration({\n levels: ['error']\n }),\n Sentry.extraErrorDataIntegration(),\n Sentry.httpClientIntegration(),\n Sentry.reactRouterV5BrowserTracingIntegration({ history }),\n Sentry.replayIntegration({\n networkDetailAllowUrls: [\n window.location.origin,\n config().backendBaseUrl.api,\n config().backendBaseUrl.integrate,\n config().backendBaseUrl.merchant,\n config().backendBaseUrl.metrics,\n config().backendBaseUrl.statics\n ],\n networkCaptureBodies: true,\n networkRequestHeaders: ['X-Merchant-Integration-ID', 'X-Merchant-API-Key'],\n maskAllText: false,\n blockAllMedia: false\n }),\n Sentry.sessionTimingIntegration()\n ],\n\n autoSessionTracking: true,\n enabled: true,\n enableTracing: true,\n\n environment: config().environment,\n release: config().serviceVersion,\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n tracesSampleRate: 1.0,\n\n // Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled\n tracePropagationTargets: [\n config().backendBaseUrl.api,\n config().backendBaseUrl.integrate,\n config().backendBaseUrl.merchant,\n config().backendBaseUrl.metrics,\n config().backendBaseUrl.statics\n ],\n\n // Capture Replay for 100% of all sessions,\n // plus for 100% of sessions with an error\n replaysSessionSampleRate: 1.0,\n replaysOnErrorSampleRate: 1.0\n });\n\n apm = new Apm(session);\n};\n\nexport const embeddedInit = (): void => {\n const session = initSession();\n apm = new Apm(session);\n};\n\n// eslint-disable-next-line\n// @ts-ignore\nexport default (): Apm => apm;\n","export const Spinner = ({\n color,\n size,\n centerHorizontal\n}: {\n color?: string;\n size?: number;\n centerHorizontal?: boolean;\n}): JSX.Element => (\n \n \n \n \n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { Spinner } from '../Spinner';\n\ninterface Props {\n request: Promise;\n exactlyOnce?: boolean;\n hideSpinner?: boolean;\n inline?: boolean;\n children: (data: T) => JSX.Element | null;\n}\n\nexport const LoadableContainer = styled.div<{ inline?: boolean }>`\n width: 100%;\n box-sizing: border-box;\n ${(props) =>\n props.inline\n ? ''\n : `\n padding: 40px 0px;display: flex;\n flex-direction: row;\n justify-content: center;\n `}\n`;\n\nexport function Loadable(props: Props): JSX.Element | null {\n const [data, setData] = React.useState(null);\n\n React.useEffect(() => {\n if (!props.exactlyOnce || !data) {\n props.request.then(setData);\n }\n }, [props.request]);\n\n if (!data) {\n return props.hideSpinner ? null : (\n \n \n \n );\n }\n\n return props.children(data);\n}\n","import { getToken, resetToken } from '@oysterjs/core/auth';\nimport { ApolloClient, InMemoryCache, createHttpLink, from } from '@apollo/client';\nimport { removeTypenameFromVariables } from '@apollo/client/link/remove-typename';\nimport {\n DeepPartial,\n Merchant,\n MerchantUser,\n MerchantIntegration,\n ReferralLinkIntegration,\n PolicyTableValues,\n MerchantIntegrationType,\n MerchantRentalConfiguration,\n RentalWaiver,\n WaiverEntry,\n RentalAsset,\n RentalBooking,\n RentalClaim,\n AttachmentFile,\n ValidationError,\n Transaction,\n UserReferral,\n MerchantRentalConfigurationDetails,\n Insured,\n BusinessInformation,\n DefaultFileRoles,\n BusinessInsuranceApplication,\n PublicMerchantRentalConfiguration\n} from '@oysterjs/types';\nimport { Delete, Get, getEncodedQueryString, Post, Put } from './base';\nimport config from '../config';\n\nexport const getMerchantGraphQLClient = () => {\n const removeTypenameLink = removeTypenameFromVariables();\n const link = from([\n removeTypenameLink,\n createHttpLink({\n uri: `${config().backendBaseUrl.api}/merchant/graphql/query`,\n credentials: 'include',\n headers: {\n ...(getToken() ? { Authorization: `Bearer ${getToken()}` } : {})\n }\n })\n ]);\n return new ApolloClient({\n cache: new InMemoryCache(),\n link\n });\n};\n\nexport const createMerchant = (data: {\n Merchant: DeepPartial;\n MerchantUser: Partial;\n AccessCode: string;\n}) => Post('/merchant', data);\n\nexport const merchantUserSignInInit = (email: string, redirect?: string) =>\n Post(\n '/merchant/user/signin/init',\n { Email: email, Redirect: redirect },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const merchantUserSignInComplete = (email: string, code: string) =>\n Post<{ Token: string; MerchantUser: MerchantUser }>(\n '/merchant/user/signin/complete',\n { Email: email, LoginCode: code },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const merchantUserSignOut = () =>\n Post('/merchant/user/signout', { disableUnauthorizedRedirect: true });\n\nexport const getMerchantAccount = (redirectUrl?: string) =>\n Get<{\n Merchant: Merchant;\n MerchantUser: MerchantUser;\n PersonalizationError?: ValidationError;\n }>('/merchant', { redirectUrl });\n\nexport const getMerchantIntegrations = (redirectUrl?: string) =>\n Get<{\n ApiKey: string;\n Integrations: MerchantIntegration[];\n }>('/merchant/integration', { redirectUrl });\n\nexport const updateMerchantIntegration = (integration: MerchantIntegration) =>\n Put<{ Integration: MerchantIntegration }>(`/merchant/integration/${integration.ID}`, {\n Integration: integration\n });\n\nexport const updateMerchantAccount = (data: { Merchant: DeepPartial }) =>\n Put<{ Merchant: Merchant }>('/merchant', { Merchant: data.Merchant });\n\nexport const personalizeMerchant = (merchant: Merchant, discardUpdateOnError?: boolean) =>\n Post<{ Merchant: Merchant; NextValidationError?: ValidationError }>(\n `/merchant/personalize?${getEncodedQueryString({\n DiscardUpdateOnError: discardUpdateOnError\n })}`,\n {\n BusinessProfile: merchant.BusinessProfile\n }\n );\n\nexport const linkMerchantWithShopify = (\n shop: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'Shopify',\n ExternalID: shop,\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const linkBIApplicationWithShopify = (\n shop: string,\n integrationData: string,\n redirectUrl: string,\n biApplicationID: string\n) => {\n return Post(\n '/merchant/link-bi-integration',\n {\n Type: 'Shopify',\n ExternalID: shop,\n IntegrationData: integrationData,\n BIApplicationID: biApplicationID\n },\n { redirectUrl }\n );\n};\n\nexport const linkMerchantWithLightspeedRetailRSeries = (\n _: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'LSRetailRSeries',\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const linkMerchantWithCheckfront = (\n _: string,\n integrationData: string,\n redirectUrl: string\n) => {\n if (!getToken()) {\n resetToken(redirectUrl);\n return Promise.resolve();\n } else {\n return Post(\n '/merchant/link-integration',\n {\n Type: 'Checkfront',\n IntegrationData: integrationData\n },\n { redirectUrl }\n );\n }\n};\n\nexport const requestEmbeddablePage = () =>\n Get<{\n Integration: MerchantIntegration;\n }>('/merchant/integration/embeddable-page').then((res) => res.Integration);\n\nexport const requestCheckfront = () =>\n Get<{\n Integration: MerchantIntegration;\n }>('/merchant/integration/checkfront').then((res) => res.Integration);\n\nexport const requestQRCode = () =>\n Get<{\n Integration: MerchantIntegration;\n QRCode: string;\n }>('/merchant/integration/QRCode');\n\nexport const requestQRCodePdf = () =>\n Get<{ DocumentUrl: string; DocumentZip: string }>('/merchant/integration/QRCode/pdf');\n\nexport const getMerchantReferrals = (start: Date, end: Date) =>\n Get<{ Referrals: PolicyTableValues[] }>(\n `/merchant/referrals?startTime=${start.toISOString()}&endTime=${end.toISOString()}`\n );\n\nexport const getMerchantTransactions = (start: Date, end: Date) =>\n Get<{ Transactions: Transaction[] }>(\n `/merchant/transactions?startTime=${start.toISOString()}&endTime=${end.toISOString()}`\n );\n\nexport const getMerchantLink = (\n integrationType?: MerchantIntegrationType,\n externalID?: string,\n integrationID?: string\n) =>\n Get(\n `/merchant/referrallink?${getEncodedQueryString({\n externalID,\n integrationID,\n integrationType\n })}`\n );\n\nexport const getMerchantUsers = () => Get<{ Users: MerchantUser[] }>('/merchant/users');\nexport const createMerchantUser = (user: Partial) =>\n Post('/merchant/users', { MerchantUser: user });\n\n// RENTAL APIs\n\nexport const getMerchantRentalConfiguration = (): Promise<{\n Configuration?: MerchantRentalConfiguration;\n ReferralLink?: string;\n QRCodeBase64?: string;\n}> => Get('/merchant/rental');\n\nexport const getPublicMerchantRentalConfiguration = (\n integrationId: string\n): Promise<{\n Configuration: PublicMerchantRentalConfiguration;\n}> => Get('/merchant/rental/public', { headers: { 'X-Merchant-Integration-Id': integrationId } });\n\nexport const updateMerchantRentalConfiguration = (\n settings: DeepPartial\n): Promise<{\n Configuration: MerchantRentalConfiguration;\n}> => Put('/merchant/rental', { Settings: settings });\n\nexport const getMerchantRentalPaymentSetup = (): Promise<{\n PaymentMethod?: { BankName: string; LastFour: string };\n SetupIntentClientSecret?: string;\n}> => Get('/merchant/rental/payment');\n\nexport const getRentalDocuments = () =>\n Get<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments`).then(\n (d) => d.Metadata || []\n );\n\nexport const uploadRentalDocuments = (files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n return Post<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments`, undefined, {\n body: form\n }).then((d) => d.Metadata || []);\n};\n\nexport const deleteRentalDocument = (id: string) =>\n Delete<{ Metadata: AttachmentFile[] }>(`/merchant/rental/waiverdocuments/${id}`).then(\n (d) => d.Metadata || []\n );\n\nexport const getRentalWaivers = (): Promise =>\n Get<{\n Entries: WaiverEntry[];\n }>('/merchant/rental/waivers').then((d) => d.Entries);\n\nexport const getRentalWaiver = (waiverId: string): Promise =>\n Get<{\n Entry: WaiverEntry;\n }>(`/merchant/rental/waiver/${waiverId}`).then((d) => d.Entry);\n\nexport const getRentalBooking = (bookingId: string): Promise =>\n Get<{\n Entry: WaiverEntry;\n }>(`/merchant/rental/booking/${bookingId}`).then((d) => d.Entry);\n\nexport const createRentalBooking = (\n booking: RentalBooking,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver?: RentalWaiver }> =>\n Post<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/booking',\n { Booking: booking },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const updateRentalBooking = (\n booking: RentalBooking,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver?: RentalWaiver }> =>\n Put<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n `/merchant/rental/booking/${booking.ID}`,\n { Booking: booking },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const getWaiverPricing = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n integrationId?: string\n): Promise =>\n Post<{\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver/price',\n { Booking: booking, Waiver: waiver },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => d.Waiver);\n\nexport const createRentalWaiver = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n sendEmail: boolean,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver: RentalWaiver }> =>\n Post<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver',\n { Booking: booking, Waiver: waiver, SendEmail: sendEmail },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const updateRentalWaiver = (\n booking: RentalBooking,\n waiver: RentalWaiver,\n sendEmail: boolean,\n integrationId?: string\n): Promise<{ UpdatedBooking: RentalBooking; UpdatedWaiver: RentalWaiver }> =>\n Put<{\n Booking: RentalBooking;\n Waiver: RentalWaiver;\n }>(\n '/merchant/rental/waiver',\n { Booking: booking, Waiver: waiver, SendEmail: sendEmail },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((d) => ({\n UpdatedBooking: d.Booking,\n UpdatedWaiver: d.Waiver\n }));\n\nexport const createMerchantRentalAsset = (asset: DeepPartial) =>\n Post<{ Asset: RentalAsset }>(`/merchant/rental/assets`, { Asset: asset }).then((r) => r.Asset);\n\nexport const deleteMerchantRentalAsset = (assetId: string) =>\n Delete(`/merchant/rental/assets/${assetId}`);\n\nexport const addRentalAssetSerialNumber = (\n assetId: string,\n serialNumber: string,\n integrationId?: string\n) =>\n Put<{ Asset: RentalAsset }>(\n `/merchant/rental/assets/${assetId}/serialnumber`,\n {\n SerialNumber: serialNumber\n },\n { headers: { 'X-Merchant-Integration-Id': integrationId || '' } }\n ).then((r) => r.Asset);\n\nexport const getRentalWaiverPaymentSession = (waiverId: string): Promise =>\n Post<{ StripeClientSecret: string }>(`/merchant/rental/waiver/${waiverId}/payment`).then((d) => {\n return d.StripeClientSecret;\n });\n\nexport const getRentalWaiverAgreementInformation = (\n waiverId: string\n): Promise<{\n SignedDate: Date;\n CustomerName: string;\n MerchantName: string;\n RentalBookingDate: Date;\n RentalBookingDurationInDays: number;\n}> => Post(`/merchant/rental/waiver/${waiverId}/agreement`);\n\nexport const completeRentalBooking = (\n bookingId: string,\n signatureData: string,\n insured?: DeepPartial\n): Promise =>\n Post<{\n Booking: RentalBooking;\n }>(`/merchant/rental/booking/${bookingId}/complete`, {\n Insured: insured,\n SignatureData: signatureData\n }).then((d) => d.Booking);\n\nexport const completeRentalWaiver = (\n waiverId: string,\n signatureData: string,\n insured?: DeepPartial\n): Promise =>\n Post<{\n Waiver: RentalWaiver;\n }>(`/merchant/rental/waiver/${waiverId}/complete`, {\n Insured: insured,\n SignatureData: signatureData\n }).then((d) => d.Waiver);\n\nexport const cancelBookingRenewal = (bookingId: string): Promise =>\n Post<{\n Booking: RentalBooking;\n }>(`/merchant/rental/booking/${bookingId}/cancel-renew`).then((d) => d.Booking);\n\nexport const getMerchantRentalAssets = (integrationId?: string): Promise =>\n Get<{\n Assets?: RentalAsset[];\n }>('/merchant/rental/assets', {\n headers: { 'X-Merchant-Integration-Id': integrationId || '' }\n }).then((d) => d.Assets || []);\n\nexport const getRentalBookingFiles = (id: string) =>\n Get<{\n Files: AttachmentFile[] | null;\n }>(`/merchant/rental/booking/${id}/files`).then((res) => res.Files);\n\nexport const getRentalClaimByWaiverId = (\n waiverId: string\n): Promise<{ Entry: WaiverEntry; Claim?: RentalClaim; Attachments: AttachmentFile[] }> =>\n Get<{\n Entry: WaiverEntry;\n Claim?: RentalClaim;\n Attachments: AttachmentFile[];\n }>(`/merchant/rental/waiver/${waiverId}/claim`);\n\nexport const getRentalClaim = (\n id: string\n): Promise<{ Entry: WaiverEntry; Claim: RentalClaim; Attachments: AttachmentFile[] }> =>\n Get<{\n Entry: WaiverEntry;\n Claim: RentalClaim;\n Attachments: AttachmentFile[];\n }>(`/merchant/rental/claim/${id}`);\n\nexport const createRentalClaim = (claim: RentalClaim): Promise =>\n Post<{ UpdatedClaim: RentalClaim }>(`/merchant/rental/claim`, {\n Claim: claim\n }).then((res) => res.UpdatedClaim);\n\nexport const updateRentalClaim = (id: string, claim: RentalClaim): Promise =>\n Put<{ UpdatedClaim: RentalClaim }>(`/merchant/rental/claim/${id}`, {\n Claim: claim\n }).then((res) => res.UpdatedClaim);\n\nexport const uploadClaimAttachments = (claimId: string, fileRole: string, files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n form.append('FileRole', fileRole);\n return Post<{ Metadata: AttachmentFile[] }>(\n `/merchant/rental/claim/${claimId}/attachment`,\n undefined,\n {\n body: form\n }\n ).then((d) => d.Metadata || []);\n};\n\nexport const getMerchantReferralList = () =>\n Get<{ Referrals: UserReferral[] }>('/merchant/referral/list').then((d) => d.Referrals || []);\n\nexport const getMerchantBIApplication = (applicationID: string) =>\n Get<{ Application: BusinessInsuranceApplication }>(`/merchant/bi/${applicationID}`).then(\n (d) => d.Application\n );\n\nexport const updateMerchantBIApplication = (\n applicationID: string,\n businessInformation: BusinessInformation\n) =>\n Put<{ Application: BusinessInsuranceApplication; NextValidationError?: ValidationError }>(\n `/merchant/bi/${applicationID}`,\n {\n BusinessInformation: businessInformation\n }\n );\n\nexport const createMerchantBIApplication = (businessInformation: BusinessInformation) =>\n Post<{ Application: BusinessInsuranceApplication; NextValidationError?: ValidationError }>(\n `/merchant/bi`,\n {\n BusinessInformation: businessInformation\n }\n );\n\nexport const uploadCommercialDocuments = (\n applicationID: string,\n fileRole: DefaultFileRoles,\n files: File[],\n existingFileIDs?: string[]\n) => {\n const form = new FormData();\n form.append('FileRole', fileRole);\n if (existingFileIDs) {\n form.append('ExistingFileIDs', JSON.stringify(existingFileIDs));\n }\n files.forEach((file) => form.append('files[]', file));\n return Post<{ Metadata: AttachmentFile[] }>(\n `/merchant/commercial/${applicationID}/documents`,\n undefined,\n {\n body: form\n }\n ).then((res) => res.Metadata);\n};\n\nexport const triggerCommercialDataExtraction = (applicationID: string) =>\n Post<{ Application: BusinessInsuranceApplication }>(\n `/merchant/commercial/${applicationID}/verify`,\n null\n );\n\nexport const retrieveCommercialDataExtraction = (applicationID: string, force: boolean) =>\n Get<{ Completed: boolean; Application: BusinessInsuranceApplication }>(\n `/merchant/commercial/${applicationID}/verify/retrieve?force=${force}`\n );\n\nexport const submitBusinessInsuraceApplication = (applicationID: string) =>\n Post<{ Redirect: string; Application: BusinessInsuranceApplication }>(\n `/merchant/bi/${applicationID}/complete`,\n null\n );\n","import { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nexport type Maybe = T | null | undefined;\nexport type InputMaybe = T | null | undefined;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\nexport type MakeEmpty = {\n [_ in K]?: never;\n};\nexport type Incremental =\n | T\n | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\nconst defaultOptions = {} as const;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /** Int64 represents a 64-bit integer */\n Int64: { input: number; output: number };\n /** Time represents a timestamp */\n Time: { input: Date; output: Date };\n};\n\nexport enum AchPaymentStatus {\n Canceled = 'CANCELED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Sent = 'SENT'\n}\n\n/** Details for a request to add an additional insured to a policy */\nexport type AddAdditionalInsuredRequest = {\n __typename?: 'AddAdditionalInsuredRequest';\n /** Address of the additional insured */\n address: Address;\n /** Name of the additional insured */\n name: Scalars['String']['output'];\n /** Relationship between the policyholder and additional insured */\n relationship: Scalars['String']['output'];\n};\n\n/** Input type for adding an additional insured request */\nexport type AddAdditionalInsuredRequestInput = {\n /** Address of the additional insured */\n address: AddressInput;\n /** Name of the additional insured */\n name: Scalars['String']['input'];\n /** Relationship between the policyholder and additional insured */\n relationship: Scalars['String']['input'];\n};\n\n/** Describes an address that can be accepted as input */\nexport type Address = {\n __typename?: 'Address';\n /**\n * Level 3 administrative division depending on country. For example, this is\n * the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n */\n city: Scalars['String']['output'];\n /** First line of the address. */\n line1: Scalars['String']['output'];\n /** Optional second line of the address. */\n line2?: Maybe;\n /**\n * Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n * in the U.K., etc.\n */\n postalCode: Scalars['String']['output'];\n /**\n * Level 2 administrative division depending on country. For example, this is\n * the county in the U.S., prefectural city in China, division in India, etc.\n */\n subZone?: Maybe;\n /**\n * Level 1 administrative division depending on country. For example, this is\n * the state in the U.S., the province in Canada, etc.\n */\n zone: Scalars['String']['output'];\n};\n\n/** Describes an address that can be accepted as input */\nexport type AddressInput = {\n /**\n * Level 3 administrative division depending on country. For example, this is\n * the city in the U.S., a muncipality in Austria, a ward in Singapore, etc.\n */\n city: Scalars['String']['input'];\n /** First line of the address. */\n line1: Scalars['String']['input'];\n /** Optional second line of the address. */\n line2?: InputMaybe;\n /**\n * Country-specific mailing identifier, e.g. ZIP Code in the U.S., Post Code\n * in the U.K., etc.\n */\n postalCode: Scalars['String']['input'];\n /**\n * Level 2 administrative division depending on country. For example, this is\n * the county in the U.S., prefectural city in China, division in India, etc.\n */\n subZone?: InputMaybe;\n /**\n * Level 1 administrative division depending on country. For example, this is\n * the state in the U.S., the province in Canada, etc.\n */\n zone: Scalars['String']['input'];\n};\n\n/**\n * Describes the Ascend billable that this policy is associated with. This\n * type represents the response from the Ascend /v1/billables API\n */\nexport type AscendBillable = {\n __typename?: 'AscendBillable';\n /** Fee collected by your agency (dollars). Fully earned, not financeable, and funded directly to your agency. */\n agencyFees: Scalars['Float']['output'];\n /** The identifier assigned to the quote/endorsement by the issuing carrier or wholesaler. */\n billableIdentifier: Scalars['String']['output'];\n /** Fee collected by the wholesaler (dollars). Fully earned, not financeable, and funded directly to the wholesaler. */\n brokerFees: Scalars['Float']['output'];\n /** An insurance company. */\n carrier: AscendCarrier;\n /** A type of coverage. */\n coverageType: AscendCoverage;\n /** A short description to explain to the insured what they are purchasing. */\n description?: Maybe;\n /** The unique identifier for the billable */\n id: Scalars['String']['output'];\n /** Determines if the carrier can audit customer raising premium significantly. */\n isAuditable: Scalars['Boolean']['output'];\n /** Determines if specific lines of business are filed with other bureaus which they have to notify on cancelation. */\n isFiled: Scalars['Boolean']['output'];\n /** Determines if the policy is fined by 10% on top of earned premium when insured cancels */\n isShortRate: Scalars['Boolean']['output'];\n /** Set state determined extended cancelation period for the policy. */\n minDaysToCancel: Scalars['Int']['output'];\n /** The minimum rate to charge insureds when they decide to finance. */\n minEarnedRate: Scalars['Float']['output'];\n /** Any additional fees that come with the policy (dollars). This fee is treated as non-refundable & fully earned. */\n otherFees: Scalars['Float']['output'];\n /** Payouts created for this program, if any. This corresponds to the data returned from the /v1/payouts endpoint */\n payouts: Array;\n /** Any policy fees that come with the billable (dollars). This fee is treated as non-refundable & fully earned. */\n policyFees: Scalars['Float']['output'];\n /** The amount to pay for the insurance policy (dollars). */\n premium: Scalars['Float']['output'];\n /** Your commission rate for this policy. */\n sellerCommissionRate?: Maybe;\n /** The amount of surplus lines tax to be collected (dollars). */\n surplusLinesTax: Scalars['Float']['output'];\n /** Any taxes & unearned fees (dollars). Taxes and fees are financed. */\n taxesAndFees: Scalars['Float']['output'];\n /** An insurance wholesaler or MGA. */\n wholesaler?: Maybe;\n};\n\n/** An insurance company. */\nexport type AscendCarrier = {\n __typename?: 'AscendCarrier';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The carrier display name. */\n title: Scalars['String']['output'];\n};\n\n/** A type of coverage. */\nexport type AscendCoverage = {\n __typename?: 'AscendCoverage';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The coverage type display name. */\n title: Scalars['String']['output'];\n};\n\n/** A document representing a transaction between the insured and Ascend. */\nexport type AscendInvoice = {\n __typename?: 'AscendInvoice';\n /** The checkout url of the invoice. */\n checkoutUrl?: Maybe;\n /** The date by which the invoice should be paid. */\n dueDate?: Maybe;\n /** The invoice unique identifier. */\n id: Scalars['String']['output'];\n /** The unique identifier of the insured invoice is attached to. */\n insuredID: Scalars['String']['output'];\n /** A number assigned to uniquely identify the invoice. */\n invoiceNumber: Scalars['String']['output'];\n /** The url of the invoice document. */\n invoiceUrl?: Maybe;\n /** The date when the invoice was shared with the insured. */\n issuedAt?: Maybe;\n /** The date when the invoice was paid by the insured. */\n paidAt?: Maybe;\n /** The name of the insured/business paying for the invoice. */\n payerName: Scalars['String']['output'];\n /** It represents the payment instrument used by an insured. */\n paymentMethod?: Maybe;\n /** The unique identifier of the program invoice is attached to. */\n programID?: Maybe;\n /** The current state of the invoice. */\n status: Scalars['String']['output'];\n /** The total amount charged, in dollars. */\n totalAmount: Scalars['Float']['output'];\n};\n\n/** A loan associated with an Ascend program */\nexport type AscendLoan = {\n __typename?: 'AscendLoan';\n /** The amount financed through the loan represented in dollars. */\n amountFinanced: Scalars['Float']['output'];\n /** The total annual rate charged. */\n apr: Scalars['Float']['output'];\n /** The date when the loan was created. The date uses UTC and is represented in the ISO8601 format. */\n createdAt: Scalars['Time']['output'];\n /** The initial up-front payment represented in dollars. */\n downPayment: Scalars['Float']['output'];\n /** The loan unique identifier. */\n id: Scalars['String']['output'];\n /** The number of payments that will be made to repay the loan. */\n numberOfPayments: Scalars['Int']['output'];\n /** The current state of the loan. */\n status: Scalars['String']['output'];\n /** The amount that will be payed in each payment in dollars. */\n termPayment: Scalars['Float']['output'];\n /** The date when the loan was last updated. The date uses UTC and is represented in the ISO8601 format. */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** The account the Ascend payout was made to */\nexport type AscendPayableAccount = {\n __typename?: 'AscendPayableAccount';\n /** The ID of the payable account */\n id: Scalars['String']['output'];\n /** The last four digits of the bank account */\n lastFour: Scalars['String']['output'];\n /** The owner name of the bank account */\n ownerName: Scalars['String']['output'];\n /** The routing number of the bank account */\n routingNumber: Scalars['String']['output'];\n /** The usage type of the bank account */\n usageType: AscendPayableAccountUsageType;\n};\n\nexport enum AscendPayableAccountUsageType {\n /** Organization's bank account we transfer commissions to. */\n CommissionAccount = 'COMMISSION_ACCOUNT',\n /** Paid out to carrier/wholesaler */\n SupplierAccount = 'SUPPLIER_ACCOUNT',\n /** Organization's bank account we transfer full premium to. */\n TrustAccount = 'TRUST_ACCOUNT'\n}\n\nexport type AscendPaymentMethod = {\n __typename?: 'AscendPaymentMethod';\n type: AscendPaymentMethodType;\n};\n\nexport enum AscendPaymentMethodType {\n AchCreditTransfer = 'ACH_CREDIT_TRANSFER',\n AchDebit = 'ACH_DEBIT',\n Card = 'CARD'\n}\n\n/** A payout from Ascend to an entity */\nexport type AscendPayout = {\n __typename?: 'AscendPayout';\n /** The date the payout was created */\n createdAt: Scalars['Time']['output'];\n /** The date that the payout failed */\n failedAt?: Maybe;\n /** The gross amount paid out, in dollars. */\n grossPayoutAmount: Scalars['Float']['output'];\n /** The payout unique identifier */\n id: Scalars['String']['output'];\n /** If found, the details of the bank transaction on Oyster's side */\n linkedBankTransaction?: Maybe;\n /** The net amount paid out, in dollars. */\n netPayoutAmount: Scalars['Float']['output'];\n /** The date that the payout was paid */\n paidAt?: Maybe;\n /** The account that the payout was made to */\n payableAccount: AscendPayableAccount;\n /** The date that the payout will be paid */\n payingAt?: Maybe;\n /** The type of the recipient */\n recipientType: AscendRecipientType;\n /** The reference number included in the bank memo associated with this payout */\n reference?: Maybe;\n /** The current state of the payout */\n status: AscendPayoutStatus;\n /** The type of the payout */\n type: AscendPayoutType;\n};\n\n/** The status of the payout */\nexport enum AscendPayoutStatus {\n /** The payout has been canceled */\n Canceled = 'CANCELED',\n /** The payout has failed to reach the payable account. */\n Failed = 'FAILED',\n /** The payout is blocked until the invoice release_date when funds can be paid to the payable account. */\n OnHold = 'ON_HOLD',\n /** The payout has been paid to designated PayableAccount */\n Paid = 'PAID',\n /** The payout has been initiated but we have not received confirmation that it has cleared. */\n Paying = 'PAYING',\n /** The payout is waiting for confirmation from servicer indicating it has been funded. */\n Transferred = 'TRANSFERRED',\n /** Initial state, no action has been taken on the payout. */\n Unpaid = 'UNPAID'\n}\n\n/** The type of the payout */\nexport enum AscendPayoutType {\n /** Transfer cumulative supplier funding to org so that they can pay out to supplier - paid to the organization's trust account */\n AgentSupplierFunding = 'AGENT_SUPPLIER_FUNDING',\n /** Policy's commission paid to organization's commission account */\n Commission = 'COMMISSION',\n /** Policy's full premium (premium w/ commission) paid to organization's trust account */\n FullPremium = 'FULL_PREMIUM',\n /** Policy's net premium (full premium - commission) paid out to org's trust account (direct bill) */\n NetPremium = 'NET_PREMIUM',\n /** Payout to agency's commission account for one-off invoice */\n OneOff = 'ONE_OFF',\n /** Payout to org for additional funds they have transferred to us - paid to the organization's commission account */\n Overpayment = 'OVERPAYMENT',\n /** Policy's premium paid out to supplier's honor_supplier_account or supplier_account (agency bill) */\n Supplier = 'SUPPLIER',\n /** Payout to agency's trust account for surplus line taxes */\n SurplusLinesTax = 'SURPLUS_LINES_TAX',\n /** Financed policy's downpayment paid to honor's downpayment account */\n TakeRate = 'TAKE_RATE'\n}\n\n/** A collection of insurance quotes pooled to produce 1 checkout link. */\nexport type AscendProgram = {\n __typename?: 'AscendProgram';\n /** The date the program was archived. The date uses UTC and is represented in the ISO8601 format. */\n archivedAt?: Maybe;\n /** The date the program was checked out. The date uses UTC and is represented in the ISO8601 format. */\n checkedOutAt?: Maybe;\n /** The date the program was created. The date uses UTC and is represented in the ISO8601 format. */\n createdAt: Scalars['Time']['output'];\n /** The unique identifier for the program */\n id: Scalars['String']['output'];\n /** Invoices created for this program, if any. This corresponds to the data returned from the /v1/invoices endpoint */\n invoices: Array;\n /** Financing details for this program, if any. This corresponds to the data returned from the /v1/loans endpoint */\n loans: Array;\n /** A URL to complete the checkout process. */\n programUrl: Scalars['String']['output'];\n /** The payment option chosen by the insured during the checkout process. */\n selectedPaymentOptionType?: Maybe;\n /** The state of the program */\n status: AscendProgramStatus;\n /** The date the program was last updated. The date uses UTC and is represented in the ISO8601 format. */\n updatedAt: Scalars['Time']['output'];\n};\n\nexport enum AscendProgramCreationMode {\n BundleWithExistingQuote = 'BUNDLE_WITH_EXISTING_QUOTE',\n CreateProgram = 'CREATE_PROGRAM',\n UseSpecificProgramId = 'USE_SPECIFIC_PROGRAM_ID'\n}\n\n/** The status of a program */\nexport enum AscendProgramStatus {\n Archived = 'ARCHIVED',\n CheckedOut = 'CHECKED_OUT',\n Created = 'CREATED',\n Elected = 'ELECTED',\n Purchased = 'PURCHASED',\n ReadyForCheckout = 'READY_FOR_CHECKOUT'\n}\n\n/** The type of the Ascend recipient */\nexport enum AscendRecipientType {\n Account = 'ACCOUNT',\n Carrier = 'CARRIER',\n Organization = 'ORGANIZATION',\n Wholesaler = 'WHOLESALER'\n}\n\n/** An insurance wholesaler or MGA. */\nexport type AscendWholesaler = {\n __typename?: 'AscendWholesaler';\n /** A human readable unique identifier. */\n id: Scalars['String']['output'];\n /** The wholesaler display name. */\n title: Scalars['String']['output'];\n};\n\nexport type AvailableCoverageLimit = {\n __typename?: 'AvailableCoverageLimit';\n insuranceType: InsuranceType;\n limits: InsuranceLimits;\n};\n\n/** Represents the construction type of a building. */\nexport enum BuildingConstructionType {\n /** A fire resistive construction type. */\n FireResistive = 'FIRE_RESISTIVE',\n /** A frame construction type. */\n Frame = 'FRAME',\n /** A joisted masonry construction type. */\n JoistedMasonry = 'JOISTED_MASONRY',\n /** A masonry non-combustible construction type. */\n MasonryNonCombustible = 'MASONRY_NON_COMBUSTIBLE',\n /** A modified fire resistive construction type. */\n ModifiedFireResistive = 'MODIFIED_FIRE_RESISTIVE',\n /** A non-combustible construction type. */\n NonCombustible = 'NON_COMBUSTIBLE'\n}\n\n/** Represents the building location ownership type */\nexport enum BuildingOwnershipType {\n /** The building is a home that is owned by the business. */\n Home = 'HOME',\n /** The building is leased by the business. */\n Leased = 'LEASED',\n /** The building is owned by the business. */\n Owned = 'OWNED'\n}\n\n/** Represents the type of roof on a building. */\nexport enum BuildingRoofType {\n /** Asphalt shingles roof type. */\n AsphaltShingles = 'ASPHALT_SHINGLES',\n /** Built-up gravel roof type. */\n BuiltUpGravel = 'BUILT_UP_GRAVEL',\n /** Built-up without gravel roof type. */\n BuiltUpWithoutGravel = 'BUILT_UP_WITHOUT_GRAVEL',\n /** Clay tiles roof type. */\n ClayTiles = 'CLAY_TILES',\n /** Foam roof type. */\n Foam = 'FOAM',\n /** Metal roof type. */\n Metal = 'METAL',\n /** Modified bitumen roof type. */\n ModifiedBitumen = 'MODIFIED_BITUMEN',\n /** Single-ply ballasted roof type. */\n SinglePlyBallasted = 'SINGLE_PLY_BALLASTED',\n /** Single-ply PVC TPO roof type. */\n SinglePlyPvcTpo = 'SINGLE_PLY_PVC_TPO',\n /** Single-ply SPDM rubber roof type. */\n SinglePlySpdmRubber = 'SINGLE_PLY_SPDM_RUBBER',\n /** Wood shingles roof type. */\n WoodShingles = 'WOOD_SHINGLES'\n}\n\n/** Represents the type of burglar alarm installed at a business location. */\nexport enum BurglarAlarmType {\n /** A central burglar alarm type. */\n BurglarCentral = 'BURGLAR_CENTRAL',\n /** A local burglar alarm type. */\n BurglarLocal = 'BURGLAR_LOCAL',\n /** No burglar alarm. */\n BurglarNone = 'BURGLAR_NONE',\n /** A police and fire burglar alarm type. */\n BurglarPoliceFire = 'BURGLAR_POLICE_FIRE'\n}\n\n/** BusinessApplication represents an application */\nexport type BusinessApplication = {\n __typename?: 'BusinessApplication';\n /** The annual revenue of the business. */\n annualRevenue: Scalars['Float']['output'];\n /** The 'doing business as' name of the business. */\n businessDba: Scalars['String']['output'];\n /** The name of the business. */\n businessName: Scalars['String']['output'];\n /** The primary contact information for the business. */\n contact: BusinessContact;\n /** CoverForce applications associated with this application */\n coverforceApplications: Array;\n /** The date the application was originally created */\n createdAt: Scalars['Time']['output'];\n /** Information about the employees at the business */\n employeeInfo: BusinessEmployeeInfo;\n /** The Federal Employer Identification Number of the business. */\n fein: Scalars['String']['output'];\n /** SHA-256 hash of the application data */\n fingerprint: Scalars['String']['output'];\n /** The ID of the business application */\n id: Scalars['ID']['output'];\n /** The desired effective date of the insurance. */\n insuranceEffectiveAt?: Maybe;\n /** The types of insurance the business is applying for. */\n insuranceTypes: Array;\n /** Indicates whether the business is a non-profit organization. */\n isNonProfit: Scalars['Boolean']['output'];\n /** The legal entity type of the business. */\n legalEntityType?: Maybe;\n /** List of locations associated with the business. */\n locations: Array;\n /** The mailing address of the business. */\n mailingAddress: Address;\n /** The North American Industry Classification System code of the business. */\n naicsCode: Scalars['String']['output'];\n /** A description of the nature of the business. */\n natureOfBusiness: Scalars['String']['output'];\n /** Information about the business owners. */\n owners: Array;\n /** Any past policy losses */\n pastPolicyLosses: Array;\n /**\n * Carriers that will quote one or more coverages for this application.\n * Can only be queried after the application has been completed.\n */\n quotableCarriers: Array;\n /** Current quotes for this application, if any are available. */\n quotes: Array;\n /** Carriers selected by the customer to generate quotes for. */\n selectedCarriers: Array;\n /** The selected insurance limits for the application. */\n selectedLimits: InsuranceLimits;\n /** State of the application */\n state: BusinessApplicationState;\n /** Answers to underwriting questions. */\n underwritingAnswers: Array;\n /** Underwriting questions needed on this application. */\n underwritingQuestions: Array;\n /** Underwriting statements and disclosures that the insured needs to acknowledge. */\n underwritingStatements: Array;\n /** The date this application was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The version of this application */\n version: Scalars['Int64']['output'];\n /**\n * The previous versions of this application, subject to the specified limit and offset.\n * The first version in this list will be this version (i.e. identical to the current application), followed by the version before that, and so-forth.\n */\n versionHistory: Array;\n /** The website of the business. */\n website: Scalars['String']['output'];\n /** The year the business was founded. */\n yearOfFounding: Scalars['String']['output'];\n /** The number of years of management experience the business has. */\n yearsOfManagementExperience: Scalars['Int']['output'];\n};\n\n/** BusinessApplication represents an application */\nexport type BusinessApplicationVersionHistoryArgs = {\n limit?: InputMaybe;\n offset?: InputMaybe;\n};\n\nexport enum BusinessApplicationCarrier {\n Amtrust = 'AMTRUST',\n Biberk = 'BIBERK',\n Chubb = 'CHUBB',\n Cna = 'CNA',\n Coalition = 'COALITION',\n Coterie = 'COTERIE',\n Employers = 'EMPLOYERS',\n Gaig = 'GAIG',\n Guard = 'GUARD',\n Hiscox = 'HISCOX',\n Libertymutual = 'LIBERTYMUTUAL',\n Markel = 'MARKEL',\n Nationwide = 'NATIONWIDE',\n Next = 'NEXT',\n Progressive = 'PROGRESSIVE',\n Travelers = 'TRAVELERS'\n}\n\nexport type BusinessApplicationQuote = {\n __typename?: 'BusinessApplicationQuote';\n /** The carrier that has offered this quote */\n carrier: BusinessApplicationCarrier;\n /** The link to the carrier portal to view and modify the quote */\n carrierBridgingLink?: Maybe;\n /** The link to the carrier portal to bind and claim the policy */\n carrierPurchaseLink?: Maybe;\n /** The ID of the quote in the carrier system */\n carrierQuoteId: Scalars['String']['output'];\n /** The ID of the quote */\n id: Scalars['String']['output'];\n /** The effective date of the insurance */\n insuranceEffectiveDate: Scalars['Time']['output'];\n /** The expiration date of the insurance */\n insuranceExpiryDate: Scalars['Time']['output'];\n /** List of payment plans available for this quote if the quote is bindable */\n paymentPlans: Array;\n /** If this policy is binding, the policy ID from the carrier system. */\n policyId?: Maybe;\n /** The type of insurance policy */\n policyType: InsuranceType;\n /** The premium amount for the policy */\n premiumAmount: Scalars['Float']['output'];\n /** The URL of the quote proposal PDF */\n quoteProposalUrl?: Maybe;\n /** The state of the quote */\n state: BusinessApplicationQuoteState;\n /** The tax amount for the policy */\n taxAmount: Scalars['Float']['output'];\n /** The total amount for the policy */\n totalAmount: Scalars['Float']['output'];\n /** The type of quote */\n type: BusinessApplicationQuoteType;\n};\n\n/** Type representing a payment plan for a business application quote */\nexport type BusinessApplicationQuotePaymentPlan = {\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n /** Description of the payment plan */\n description: Scalars['String']['output'];\n /** Initial down payment amount */\n downAmount: Scalars['Float']['output'];\n /** Due date for the down payment */\n downDueAt?: Maybe;\n /** Amount for each installment */\n installmentAmount: Scalars['Float']['output'];\n /** Number of installments */\n installmentCount: Scalars['Int']['output'];\n /** Due date for the installments */\n installmentDueAt?: Maybe;\n /** Fee charged for each installment */\n installmentFee: Scalars['Float']['output'];\n /** Frequency of the installments */\n installmentFrequency: PaymentPlanInstallmentFrequency;\n /** Method of payment for the plan */\n paymentMethod: PaymentPlanPaymentMethodType;\n /** Unique identifier for the payment plan */\n paymentPlanId: Scalars['String']['output'];\n /** Title of the payment plan */\n title: Scalars['String']['output'];\n /** Total amount to be paid */\n totalAmount: Scalars['Float']['output'];\n /** Total fees associated with the payment plan */\n totalFees: Scalars['Float']['output'];\n};\n\n/** Enum representing the possible states of a business application quote */\nexport enum BusinessApplicationQuoteState {\n /** The quote is in the process of being bound */\n Binding = 'BINDING',\n /** The quote has been created */\n Created = 'CREATED'\n}\n\n/** Enum representing the different types of quotes for a business application */\nexport enum BusinessApplicationQuoteType {\n /** Quote that can be bound online */\n BindOnline = 'BIND_ONLINE',\n /** Quote that serves as a bridge between different stages */\n Bridge = 'BRIDGE',\n /** Quote that has been declined */\n Decline = 'DECLINE',\n /** Quote that has failed for some reason */\n Failed = 'FAILED',\n /** Quote that needs to be referred for further review */\n Refer = 'REFER'\n}\n\n/** The state of business application */\nexport enum BusinessApplicationState {\n /** The application has been canceled and is no longer active */\n Canceled = 'CANCELED',\n /** The application has been created but no further action has been taken */\n Created = 'CREATED',\n /** A quote has been generated for the application */\n Quoted = 'QUOTED',\n /** The application is in the process of being quoted */\n Quoting = 'QUOTING',\n /** The application has been submitted for review or processing */\n Submitted = 'SUBMITTED'\n}\n\n/** Describes the reason why an application was updated */\nexport enum BusinessApplicationUpdateReasonCode {\n /** Placeholder reason codes until the use case becomes more clear */\n Unknown = 'UNKNOWN'\n}\n\n/** Describes the type of update that occured to a application */\nexport enum BusinessApplicationUpdateType {\n /** The application was canceled and is no longer active */\n CancelApplication = 'CANCEL_APPLICATION',\n /** The application was created, either directely or by completing an offer */\n CreateApplication = 'CREATE_APPLICATION',\n /** The application was completed and submitted, and is now ready to be reviewed by the carrier */\n SubmitApplication = 'SUBMIT_APPLICATION',\n /** The application was updated. Requires manual inspection of the application to determine the actual update */\n UpdateApplication = 'UPDATE_APPLICATION'\n}\n\n/** Describes a particular version of an application */\nexport type BusinessApplicationVersion = {\n __typename?: 'BusinessApplicationVersion';\n /** The full application object that includes all of the updates made in this version and all previous versions */\n businessApplication: BusinessApplication;\n /** The date this version was created */\n createdAt: Scalars['Time']['output'];\n /** Produces a human-readable string that can be used to diff against another application version. */\n diffableJson: Scalars['String']['output'];\n /** The version number of the previous application version, if there is any. If this field is null, then this version is the only version */\n previousVersion?: Maybe;\n /** The ID of the entity that initiated the update, depending on the type */\n updateInitiatorId: Scalars['String']['output'];\n /** The type of the entity that initiated the update */\n updateInitiatorType: UpdateInitiatorType;\n /** Indicates whether this update is 'private' in the sense that it should not be displayed to the policyholder */\n updatePrivate: Scalars['Boolean']['output'];\n /** A human-readable description of the reason why this update was made */\n updateReason?: Maybe;\n /** A programmatic representation of the reason why this update was made */\n updateReasonCode?: Maybe;\n /** The types of updates made between this version and the previous version */\n updateTypes: Array;\n /** The version number of this application version */\n version: Scalars['Int64']['output'];\n};\n\n/** A business category */\nexport type BusinessCategory = {\n __typename?: 'BusinessCategory';\n /** The category */\n category: Scalars['String']['output'];\n /** The full path of the category, starting with the root category and including the category itself */\n categoryPath: Array;\n /** The ID of the category */\n id: Scalars['ID']['output'];\n /** The legacy product vertical, if applicable */\n legacyProductVertical?: Maybe;\n /** The parent category */\n parent?: Maybe;\n /** The risk score of the category */\n riskScore: Scalars['Float']['output'];\n};\n\n/** Represents a contact person for the business. */\nexport type BusinessContact = {\n __typename?: 'BusinessContact';\n /** The email address of the contact person. */\n email: Scalars['String']['output'];\n /** The name of the contact person. */\n fullName: Scalars['String']['output'];\n /** The phone number of the contact person. */\n phone: Scalars['String']['output'];\n};\n\n/** Represents a contact person for the business. */\nexport type BusinessContactInput = {\n /** The email address of the contact person. */\n email?: InputMaybe;\n /** The name of the contact person. */\n fullName?: InputMaybe;\n /** The phone number of the contact person. */\n phone?: InputMaybe;\n};\n\n/** Represents information about the employees at a business location. */\nexport type BusinessEmployeeInfo = {\n __typename?: 'BusinessEmployeeInfo';\n /** The job code ID associated with the employees. */\n jobCode: Scalars['String']['output'];\n /** The number of full-time employees at the business location. */\n numFullTimeEmployees: Scalars['Int']['output'];\n /** The number of part-time employees at the business location. */\n numPartTimeEmployees: Scalars['Int']['output'];\n /** The total payroll amount for all employees at the business location. */\n totalEmployeePayroll: Scalars['Float']['output'];\n};\n\n/** Represents information about the employees at a business location. */\nexport type BusinessEmployeeInfoInput = {\n /** The job code ID associated with the employees. */\n jobCode?: InputMaybe;\n /** The number of full-time employees at the business location. */\n numFullTimeEmployees?: InputMaybe;\n /** The number of part-time employees at the business location. */\n numPartTimeEmployees?: InputMaybe;\n /** The total payroll amount for all employees at the business location. */\n totalEmployeePayroll?: InputMaybe;\n};\n\n/** Input type for business insurance personalization details */\nexport type BusinessInsurancePersonalizationInput = {\n /** Description for other insurance types not listed */\n insuranceOtherDesc?: InputMaybe;\n /** List of insurance types required by the business */\n insuranceTypes: Array;\n /** Description for other operation types not listed */\n operationOtherDesc?: InputMaybe;\n /** List of operation types for the business */\n operationTypes: Array;\n /** Revenue from manufacturing operations */\n revenueManufacturing?: InputMaybe;\n /** Revenue from other operations */\n revenueOther?: InputMaybe;\n /** Revenue from rental operations */\n revenueRental?: InputMaybe;\n /** Percentage of rental revenue that is guided */\n revenueRentalPercentGuided?: InputMaybe;\n /** Revenue from retail operations */\n revenueRetail?: InputMaybe;\n /** Revenue from service or repair operations */\n revenueServiceOrRepair?: InputMaybe;\n /** Revenue from wholesale operations */\n revenueWholesale?: InputMaybe;\n /** Total payroll for the business */\n totalPayroll?: InputMaybe;\n};\n\n/** Represents the legal entity type of a business. */\nexport enum BusinessLegalEntityType {\n /** An association. */\n Association = 'ASSOCIATION',\n /** A corporation. */\n Corporation = 'CORPORATION',\n /** An estate. */\n Estate = 'ESTATE',\n /** An executor. */\n Executor = 'EXECUTOR',\n /** A general partnership. */\n GeneralPartnership = 'GENERAL_PARTNERSHIP',\n /** A government entity. */\n GovernmentEntity = 'GOVERNMENT_ENTITY',\n /** An individual. */\n Individual = 'INDIVIDUAL',\n /** Joint employers. */\n JointEmployers = 'JOINT_EMPLOYERS',\n /** A joint venture. */\n JointVenture = 'JOINT_VENTURE',\n /** A labor union. */\n LaborUnion = 'LABOR_UNION',\n /** A limited liability company. */\n LimitedLiabilityCompany = 'LIMITED_LIABILITY_COMPANY',\n /** A limited liability partnership. */\n LimitedLiabilityPartnership = 'LIMITED_LIABILITY_PARTNERSHIP',\n /** A limited partnership. */\n LimitedPartnership = 'LIMITED_PARTNERSHIP',\n /** Multiple statuses. */\n MultipleStatus = 'MULTIPLE_STATUS',\n /** A non-profit association. */\n NonProfitAssociation = 'NON_PROFIT_ASSOCIATION',\n /** A non-profit corporation. */\n NonProfitCorporation = 'NON_PROFIT_CORPORATION',\n /** An S corporation. */\n SCorporation = 'S_CORPORATION',\n /** Tenants in common. */\n TenantsInCommon = 'TENANTS_IN_COMMON',\n /** A trust. */\n Trust = 'TRUST'\n}\n\n/** Represents a business location. */\nexport type BusinessLocation = {\n __typename?: 'BusinessLocation';\n /** The address of the business location. */\n address: Address;\n /** Information about the building of the business location. */\n buildingInfo: BusinessLocationBuildingInfo;\n /** Information about the employees at the business location. */\n employeeInfo: BusinessEmployeeInfo;\n /** The unique identifier of the business location. */\n id: Scalars['ID']['output'];\n /** Indicates whether this is the primary business location. */\n isPrimary: Scalars['Boolean']['output'];\n};\n\n/** Represents information about the building of a business location. */\nexport type BusinessLocationBuildingInfo = {\n __typename?: 'BusinessLocationBuildingInfo';\n /** The annual sales of the business location. */\n annualSales: Scalars['Float']['output'];\n /** The area occupied by the business. */\n areaOccupiedByBusiness: Scalars['Float']['output'];\n /** The building coverage amount. */\n buildingCoverage: Scalars['Float']['output'];\n /** The type of burglar alarm installed at the business location. */\n burglarAlarmType?: Maybe;\n /** The construction type of the building. */\n constructionType?: Maybe;\n /** The year the electrical wiring was last updated. */\n electricalWiringUpdateYear: Scalars['String']['output'];\n /** The year the heating system was last updated. */\n heatingUpdateYear: Scalars['String']['output'];\n /** The type of ownership of this business location. */\n ownershipType?: Maybe;\n /** The personal property coverage amount. */\n personalPropertyCoverage: Scalars['Float']['output'];\n /** The year the plumbing system was last updated. */\n plumbingUpdateYear: Scalars['String']['output'];\n /** The type of roof on the building. */\n roofType?: Maybe;\n /** The year the roof was last updated. */\n roofUpdateYear: Scalars['String']['output'];\n /** The percentage of the building that is sprinklered. */\n sprinkleredPercentage: Scalars['Float']['output'];\n /** The total area of the building. */\n totalArea: Scalars['Float']['output'];\n /** The total number of stories in the building. */\n totalStories: Scalars['Int']['output'];\n /** The year the building was built. */\n yearBuilt: Scalars['String']['output'];\n};\n\n/** Represents information about the building of a business location. */\nexport type BusinessLocationBuildingInfoInput = {\n /** The annual sales of the business location. */\n annualSales?: InputMaybe;\n /** The area occupied by the business. */\n areaOccupiedByBusiness?: InputMaybe;\n /** The building coverage amount. */\n buildingCoverage?: InputMaybe;\n /** The type of burglar alarm installed at the business location. */\n burglarAlarmType?: InputMaybe;\n /** The construction type of the building. */\n constructionType?: InputMaybe;\n /** The year the electrical wiring was last updated. */\n electricalWiringUpdateYear?: InputMaybe;\n /** The year the heating system was last updated. */\n heatingUpdateYear?: InputMaybe;\n /** Indicates whether the business owns the building. */\n ownershipType?: InputMaybe;\n /** The personal property coverage amount. */\n personalPropertyCoverage?: InputMaybe;\n /** The year the plumbing system was last updated. */\n plumbingUpdateYear?: InputMaybe;\n /** The type of roof on the building. */\n roofType?: InputMaybe;\n /** The year the roof was last updated. */\n roofUpdateYear?: InputMaybe;\n /** The percentage of the building that is sprinklered. */\n sprinkleredPercentage?: InputMaybe;\n /** The total area of the building. */\n totalArea?: InputMaybe;\n /** The total number of stories in the building. */\n totalStories?: InputMaybe;\n /** The year the building was built. */\n yearBuilt?: InputMaybe;\n};\n\nexport type BusinessLocationInput = {\n address: AddressInput;\n buildingInfo: BusinessLocationBuildingInfoInput;\n employeeInfo: BusinessEmployeeInfoInput;\n id: Scalars['String']['input'];\n isPrimary: Scalars['Boolean']['input'];\n};\n\n/** Represents an owner of the business. */\nexport type BusinessOwner = {\n __typename?: 'BusinessOwner';\n /** The annual payroll of the business owner. */\n annualPayroll: Scalars['Float']['output'];\n /** The date of birth of the business owner. */\n dateOfBirth?: Maybe;\n /** The full name of the business owner. */\n fullName: Scalars['String']['output'];\n /** The job code associated with the business owner. */\n jobCode?: Maybe;\n /** The location ID associated with the business owner. */\n locationId: Scalars['String']['output'];\n};\n\n/** Represents an owner of the business. */\nexport type BusinessOwnerInput = {\n /** The annual payroll of the business owner. */\n annualPayroll: Scalars['Float']['input'];\n /** The date of birth of the business owner. */\n dateOfBirth: Scalars['String']['input'];\n /** The full name of the business owner. */\n fullName: Scalars['String']['input'];\n /** The job code of the business owner. */\n jobCode: Scalars['String']['input'];\n};\n\n/** Business Policy represents the business or commercial insurance policy */\nexport type BusinessPolicy = {\n __typename?: 'BusinessPolicy';\n /** The broker providing this policy, if any */\n broker?: Maybe;\n /** If the policy was canceled or nonrenewed, information about the latest instance of cancellation or nonrenewal */\n cancellation?: Maybe;\n /** The carrier providing this policy */\n carrier: InsuranceCarrier;\n /** The date the policy object was originally created */\n createdAt: Scalars['Time']['output'];\n /** Detailed information extracted from the policy document, if available */\n details?: Maybe;\n /** The timestamp when this policy expires */\n expiresAt?: Maybe;\n /** The external/carrier ID of the policy */\n externalId: Scalars['ID']['output'];\n /** All attached files for this application */\n files: Array;\n /** The internal ID of the policy */\n id: Scalars['ID']['output'];\n /** The timestamp when this policy is inforce */\n inforceAt?: Maybe;\n /** The timestamp when this policy was issued */\n issuedAt?: Maybe;\n /** The market this policy was written in */\n market: InsuranceMarket;\n /** Merchant that is associated with the policy */\n merchant?: Maybe;\n /** The number or external identifier associated with this policy within the carrier system */\n policyNumber: Scalars['String']['output'];\n /** The pricing information for this policy */\n pricing: BusinessPolicyPricing;\n /** The number or external identifier associated with this quote within the carrier system */\n quoteNumber: Scalars['String']['output'];\n /** If the policy was reinstated, information about the latest instance of when it was reinstated */\n reinstatement?: Maybe;\n /** If this policy was renewed from another policy, information about the renewal and its previous versions */\n renewal?: Maybe;\n /** The source of the policy, and associated details */\n source: BusinessPolicySource;\n /** The current state of the policy */\n state: PolicyState;\n /** The type of insurance this policy represents */\n type: InsuranceType;\n /** The date this policy object was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The version of this policy */\n version: Scalars['Int64']['output'];\n /** The previous versions of this policy. The first version in this list will be this version (i.e. identical to the current policy), followed by the version before that, and so-forth. */\n versionHistory?: Maybe>;\n};\n\n/** Details about agency billing for a business policy */\nexport type BusinessPolicyAgencyBilling = {\n __typename?: 'BusinessPolicyAgencyBilling';\n /** Details about Ascend billable, if applicable */\n ascendBillable?: Maybe;\n /** Details about Ascend program, if applicable */\n ascendProgram?: Maybe;\n /** Details about Stripe invoice, if applicable */\n stripeInvoice?: Maybe;\n /** The type of agency billing used */\n type: BusinessPolicyAgencyBillingType;\n};\n\n/** The type of agency billing used for the policy */\nexport enum BusinessPolicyAgencyBillingType {\n /** Billing is handled through Ascend */\n Ascend = 'ASCEND',\n /** Billing is handled manually */\n Manual = 'MANUAL',\n /** Billing is handled through Stripe invoices */\n StripeInvoice = 'STRIPE_INVOICE'\n}\n\n/** The billing type of policy, indicating how the policy is billed */\nexport enum BusinessPolicyBillingType {\n /** Policy is billed by Oyster and then paid to the carrier */\n Agency = 'AGENCY',\n /** Policy is billed directly by the carrier */\n Direct = 'DIRECT',\n /** Billing type is unknown or not specified */\n Unknown = 'UNKNOWN'\n}\n\n/** A blanket additional insured for the policy */\nexport type BusinessPolicyBlanketAdditionalInsured = {\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n /** The description of the blanket additional insured */\n description: Scalars['String']['output'];\n /** The form numbers that reference the blanket additional insured */\n formNumbers: Array;\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the blanket additional insured is included */\n reasoning: Scalars['String']['output'];\n /** The type of the blanket additional insured */\n type: Scalars['String']['output'];\n};\n\n/** Detailed information about a policy cancellation */\nexport type BusinessPolicyCancellation = {\n __typename?: 'BusinessPolicyCancellation';\n /** The date and time when the cancellation was initiated */\n canceledAt: Scalars['Time']['output'];\n /** The entity that initiated the cancellation */\n canceledBy: BusinessPolicyCancellationSource;\n /** The date and time when the cancellation becomes effective */\n effectiveAt: Scalars['Time']['output'];\n /** The reason for the cancellation */\n reason: BusinessPolicyCancellationReason;\n /** A detailed description of the cancellation reason */\n reasonDescription: Scalars['String']['output'];\n /** The commission that Oyster will return to the customer */\n returnCommission: Scalars['Float']['output'];\n /** The premium that Oyster will return to the carrier or broker */\n returnPremium: Scalars['Float']['output'];\n /** The type of cancellation */\n type: BusinessPolicyCancellationType;\n};\n\n/** The reason for policy cancellation */\nexport enum BusinessPolicyCancellationReason {\n /** Carrier closed the insurance class */\n CarrierClosedClass = 'CARRIER_CLOSED_CLASS',\n /** Cancellation due to loss history */\n CarrierLossHistory = 'CARRIER_LOSS_HISTORY',\n /** Carrier cancelled due to non-payment */\n CarrierNonpayment = 'CARRIER_NONPAYMENT',\n /** Carrier's underwriting decision */\n CarrierUnderwritingReason = 'CARRIER_UNDERWRITING_REASON',\n /** Insured closed their business */\n InsuredClosedBusiness = 'INSURED_CLOSED_BUSINESS',\n /** Insured found better coverage elsewhere */\n InsuredFoundBetterCoverage = 'INSURED_FOUND_BETTER_COVERAGE',\n /** Insured found a better price elsewhere */\n InsuredFoundBetterPrice = 'INSURED_FOUND_BETTER_PRICE',\n /** Insured failed to make payments */\n InsuredNonpayment = 'INSURED_NONPAYMENT',\n /** Insured no longer has exposure requiring coverage */\n InsuredNoExposure = 'INSURED_NO_EXPOSURE',\n /** Other unspecified reason */\n Other = 'OTHER',\n /** Oyster found better coverage for the insured */\n OysterFoundBetterCoverage = 'OYSTER_FOUND_BETTER_COVERAGE',\n /** Oyster found a better price for the insured */\n OysterFoundBetterPrice = 'OYSTER_FOUND_BETTER_PRICE'\n}\n\n/** The source of the policy cancellation */\nexport enum BusinessPolicyCancellationSource {\n /** Cancellation initiated by the carrier */\n Carrier = 'CARRIER',\n /** Cancellation initiated by the insured */\n Insured = 'INSURED',\n /** Cancellation initiated by Oyster */\n Oyster = 'OYSTER'\n}\n\n/** The type of policy cancellation */\nexport enum BusinessPolicyCancellationType {\n /** Standard cancellation of the policy */\n Cancellation = 'CANCELLATION',\n /** Non-renewal of the policy */\n Nonrenewal = 'NONRENEWAL',\n /** Expiration of the quote without conversion to a policy */\n QuoteExpired = 'QUOTE_EXPIRED'\n}\n\n/** Description of a policy coverage or exclusion */\nexport type BusinessPolicyCoverageOrExclusionDescription = {\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n /** The description of the coverage or exclusion */\n description: Scalars['String']['output'];\n /** Supporting quotes from the policy document */\n policyQuotes: Array;\n /** The title of the coverage or exclusion */\n title: Scalars['String']['output'];\n};\n\n/** An endorsement for the policy */\nexport type BusinessPolicyEndorsement = {\n __typename?: 'BusinessPolicyEndorsement';\n /** The form numbers that reference the endorsement */\n formNumbers: Array;\n /** Whether the endorsement is included */\n included: Scalars['Boolean']['output'];\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the endorsement is included */\n reasoning: Scalars['String']['output'];\n};\n\n/** The endorsements for the policy */\nexport type BusinessPolicyEndorsements = {\n __typename?: 'BusinessPolicyEndorsements';\n /** Whether the primary and non-contributory coverage endorsement is included */\n primaryAndNonContributoryCoverage: BusinessPolicyEndorsement;\n /** Whether the waiver of subrogation endorsement is included */\n waiverOfSubrogation: BusinessPolicyEndorsement;\n};\n\n/** Entity involved in the policy */\nexport type BusinessPolicyEntity = {\n __typename?: 'BusinessPolicyEntity';\n /** The address of the entity */\n address: Address;\n /** The name of the entity */\n name: Scalars['String']['output'];\n};\n\n/** Extra limits for the policy, not covered by the standard limits */\nexport type BusinessPolicyExtraInsuranceLimit = {\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n /** The limit for the extra coverage */\n limit: Scalars['Float']['output'];\n /** The name of the limit */\n name: Scalars['String']['output'];\n};\n\n/** Policy details extracted from the policy document */\nexport type BusinessPolicyExtractedDetails = {\n __typename?: 'BusinessPolicyExtractedDetails';\n /** The blanket additional insureds for the policy */\n blanketAdditionalInsureds: Array;\n /** The carrier on the policy */\n carrier?: Maybe;\n /** The carrier's NAIC code */\n carrierNaic?: Maybe;\n /** The coverage descriptions for the policy */\n coverageDescriptions: Array;\n /** The deductible for the policy */\n deductible?: Maybe;\n /** The endorsements for the policy */\n endorsements: BusinessPolicyEndorsements;\n /** The exclusion descriptions for the policy */\n exclusionDescriptions: Array;\n /** Extra limits for the policy, not covered by the standard limits */\n extraLimits: Array;\n /** The insured on the policy */\n insured?: Maybe;\n /** The limits for the policy */\n limits: BusinessPolicyInsuranceLimits;\n /** The insured locations for the policy */\n locations: Array;\n /** The named additional insureds for the policy */\n namedAdditionalInsureds: Array;\n /** The policy number */\n policyNumber?: Maybe;\n /** A summary of the policy details */\n summary?: Maybe;\n};\n\nexport type BusinessPolicyInput = {\n agencyBillingType?: InputMaybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['input'];\n ascendExistingQuoteRefId?: InputMaybe;\n ascendProgramCreationMode?: InputMaybe;\n ascendProgramId?: InputMaybe;\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['input'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['input'];\n brokerId?: InputMaybe;\n carrierId: Scalars['String']['input'];\n estimatedCommission: Scalars['Float']['input'];\n expiresAt?: InputMaybe;\n id: Scalars['String']['input'];\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n market: InsuranceMarket;\n minimumEarnedPremium: Scalars['Float']['input'];\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['input'];\n /** Payment interval of the policy. If billed via ASCEND, leave this blank */\n paymentIntervalType?: InputMaybe;\n paymentOccurrencesPerInterval: Scalars['Int']['input'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['input'];\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium: Scalars['Float']['input'];\n quoteNumber: Scalars['String']['input'];\n sourceAgentId: Scalars['String']['input'];\n sourceLeadId?: InputMaybe;\n sourceNotes: Scalars['String']['input'];\n sourceProcessType: BusinessPolicySourceProcessType;\n sourceSubType?: InputMaybe;\n sourceType: BusinessPolicySourceType;\n state: PolicyState;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['input'];\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total: Scalars['Float']['input'];\n type: InsuranceType;\n};\n\n/** Limits for the policy. The policy has the coverage and associated limit if the value is non null or zero. */\nexport type BusinessPolicyInsuranceLimits = {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: Maybe;\n cyberRetentionLimit?: Maybe;\n glAggregateLimit?: Maybe;\n glMedicalPerOccurrenceLimit?: Maybe;\n glMedicalPerPersonLimit?: Maybe;\n glPerOccurrenceLimit?: Maybe;\n glPersonalAndAdvertisingInjuryLimit?: Maybe;\n glProductsAndCompletedOperationsLimit?: Maybe;\n glRentedPremisesDamageLimit?: Maybe;\n propertyBuildingLimit?: Maybe;\n propertyContentsLimit?: Maybe;\n umbrellaOrExcessAggregateLimit?: Maybe;\n umbrellaOrExcessPerOccurrenceLimit?: Maybe;\n wcPerAccidentLimit?: Maybe;\n wcPerDiseaseEmployeeLimit?: Maybe;\n wcPerDiseasePolicyLimit?: Maybe;\n};\n\nexport type BusinessPolicyLocation = {\n __typename?: 'BusinessPolicyLocation';\n /** The address of the location */\n address: Address;\n /** The limits for the location */\n limits: BusinessPolicyInsuranceLimits;\n};\n\n/** A named additional insured for the policy */\nexport type BusinessPolicyNamedAdditionalInsured = {\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n /** The address of the named additional insured */\n address: Address;\n /** The form numbers that reference the named additional insured */\n formNumbers: Array;\n /** The type of the named additional insured */\n name: Scalars['String']['output'];\n /** Supporting quotes from the policy document */\n quotes: Array;\n /** The reasoning for why the named additional insured is included */\n reasoning: Scalars['String']['output'];\n};\n\n/** Represents all pricing information for a policy */\nexport type BusinessPolicyPricing = {\n __typename?: 'BusinessPolicyPricing';\n /** The adjusted commission that Oyster will receive for this policy, which is the estimated commission minus any returns to the carrier or broker. If the policy is not canceled, this will be nil. */\n adjustedCommission?: Maybe;\n /** The adjusted premium that Oyster will receive for this policy, which is the premium minus any returns to the customer. If the policy is not canceled, this will be nil. */\n adjustedPremium?: Maybe;\n /** Add a resolver to compute adjusted commission + our fees. If the policy is not canceled, this will be the same as estimatedRevenue */\n adjustedRevenue: Scalars['Float']['output'];\n /** If billing type is AGENCY, this specifies information about the agency bill */\n agencyBilling?: Maybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['output'];\n /** The billing type */\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['output'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['output'];\n /** Estimate of the commission Oyster receive for this policy */\n estimatedCommission: Scalars['Float']['output'];\n /** Add a resolver to compute estimated commission + our fees */\n estimatedRevenue: Scalars['Float']['output'];\n /** The interval type of payment plan. Leave null if currently unknown */\n intervalType?: Maybe;\n /** The minimum premium that must be paid for policy, regardless of cancellation, if any */\n minimumEarnedPremium: Scalars['Float']['output'];\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['output'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['output'];\n /** The premium for this policy */\n premium: Scalars['Float']['output'];\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['output'];\n /** The total price paid for this policy */\n total: Scalars['Float']['output'];\n};\n\nexport type BusinessPolicyQueryInput = {\n id: Scalars['ID']['input'];\n type: BusinessPolicyQueryInputType;\n};\n\nexport enum BusinessPolicyQueryInputType {\n MerchantId = 'MERCHANT_ID',\n PolicyId = 'POLICY_ID'\n}\n\n/** Information about a policy reinstatement */\nexport type BusinessPolicyReinstatement = {\n __typename?: 'BusinessPolicyReinstatement';\n /** The date and time when the reinstatement becomes effective */\n effectiveAt: Scalars['Time']['output'];\n /** A description of the reason for reinstatement */\n reasonDescription: Scalars['String']['output'];\n /** The date and time when the reinstatement was processed */\n reinstatedAt: Scalars['Time']['output'];\n};\n\n/** Information about policy renewals */\nexport type BusinessPolicyRenewal = {\n __typename?: 'BusinessPolicyRenewal';\n /** List of policies that renew this policy */\n nextPolicies: Array;\n /** List of previous policies that this policy renews */\n previousPolicies: Array;\n};\n\n/** Detailed information about the source of a business policy */\nexport type BusinessPolicySource = {\n __typename?: 'BusinessPolicySource';\n /** The Oyster agent associated with this policy, if any */\n agent?: Maybe;\n /** The ID of the lead, if applicable */\n leadId?: Maybe;\n /** Additional notes about the policy source */\n notes: Scalars['String']['output'];\n /** The type of process used to handle the policy */\n processType: BusinessPolicySourceProcessType;\n /** The subtype of the policy source, if applicable */\n subType?: Maybe;\n /** The main type of the policy source */\n type: BusinessPolicySourceType;\n};\n\n/** Describes the process type for handling the business policy */\nexport enum BusinessPolicySourceProcessType {\n /** Process led by an agent */\n AgentLed = 'AGENT_LED',\n /** Self-service process */\n SelfServe = 'SELF_SERVE'\n}\n\n/** Specifies the subtype of the business policy source */\nexport enum BusinessPolicySourceSubType {\n /** Referral from an accounting partner */\n AccountingPartner = 'ACCOUNTING_PARTNER',\n /** Referral from an agency */\n Agency = 'AGENCY',\n /** Lead from Bold Penguin */\n BoldPenguin = 'BOLD_PENGUIN',\n /** Referral from a customer */\n Customer = 'CUSTOMER',\n /** Other type of referral */\n OtherReferral = 'OTHER_REFERRAL',\n /** Lead from Tivly */\n Tivly = 'TIVLY'\n}\n\n/** Describes the source where the business deal comes from */\nexport enum BusinessPolicySourceType {\n /** Cross-sell through Go-To-Market strategy */\n GtmCrossSell = 'GTM_CROSS_SELL',\n /** Inbound lead or inquiry */\n Inbound = 'INBOUND',\n /** Other unspecified source */\n Other = 'OTHER',\n /** Paid lead acquisition */\n PaidLead = 'PAID_LEAD',\n /** Referral from an existing connection */\n Referral = 'REFERRAL'\n}\n\n/** Describes the reason why an application was updated */\nexport enum BusinessPolicyUpdateReasonCode {\n /** Placeholder reason codes until the use case becomes more clear */\n Unknown = 'UNKNOWN'\n}\n\n/** Describes the type of update that occured to a policy */\nexport enum BusinessPolicyUpdateType {\n /** The policy was canceled and is no longer active */\n CancelPolicy = 'CANCEL_POLICY',\n /** The policy was created */\n CreatePolicy = 'CREATE_POLICY',\n /** The policy expired and its no longer active */\n ExpirePolicy = 'EXPIRE_POLICY',\n /** The policy was reinstated after previously being canceled */\n ReinstatePolicy = 'REINSTATE_POLICY',\n /** The policy was created as a renewal */\n RenewPolicy = 'RENEW_POLICY',\n /** The policy was updated with new details extracted from the policy document */\n UpdateExtractedDetails = 'UPDATE_EXTRACTED_DETAILS',\n /** The policy was updated. Requires manual inspection of the policy to determine the actual update */\n UpdatePolicy = 'UPDATE_POLICY'\n}\n\n/** Describes a particular version of a policy */\nexport type BusinessPolicyVersion = {\n __typename?: 'BusinessPolicyVersion';\n /** The full policy object that includes all of the updates made in this version and all previous versions */\n businessPolicy: BusinessPolicy;\n /** The date this version was created */\n createdAt: Scalars['Time']['output'];\n /** Produces a human-readable string that can be used to diff against another policy version. */\n diffableJson: Scalars['String']['output'];\n /** The version number of the previous policy version, if there is any. If this field is null, then this version is the only version */\n previousVersion?: Maybe;\n /** The ID of the entity that initiated the update, depending on the type */\n updateInitiatorId: Scalars['String']['output'];\n /** The type of the entity that initiated the update */\n updateInitiatorType: UpdateInitiatorType;\n /** Indicates whether this update is 'private' in the sense that it should not be displayed to the policyholder */\n updatePrivate: Scalars['Boolean']['output'];\n /** A human-readable description of the reason why this update was made */\n updateReason?: Maybe;\n /** A programmatic representation of the reason why this update was made */\n updateReasonCode?: Maybe;\n /** The types of updates made between this version and the previous version */\n updateTypes: Array;\n /** The version number of this policy version */\n version: Scalars['Int64']['output'];\n};\n\nexport type CancelBusinessPolicyInput = {\n canceledBy: BusinessPolicyCancellationSource;\n effectiveAt: Scalars['Time']['input'];\n reason: BusinessPolicyCancellationReason;\n reasonDescription: Scalars['String']['input'];\n returnCommission: Scalars['Float']['input'];\n returnPremium: Scalars['Float']['input'];\n type: BusinessPolicyCancellationType;\n};\n\n/** Details for a request to cancel a policy */\nexport type CancelPolicyRequest = {\n __typename?: 'CancelPolicyRequest';\n /** ID of the policy to be cancelled */\n policyId: Scalars['ID']['output'];\n /** Reason for cancelling the policy */\n reason: Scalars['String']['output'];\n};\n\n/** Input type for canceling a policy request */\nexport type CancelPolicyRequestInput = {\n /** ID of the policy to be cancelled */\n policyId: Scalars['ID']['input'];\n /** Reason for cancelling the policy */\n reason: Scalars['String']['input'];\n};\n\n/** CertificateCoverage represents a specific coverage in the insurance certificate. */\nexport type CertificateCoverage = {\n __typename?: 'CertificateCoverage';\n /** The date when the coverage becomes effective */\n effectiveDate: Scalars['Time']['output'];\n /** The date when the coverage expires */\n expirationDate: Scalars['Time']['output'];\n /** Indicates if there is a waiver of subrogation */\n hasWaiverOfSubrogation: Scalars['Boolean']['output'];\n /** Indicates if the certificate holder is an additional insured */\n holderIsAdditionalInsured: Scalars['Boolean']['output'];\n /** The insurer providing this coverage */\n insurer: CoverageInsurer;\n /** A list of limits for this coverage */\n limits: Array;\n /** The policy number for this coverage */\n policyNumber: Scalars['String']['output'];\n /** The type of insurance coverage */\n type: InsuranceType;\n};\n\n/** CertificateDetails contains the detailed information of an insurance certificate. */\nexport type CertificateDetails = {\n __typename?: 'CertificateDetails';\n /** The entity that holds the certificate */\n certificateHolder: CertificateEntity;\n /** The unique identifier for the certificate */\n certificateNumber: Scalars['String']['output'];\n /** A list of coverages included in the certificate */\n coverages: Array;\n /** A description of the operations covered by the certificate */\n descriptionOfOperations: Scalars['String']['output'];\n /** The entity that is insured */\n insured: CertificateEntity;\n /** The entity that produced the certificate */\n producer: CertificateEntity;\n};\n\n/** CertificateEntity represents an entity involved in the insurance certificate. */\nexport type CertificateEntity = {\n __typename?: 'CertificateEntity';\n /** The address of the entity */\n address: Scalars['String']['output'];\n /** The name of the entity */\n name: Scalars['String']['output'];\n};\n\n/** CertificateLimit represents a specific limit in the insurance coverage. */\nexport type CertificateLimit = {\n __typename?: 'CertificateLimit';\n /** The monetary value of the limit */\n limit: Scalars['Float']['output'];\n /** The name of the limit */\n name: Scalars['String']['output'];\n};\n\n/** Represents an action required for compliance */\nexport type ComplianceAction = {\n __typename?: 'ComplianceAction';\n /** The person assigned to complete this action */\n assignee?: Maybe;\n /** The person who completed this action, if applicable */\n completedBy?: Maybe;\n /** The date when this action was completed, if applicable */\n completionDate?: Maybe;\n /** List of requirements for completing this action */\n completionRequirements: Array;\n /** List of compliance items associated with this action */\n complianceItems: Array;\n /** Detailed description of the compliance action */\n description: Scalars['String']['output'];\n /** The date by which this action should be completed */\n dueDate: Scalars['Time']['output'];\n /** Unique identifier for the compliance action */\n id: Scalars['ID']['output'];\n /** Current status of the compliance action */\n status: ComplianceActionStatus;\n /** Title of the compliance action */\n title: Scalars['String']['output'];\n};\n\n/** Represents a person assigned to or who completed a compliance action */\nexport type ComplianceActionAssignee = {\n __typename?: 'ComplianceActionAssignee';\n /** Email address of the assignee */\n email: Scalars['String']['output'];\n /** Unique identifier for the assignee */\n id: Scalars['ID']['output'];\n /** Full name of the assignee */\n name: Scalars['String']['output'];\n};\n\n/** Represents a requirement for completing a compliance action */\nexport type ComplianceActionCompletionRequirement = {\n __typename?: 'ComplianceActionCompletionRequirement';\n /** Detailed description of the completion requirement */\n description: Scalars['String']['output'];\n /** Unique identifier for the completion requirement */\n id: Scalars['ID']['output'];\n /** Title of the completion requirement */\n title: Scalars['String']['output'];\n};\n\n/** Represents the status of a compliance action */\nexport enum ComplianceActionStatus {\n /** The action has been completed */\n Closed = 'CLOSED',\n /** The action is still pending completion */\n Open = 'OPEN'\n}\n\n/** Represents a group of compliance items */\nexport type ComplianceGroup = {\n __typename?: 'ComplianceGroup';\n /** Detailed description of the compliance group */\n description: Scalars['String']['output'];\n /** List of compliance items within this group */\n items: Array;\n /** Unique identifier for the compliance group */\n slug: Scalars['ID']['output'];\n /** Title of the compliance group */\n title: Scalars['String']['output'];\n};\n\n/** Represents a specific compliance item */\nexport type ComplianceItem = {\n __typename?: 'ComplianceItem';\n /** List of actions associated with this compliance item */\n actions: Array;\n /** Detailed description of the compliance item */\n description: Scalars['String']['output'];\n /** Unique identifier for the compliance item */\n id: Scalars['ID']['output'];\n /** List of reference materials related to this compliance item */\n referenceMaterials: Array;\n /** List of requirements for this compliance item */\n requirements: Array;\n /** Slug identifier for the compliance item */\n slug: Scalars['String']['output'];\n /** List of standards associated with this compliance item */\n standards: Array;\n /** Title of the compliance item */\n title: Scalars['String']['output'];\n};\n\n/** Represents reference material for compliance */\nexport type ComplianceReferenceMaterial = {\n __typename?: 'ComplianceReferenceMaterial';\n /** Detailed description of the reference material */\n description: Scalars['String']['output'];\n /** Title of the reference material */\n title: Scalars['String']['output'];\n /** URL to access the reference material */\n url: Scalars['String']['output'];\n};\n\n/** Represents a specific requirement for compliance */\nexport type ComplianceRequirement = {\n __typename?: 'ComplianceRequirement';\n /** Detailed description of the compliance requirement */\n description: Scalars['String']['output'];\n /** Title of the compliance requirement */\n title: Scalars['String']['output'];\n};\n\n/** Represents a compliance standard */\nexport type ComplianceStandard = {\n __typename?: 'ComplianceStandard';\n /** Detailed description of the compliance standard */\n description: Scalars['String']['output'];\n /** Title of the compliance standard */\n title: Scalars['String']['output'];\n /** URL for more information about the standard */\n url: Scalars['String']['output'];\n};\n\n/** CoverageInsurer represents the insurance company providing the coverage. */\nexport type CoverageInsurer = {\n __typename?: 'CoverageInsurer';\n /** The National Association of Insurance Commissioners (NAIC) number of the insurer */\n naic: Scalars['String']['output'];\n /** The name of the insurance company */\n name: Scalars['String']['output'];\n};\n\n/** Represents information about the associated CoverForce application. */\nexport type CoverforceApplication = {\n __typename?: 'CoverforceApplication';\n /** The ID of the policy that is binding, if any was selected */\n bindingPolicyId?: Maybe;\n /** The ID of the quote that is binding, if any was selected */\n bindingQuoteId?: Maybe;\n /** The ID of the associated CoverForce application. */\n id: Scalars['ID']['output'];\n /** The fingerprint of the application last submitted for quotes. */\n lastApplicationFingerprint: Scalars['String']['output'];\n /** The timestamp that the Coverforce application was last submitted for quotes */\n lastQuotesRefreshedAt?: Maybe;\n /** The type of insurance the CoverForce application is for. */\n type: InsuranceType;\n};\n\nexport type CreateApplicationInput = {\n /** The legal name of the business applying for insurance. */\n businessName: Scalars['String']['input'];\n /** The email address of the contact person for the business application. */\n email: Scalars['String']['input'];\n /** The name of the contact person for the business application. */\n fullName: Scalars['String']['input'];\n /** The phone number of the contact person for the business application. */\n phone: Scalars['String']['input'];\n};\n\nexport type CreateBusinessPoliciesInput = {\n insured: InsuredInput;\n merchantId: Scalars['String']['input'];\n policies: Array;\n};\n\n/** Details for a request to create a Certificate of Insurance */\nexport type CreateCoiRequest = {\n __typename?: 'CreateCoiRequest';\n /** Whether the certificate holder should be listed as additional insured */\n additionalInsured: Scalars['Boolean']['output'];\n /** Relationship between policyholder and additional insured, if applicable */\n additionalInsuredRelationship?: Maybe;\n /** Additional details about the relationship, if applicable */\n additionalInsuredRelationshipDescription?: Maybe;\n /** Address of the certificate holder */\n address: Address;\n /** Name of the certificate holder */\n name: Scalars['String']['output'];\n};\n\n/** Input type for creating a Certificate of Insurance request */\nexport type CreateCoiRequestInput = {\n /** Whether the certificate holder should be listed as additional insured */\n additionalInsured: Scalars['Boolean']['input'];\n /** Relationship between policyholder and additional insured, if applicable */\n additionalInsuredRelationship?: InputMaybe;\n /** Additional details about the relationship, if applicable */\n additionalInsuredRelationshipDescription?: InputMaybe;\n /** Address of the certificate holder */\n address: AddressInput;\n /** Name of the certificate holder */\n name: Scalars['String']['input'];\n};\n\nexport type CreateFileInput = {\n bytesBase64: Scalars['String']['input'];\n name: Scalars['String']['input'];\n notes: Scalars['String']['input'];\n role: FileRole;\n visibility: FileVisibility;\n};\n\n/** Input type for creating a new merchant */\nexport type CreateMerchantInput = {\n /** Physical address of the business */\n address: AddressInput;\n /** ID of the business category */\n businessCategoryId: Scalars['String']['input'];\n /** 'Doing Business As' name of the business */\n businessDba: Scalars['String']['input'];\n /** Legal name of the business */\n businessName: Scalars['String']['input'];\n /** Email address for the business */\n email: Scalars['String']['input'];\n /** Personalization details for the merchant */\n personalization?: InputMaybe;\n /** Phone number for the business */\n phone: Scalars['String']['input'];\n /** First name of the primary user */\n userFirstName: Scalars['String']['input'];\n /** Last name of the primary user */\n userLastName: Scalars['String']['input'];\n /** Website of the business */\n website: Scalars['String']['input'];\n};\n\n/** Input type for creating a new service request */\nexport type CreateServiceRequestInput = {\n /** Details specific to additional insured requests */\n addAdditionalInsured?: InputMaybe;\n /** Details specific to policy cancellation requests */\n cancelPolicy?: InputMaybe;\n /** Details specific to Certificate of Insurance requests */\n createCoi?: InputMaybe;\n /** Additional details about the request */\n details: Scalars['String']['input'];\n /** Details specific to document requests */\n documentRequest?: InputMaybe;\n /** Details specific to question requests */\n question?: InputMaybe;\n /** Type of service request */\n type: ServiceRequestType;\n};\n\n/** Details for a request for policy-related documents */\nexport type DocumentRequest = {\n __typename?: 'DocumentRequest';\n /** Type of document being requested */\n type: DocumentRequestType;\n};\n\n/** Input type for requesting policy-related documents */\nexport type DocumentRequestInput = {\n /** Type of document being requested */\n type?: InputMaybe;\n};\n\n/** Types of documents that can be requested */\nexport enum DocumentRequestType {\n /** Insurance binder document */\n Binder = 'BINDER',\n /** Certificate of Insurance */\n Certificate = 'CERTIFICATE',\n /** Policy endorsement document */\n Endorsement = 'ENDORSEMENT',\n /** Other document types */\n Other = 'OTHER',\n /** Full policy documentation */\n PolicyDocument = 'POLICY_DOCUMENT'\n}\n\n/**\n * A file describes a document that is attached to an object, with\n * metadata and URLs to fetch it.\n */\nexport type File = {\n __typename?: 'File';\n /** The internal URL to fetch the file */\n adminUrl: Scalars['String']['output'];\n /** The timestamp this file was created */\n createdAt: Scalars['Time']['output'];\n /** The details of this specific file, depending on the file role */\n details?: Maybe;\n /** The unique identifier of the file */\n id: Scalars['ID']['output'];\n /** The file name, for display and download purposes */\n name: Scalars['String']['output'];\n /** The notes associated with the file */\n notes: Scalars['String']['output'];\n /** The role of the file, i.e. how it relates to the object it is attached to */\n role: FileRole;\n /** The size of the file in bytes, if available */\n size: Scalars['Int']['output'];\n /** The file MIME type */\n type: Scalars['String']['output'];\n /** The timestamp this file was updated */\n updatedAt: Scalars['Time']['output'];\n /** The public URL to fetch the file, if the file is visible to the user */\n url?: Maybe;\n /** The visibility of the file, i.e. who can view this file */\n visibility: FileVisibility;\n};\n\n/**\n * FileDetails is a union type that represents different types of file details.\n * Currently, it only includes CertificateDetails.\n */\nexport type FileDetails = CertificateDetails;\n\n/** File role describes a type of file related to an object */\nexport enum FileRole {\n /** The file is a form generated as part of an application */\n ApplicationForm = 'APPLICATION_FORM',\n /** The file is a binder, a pre-coverage confirmation document */\n Binder = 'BINDER',\n /** The file is a certificate of insurance */\n Certificate = 'CERTIFICATE',\n /** The file is a template to generate a certificate of liability insurance */\n CertificateOfLiabilityInsuranceTemplate = 'CERTIFICATE_OF_LIABILITY_INSURANCE_TEMPLATE',\n /** The file is an endorsement, affixed to the policy document */\n Endorsement = 'ENDORSEMENT',\n /** The file is an invoice, generally for internal tracking purposes */\n Invoice = 'INVOICE',\n /** The file is a loss policy release, issued when a policy is canceled by the customer */\n LossPolicyRelease = 'LOSS_POLICY_RELEASE',\n /** The file is a notice of cancellation, issued when a policy is being canceled or nonrenewed by the carrier */\n NoticeOfCancellation = 'NOTICE_OF_CANCELLATION',\n /** The file is of another type */\n Other = 'OTHER',\n /** The file is a policy document */\n PolicyDocument = 'POLICY_DOCUMENT',\n /** The file is a quote document */\n QuoteDocument = 'QUOTE_DOCUMENT',\n /** The file role is unknown */\n Unknown = 'UNKNOWN'\n}\n\n/** File visibility describes who is able to view a file */\nexport enum FileVisibility {\n /** Only internal users can view this file */\n Internal = 'INTERNAL',\n /** End users and internal users can view this file */\n User = 'USER'\n}\n\nexport type GenerateCertificateInput = {\n additionalInsured: Scalars['Boolean']['input'];\n additionalInsuredRelationship?: InputMaybe;\n additionalInsuredRelationshipDescription?: InputMaybe;\n address: AddressInput;\n name: Scalars['String']['input'];\n notes: Scalars['String']['input'];\n};\n\nexport type GetBusinessApplication = {\n id?: InputMaybe;\n merchantId?: InputMaybe;\n policyId?: InputMaybe;\n};\n\nexport type InsuranceCarrier = {\n __typename?: 'InsuranceCarrier';\n /** If available, the ID of this carrier in Ascend */\n ascendId?: Maybe;\n /** Human readable short identifier of this carrier */\n id: Scalars['String']['output'];\n /** True if this insurance entity is a broker which we use to access a carrier */\n isBroker: Scalars['Boolean']['output'];\n /** True if this insurance entity is a carrier with binding authority */\n isCarrier: Scalars['Boolean']['output'];\n /** Legal name of this carrier */\n name: Scalars['String']['output'];\n /** The types of insurance policies supported by this carrier */\n supportedPolicies?: Maybe>;\n};\n\nexport type InsuranceLimits = {\n __typename?: 'InsuranceLimits';\n bopAggregateLimit?: Maybe;\n bopPerOccurrenceLimit?: Maybe;\n coverageState: Scalars['String']['output'];\n cyberAggregateLimit?: Maybe;\n cyberRetentionLimit?: Maybe;\n glAggregateLimit?: Maybe;\n glPerOccurrenceLimit?: Maybe;\n wcPerAccidentLimit?: Maybe;\n wcPerDiseaseEmployeeLimit?: Maybe;\n wcPerDiseasePolicyLimit?: Maybe;\n};\n\nexport type InsuranceLimitsInput = {\n bopAggregateLimit?: InputMaybe;\n bopPerOccurrenceLimit?: InputMaybe;\n coverageState: Scalars['String']['input'];\n cyberAggregateLimit?: InputMaybe;\n cyberRetentionLimit?: InputMaybe;\n glAggregateLimit?: InputMaybe;\n glPerOccurrenceLimit?: InputMaybe;\n wcPerAccidentLimit?: InputMaybe;\n wcPerDiseaseEmployeeLimit?: InputMaybe;\n wcPerDiseasePolicyLimit?: InputMaybe;\n};\n\n/** Describes the market the insurance policy was written in. */\nexport enum InsuranceMarket {\n /** The admitted market */\n Admitted = 'ADMITTED',\n /** The Excess and Surplus (E&S) market */\n ExcessAndSurplus = 'EXCESS_AND_SURPLUS'\n}\n\n/** Insurance type for business insurance */\nexport enum InsuranceType {\n AccidentAndHealth = 'ACCIDENT_AND_HEALTH',\n BusinessOwners = 'BUSINESS_OWNERS',\n CommercialAuto = 'COMMERCIAL_AUTO',\n Cyber = 'CYBER',\n DirectorsAndOfficers = 'DIRECTORS_AND_OFFICERS',\n EmploymentPracticesLiability = 'EMPLOYMENT_PRACTICES_LIABILITY',\n ErrorsAndOmission = 'ERRORS_AND_OMISSION',\n GeneralLiability = 'GENERAL_LIABILITY',\n JewelersBlock = 'JEWELERS_BLOCK',\n Other = 'OTHER',\n Package = 'PACKAGE',\n ProductLiability = 'PRODUCT_LIABILITY',\n ProfessionalLiability = 'PROFESSIONAL_LIABILITY',\n Property = 'PROPERTY',\n Rental = 'RENTAL',\n ShippingAndTransportation = 'SHIPPING_AND_TRANSPORTATION',\n UmbrellaOrExcess = 'UMBRELLA_OR_EXCESS',\n WorkersCompensation = 'WORKERS_COMPENSATION'\n}\n\nexport type InsuredInput = {\n addressCity: Scalars['String']['input'];\n addressLine1: Scalars['String']['input'];\n addressLine2: Scalars['String']['input'];\n addressState: Scalars['String']['input'];\n addressZipCode: Scalars['String']['input'];\n businessName: Scalars['String']['input'];\n email: Scalars['String']['input'];\n firstName: Scalars['String']['input'];\n lastName: Scalars['String']['input'];\n phone: Scalars['String']['input'];\n};\n\n/** Details of a bank transaction linked to a payout */\nexport type LinkedBankTransaction = {\n __typename?: 'LinkedBankTransaction';\n /** The amount of the transaction in dollars */\n amount: Scalars['Float']['output'];\n /** The ID of the counterparty in the bank account's system */\n counterPartyId: Scalars['String']['output'];\n /** The name of the counterparty */\n counterPartyName: Scalars['String']['output'];\n /** The date the transaction was created */\n createdAt: Scalars['Time']['output'];\n /** The link to the transaction in the partner bank's system */\n dashboardLink: Scalars['String']['output'];\n /** The bank description of the transaction */\n description: Scalars['String']['output'];\n /** The ID of the transaction in the bank account */\n id: Scalars['String']['output'];\n /** The memo line of the transaction */\n memo: Scalars['String']['output'];\n /** The status of the transaction in the bank account */\n status: AchPaymentStatus;\n};\n\n/** Describes a merchant partner's account */\nexport type Merchant = {\n __typename?: 'Merchant';\n /** The business' physical address */\n address: Address;\n /** Any applications that this merchant has submitted */\n applications: Array;\n /** The business category that this business belongs to */\n businessCategory?: Maybe;\n /** The date this merchant was created */\n createdAt: Scalars['Time']['output'];\n /** The business' dba */\n dba: Scalars['String']['output'];\n /** The business' website domain */\n domain: Scalars['String']['output'];\n /** The business' email address */\n email: Scalars['String']['output'];\n /** Any files that are associated with this merchant */\n files: Array;\n /** The ID of the merchant */\n id: Scalars['ID']['output'];\n /** The merchant's API keys */\n keys?: Maybe>;\n /** The Mercury recipient ID for this merchant, used to determine the payout information for this merchant */\n mercuryRecipientId?: Maybe;\n /** The business' name */\n name: Scalars['String']['output'];\n /** The merchant's preferred payment method */\n paymentMethod: MerchantPaymentMethod;\n /** The business' contact phone number */\n phone: Scalars['String']['output'];\n /** List of product verticals this business sells */\n productVerticals: Array;\n /** The date this merchant was last updated */\n updatedAt: Scalars['Time']['output'];\n /** The users that can access this merchant's account */\n users: Array;\n};\n\n/** A merchant's API key */\nexport type MerchantKey = {\n __typename?: 'MerchantKey';\n /** The API key the merchant uses to authenticate themselves via the API/SDK */\n apiKey: Scalars['ID']['output'];\n /** The date this API key was created */\n createdAt: Scalars['Time']['output'];\n /** The Merchant that this API key belongs to */\n merchant?: Maybe;\n /** The date this API key was updated */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** The payment method */\nexport enum MerchantPaymentMethod {\n /** The merchant has opted to be paid out via physical check */\n Check = 'CHECK',\n /** The merchant has opted to be paid out via ACH and has connected a bank account */\n Electronic = 'ELECTRONIC',\n /** The merchant has not selected a payment method */\n Unknown = 'UNKNOWN'\n}\n\n/** A user that can log into the merchant's account */\nexport type MerchantUser = {\n __typename?: 'MerchantUser';\n /** The email address of the user */\n email: Scalars['String']['output'];\n /** The first name of the user */\n firstName: Scalars['String']['output'];\n /** The ID of the user */\n id: Scalars['ID']['output'];\n /** The last name of the user */\n lastName: Scalars['String']['output'];\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /**\n * Adds a new business location to an existing business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * location: The input data required to add a new business location.\n *\n * Returns:\n * The updated BusinessApplication object with the new location added.\n */\n addBusinessLocation: BusinessApplication;\n /**\n * Binds a quote to a business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * quoteId: The unique identifier of the quote to bind.\n * paymentPlanId: The ID of the payment plan to use.\n * paymentMethod: The payment method to use.\n *\n * Returns:\n * The updated BusinessApplication object with the quote bound.\n */\n bindQuote: BusinessApplication;\n /** Delete the document and remove the reference from the given business policy */\n businessPolicyDeleteDocument?: Maybe;\n /** Upload the document for this business policy to S3 */\n businessPolicyUploadDocument: File;\n /** Cancel the specified business insurance policy */\n cancelBusinessPolicy: BusinessPolicy;\n /**\n * Creates a new business application.\n *\n * Arguments:\n * application: The input data required to create a new business application.\n *\n * Returns:\n * The created BusinessApplication object.\n */\n createBusinessApplication: BusinessApplication;\n /** Create business insurance policies according to specification */\n createBusinessPolicies: Array;\n /** Create a new merchant */\n createMerchant?: Maybe;\n /** Create a service request */\n createServiceRequest: ServiceRequest;\n /** Deletes the specified business insurance policy */\n deleteBusinessPolicy?: Maybe;\n /** Generate a certificate of insurance with the given inputs for the current merchant */\n generateCertificate?: Maybe;\n /**\n * Starts the quote process for a business application if it's not already quoting\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n quoteBusinessApplication: BusinessApplication;\n /** Reinstate the specified business insurance policy */\n reinstateBusinessPolicy: BusinessPolicy;\n /**\n * Removes a business location from an existing business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * locationId: The unique identifier of the business location to remove.\n *\n * Returns:\n * The updated BusinessApplication object with the location removed.\n */\n removeBusinessLocation: BusinessApplication;\n /** Renew the specified business insurance policy */\n renewBusinessPolicy: BusinessPolicy;\n /** Add a message to the policy AI conversation */\n riskManagementAddPolicyConversationMessage: Array;\n /** Mark an action item as complete */\n riskManagementMarkActionItemComplete: ComplianceAction;\n /** Update the assignee of an action item */\n riskManagementSetActionItemAssignee: ComplianceAction;\n /** Update the due date of an action item */\n riskManagementSetActionItemDueDate: ComplianceAction;\n /** Set up the risk management data for a merchant */\n riskManagementSetup: RiskManagementData;\n /**\n * Submits and finalizes the business application if not already submitted. This\n * indicates that a customer has finished submitting their information and is\n * ready to be reviewed by an agent.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n submitBusinessApplication: BusinessApplication;\n /**\n * Updates an existing business application.\n *\n * Arguments:\n * id: The unique identifier of the business application to update.\n * application: The input data required to update the business application.\n *\n * Returns:\n * The updated BusinessApplication object.\n */\n updateBusinessApplication: BusinessApplication;\n /**\n * Updates an existing business location in a business application.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * locationId: The unique identifier of the business location to update.\n * location: The input data required to update the business location.\n *\n * Returns:\n * The updated BusinessApplication object with the updated location.\n */\n updateBusinessLocation: BusinessApplication;\n /** Update the specified business insurance policy */\n updateBusinessPolicy: BusinessPolicy;\n /** Update an existing merchant */\n updateMerchant?: Maybe;\n};\n\nexport type MutationAddBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n};\n\nexport type MutationBindQuoteArgs = {\n applicationId: Scalars['ID']['input'];\n paymentMethod?: InputMaybe;\n paymentPlanId?: InputMaybe;\n quoteId: Scalars['ID']['input'];\n};\n\nexport type MutationBusinessPolicyDeleteDocumentArgs = {\n fileId: Scalars['ID']['input'];\n policyId: Scalars['ID']['input'];\n};\n\nexport type MutationBusinessPolicyUploadDocumentArgs = {\n policyId: Scalars['ID']['input'];\n req: CreateFileInput;\n};\n\nexport type MutationCancelBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: CancelBusinessPolicyInput;\n};\n\nexport type MutationCreateBusinessApplicationArgs = {\n application: CreateApplicationInput;\n};\n\nexport type MutationCreateBusinessPoliciesArgs = {\n req: CreateBusinessPoliciesInput;\n};\n\nexport type MutationCreateMerchantArgs = {\n req: CreateMerchantInput;\n};\n\nexport type MutationCreateServiceRequestArgs = {\n input: CreateServiceRequestInput;\n};\n\nexport type MutationDeleteBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationGenerateCertificateArgs = {\n req: GenerateCertificateInput;\n};\n\nexport type MutationQuoteBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationReinstateBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: ReinstateBusinessPolicyInput;\n};\n\nexport type MutationRemoveBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n};\n\nexport type MutationRenewBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: RenewBusinessPolicyInput;\n};\n\nexport type MutationRiskManagementAddPolicyConversationMessageArgs = {\n message: Scalars['String']['input'];\n policyId: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementMarkActionItemCompleteArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetActionItemAssigneeArgs = {\n id: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetActionItemDueDateArgs = {\n dueDate: Scalars['Time']['input'];\n id: Scalars['ID']['input'];\n};\n\nexport type MutationRiskManagementSetupArgs = {\n input: RiskManagementSetupInput;\n};\n\nexport type MutationSubmitBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessApplicationArgs = {\n application: UpdateApplicationInput;\n id: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessLocationArgs = {\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n locationId: Scalars['ID']['input'];\n};\n\nexport type MutationUpdateBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n req: UpdateBusinessPolicyInput;\n};\n\nexport type MutationUpdateMerchantArgs = {\n id: Scalars['ID']['input'];\n req: UpdateMerchantInput;\n};\n\nexport enum OperationType {\n ManufacturingDesign = 'MANUFACTURING_DESIGN',\n Other = 'OTHER',\n Rental = 'RENTAL',\n Retail = 'RETAIL',\n Service = 'SERVICE',\n Wholesale = 'WHOLESALE'\n}\n\nexport type OysterAgent = {\n __typename?: 'OysterAgent';\n email: Scalars['String']['output'];\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n};\n\nexport type PastPolicyLoss = {\n __typename?: 'PastPolicyLoss';\n /** The date when the claim was made. */\n claimDate?: Maybe;\n /** The status of the claim. */\n claimStatus?: Maybe;\n /** The date when the loss occurred. */\n lossDate?: Maybe;\n /** A description of the loss. */\n lossDescription: Scalars['String']['output'];\n /** The 2-letter state code where the loss occurred. */\n lossState: Scalars['String']['output'];\n /** The type of loss that occurred. */\n lossType?: Maybe;\n /** The date when the policy became effective. */\n policyEffectiveDate?: Maybe;\n /** The date when the policy expired. */\n policyExpirationDate?: Maybe;\n /** The type of insurance policy. */\n policyType?: Maybe;\n /** The total amount paid for the claim. */\n totalPaidAmount: Scalars['Float']['output'];\n /** The total amount reserved for the claim. */\n totalReservedAmount: Scalars['Float']['output'];\n};\n\nexport enum PastPolicyLossClaimStatus {\n /** The claim has been closed. */\n Closed = 'CLOSED',\n /** The claim is currently open. */\n Open = 'OPEN',\n Unknown = 'UNKNOWN'\n}\n\nexport type PastPolicyLossInput = {\n /** The date when the claim was made. */\n claimDate: Scalars['String']['input'];\n /** The status of the claim. */\n claimStatus?: InputMaybe;\n /** The date when the loss occurred. */\n lossDate: Scalars['String']['input'];\n /** A description of the loss. */\n lossDescription: Scalars['String']['input'];\n /** The 2-letter state code where the loss occurred. */\n lossState: Scalars['String']['input'];\n /** The type of loss that occurred. */\n lossType?: InputMaybe;\n /** The date when the policy became effective. */\n policyEffectiveDate: Scalars['String']['input'];\n /** The date when the policy expired. */\n policyExpirationDate: Scalars['String']['input'];\n /** The type of insurance policy. */\n policyType?: InputMaybe;\n /** The total amount paid for the claim. */\n totalPaidAmount: Scalars['Float']['input'];\n /** The total amount reserved for the claim. */\n totalReservedAmount: Scalars['Float']['input'];\n};\n\nexport enum PastPolicyLossType {\n BodilyInjuryOther = 'BODILY_INJURY_OTHER',\n BusinessInterruption = 'BUSINESS_INTERRUPTION',\n ComputerFraud = 'COMPUTER_FRAUD',\n ContingentBusinessInterruption = 'CONTINGENT_BUSINESS_INTERRUPTION',\n CyberIncident = 'CYBER_INCIDENT',\n DigitalData = 'DIGITAL_DATA',\n EmployeePractices = 'EMPLOYEE_PRACTICES',\n ErrorsAndOmissions = 'ERRORS_AND_OMISSIONS',\n Fire = 'FIRE',\n FoodSpoilage = 'FOOD_SPOILAGE',\n FundTransferFraud = 'FUND_TRANSFER_FRAUD',\n GeneralLiabilityProducts = 'GENERAL_LIABILITY_PRODUCTS',\n GlPropertyDamage = 'GL_PROPERTY_DAMAGE',\n Hail = 'HAIL',\n Indemnity = 'INDEMNITY',\n InlandMarine = 'INLAND_MARINE',\n LiabilityMedicalPayments = 'LIABILITY_MEDICAL_PAYMENTS',\n MediaLiability = 'MEDIA_LIABILITY',\n Medical = 'MEDICAL',\n MedicalAndIndemnity = 'MEDICAL_AND_INDEMNITY',\n NetworkExtortion = 'NETWORK_EXTORTION',\n Other = 'OTHER',\n PaymentCard = 'PAYMENT_CARD',\n PersonalInjury = 'PERSONAL_INJURY',\n PrivacyAndNetworkSecurity = 'PRIVACY_AND_NETWORK_SECURITY',\n ProfessionalLiability = 'PROFESSIONAL_LIABILITY',\n PropertyDamageCollapse = 'PROPERTY_DAMAGE_COLLAPSE',\n PropertyDamageOther = 'PROPERTY_DAMAGE_OTHER',\n RegulatoryProceeding = 'REGULATORY_PROCEEDING',\n SlipFallInside = 'SLIP_FALL_INSIDE',\n SlipFallOutside = 'SLIP_FALL_OUTSIDE',\n SocialEngineeringFraud = 'SOCIAL_ENGINEERING_FRAUD',\n TechnologyErrorsAndOmissions = 'TECHNOLOGY_ERRORS_AND_OMISSIONS',\n Theft = 'THEFT',\n Unknown = 'UNKNOWN',\n Vandalism = 'VANDALISM',\n WaterNonWeatherRelated = 'WATER_NON_WEATHER_RELATED',\n Windstorm = 'WINDSTORM'\n}\n\n/** PaymentIntervalType enumerates the interval of a fee occurrence */\nexport enum PaymentIntervalType {\n /** Describes an annual payment */\n Annual = 'ANNUAL',\n /** Describes a monthly payment */\n Monthly = 'MONTHLY',\n /** Describes a non-recurring payment */\n None = 'NONE',\n /** Describes a quarterly payment */\n Quarterly = 'QUARTERLY'\n}\n\n/** How the customer chose to pay */\nexport enum PaymentOptionType {\n AnnualPayInFull = 'ANNUAL_PAY_IN_FULL',\n MonthlyFinanced = 'MONTHLY_FINANCED'\n}\n\n/** Enum representing the frequency of installments for a payment plan */\nexport enum PaymentPlanInstallmentFrequency {\n /** Monthly installments */\n Monthly = 'MONTHLY',\n /** No recurring installments */\n None = 'NONE',\n /** Quarterly installments */\n Quarterly = 'QUARTERLY'\n}\n\n/** Enum representing the different payment methods available for a payment plan */\nexport enum PaymentPlanPaymentMethodType {\n /** Payment via credit card */\n CreditCard = 'CREDIT_CARD',\n /** Payment via direct debit */\n DirectDebit = 'DIRECT_DEBIT',\n /** Payment via electronic fund transfer */\n ElectronicFundTransfer = 'ELECTRONIC_FUND_TRANSFER'\n}\n\n/** Input type for overall personalization details */\nexport type PersonalizationInput = {\n /** Business insurance personalization details */\n businessInsurance?: InputMaybe;\n};\n\n/** Represents the policy AI conversation for a policy */\nexport type PolicyConversationMessage = {\n __typename?: 'PolicyConversationMessage';\n /** List of attachments for the message */\n attachments: Array;\n /** The content of the message */\n content: Scalars['String']['output'];\n /** The ID of the message */\n id: Scalars['ID']['output'];\n /** The role of the message */\n role: PolicyConversationMessageRole;\n /** The timestamp of the message */\n timestamp: Scalars['Time']['output'];\n};\n\n/** Represents an attachment for a policy AI conversation message */\nexport type PolicyConversationMessageAttachment = {\n __typename?: 'PolicyConversationMessageAttachment';\n /** The content of the attachment */\n content: Scalars['String']['output'];\n /** The type of the attachment */\n type: PolicyConversationMessageAttachmentType;\n};\n\n/** Represents the type of an attachment for a policy AI conversation message */\nexport enum PolicyConversationMessageAttachmentType {\n /** A quote from a document */\n Quote = 'QUOTE'\n}\n\n/** Represents the role of a policy AI conversation message */\nexport enum PolicyConversationMessageRole {\n /** The message is from the AI */\n Ai = 'AI',\n /** The message is from the user */\n User = 'USER'\n}\n\n/** The enumeration of states for business policy */\nexport enum PolicyState {\n /** The policy is in the process of being bound or finalized */\n Binding = 'BINDING',\n /** The policy has been terminated or canceled before its expiration date */\n Canceled = 'CANCELED',\n /** The policy has reached its expiration date and is no longer active */\n Expired = 'EXPIRED',\n /** The policy is currently active and in force */\n Inforce = 'INFORCE',\n /** The policy is in a pending state, awaiting further action or information */\n Pending = 'PENDING',\n /** The policy has been submitted for review or approval */\n Submitted = 'SUBMITTED',\n /** The state of the policy is unknown or not determined */\n Unknown = 'UNKNOWN'\n}\n\n/** The type of a single insured item on a policy */\nexport enum ProductType {\n BeautyAndSupplements = 'BEAUTY_AND_SUPPLEMENTS',\n /** A bike or eBike */\n Bike = 'BIKE',\n /** A collectible */\n Collectibles = 'COLLECTIBLES',\n /** An electronics item, such as a phone, laptop, or tablet */\n Electronics = 'ELECTRONICS',\n /** Fashion pieces */\n Fashion = 'FASHION',\n FoodAndBeverage = 'FOOD_AND_BEVERAGE',\n /** Furniture items */\n Furniture = 'FURNITURE',\n /** A jewelry item */\n Jewelry = 'JEWELRY',\n /** A motorcycle, moped, scooter, or other higher-powered motor vehicle */\n Motorcycle = 'MOTORCYCLE',\n /** An ATV, UTV, or other offroad vehicle */\n OffroadVehicle = 'OFFROAD_VEHICLE',\n /** Other producs */\n Other = 'OTHER',\n OutdoorSports = 'OUTDOOR_SPORTS',\n TobaccoCbdSmokeShop = 'TOBACCO_CBD_SMOKE_SHOP',\n /** An unknown product type. This value should be impossible */\n Unknown = 'UNKNOWN'\n}\n\nexport type Query = {\n __typename?: 'Query';\n /** Retrieve a business application by ID */\n businessApplication: BusinessApplication;\n /** Retrieve all business applications */\n businessApplications: Array;\n /** Fetch all business categories */\n businessCategories: Array;\n businessPolicies: Array;\n businessPolicy?: Maybe;\n carriers: Array;\n certificate?: Maybe;\n /**\n * Returns the available limits for a particular application and state.\n *\n * Arguments:\n * applicationId: The unique identifier of the business application.\n * state: The state for which to retrieve the available limits.\n *\n * Returns:\n * A list of AvailableCoverageLimit objects representing the available coverage limits.\n */\n coverageLimits: Array;\n /** Fetch a single merchant by ID */\n merchant?: Maybe;\n /** Fetch all merchants */\n merchants: Array;\n /** Get the policy AI conversation for a policy ID */\n policyConversation: Array;\n /** Get the risk management data for a merchant */\n riskManagement?: Maybe;\n /** Get a service request by ID */\n serviceRequest?: Maybe;\n /** Get the service requests for a merchant, if the user is a merchant, otherwise get all service requests */\n serviceRequests: Array;\n};\n\nexport type QueryBusinessApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryBusinessPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\nexport type QueryCertificateArgs = {\n certificateNumber: Scalars['String']['input'];\n};\n\nexport type QueryCoverageLimitsArgs = {\n applicationId: Scalars['ID']['input'];\n state: Scalars['String']['input'];\n};\n\nexport type QueryMerchantArgs = {\n id?: InputMaybe;\n};\n\nexport type QueryPolicyConversationArgs = {\n policyId: Scalars['ID']['input'];\n};\n\nexport type QueryServiceRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n/** Details for a request for questions about policies, account, or billing, etc. */\nexport type QuestionRequest = {\n __typename?: 'QuestionRequest';\n /** ID of the policy related to the question, if applicable */\n policyId?: Maybe;\n /** Question from the customer */\n question: Scalars['String']['output'];\n /** Type of question */\n type: QuestionRequestType;\n};\n\n/** Input type for requesting questions */\nexport type QuestionRequestInput = {\n /** ID of the policy related to the question, if applicable */\n policyId?: InputMaybe;\n /** Question from the customer */\n question: Scalars['String']['input'];\n /** Type of question */\n type?: InputMaybe;\n};\n\n/** Types of questions that can be requested */\nexport enum QuestionRequestType {\n /** Question about account management */\n Account = 'ACCOUNT',\n /** Question about billing and payments */\n Billing = 'BILLING',\n /** Other questions */\n Other = 'OTHER',\n /** Question about policies */\n Policy = 'POLICY'\n}\n\nexport type ReinstateBusinessPolicyInput = {\n effectiveAt: Scalars['Time']['input'];\n reasonDescription: Scalars['String']['input'];\n};\n\nexport type RenewBusinessPolicyInput = {\n agencyBillingType?: InputMaybe;\n /** Additional fees collected by Oyster as revenue. */\n agencyFees: Scalars['Float']['input'];\n ascendProgramCreationMode?: InputMaybe;\n ascendProgramId?: InputMaybe;\n billingType: BusinessPolicyBillingType;\n /** Fees collected by the wholesale broker */\n brokerFees: Scalars['Float']['input'];\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion: Scalars['Float']['input'];\n /** The estimated commission Oyster earns on this policy */\n estimatedCommission: Scalars['Float']['input'];\n expiresAt?: InputMaybe;\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees: Scalars['Float']['input'];\n /** Fees collected by the carrier to administer the policy or program */\n policyFees: Scalars['Float']['input'];\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium: Scalars['Float']['input'];\n quoteNumber: Scalars['String']['input'];\n state: PolicyState;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes: Scalars['Float']['input'];\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total: Scalars['Float']['input'];\n};\n\n/** Represents the risk management data for a merchant */\nexport type RiskManagementData = {\n __typename?: 'RiskManagementData';\n /** List of action items related to the merchant's risk management */\n actionItems: Array;\n /** List of compliance groups associated with the merchant */\n compliance: Array;\n};\n\nexport type RiskManagementSetupInput = {\n /** Description of any upcoming changes to the business */\n changeDescription: Scalars['String']['input'];\n /** List of compliance frameworks that the merchant is subject to */\n complianceFrameworks: Scalars['String']['input'];\n /** Description of the business */\n description: Scalars['String']['input'];\n};\n\n/** Role mapped to auth model values */\nexport enum Role {\n Admin = 'ADMIN',\n AgencyUser = 'AGENCY_USER',\n Anonymous = 'ANONYMOUS',\n Bpo = 'BPO',\n User = 'USER'\n}\n\n/** Represents a service request submitted by a merchant */\nexport type ServiceRequest = {\n __typename?: 'ServiceRequest';\n /** Details specific to additional insured requests */\n addAdditionalInsured?: Maybe;\n /** AI-generated annotations and analysis results for this service request */\n annotations: ServiceRequestAnnotations;\n /** Details specific to policy cancellation requests */\n cancelPolicy?: Maybe;\n /** When the request was closed, if applicable */\n closedAt?: Maybe;\n /** Details specific to Certificate of Insurance requests */\n createCoi?: Maybe;\n /** When the request was created */\n createdAt: Scalars['Time']['output'];\n /** Additional details about the request */\n details: Scalars['String']['output'];\n /** Details specific to document requests */\n documentRequest?: Maybe;\n /** Events, such as actions and messages, related to this service request */\n events: Array;\n /** Unique identifier for the service request */\n id: Scalars['ID']['output'];\n /** The merchant associated with the service request */\n merchant: Merchant;\n /** Details specific to question requests */\n question?: Maybe;\n /** Current state of the request */\n state: ServiceRequestState;\n /** Type of service request */\n type: ServiceRequestType;\n /** When the request was last updated */\n updatedAt: Scalars['Time']['output'];\n};\n\n/** AI-generated summary of the service request */\nexport type ServiceRequestAnnotations = {\n __typename?: 'ServiceRequestAnnotations';\n /** Whether AI is enabled for this service request */\n aiEnabled: Scalars['Boolean']['output'];\n /** AI-generated summary of the service request */\n summary: Scalars['String']['output'];\n};\n\n/** An event, such as an AI message or a human message, related to a service request */\nexport type ServiceRequestEvent = {\n __typename?: 'ServiceRequestEvent';\n /** Type of event */\n type: ServiceRequestEventType;\n};\n\n/** Type of event, such as an AI message or a human message, related to a service request */\nexport enum ServiceRequestEventType {\n /** An AI message generated for this service request */\n AiMessage = 'AI_MESSAGE',\n /** A human message added to this service request */\n HumanMessage = 'HUMAN_MESSAGE'\n}\n\n/** Current state of a service request */\nexport enum ServiceRequestState {\n /** Request has been completed */\n Closed = 'CLOSED',\n /** Request is still being processed */\n Open = 'OPEN'\n}\n\n/** Type of service request that can be created */\nexport enum ServiceRequestType {\n /** Request to add an additional insured to a policy */\n AddAdditionalInsured = 'ADD_ADDITIONAL_INSURED',\n /** Request to cancel an existing policy */\n CancelPolicy = 'CANCEL_POLICY',\n /** Request to create a Certificate of Insurance */\n CreateCoi = 'CREATE_COI',\n /** Request for policy-related documents */\n DocumentRequest = 'DOCUMENT_REQUEST',\n /** Request to modify/endorse an existing policy */\n EndorsePolicy = 'ENDORSE_POLICY',\n /** Other miscellaneous requests */\n Other = 'OTHER',\n /** Question about policies, account, or billing, etc. */\n Question = 'QUESTION'\n}\n\n/** The Stripe invoice information used to bill a policy */\nexport type StripeInvoice = {\n __typename?: 'StripeInvoice';\n id: Scalars['String']['output'];\n};\n\n/** Represents an answer to an underwriting question. */\nexport type UnderwritingAnswer = {\n __typename?: 'UnderwritingAnswer';\n /** The answer to the question. */\n answer: Scalars['String']['output'];\n /** The ID of the location associated with the answer. */\n locationId?: Maybe;\n /** The ID of the question associated with the answer. */\n questionId: Scalars['ID']['output'];\n};\n\nexport type UnderwritingAnswerInput = {\n answer: Scalars['String']['input'];\n locationId?: InputMaybe;\n questionId: Scalars['String']['input'];\n};\n\n/** Represents an answer option for an underwriting question. */\nexport type UnderwritingAnswerOption = {\n __typename?: 'UnderwritingAnswerOption';\n /** The display text of the answer option. */\n displayText: Scalars['String']['output'];\n /** The value of the answer option. */\n value: Scalars['String']['output'];\n};\n\n/** Represents an underwriting question. */\nexport type UnderwritingQuestion = {\n __typename?: 'UnderwritingQuestion';\n /** The possible answer options for the question. */\n answerOptions?: Maybe>;\n /** Carriers that require an answer to this question\" */\n carriers: Array;\n /** The default answer to the question, if any. */\n defaultAnswer?: Maybe;\n /** Question IDs that are dependent on this question. */\n dependentQuestions: Array;\n /** Indicates whether the question has a parent question. */\n hasParentQuestion: Scalars['Boolean']['output'];\n /** The unique identifier of the underwriting question. */\n id: Scalars['ID']['output'];\n /** The ID of the location associated with the question. */\n locationId?: Maybe;\n /** The text of the underwriting question. */\n question: Scalars['String']['output'];\n /** The tooltip providing additional information about the question. */\n tooltip: Scalars['String']['output'];\n /** The type of the underwriting question. */\n type: UnderwritingQuestionType;\n};\n\n/** Represents a dependency between underwriting questions. */\nexport type UnderwritingQuestionDependency = {\n __typename?: 'UnderwritingQuestionDependency';\n /** The condition that must be met for the dependent questions to be shown. */\n condition?: Maybe;\n /** The IDs of the questions that are dependent on the parent question. */\n dependentQuestionIds: Array;\n /** The type of the dependency. */\n type: UnderwritingQuestionDependencyType;\n};\n\nexport enum UnderwritingQuestionDependencyType {\n /** Indicates that a question should be shown if the condition matches */\n Conditional = 'CONDITIONAL',\n /** Indicates that a question should always be shown */\n Direct = 'DIRECT'\n}\n\n/** Represents the type of an underwriting question. */\nexport enum UnderwritingQuestionType {\n /** A date question. */\n Date = 'DATE',\n /** An email question. */\n Email = 'EMAIL',\n /** A multi-select dropdown question. */\n Multiselectdropdown = 'MULTISELECTDROPDOWN',\n /** A number question. */\n Number = 'NUMBER',\n /** A phone number question. */\n Phonenumber = 'PHONENUMBER',\n /** A radio button question. */\n Radio = 'RADIO',\n /** A single-select dropdown question. */\n Singleselectdropdown = 'SINGLESELECTDROPDOWN',\n /** A text question. */\n Text = 'TEXT',\n /** A year question. */\n Year = 'YEAR'\n}\n\n/** Represents an underwriting statement. */\nexport type UnderwritingStatement = {\n __typename?: 'UnderwritingStatement';\n /** The carrier that the underwriting statement is associated with. */\n carrier: BusinessApplicationCarrier;\n /** Formatted markdown string with the underwriting statement. */\n markdown: Scalars['String']['output'];\n};\n\n/** Represents the type of an underwriting statement. */\nexport enum UnderwritingStatementType {\n /** A payment statement. */\n Payment = 'PAYMENT',\n /** An underwriting statement. */\n Underwriting = 'UNDERWRITING'\n}\n\nexport type UpdateApplicationInput = {\n /** The annual revenue of the business. */\n annualRevenue?: InputMaybe;\n /** The \"Doing Business As\" name of the business. */\n businessDba?: InputMaybe;\n /** The legal name of the business. */\n businessName?: InputMaybe;\n /** The information for the the contact person on the business application. */\n contact?: InputMaybe;\n /** Information about the employees at the business location. */\n employeeInfo?: InputMaybe;\n /** The Federal Employer Identification Number (FEIN) of the business. */\n fein?: InputMaybe;\n /** The desired effective date for the insurance policy. */\n insuranceEffectiveAt?: InputMaybe;\n /** The insurance types the business is interested in. */\n insuranceTypes?: InputMaybe>;\n /** The legal entity type of the business. */\n legalEntityType?: InputMaybe;\n /** The mailing address of the business. */\n mailingAddress?: InputMaybe;\n /** The NAICS classification code for the business. */\n naicsCode?: InputMaybe;\n /** The owners of the business. */\n owners?: InputMaybe>;\n /** The past policy losses of the business. */\n pastPolicyLosses?: InputMaybe>;\n /** The carriers that this business wants quotes from */\n selectedCarriers?: InputMaybe>;\n /** The selected insurance limits for the business. */\n selectedLimits?: InputMaybe;\n /** The underwriting answers for the business. */\n underwritingAnswers?: InputMaybe>;\n /** The year the business was founded. */\n yearOfFounding?: InputMaybe;\n /** The years of management experience of the business. */\n yearsOfManagementExperience?: InputMaybe;\n};\n\nexport type UpdateBusinessPolicyInput = {\n /** Additional fees collected by Oyster as revenue. */\n agencyFees?: InputMaybe;\n ascendBillableId?: InputMaybe;\n ascendProgramId?: InputMaybe;\n /** Fees collected by the wholesale broker */\n brokerFees?: InputMaybe;\n /** The portion of the wholesale broker fees that get kicked back to Oyster, as revenue */\n brokerFeesOysterPortion?: InputMaybe;\n brokerId?: InputMaybe;\n carrierId?: InputMaybe;\n estimatedCommission?: InputMaybe;\n expiresAt?: InputMaybe;\n inforceAt?: InputMaybe;\n issuedAt?: InputMaybe;\n market?: InputMaybe;\n minimumEarnedPremium?: InputMaybe;\n /** Other fees incurred on this policy, not collected by Oyster as revenue */\n otherFees?: InputMaybe;\n paymentIntervalType?: InputMaybe;\n paymentOccurrencesPerInterval?: InputMaybe;\n /** Fees collected by the carrier to administer the policy or program */\n policyFees?: InputMaybe;\n policyNumber?: InputMaybe;\n /** The actual premium of the policy */\n premium?: InputMaybe;\n quoteNumber?: InputMaybe;\n sourceAgentId?: InputMaybe;\n sourceLeadId?: InputMaybe;\n sourceNotes?: InputMaybe;\n sourceProcessType?: InputMaybe;\n sourceSubType?: InputMaybe;\n sourceType?: InputMaybe;\n state?: InputMaybe;\n /** Taxes levied on the policy premium and any taxable fees */\n taxes?: InputMaybe;\n /** Total amount to charge for the policy, including premium and all taxes and fees */\n total?: InputMaybe;\n type?: InputMaybe;\n updateReason: Scalars['String']['input'];\n};\n\n/** Describes the type of entity that initiated an update */\nexport enum UpdateInitiatorType {\n /** Anonymous indicates an unauthenticated external user */\n Anonymous = 'ANONYMOUS',\n /** BPO indicates a Business Process Outsourcing entity */\n Bpo = 'BPO',\n /** Cronjob indicates a scheduled automated job */\n Cronjob = 'CRONJOB',\n /** Oyster indicates an internal employee at Oyster */\n Oyster = 'OYSTER',\n /** User indicates an authenticated external user */\n User = 'USER',\n /** Workflow indicates a Temporal workflow */\n Workflow = 'WORKFLOW'\n}\n\n/** Input type for updating an existing merchant */\nexport type UpdateMerchantInput = {\n /** New business category ID for the merchant */\n businessCategoryId?: InputMaybe;\n /** New 'Doing Business As' name of the business */\n businessDba?: InputMaybe;\n /** New legal name of the business */\n businessName?: InputMaybe;\n};\n\n/** Enumeration of validation codes used to categorize validation errors. */\nexport enum ValidationCode {\n /** Indicates that a required field is missing */\n Required = 'REQUIRED',\n /** Indicates that a field failed validation checks */\n ValidationFailed = 'VALIDATION_FAILED'\n}\n\n/** Describes a validation error for a specific field or set of fields. */\nexport type ValidationError = {\n __typename?: 'ValidationError';\n /** The type of validation error that occurred */\n code: ValidationCode;\n /** An array of field names associated with the validation error. May contain multiple fields for related errors. */\n field: Array;\n /** A human-readable message describing the validation error */\n message: Scalars['String']['output'];\n};\n\nexport type CertificateDetailsFieldsFragment = {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n producer: { __typename?: 'CertificateEntity'; name: string; address: string };\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n coverages: Array<{\n __typename?: 'CertificateCoverage';\n type: InsuranceType;\n effectiveDate: Date;\n expirationDate: Date;\n policyNumber: string;\n holderIsAdditionalInsured: boolean;\n hasWaiverOfSubrogation: boolean;\n limits: Array<{ __typename?: 'CertificateLimit'; name: string; limit: number }>;\n insurer: { __typename?: 'CoverageInsurer'; name: string; naic: string };\n }>;\n};\n\nexport type GetCertificateQueryVariables = Exact<{\n certificateNumber: Scalars['String']['input'];\n}>;\n\nexport type GetCertificateQuery = {\n __typename?: 'Query';\n certificate?:\n | {\n __typename?: 'File';\n url?: string | null | undefined;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n producer: { __typename?: 'CertificateEntity'; name: string; address: string };\n certificateHolder: {\n __typename?: 'CertificateEntity';\n name: string;\n address: string;\n };\n coverages: Array<{\n __typename?: 'CertificateCoverage';\n type: InsuranceType;\n effectiveDate: Date;\n expirationDate: Date;\n policyNumber: string;\n holderIsAdditionalInsured: boolean;\n hasWaiverOfSubrogation: boolean;\n limits: Array<{ __typename?: 'CertificateLimit'; name: string; limit: number }>;\n insurer: { __typename?: 'CoverageInsurer'; name: string; naic: string };\n }>;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type GenerateCertificateMutationVariables = Exact<{\n req: GenerateCertificateInput;\n}>;\n\nexport type GenerateCertificateMutation = {\n __typename?: 'Mutation';\n generateCertificate?:\n | {\n __typename?: 'File';\n details?:\n | { __typename?: 'CertificateDetails'; certificateNumber: string }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type GetCoverageLimitsQueryVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n state: Scalars['String']['input'];\n}>;\n\nexport type GetCoverageLimitsQuery = {\n __typename?: 'Query';\n coverageLimits: Array<{\n __typename?: 'AvailableCoverageLimit';\n insuranceType: InsuranceType;\n limits: {\n __typename?: 'InsuranceLimits';\n bopAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n coverageState: string;\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n};\n\nexport type ApplicationFieldsFragment = {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n};\n\nexport type ApplicationQuoteFieldsFragment = {\n __typename?: 'BusinessApplication';\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n};\n\nexport type ApplicationQuotableCarrierFieldsFragment = {\n __typename?: 'BusinessApplication';\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n};\n\nexport type GetBusinessApplicationQueryVariables = Exact<{\n id: Scalars['ID']['input'];\n includeQuotes?: InputMaybe;\n includeQuotableCarriers?: InputMaybe;\n}>;\n\nexport type GetBusinessApplicationQuery = {\n __typename?: 'Query';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type CreateBusinessApplicationMutationVariables = Exact<{\n application: CreateApplicationInput;\n}>;\n\nexport type CreateBusinessApplicationMutation = {\n __typename?: 'Mutation';\n createBusinessApplication: { __typename?: 'BusinessApplication'; id: string };\n};\n\nexport type UpdateBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n application: UpdateApplicationInput;\n includeQuotes?: InputMaybe;\n includeQuotableCarriers?: InputMaybe;\n}>;\n\nexport type UpdateBusinessApplicationMutation = {\n __typename?: 'Mutation';\n updateBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type QuoteBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type QuoteBusinessApplicationMutation = {\n __typename?: 'Mutation';\n quoteBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type SubmitBusinessApplicationMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type SubmitBusinessApplicationMutation = {\n __typename?: 'Mutation';\n submitBusinessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type AddBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n}>;\n\nexport type AddBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type UpdateBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n location: BusinessLocationInput;\n}>;\n\nexport type UpdateBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type RemoveBusinessApplicationLocationMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n locationId: Scalars['ID']['input'];\n}>;\n\nexport type RemoveBusinessApplicationLocationMutation = {\n __typename?: 'Mutation';\n businessApplication: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n };\n};\n\nexport type BindQuoteMutationVariables = Exact<{\n applicationId: Scalars['ID']['input'];\n quoteId: Scalars['ID']['input'];\n paymentPlanId?: InputMaybe;\n paymentMethod?: InputMaybe;\n}>;\n\nexport type BindQuoteMutation = {\n __typename?: 'Mutation';\n bindQuote: {\n __typename?: 'BusinessApplication';\n annualRevenue: number;\n businessDba: string;\n businessName: string;\n fein: string;\n id: string;\n insuranceEffectiveAt?: Date | null | undefined;\n insuranceTypes: Array;\n legalEntityType?: BusinessLegalEntityType | null | undefined;\n naicsCode: string;\n selectedCarriers: Array;\n state: BusinessApplicationState;\n yearOfFounding: string;\n yearsOfManagementExperience: number;\n contact: { __typename?: 'BusinessContact'; fullName: string; email: string; phone: string };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numFullTimeEmployees: number;\n numPartTimeEmployees: number;\n totalEmployeePayroll: number;\n };\n locations: Array<{\n __typename?: 'BusinessLocation';\n id: string;\n isPrimary: boolean;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n buildingInfo: {\n __typename?: 'BusinessLocationBuildingInfo';\n annualSales: number;\n areaOccupiedByBusiness: number;\n buildingCoverage: number;\n burglarAlarmType?: BurglarAlarmType | null | undefined;\n constructionType?: BuildingConstructionType | null | undefined;\n ownershipType?: BuildingOwnershipType | null | undefined;\n personalPropertyCoverage: number;\n sprinkleredPercentage: number;\n totalArea: number;\n totalStories: number;\n yearBuilt: string;\n };\n employeeInfo: {\n __typename?: 'BusinessEmployeeInfo';\n numPartTimeEmployees: number;\n numFullTimeEmployees: number;\n totalEmployeePayroll: number;\n jobCode: string;\n };\n }>;\n mailingAddress: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n owners: Array<{\n __typename?: 'BusinessOwner';\n fullName: string;\n annualPayroll: number;\n dateOfBirth?: Date | null | undefined;\n jobCode?: string | null | undefined;\n }>;\n pastPolicyLosses: Array<{\n __typename?: 'PastPolicyLoss';\n claimDate?: Date | null | undefined;\n claimStatus?: PastPolicyLossClaimStatus | null | undefined;\n lossDate?: Date | null | undefined;\n lossDescription: string;\n lossState: string;\n lossType?: PastPolicyLossType | null | undefined;\n policyEffectiveDate?: Date | null | undefined;\n policyExpirationDate?: Date | null | undefined;\n policyType?: InsuranceType | null | undefined;\n totalPaidAmount: number;\n totalReservedAmount: number;\n }>;\n selectedLimits: {\n __typename?: 'InsuranceLimits';\n coverageState: string;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n bopPerOccurrenceLimit?: number | null | undefined;\n bopAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n cyberAggregateLimit?: number | null | undefined;\n };\n underwritingAnswers: Array<{\n __typename?: 'UnderwritingAnswer';\n answer: string;\n locationId?: string | null | undefined;\n questionId: string;\n }>;\n underwritingQuestions: Array<{\n __typename?: 'UnderwritingQuestion';\n id: string;\n carriers: Array;\n defaultAnswer?: string | null | undefined;\n hasParentQuestion: boolean;\n locationId?: string | null | undefined;\n question: string;\n tooltip: string;\n type: UnderwritingQuestionType;\n answerOptions?:\n | Array<{ __typename?: 'UnderwritingAnswerOption'; displayText: string; value: string }>\n | null\n | undefined;\n dependentQuestions: Array<{\n __typename?: 'UnderwritingQuestionDependency';\n condition?: string | null | undefined;\n dependentQuestionIds: Array;\n type: UnderwritingQuestionDependencyType;\n }>;\n }>;\n underwritingStatements: Array<{\n __typename?: 'UnderwritingStatement';\n carrier: BusinessApplicationCarrier;\n markdown: string;\n }>;\n quotes: Array<{\n __typename?: 'BusinessApplicationQuote';\n carrier: BusinessApplicationCarrier;\n id: string;\n policyType: InsuranceType;\n premiumAmount: number;\n quoteProposalUrl?: string | null | undefined;\n state: BusinessApplicationQuoteState;\n totalAmount: number;\n type: BusinessApplicationQuoteType;\n paymentPlans: Array<{\n __typename?: 'BusinessApplicationQuotePaymentPlan';\n description: string;\n downAmount: number;\n downDueAt?: Date | null | undefined;\n installmentAmount: number;\n installmentCount: number;\n installmentDueAt?: Date | null | undefined;\n installmentFee: number;\n installmentFrequency: PaymentPlanInstallmentFrequency;\n paymentMethod: PaymentPlanPaymentMethodType;\n paymentPlanId: string;\n title: string;\n totalAmount: number;\n totalFees: number;\n }>;\n }>;\n quotableCarriers: Array<{\n __typename?: 'InsuranceCarrier';\n ascendId?: string | null | undefined;\n id: string;\n isBroker: boolean;\n isCarrier: boolean;\n name: string;\n supportedPolicies?: Array | null | undefined;\n }>;\n };\n};\n\nexport type BusinessPolicyDetailFieldsFragment = {\n __typename?: 'BusinessPolicy';\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n};\n\nexport type BusinessPolicyFieldsFragment = {\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n};\n\nexport type GetMerchantBusinessPoliciesQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetMerchantBusinessPoliciesQuery = {\n __typename?: 'Query';\n businessPolicies: Array<{\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n }>;\n};\n\nexport type GetMerchantBusinessPolicyQueryVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type GetMerchantBusinessPolicyQuery = {\n __typename?: 'Query';\n businessPolicy?:\n | {\n __typename?: 'BusinessPolicy';\n id: string;\n type: InsuranceType;\n policyNumber: string;\n state: PolicyState;\n inforceAt?: Date | null | undefined;\n expiresAt?: Date | null | undefined;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n }>;\n carrier: { __typename?: 'InsuranceCarrier'; name: string };\n pricing: {\n __typename?: 'BusinessPolicyPricing';\n billingType: BusinessPolicyBillingType;\n intervalType?: PaymentIntervalType | null | undefined;\n premium: number;\n total: number;\n };\n details?:\n | {\n __typename?: 'BusinessPolicyExtractedDetails';\n deductible?: number | null | undefined;\n policyNumber?: string | null | undefined;\n summary?: string | null | undefined;\n blanketAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyBlanketAdditionalInsured';\n type: string;\n description: string;\n }>;\n carrier?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n coverageDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n exclusionDescriptions: Array<{\n __typename?: 'BusinessPolicyCoverageOrExclusionDescription';\n description: string;\n policyQuotes: Array;\n title: string;\n }>;\n extraLimits: Array<{\n __typename?: 'BusinessPolicyExtraInsuranceLimit';\n limit: number;\n name: string;\n }>;\n insured?:\n | {\n __typename?: 'BusinessPolicyEntity';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }\n | null\n | undefined;\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n locations: Array<{\n __typename?: 'BusinessPolicyLocation';\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n limits: {\n __typename?: 'BusinessPolicyInsuranceLimits';\n cyberAggregateLimit?: number | null | undefined;\n cyberRetentionLimit?: number | null | undefined;\n glAggregateLimit?: number | null | undefined;\n glMedicalPerOccurrenceLimit?: number | null | undefined;\n glMedicalPerPersonLimit?: number | null | undefined;\n glPerOccurrenceLimit?: number | null | undefined;\n glPersonalAndAdvertisingInjuryLimit?: number | null | undefined;\n glProductsAndCompletedOperationsLimit?: number | null | undefined;\n glRentedPremisesDamageLimit?: number | null | undefined;\n propertyBuildingLimit?: number | null | undefined;\n propertyContentsLimit?: number | null | undefined;\n umbrellaOrExcessAggregateLimit?: number | null | undefined;\n umbrellaOrExcessPerOccurrenceLimit?: number | null | undefined;\n wcPerAccidentLimit?: number | null | undefined;\n wcPerDiseaseEmployeeLimit?: number | null | undefined;\n wcPerDiseasePolicyLimit?: number | null | undefined;\n };\n }>;\n namedAdditionalInsureds: Array<{\n __typename?: 'BusinessPolicyNamedAdditionalInsured';\n name: string;\n address: {\n __typename?: 'Address';\n line1: string;\n line2?: string | null | undefined;\n city: string;\n zone: string;\n postalCode: string;\n };\n }>;\n }\n | null\n | undefined;\n }\n | null\n | undefined;\n};\n\nexport type FileFieldsFragment = {\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n};\n\nexport type MerchantFieldsFragment = {\n __typename?: 'Merchant';\n id: string;\n name: string;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: { __typename?: 'CertificateEntity'; name: string; address: string };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n }>;\n};\n\nexport type GetMerchantQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetMerchantQuery = {\n __typename?: 'Query';\n merchant?:\n | {\n __typename?: 'Merchant';\n id: string;\n name: string;\n files: Array<{\n __typename?: 'File';\n id: string;\n name: string;\n role: FileRole;\n url?: string | null | undefined;\n createdAt: Date;\n details?:\n | {\n __typename?: 'CertificateDetails';\n certificateNumber: string;\n descriptionOfOperations: string;\n certificateHolder: {\n __typename?: 'CertificateEntity';\n name: string;\n address: string;\n };\n insured: { __typename?: 'CertificateEntity'; name: string; address: string };\n }\n | null\n | undefined;\n }>;\n }\n | null\n | undefined;\n};\n\nexport type ActionItemFieldsFragment = {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n};\n\nexport type RiskManagementDataFieldsFragment = {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n};\n\nexport type RiskManagementSetupMutationVariables = Exact<{\n description: Scalars['String']['input'];\n changeDescription: Scalars['String']['input'];\n complianceFrameworks: Scalars['String']['input'];\n}>;\n\nexport type RiskManagementSetupMutation = {\n __typename?: 'Mutation';\n riskManagementSetup: {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n };\n};\n\nexport type GetRiskManagementQueryVariables = Exact<{ [key: string]: never }>;\n\nexport type GetRiskManagementQuery = {\n __typename?: 'Query';\n riskManagement?:\n | {\n __typename?: 'RiskManagementData';\n compliance: Array<{\n __typename?: 'ComplianceGroup';\n slug: string;\n title: string;\n description: string;\n items: Array<{\n __typename?: 'ComplianceItem';\n description: string;\n id: string;\n slug: string;\n title: string;\n actions: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | {\n __typename?: 'ComplianceActionAssignee';\n email: string;\n id: string;\n name: string;\n }\n | null\n | undefined;\n completedBy?:\n | {\n __typename?: 'ComplianceActionAssignee';\n email: string;\n id: string;\n name: string;\n }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n referenceMaterials: Array<{\n __typename?: 'ComplianceReferenceMaterial';\n description: string;\n title: string;\n url: string;\n }>;\n requirements: Array<{\n __typename?: 'ComplianceRequirement';\n description: string;\n title: string;\n }>;\n standards: Array<{\n __typename?: 'ComplianceStandard';\n description: string;\n title: string;\n url: string;\n }>;\n }>;\n }>;\n actionItems: Array<{\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n }>;\n }\n | null\n | undefined;\n};\n\nexport type RiskManagementSetActionItemDueDateMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n dueDate: Scalars['Time']['input'];\n}>;\n\nexport type RiskManagementSetActionItemDueDateMutation = {\n __typename?: 'Mutation';\n riskManagementSetActionItemDueDate: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type RiskManagementSetActionItemAssigneeMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n}>;\n\nexport type RiskManagementSetActionItemAssigneeMutation = {\n __typename?: 'Mutation';\n riskManagementSetActionItemAssignee: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type RiskManagementMarkActionItemCompleteMutationVariables = Exact<{\n id: Scalars['ID']['input'];\n}>;\n\nexport type RiskManagementMarkActionItemCompleteMutation = {\n __typename?: 'Mutation';\n riskManagementMarkActionItemComplete: {\n __typename?: 'ComplianceAction';\n completionDate?: Date | null | undefined;\n description: string;\n dueDate: Date;\n id: string;\n status: ComplianceActionStatus;\n title: string;\n assignee?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completedBy?:\n | { __typename?: 'ComplianceActionAssignee'; email: string; id: string; name: string }\n | null\n | undefined;\n completionRequirements: Array<{\n __typename?: 'ComplianceActionCompletionRequirement';\n description: string;\n title: string;\n }>;\n complianceItems: Array<{ __typename?: 'ComplianceItem'; id: string; title: string }>;\n };\n};\n\nexport type PolicyConversationMessageFieldsFragment = {\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n};\n\nexport type GetPolicyConversationQueryVariables = Exact<{\n policyId: Scalars['ID']['input'];\n}>;\n\nexport type GetPolicyConversationQuery = {\n __typename?: 'Query';\n policyConversation: Array<{\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n }>;\n};\n\nexport type AddPolicyConversationMessageMutationVariables = Exact<{\n policyId: Scalars['ID']['input'];\n message: Scalars['String']['input'];\n}>;\n\nexport type AddPolicyConversationMessageMutation = {\n __typename?: 'Mutation';\n riskManagementAddPolicyConversationMessage: Array<{\n __typename?: 'PolicyConversationMessage';\n content: string;\n id: string;\n role: PolicyConversationMessageRole;\n timestamp: Date;\n attachments: Array<{\n __typename?: 'PolicyConversationMessageAttachment';\n content: string;\n type: PolicyConversationMessageAttachmentType;\n }>;\n }>;\n};\n\nexport const CertificateDetailsFieldsFragmentDoc = gql`\n fragment CertificateDetailsFields on CertificateDetails {\n certificateNumber\n insured {\n name\n address\n }\n producer {\n name\n address\n }\n certificateHolder {\n name\n address\n }\n descriptionOfOperations\n coverages {\n type\n effectiveDate\n expirationDate\n policyNumber\n holderIsAdditionalInsured\n hasWaiverOfSubrogation\n limits {\n name\n limit\n }\n insurer {\n name\n naic\n }\n }\n }\n`;\nexport const ApplicationFieldsFragmentDoc = gql`\n fragment ApplicationFields on BusinessApplication {\n annualRevenue\n businessDba\n businessName\n contact {\n fullName\n email\n phone\n }\n employeeInfo {\n numFullTimeEmployees\n numPartTimeEmployees\n totalEmployeePayroll\n }\n fein\n id\n insuranceEffectiveAt\n insuranceTypes\n legalEntityType\n locations {\n id\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n buildingInfo {\n annualSales\n areaOccupiedByBusiness\n buildingCoverage\n burglarAlarmType\n constructionType\n ownershipType\n personalPropertyCoverage\n sprinkleredPercentage\n totalArea\n totalStories\n yearBuilt\n }\n employeeInfo {\n numPartTimeEmployees\n numFullTimeEmployees\n totalEmployeePayroll\n jobCode\n }\n isPrimary\n }\n mailingAddress {\n line1\n line2\n city\n zone\n postalCode\n }\n naicsCode\n owners {\n fullName\n annualPayroll\n dateOfBirth\n jobCode\n }\n pastPolicyLosses {\n claimDate\n claimStatus\n lossDate\n lossDescription\n lossState\n lossType\n policyEffectiveDate\n policyExpirationDate\n policyType\n totalPaidAmount\n totalReservedAmount\n }\n selectedCarriers\n selectedLimits {\n coverageState\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n glPerOccurrenceLimit\n glAggregateLimit\n bopPerOccurrenceLimit\n bopAggregateLimit\n cyberRetentionLimit\n cyberAggregateLimit\n }\n state\n underwritingAnswers {\n answer\n locationId\n questionId\n }\n underwritingQuestions {\n id\n answerOptions {\n displayText\n value\n }\n carriers\n defaultAnswer\n dependentQuestions {\n condition\n dependentQuestionIds\n type\n }\n hasParentQuestion\n locationId\n question\n tooltip\n type\n }\n underwritingStatements {\n carrier\n markdown\n }\n yearOfFounding\n yearsOfManagementExperience\n }\n`;\nexport const ApplicationQuoteFieldsFragmentDoc = gql`\n fragment ApplicationQuoteFields on BusinessApplication {\n quotes {\n carrier\n id\n paymentPlans {\n description\n downAmount\n downDueAt\n installmentAmount\n installmentCount\n installmentDueAt\n installmentFee\n installmentFrequency\n paymentMethod\n paymentPlanId\n title\n totalAmount\n totalFees\n }\n policyType\n premiumAmount\n quoteProposalUrl\n state\n totalAmount\n type\n }\n }\n`;\nexport const ApplicationQuotableCarrierFieldsFragmentDoc = gql`\n fragment ApplicationQuotableCarrierFields on BusinessApplication {\n quotableCarriers {\n ascendId\n id\n isBroker\n isCarrier\n name\n supportedPolicies\n }\n }\n`;\nexport const BusinessPolicyDetailFieldsFragmentDoc = gql`\n fragment BusinessPolicyDetailFields on BusinessPolicy {\n details {\n blanketAdditionalInsureds {\n type\n description\n }\n carrier {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n coverageDescriptions {\n description\n policyQuotes\n title\n }\n deductible\n exclusionDescriptions {\n description\n policyQuotes\n title\n }\n extraLimits {\n limit\n name\n }\n insured {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n limits {\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glMedicalPerOccurrenceLimit\n glMedicalPerPersonLimit\n glPerOccurrenceLimit\n glPersonalAndAdvertisingInjuryLimit\n glProductsAndCompletedOperationsLimit\n glRentedPremisesDamageLimit\n propertyBuildingLimit\n propertyContentsLimit\n umbrellaOrExcessAggregateLimit\n umbrellaOrExcessPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n locations {\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n limits {\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glMedicalPerOccurrenceLimit\n glMedicalPerPersonLimit\n glPerOccurrenceLimit\n glPersonalAndAdvertisingInjuryLimit\n glProductsAndCompletedOperationsLimit\n glRentedPremisesDamageLimit\n propertyBuildingLimit\n propertyContentsLimit\n umbrellaOrExcessAggregateLimit\n umbrellaOrExcessPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n }\n namedAdditionalInsureds {\n name\n address {\n line1\n line2\n city\n zone\n postalCode\n }\n }\n policyNumber\n summary\n }\n }\n`;\nexport const BusinessPolicyFieldsFragmentDoc = gql`\n fragment BusinessPolicyFields on BusinessPolicy {\n id\n type\n files {\n id\n name\n role\n url\n }\n policyNumber\n state\n inforceAt\n expiresAt\n carrier {\n name\n }\n pricing {\n billingType\n intervalType\n premium\n total\n }\n ...BusinessPolicyDetailFields\n }\n ${BusinessPolicyDetailFieldsFragmentDoc}\n`;\nexport const FileFieldsFragmentDoc = gql`\n fragment FileFields on File {\n id\n name\n role\n url\n createdAt\n details {\n ... on CertificateDetails {\n certificateNumber\n certificateHolder {\n name\n address\n }\n insured {\n name\n address\n }\n descriptionOfOperations\n }\n }\n }\n`;\nexport const MerchantFieldsFragmentDoc = gql`\n fragment MerchantFields on Merchant {\n id\n name\n files {\n ...FileFields\n }\n }\n ${FileFieldsFragmentDoc}\n`;\nexport const ActionItemFieldsFragmentDoc = gql`\n fragment ActionItemFields on ComplianceAction {\n assignee {\n email\n id\n name\n }\n completedBy {\n email\n id\n name\n }\n completionDate\n completionRequirements {\n description\n title\n }\n complianceItems {\n id\n title\n }\n description\n dueDate\n id\n status\n title\n }\n`;\nexport const RiskManagementDataFieldsFragmentDoc = gql`\n fragment RiskManagementDataFields on RiskManagementData {\n compliance {\n slug\n title\n description\n items {\n actions {\n ...ActionItemFields\n }\n description\n id\n referenceMaterials {\n description\n title\n url\n }\n requirements {\n description\n title\n }\n slug\n standards {\n description\n title\n url\n }\n title\n }\n }\n actionItems {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport const PolicyConversationMessageFieldsFragmentDoc = gql`\n fragment PolicyConversationMessageFields on PolicyConversationMessage {\n attachments {\n content\n type\n }\n content\n id\n role\n timestamp\n }\n`;\nexport const GetCertificateDocument = gql`\n query GetCertificate($certificateNumber: String!) {\n certificate(certificateNumber: $certificateNumber) {\n url\n details {\n ...CertificateDetailsFields\n }\n }\n }\n ${CertificateDetailsFieldsFragmentDoc}\n`;\n\n/**\n * __useGetCertificateQuery__\n *\n * To run a query within a React component, call `useGetCertificateQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetCertificateQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetCertificateQuery({\n * variables: {\n * certificateNumber: // value for 'certificateNumber'\n * },\n * });\n */\nexport function useGetCertificateQuery(\n baseOptions: Apollo.QueryHookOptions &\n ({ variables: GetCertificateQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetCertificateDocument,\n options\n );\n}\nexport function useGetCertificateLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetCertificateDocument,\n options\n );\n}\nexport function useGetCertificateSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetCertificateDocument,\n options\n );\n}\nexport type GetCertificateQueryHookResult = ReturnType;\nexport type GetCertificateLazyQueryHookResult = ReturnType;\nexport type GetCertificateSuspenseQueryHookResult = ReturnType<\n typeof useGetCertificateSuspenseQuery\n>;\nexport type GetCertificateQueryResult = Apollo.QueryResult<\n GetCertificateQuery,\n GetCertificateQueryVariables\n>;\nexport const GenerateCertificateDocument = gql`\n mutation GenerateCertificate($req: GenerateCertificateInput!) {\n generateCertificate(req: $req) {\n details {\n ... on CertificateDetails {\n certificateNumber\n }\n }\n }\n }\n`;\nexport type GenerateCertificateMutationFn = Apollo.MutationFunction<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n>;\n\n/**\n * __useGenerateCertificateMutation__\n *\n * To run a mutation, you first call `useGenerateCertificateMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useGenerateCertificateMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [generateCertificateMutation, { data, loading, error }] = useGenerateCertificateMutation({\n * variables: {\n * req: // value for 'req'\n * },\n * });\n */\nexport function useGenerateCertificateMutation(\n baseOptions?: Apollo.MutationHookOptions<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n GenerateCertificateDocument,\n options\n );\n}\nexport type GenerateCertificateMutationHookResult = ReturnType<\n typeof useGenerateCertificateMutation\n>;\nexport type GenerateCertificateMutationResult = Apollo.MutationResult;\nexport type GenerateCertificateMutationOptions = Apollo.BaseMutationOptions<\n GenerateCertificateMutation,\n GenerateCertificateMutationVariables\n>;\nexport const GetCoverageLimitsDocument = gql`\n query GetCoverageLimits($applicationId: ID!, $state: String!) {\n coverageLimits(applicationId: $applicationId, state: $state) {\n insuranceType\n limits {\n bopAggregateLimit\n bopPerOccurrenceLimit\n coverageState\n cyberAggregateLimit\n cyberRetentionLimit\n glAggregateLimit\n glPerOccurrenceLimit\n wcPerAccidentLimit\n wcPerDiseaseEmployeeLimit\n wcPerDiseasePolicyLimit\n }\n }\n }\n`;\n\n/**\n * __useGetCoverageLimitsQuery__\n *\n * To run a query within a React component, call `useGetCoverageLimitsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetCoverageLimitsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetCoverageLimitsQuery({\n * variables: {\n * applicationId: // value for 'applicationId'\n * state: // value for 'state'\n * },\n * });\n */\nexport function useGetCoverageLimitsQuery(\n baseOptions: Apollo.QueryHookOptions &\n ({ variables: GetCoverageLimitsQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport function useGetCoverageLimitsLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport function useGetCoverageLimitsSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetCoverageLimitsQuery,\n GetCoverageLimitsQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetCoverageLimitsDocument,\n options\n );\n}\nexport type GetCoverageLimitsQueryHookResult = ReturnType;\nexport type GetCoverageLimitsLazyQueryHookResult = ReturnType;\nexport type GetCoverageLimitsSuspenseQueryHookResult = ReturnType<\n typeof useGetCoverageLimitsSuspenseQuery\n>;\nexport type GetCoverageLimitsQueryResult = Apollo.QueryResult<\n GetCoverageLimitsQuery,\n GetCoverageLimitsQueryVariables\n>;\nexport const GetBusinessApplicationDocument = gql`\n query GetBusinessApplication(\n $id: ID!\n $includeQuotes: Boolean = false\n $includeQuotableCarriers: Boolean = false\n ) {\n businessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields @include(if: $includeQuotes)\n ...ApplicationQuotableCarrierFields @include(if: $includeQuotableCarriers)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\n\n/**\n * __useGetBusinessApplicationQuery__\n *\n * To run a query within a React component, call `useGetBusinessApplicationQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetBusinessApplicationQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetBusinessApplicationQuery({\n * variables: {\n * id: // value for 'id'\n * includeQuotes: // value for 'includeQuotes'\n * includeQuotableCarriers: // value for 'includeQuotableCarriers'\n * },\n * });\n */\nexport function useGetBusinessApplicationQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n > &\n ({ variables: GetBusinessApplicationQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport function useGetBusinessApplicationLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport function useGetBusinessApplicationSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetBusinessApplicationDocument,\n options\n );\n}\nexport type GetBusinessApplicationQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationQuery\n>;\nexport type GetBusinessApplicationLazyQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationLazyQuery\n>;\nexport type GetBusinessApplicationSuspenseQueryHookResult = ReturnType<\n typeof useGetBusinessApplicationSuspenseQuery\n>;\nexport type GetBusinessApplicationQueryResult = Apollo.QueryResult<\n GetBusinessApplicationQuery,\n GetBusinessApplicationQueryVariables\n>;\nexport const CreateBusinessApplicationDocument = gql`\n mutation CreateBusinessApplication($application: CreateApplicationInput!) {\n createBusinessApplication(application: $application) {\n id\n }\n }\n`;\nexport type CreateBusinessApplicationMutationFn = Apollo.MutationFunction<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n>;\n\n/**\n * __useCreateBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useCreateBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createBusinessApplicationMutation, { data, loading, error }] = useCreateBusinessApplicationMutation({\n * variables: {\n * application: // value for 'application'\n * },\n * });\n */\nexport function useCreateBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n >(CreateBusinessApplicationDocument, options);\n}\nexport type CreateBusinessApplicationMutationHookResult = ReturnType<\n typeof useCreateBusinessApplicationMutation\n>;\nexport type CreateBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type CreateBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n CreateBusinessApplicationMutation,\n CreateBusinessApplicationMutationVariables\n>;\nexport const UpdateBusinessApplicationDocument = gql`\n mutation UpdateBusinessApplication(\n $id: ID!\n $application: UpdateApplicationInput!\n $includeQuotes: Boolean = false\n $includeQuotableCarriers: Boolean = false\n ) {\n updateBusinessApplication(id: $id, application: $application) {\n ...ApplicationFields\n ...ApplicationQuoteFields @include(if: $includeQuotes)\n ...ApplicationQuotableCarrierFields @include(if: $includeQuotableCarriers)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type UpdateBusinessApplicationMutationFn = Apollo.MutationFunction<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n>;\n\n/**\n * __useUpdateBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useUpdateBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateBusinessApplicationMutation, { data, loading, error }] = useUpdateBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * application: // value for 'application'\n * includeQuotes: // value for 'includeQuotes'\n * includeQuotableCarriers: // value for 'includeQuotableCarriers'\n * },\n * });\n */\nexport function useUpdateBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n >(UpdateBusinessApplicationDocument, options);\n}\nexport type UpdateBusinessApplicationMutationHookResult = ReturnType<\n typeof useUpdateBusinessApplicationMutation\n>;\nexport type UpdateBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type UpdateBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n UpdateBusinessApplicationMutation,\n UpdateBusinessApplicationMutationVariables\n>;\nexport const QuoteBusinessApplicationDocument = gql`\n mutation QuoteBusinessApplication($id: ID!) {\n quoteBusinessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type QuoteBusinessApplicationMutationFn = Apollo.MutationFunction<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n>;\n\n/**\n * __useQuoteBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useQuoteBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useQuoteBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [quoteBusinessApplicationMutation, { data, loading, error }] = useQuoteBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useQuoteBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n >(QuoteBusinessApplicationDocument, options);\n}\nexport type QuoteBusinessApplicationMutationHookResult = ReturnType<\n typeof useQuoteBusinessApplicationMutation\n>;\nexport type QuoteBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type QuoteBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n QuoteBusinessApplicationMutation,\n QuoteBusinessApplicationMutationVariables\n>;\nexport const SubmitBusinessApplicationDocument = gql`\n mutation SubmitBusinessApplication($id: ID!) {\n submitBusinessApplication(id: $id) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type SubmitBusinessApplicationMutationFn = Apollo.MutationFunction<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n>;\n\n/**\n * __useSubmitBusinessApplicationMutation__\n *\n * To run a mutation, you first call `useSubmitBusinessApplicationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSubmitBusinessApplicationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [submitBusinessApplicationMutation, { data, loading, error }] = useSubmitBusinessApplicationMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useSubmitBusinessApplicationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n >(SubmitBusinessApplicationDocument, options);\n}\nexport type SubmitBusinessApplicationMutationHookResult = ReturnType<\n typeof useSubmitBusinessApplicationMutation\n>;\nexport type SubmitBusinessApplicationMutationResult =\n Apollo.MutationResult;\nexport type SubmitBusinessApplicationMutationOptions = Apollo.BaseMutationOptions<\n SubmitBusinessApplicationMutation,\n SubmitBusinessApplicationMutationVariables\n>;\nexport const AddBusinessApplicationLocationDocument = gql`\n mutation AddBusinessApplicationLocation($applicationId: ID!, $location: BusinessLocationInput!) {\n businessApplication: addBusinessLocation(applicationId: $applicationId, location: $location) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type AddBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useAddBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useAddBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addBusinessApplicationLocationMutation, { data, loading, error }] = useAddBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * location: // value for 'location'\n * },\n * });\n */\nexport function useAddBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n >(AddBusinessApplicationLocationDocument, options);\n}\nexport type AddBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useAddBusinessApplicationLocationMutation\n>;\nexport type AddBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type AddBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n AddBusinessApplicationLocationMutation,\n AddBusinessApplicationLocationMutationVariables\n>;\nexport const UpdateBusinessApplicationLocationDocument = gql`\n mutation UpdateBusinessApplicationLocation(\n $applicationId: ID!\n $locationId: ID!\n $location: BusinessLocationInput!\n ) {\n businessApplication: updateBusinessLocation(\n applicationId: $applicationId\n locationId: $locationId\n location: $location\n ) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type UpdateBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useUpdateBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useUpdateBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateBusinessApplicationLocationMutation, { data, loading, error }] = useUpdateBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * locationId: // value for 'locationId'\n * location: // value for 'location'\n * },\n * });\n */\nexport function useUpdateBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n >(UpdateBusinessApplicationLocationDocument, options);\n}\nexport type UpdateBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useUpdateBusinessApplicationLocationMutation\n>;\nexport type UpdateBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type UpdateBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n UpdateBusinessApplicationLocationMutation,\n UpdateBusinessApplicationLocationMutationVariables\n>;\nexport const RemoveBusinessApplicationLocationDocument = gql`\n mutation RemoveBusinessApplicationLocation($applicationId: ID!, $locationId: ID!) {\n businessApplication: removeBusinessLocation(\n applicationId: $applicationId\n locationId: $locationId\n ) {\n ...ApplicationFields\n }\n }\n ${ApplicationFieldsFragmentDoc}\n`;\nexport type RemoveBusinessApplicationLocationMutationFn = Apollo.MutationFunction<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n>;\n\n/**\n * __useRemoveBusinessApplicationLocationMutation__\n *\n * To run a mutation, you first call `useRemoveBusinessApplicationLocationMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRemoveBusinessApplicationLocationMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [removeBusinessApplicationLocationMutation, { data, loading, error }] = useRemoveBusinessApplicationLocationMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * locationId: // value for 'locationId'\n * },\n * });\n */\nexport function useRemoveBusinessApplicationLocationMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n >(RemoveBusinessApplicationLocationDocument, options);\n}\nexport type RemoveBusinessApplicationLocationMutationHookResult = ReturnType<\n typeof useRemoveBusinessApplicationLocationMutation\n>;\nexport type RemoveBusinessApplicationLocationMutationResult =\n Apollo.MutationResult;\nexport type RemoveBusinessApplicationLocationMutationOptions = Apollo.BaseMutationOptions<\n RemoveBusinessApplicationLocationMutation,\n RemoveBusinessApplicationLocationMutationVariables\n>;\nexport const BindQuoteDocument = gql`\n mutation BindQuote(\n $applicationId: ID!\n $quoteId: ID!\n $paymentPlanId: String\n $paymentMethod: PaymentPlanPaymentMethodType\n ) {\n bindQuote(\n applicationId: $applicationId\n quoteId: $quoteId\n paymentPlanId: $paymentPlanId\n paymentMethod: $paymentMethod\n ) {\n ...ApplicationFields\n ...ApplicationQuoteFields\n ...ApplicationQuotableCarrierFields @include(if: false)\n }\n }\n ${ApplicationFieldsFragmentDoc}\n ${ApplicationQuoteFieldsFragmentDoc}\n ${ApplicationQuotableCarrierFieldsFragmentDoc}\n`;\nexport type BindQuoteMutationFn = Apollo.MutationFunction<\n BindQuoteMutation,\n BindQuoteMutationVariables\n>;\n\n/**\n * __useBindQuoteMutation__\n *\n * To run a mutation, you first call `useBindQuoteMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useBindQuoteMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [bindQuoteMutation, { data, loading, error }] = useBindQuoteMutation({\n * variables: {\n * applicationId: // value for 'applicationId'\n * quoteId: // value for 'quoteId'\n * paymentPlanId: // value for 'paymentPlanId'\n * paymentMethod: // value for 'paymentMethod'\n * },\n * });\n */\nexport function useBindQuoteMutation(\n baseOptions?: Apollo.MutationHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n BindQuoteDocument,\n options\n );\n}\nexport type BindQuoteMutationHookResult = ReturnType;\nexport type BindQuoteMutationResult = Apollo.MutationResult;\nexport type BindQuoteMutationOptions = Apollo.BaseMutationOptions<\n BindQuoteMutation,\n BindQuoteMutationVariables\n>;\nexport const GetMerchantBusinessPoliciesDocument = gql`\n query GetMerchantBusinessPolicies {\n businessPolicies {\n ...BusinessPolicyFields\n }\n }\n ${BusinessPolicyFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantBusinessPoliciesQuery__\n *\n * To run a query within a React component, call `useGetMerchantBusinessPoliciesQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantBusinessPoliciesQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantBusinessPoliciesQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetMerchantBusinessPoliciesQuery(\n baseOptions?: Apollo.QueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport function useGetMerchantBusinessPoliciesLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport function useGetMerchantBusinessPoliciesSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n >(GetMerchantBusinessPoliciesDocument, options);\n}\nexport type GetMerchantBusinessPoliciesQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesQuery\n>;\nexport type GetMerchantBusinessPoliciesLazyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesLazyQuery\n>;\nexport type GetMerchantBusinessPoliciesSuspenseQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPoliciesSuspenseQuery\n>;\nexport type GetMerchantBusinessPoliciesQueryResult = Apollo.QueryResult<\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesQueryVariables\n>;\nexport const GetMerchantBusinessPolicyDocument = gql`\n query GetMerchantBusinessPolicy($id: ID!) {\n businessPolicy(id: $id) {\n ...BusinessPolicyFields\n }\n }\n ${BusinessPolicyFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantBusinessPolicyQuery__\n *\n * To run a query within a React component, call `useGetMerchantBusinessPolicyQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantBusinessPolicyQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantBusinessPolicyQuery({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useGetMerchantBusinessPolicyQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n > &\n ({ variables: GetMerchantBusinessPolicyQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetMerchantBusinessPolicyDocument,\n options\n );\n}\nexport function useGetMerchantBusinessPolicyLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >(GetMerchantBusinessPolicyDocument, options);\n}\nexport function useGetMerchantBusinessPolicySuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n >(GetMerchantBusinessPolicyDocument, options);\n}\nexport type GetMerchantBusinessPolicyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicyQuery\n>;\nexport type GetMerchantBusinessPolicyLazyQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicyLazyQuery\n>;\nexport type GetMerchantBusinessPolicySuspenseQueryHookResult = ReturnType<\n typeof useGetMerchantBusinessPolicySuspenseQuery\n>;\nexport type GetMerchantBusinessPolicyQueryResult = Apollo.QueryResult<\n GetMerchantBusinessPolicyQuery,\n GetMerchantBusinessPolicyQueryVariables\n>;\nexport const GetMerchantDocument = gql`\n query GetMerchant {\n merchant {\n ...MerchantFields\n }\n }\n ${MerchantFieldsFragmentDoc}\n`;\n\n/**\n * __useGetMerchantQuery__\n *\n * To run a query within a React component, call `useGetMerchantQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMerchantQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMerchantQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetMerchantQuery(\n baseOptions?: Apollo.QueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(GetMerchantDocument, options);\n}\nexport function useGetMerchantLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetMerchantDocument,\n options\n );\n}\nexport function useGetMerchantSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetMerchantDocument,\n options\n );\n}\nexport type GetMerchantQueryHookResult = ReturnType;\nexport type GetMerchantLazyQueryHookResult = ReturnType;\nexport type GetMerchantSuspenseQueryHookResult = ReturnType;\nexport type GetMerchantQueryResult = Apollo.QueryResult<\n GetMerchantQuery,\n GetMerchantQueryVariables\n>;\nexport const RiskManagementSetupDocument = gql`\n mutation RiskManagementSetup(\n $description: String!\n $changeDescription: String!\n $complianceFrameworks: String!\n ) {\n riskManagementSetup(\n input: {\n description: $description\n changeDescription: $changeDescription\n complianceFrameworks: $complianceFrameworks\n }\n ) {\n ...RiskManagementDataFields\n }\n }\n ${RiskManagementDataFieldsFragmentDoc}\n`;\nexport type RiskManagementSetupMutationFn = Apollo.MutationFunction<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n>;\n\n/**\n * __useRiskManagementSetupMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetupMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetupMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetupMutation, { data, loading, error }] = useRiskManagementSetupMutation({\n * variables: {\n * description: // value for 'description'\n * changeDescription: // value for 'changeDescription'\n * complianceFrameworks: // value for 'complianceFrameworks'\n * },\n * });\n */\nexport function useRiskManagementSetupMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation(\n RiskManagementSetupDocument,\n options\n );\n}\nexport type RiskManagementSetupMutationHookResult = ReturnType<\n typeof useRiskManagementSetupMutation\n>;\nexport type RiskManagementSetupMutationResult = Apollo.MutationResult;\nexport type RiskManagementSetupMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetupMutation,\n RiskManagementSetupMutationVariables\n>;\nexport const GetRiskManagementDocument = gql`\n query GetRiskManagement {\n riskManagement {\n ...RiskManagementDataFields\n }\n }\n ${RiskManagementDataFieldsFragmentDoc}\n`;\n\n/**\n * __useGetRiskManagementQuery__\n *\n * To run a query within a React component, call `useGetRiskManagementQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetRiskManagementQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetRiskManagementQuery({\n * variables: {\n * },\n * });\n */\nexport function useGetRiskManagementQuery(\n baseOptions?: Apollo.QueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport function useGetRiskManagementLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport function useGetRiskManagementSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetRiskManagementQuery,\n GetRiskManagementQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetRiskManagementDocument,\n options\n );\n}\nexport type GetRiskManagementQueryHookResult = ReturnType;\nexport type GetRiskManagementLazyQueryHookResult = ReturnType;\nexport type GetRiskManagementSuspenseQueryHookResult = ReturnType<\n typeof useGetRiskManagementSuspenseQuery\n>;\nexport type GetRiskManagementQueryResult = Apollo.QueryResult<\n GetRiskManagementQuery,\n GetRiskManagementQueryVariables\n>;\nexport const RiskManagementSetActionItemDueDateDocument = gql`\n mutation RiskManagementSetActionItemDueDate($id: ID!, $dueDate: Time!) {\n riskManagementSetActionItemDueDate(id: $id, dueDate: $dueDate) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementSetActionItemDueDateMutationFn = Apollo.MutationFunction<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n>;\n\n/**\n * __useRiskManagementSetActionItemDueDateMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetActionItemDueDateMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetActionItemDueDateMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetActionItemDueDateMutation, { data, loading, error }] = useRiskManagementSetActionItemDueDateMutation({\n * variables: {\n * id: // value for 'id'\n * dueDate: // value for 'dueDate'\n * },\n * });\n */\nexport function useRiskManagementSetActionItemDueDateMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n >(RiskManagementSetActionItemDueDateDocument, options);\n}\nexport type RiskManagementSetActionItemDueDateMutationHookResult = ReturnType<\n typeof useRiskManagementSetActionItemDueDateMutation\n>;\nexport type RiskManagementSetActionItemDueDateMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementSetActionItemDueDateMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetActionItemDueDateMutation,\n RiskManagementSetActionItemDueDateMutationVariables\n>;\nexport const RiskManagementSetActionItemAssigneeDocument = gql`\n mutation RiskManagementSetActionItemAssignee($id: ID!, $userId: ID!) {\n riskManagementSetActionItemAssignee(id: $id, userId: $userId) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementSetActionItemAssigneeMutationFn = Apollo.MutationFunction<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n>;\n\n/**\n * __useRiskManagementSetActionItemAssigneeMutation__\n *\n * To run a mutation, you first call `useRiskManagementSetActionItemAssigneeMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementSetActionItemAssigneeMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementSetActionItemAssigneeMutation, { data, loading, error }] = useRiskManagementSetActionItemAssigneeMutation({\n * variables: {\n * id: // value for 'id'\n * userId: // value for 'userId'\n * },\n * });\n */\nexport function useRiskManagementSetActionItemAssigneeMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n >(RiskManagementSetActionItemAssigneeDocument, options);\n}\nexport type RiskManagementSetActionItemAssigneeMutationHookResult = ReturnType<\n typeof useRiskManagementSetActionItemAssigneeMutation\n>;\nexport type RiskManagementSetActionItemAssigneeMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementSetActionItemAssigneeMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementSetActionItemAssigneeMutation,\n RiskManagementSetActionItemAssigneeMutationVariables\n>;\nexport const RiskManagementMarkActionItemCompleteDocument = gql`\n mutation RiskManagementMarkActionItemComplete($id: ID!) {\n riskManagementMarkActionItemComplete(id: $id) {\n ...ActionItemFields\n }\n }\n ${ActionItemFieldsFragmentDoc}\n`;\nexport type RiskManagementMarkActionItemCompleteMutationFn = Apollo.MutationFunction<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n>;\n\n/**\n * __useRiskManagementMarkActionItemCompleteMutation__\n *\n * To run a mutation, you first call `useRiskManagementMarkActionItemCompleteMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useRiskManagementMarkActionItemCompleteMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [riskManagementMarkActionItemCompleteMutation, { data, loading, error }] = useRiskManagementMarkActionItemCompleteMutation({\n * variables: {\n * id: // value for 'id'\n * },\n * });\n */\nexport function useRiskManagementMarkActionItemCompleteMutation(\n baseOptions?: Apollo.MutationHookOptions<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n >(RiskManagementMarkActionItemCompleteDocument, options);\n}\nexport type RiskManagementMarkActionItemCompleteMutationHookResult = ReturnType<\n typeof useRiskManagementMarkActionItemCompleteMutation\n>;\nexport type RiskManagementMarkActionItemCompleteMutationResult =\n Apollo.MutationResult;\nexport type RiskManagementMarkActionItemCompleteMutationOptions = Apollo.BaseMutationOptions<\n RiskManagementMarkActionItemCompleteMutation,\n RiskManagementMarkActionItemCompleteMutationVariables\n>;\nexport const GetPolicyConversationDocument = gql`\n query GetPolicyConversation($policyId: ID!) {\n policyConversation(policyId: $policyId) {\n ...PolicyConversationMessageFields\n }\n }\n ${PolicyConversationMessageFieldsFragmentDoc}\n`;\n\n/**\n * __useGetPolicyConversationQuery__\n *\n * To run a query within a React component, call `useGetPolicyConversationQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetPolicyConversationQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetPolicyConversationQuery({\n * variables: {\n * policyId: // value for 'policyId'\n * },\n * });\n */\nexport function useGetPolicyConversationQuery(\n baseOptions: Apollo.QueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n > &\n ({ variables: GetPolicyConversationQueryVariables; skip?: boolean } | { skip: boolean })\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport function useGetPolicyConversationLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport function useGetPolicyConversationSuspenseQuery(\n baseOptions?: Apollo.SuspenseQueryHookOptions<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery(\n GetPolicyConversationDocument,\n options\n );\n}\nexport type GetPolicyConversationQueryHookResult = ReturnType;\nexport type GetPolicyConversationLazyQueryHookResult = ReturnType<\n typeof useGetPolicyConversationLazyQuery\n>;\nexport type GetPolicyConversationSuspenseQueryHookResult = ReturnType<\n typeof useGetPolicyConversationSuspenseQuery\n>;\nexport type GetPolicyConversationQueryResult = Apollo.QueryResult<\n GetPolicyConversationQuery,\n GetPolicyConversationQueryVariables\n>;\nexport const AddPolicyConversationMessageDocument = gql`\n mutation AddPolicyConversationMessage($policyId: ID!, $message: String!) {\n riskManagementAddPolicyConversationMessage(policyId: $policyId, message: $message) {\n ...PolicyConversationMessageFields\n }\n }\n ${PolicyConversationMessageFieldsFragmentDoc}\n`;\nexport type AddPolicyConversationMessageMutationFn = Apollo.MutationFunction<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n>;\n\n/**\n * __useAddPolicyConversationMessageMutation__\n *\n * To run a mutation, you first call `useAddPolicyConversationMessageMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useAddPolicyConversationMessageMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [addPolicyConversationMessageMutation, { data, loading, error }] = useAddPolicyConversationMessageMutation({\n * variables: {\n * policyId: // value for 'policyId'\n * message: // value for 'message'\n * },\n * });\n */\nexport function useAddPolicyConversationMessageMutation(\n baseOptions?: Apollo.MutationHookOptions<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n >\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n >(AddPolicyConversationMessageDocument, options);\n}\nexport type AddPolicyConversationMessageMutationHookResult = ReturnType<\n typeof useAddPolicyConversationMessageMutation\n>;\nexport type AddPolicyConversationMessageMutationResult =\n Apollo.MutationResult;\nexport type AddPolicyConversationMessageMutationOptions = Apollo.BaseMutationOptions<\n AddPolicyConversationMessageMutation,\n AddPolicyConversationMessageMutationVariables\n>;\n","import { InsuranceType } from './graphql';\n\nexport const getDisplayInsuranceType = (type: InsuranceType | undefined): string => {\n switch (type) {\n case InsuranceType.AccidentAndHealth:\n return 'Accident and Health';\n case InsuranceType.BusinessOwners:\n return 'Business Owners';\n case InsuranceType.CommercialAuto:\n return 'Auto';\n case InsuranceType.Cyber:\n return 'Cyber';\n case InsuranceType.DirectorsAndOfficers:\n return 'Directors and Officers';\n case InsuranceType.EmploymentPracticesLiability:\n return 'Employment Practices Liability';\n case InsuranceType.ErrorsAndOmission:\n return 'Errors and Omission Liability';\n case InsuranceType.GeneralLiability:\n return 'General Liability';\n case InsuranceType.JewelersBlock:\n return 'Jewelers Block';\n case InsuranceType.Other:\n return 'Other';\n case InsuranceType.Package:\n return 'Package';\n case InsuranceType.ProductLiability:\n return 'Product Liability';\n case InsuranceType.ProfessionalLiability:\n return 'Professional Liability';\n case InsuranceType.Property:\n return 'Property';\n case InsuranceType.Rental:\n return 'Rental';\n case InsuranceType.ShippingAndTransportation:\n return 'Shipping and Transportation';\n case InsuranceType.UmbrellaOrExcess:\n return 'Umbrella or Excess';\n case InsuranceType.WorkersCompensation:\n return 'Workers Compensation';\n default:\n return 'Unknown';\n }\n};\n","/**\n * TODO: Update this component to use your client-side framework's link\n * component. We've provided examples of how to do this for Next.js, Remix, and\n * Inertia.js in the Catalyst documentation:\n *\n * https://catalyst.tailwindui.com/docs#client-side-router-integration\n */\n\nimport * as Headless from '@headlessui/react';\nimport React, { forwardRef } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\n\nexport const Link = forwardRef(function Link(\n props: { href: string } & React.ComponentPropsWithoutRef<'a'>,\n ref: React.ForwardedRef\n) {\n return props.href.startsWith('/') ? (\n \n \n \n ) : (\n \n \n \n );\n});\n","import clsx from 'clsx';\n\nconst colors = {\n red: 'border-t-red-500',\n orange: 'border-t-orange-500',\n amber: 'border-t-amber-400',\n yellow: 'border-t-yellow-400',\n lime: 'border-t-lime-400',\n green: 'border-t-green-500',\n emerald: 'border-t-emerald-500',\n teal: 'border-t-teal-500',\n cyan: 'border-t-cyan-400',\n sky: 'border-t-sky-500',\n blue: 'border-t-blue-500',\n indigo: 'border-t-indigo-500',\n violet: 'border-t-violet-500',\n purple: 'border-t-purple-500',\n fuchsia: 'border-t-fuchsia-400',\n pink: 'border-t-pink-400',\n rose: 'border-t-rose-400',\n zinc: 'border-t-zinc-600',\n neutral: 'border-t-neutral-500',\n white: 'border-t-white'\n};\n\nexport const Spinner = ({\n color,\n size\n}: {\n color?: keyof typeof colors;\n size?:\n | 'size-6'\n | 'size-8'\n | 'size-10'\n | 'size-12'\n | 'size-14'\n | 'size-16'\n | 'size-20'\n | 'size-24';\n}) => (\n
\n \n
\n);\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\nimport { Link } from './link';\nimport { Spinner } from './spinner';\n\nconst styles = {\n base: [\n // Base\n 'relative isolate inline-flex items-center justify-center gap-x-2 rounded-lg border text-base/6 font-semibold',\n // Sizing\n 'px-[calc(theme(spacing[3.5])-1px)] py-[calc(theme(spacing[2.5])-1px)] sm:px-[calc(theme(spacing.3)-1px)] sm:py-[calc(theme(spacing[1.5])-1px)] sm:text-sm/6',\n // Focus\n 'focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-primary-500',\n // Disabled\n 'data-[disabled]:opacity-50',\n // Icon\n '[&>[data-slot=icon]]:-mx-0.5 [&>[data-slot=icon]]:my-0.5 [&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-[--btn-icon] [&>[data-slot=icon]]:sm:my-1 [&>[data-slot=icon]]:sm:size-4 forced-colors:[--btn-icon:ButtonText] forced-colors:data-[hover]:[--btn-icon:ButtonText]'\n ],\n solid: [\n // Optical border, implemented as the button background to avoid corner artifacts\n 'border-transparent bg-[--btn-border]',\n // Dark mode: border is rendered on `after` so background is set to button background\n 'dark:bg-[--btn-bg]',\n // Button background, implemented as foreground layer to stack on top of pseudo-border layer\n 'before:absolute before:inset-0 before:-z-10 before:rounded-[calc(theme(borderRadius.lg)-1px)] before:bg-[--btn-bg]',\n // Drop shadow, applied to the inset `before` layer so it blends with the border\n 'before:shadow',\n // Background color is moved to control and shadow is removed in dark mode so hide `before` pseudo\n 'dark:before:hidden',\n // Dark mode: Subtle white outline is applied using a border\n 'dark:border-white/5',\n // Shim/overlay, inset to match button foreground and used for hover state + highlight shadow\n 'after:absolute after:inset-0 after:-z-10 after:rounded-[calc(theme(borderRadius.lg)-1px)]',\n // Inner highlight shadow\n 'after:shadow-[shadow:inset_0_1px_theme(colors.white/15%)]',\n // White overlay on hover\n 'after:data-[active]:bg-[--btn-hover-overlay] after:data-[hover]:bg-[--btn-hover-overlay]',\n // Dark mode: `after` layer expands to cover entire button\n 'dark:after:-inset-px dark:after:rounded-lg',\n // Disabled\n 'before:data-[disabled]:shadow-none after:data-[disabled]:shadow-none'\n ],\n outline: [\n // Base\n 'border-neutral-950/10 text-neutral-950 data-[active]:bg-neutral-950/[2.5%] data-[hover]:bg-neutral-950/[2.5%]',\n // Dark mode\n 'dark:border-white/15 dark:text-white dark:[--btn-bg:transparent] dark:data-[active]:bg-white/5 dark:data-[hover]:bg-white/5',\n // Icon\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n plain: [\n // Base\n 'border-transparent text-neutral-950 data-[active]:bg-neutral-950/5 data-[hover]:bg-neutral-950/5',\n // Dark mode\n 'dark:text-white dark:data-[active]:bg-white/10 dark:data-[hover]:bg-white/10',\n // Icon\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n colors: {\n 'dark/neutral': [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:text-white dark:[--btn-bg:theme(colors.neutral.600)] dark:[--btn-hover-overlay:theme(colors.white/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n light: [\n 'text-neutral-950 [--btn-bg:white] [--btn-border:theme(colors.neutral.950/10%)] [--btn-hover-overlay:theme(colors.neutral.950/2.5%)] data-[active]:[--btn-border:theme(colors.neutral.950/15%)] data-[hover]:[--btn-border:theme(colors.neutral.950/15%)]',\n 'dark:text-white dark:[--btn-hover-overlay:theme(colors.white/5%)] dark:[--btn-bg:theme(colors.neutral.800)]',\n '[--btn-icon:theme(colors.neutral.500)] data-[active]:[--btn-icon:theme(colors.neutral.700)] data-[hover]:[--btn-icon:theme(colors.neutral.700)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n 'dark/white': [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:text-neutral-950 dark:[--btn-bg:white] dark:[--btn-hover-overlay:theme(colors.neutral.950/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)] dark:[--btn-icon:theme(colors.neutral.500)] dark:data-[active]:[--btn-icon:theme(colors.neutral.400)] dark:data-[hover]:[--btn-icon:theme(colors.neutral.400)]'\n ],\n dark: [\n 'text-white [--btn-bg:theme(colors.neutral.900)] [--btn-border:theme(colors.neutral.950/90%)] [--btn-hover-overlay:theme(colors.white/10%)]',\n 'dark:[--btn-hover-overlay:theme(colors.white/5%)] dark:[--btn-bg:theme(colors.neutral.800)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n white: [\n 'text-neutral-950 [--btn-bg:white] [--btn-border:theme(colors.neutral.950/10%)] [--btn-hover-overlay:theme(colors.neutral.950/2.5%)] data-[active]:[--btn-border:theme(colors.neutral.950/15%)] data-[hover]:[--btn-border:theme(colors.neutral.950/15%)]',\n 'dark:[--btn-hover-overlay:theme(colors.neutral.950/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.500)] data-[hover]:[--btn-icon:theme(colors.neutral.500)]'\n ],\n neutral: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.neutral.600)] [--btn-border:theme(colors.neutral.700/90%)]',\n 'dark:[--btn-hover-overlay:theme(colors.white/5%)]',\n '[--btn-icon:theme(colors.neutral.400)] data-[active]:[--btn-icon:theme(colors.neutral.300)] data-[hover]:[--btn-icon:theme(colors.neutral.300)]'\n ],\n indigo: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.indigo.500)] [--btn-border:theme(colors.indigo.600/90%)]',\n '[--btn-icon:theme(colors.indigo.300)] data-[active]:[--btn-icon:theme(colors.indigo.200)] data-[hover]:[--btn-icon:theme(colors.indigo.200)]'\n ],\n cyan: [\n 'text-cyan-950 [--btn-bg:theme(colors.cyan.300)] [--btn-border:theme(colors.cyan.400/80%)] [--btn-hover-overlay:theme(colors.white/25%)]',\n '[--btn-icon:theme(colors.cyan.500)]'\n ],\n red: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.red.600)] [--btn-border:theme(colors.red.700/90%)]',\n '[--btn-icon:theme(colors.red.300)] data-[active]:[--btn-icon:theme(colors.red.200)] data-[hover]:[--btn-icon:theme(colors.red.200)]'\n ],\n orange: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.orange.500)] [--btn-border:theme(colors.orange.600/90%)]',\n '[--btn-icon:theme(colors.orange.300)] data-[active]:[--btn-icon:theme(colors.orange.200)] data-[hover]:[--btn-icon:theme(colors.orange.200)]'\n ],\n amber: [\n 'text-amber-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.amber.400)] [--btn-border:theme(colors.amber.500/80%)]',\n '[--btn-icon:theme(colors.amber.600)]'\n ],\n yellow: [\n 'text-yellow-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.yellow.300)] [--btn-border:theme(colors.yellow.400/80%)]',\n '[--btn-icon:theme(colors.yellow.600)] data-[active]:[--btn-icon:theme(colors.yellow.700)] data-[hover]:[--btn-icon:theme(colors.yellow.700)]'\n ],\n lime: [\n 'text-lime-950 [--btn-hover-overlay:theme(colors.white/25%)] [--btn-bg:theme(colors.lime.300)] [--btn-border:theme(colors.lime.400/80%)]',\n '[--btn-icon:theme(colors.lime.600)] data-[active]:[--btn-icon:theme(colors.lime.700)] data-[hover]:[--btn-icon:theme(colors.lime.700)]'\n ],\n green: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.green.600)] [--btn-border:theme(colors.green.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n emerald: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.emerald.600)] [--btn-border:theme(colors.emerald.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n teal: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.teal.600)] [--btn-border:theme(colors.teal.700/90%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n sky: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.sky.500)] [--btn-border:theme(colors.sky.600/80%)]',\n '[--btn-icon:theme(colors.white/60%)] data-[active]:[--btn-icon:theme(colors.white/80%)] data-[hover]:[--btn-icon:theme(colors.white/80%)]'\n ],\n blue: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.blue.600)] [--btn-border:theme(colors.blue.700/90%)]',\n '[--btn-icon:theme(colors.blue.400)] data-[active]:[--btn-icon:theme(colors.blue.300)] data-[hover]:[--btn-icon:theme(colors.blue.300)]'\n ],\n violet: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.violet.500)] [--btn-border:theme(colors.violet.600/90%)]',\n '[--btn-icon:theme(colors.violet.300)] data-[active]:[--btn-icon:theme(colors.violet.200)] data-[hover]:[--btn-icon:theme(colors.violet.200)]'\n ],\n purple: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.purple.500)] [--btn-border:theme(colors.purple.600/90%)]',\n '[--btn-icon:theme(colors.purple.300)] data-[active]:[--btn-icon:theme(colors.purple.200)] data-[hover]:[--btn-icon:theme(colors.purple.200)]'\n ],\n fuchsia: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.fuchsia.500)] [--btn-border:theme(colors.fuchsia.600/90%)]',\n '[--btn-icon:theme(colors.fuchsia.300)] data-[active]:[--btn-icon:theme(colors.fuchsia.200)] data-[hover]:[--btn-icon:theme(colors.fuchsia.200)]'\n ],\n pink: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.pink.500)] [--btn-border:theme(colors.pink.600/90%)]',\n '[--btn-icon:theme(colors.pink.300)] data-[active]:[--btn-icon:theme(colors.pink.200)] data-[hover]:[--btn-icon:theme(colors.pink.200)]'\n ],\n rose: [\n 'text-white [--btn-hover-overlay:theme(colors.white/10%)] [--btn-bg:theme(colors.rose.500)] [--btn-border:theme(colors.rose.600/90%)]',\n '[--btn-icon:theme(colors.rose.300)] data-[active]:[--btn-icon:theme(colors.rose.200)] data-[hover]:[--btn-icon:theme(colors.rose.200)]'\n ]\n }\n};\n\ntype ButtonProps = (\n | { color?: keyof typeof styles.colors; outline?: never; plain?: never }\n | { color?: never; outline: true; plain?: never }\n | { color?: never; outline?: never; plain: true }\n) & { loading?: boolean; className?: string; children: React.ReactNode } & (\n | Omit\n | Omit, 'className'>\n );\n\nexport const Button = forwardRef(function Button(\n { color, outline, plain, className, loading, children, ...props }: ButtonProps,\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n className,\n styles.base,\n outline\n ? styles.outline\n : plain\n ? styles.plain\n : clsx(styles.solid, styles.colors[color ?? 'dark/neutral'])\n );\n\n return 'href' in props ? (\n }>\n {children}\n \n ) : (\n \n {children}\n \n );\n});\n\n/**\n * Expand the hit area to at least 44×44px on touch devices\n */\nexport function TouchTarget({ children }: { children: React.ReactNode }) {\n return (\n <>\n \n {children}\n \n );\n}\n\nexport const PrimaryButton = forwardRef(function Button(\n {\n loading,\n className,\n children,\n ...props\n }: React.PropsWithChildren<\n { loading?: boolean; className?: string } & (\n | Omit\n | Omit, 'className'>\n )\n >,\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-3 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none',\n 'flex items-center justify-center',\n className\n );\n\n return 'href' in props ? (\n }>\n {children}\n \n ) : (\n \n \n {!loading && children}\n {loading && }\n \n \n );\n});\n","import React from 'react';\n\nexport const PageTitle = (\n props: React.PropsWithChildren<{\n title: string;\n description?: string | JSX.Element;\n badge?: JSX.Element;\n }>\n) => (\n
\n

{props.title}

\n {props.badge &&
{props.badge}
}\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n\nexport const PageSection = (\n props: React.PropsWithChildren<{ title: string; description?: string }>\n) => (\n
\n

{props.title}

\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n","import clsx from 'clsx';\n\nimport {\n MerchantIntegration,\n MerchantRentalConfiguration,\n PolicyTableValues,\n WaiverEntry\n} from '@oysterjs/types';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { BusinessPolicyFieldsFragment, FileRole, PolicyState } from '../../types/graphql';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport { ArrowRightIcon, DocumentIcon, ShieldCheckIcon } from '@heroicons/react/24/outline';\nimport { MerchantFieldsFragment } from '../../types/graphql';\nimport { PageTitle } from '../../components/Page/section';\nimport { useHistory } from 'react-router';\n\ninterface HomePageProps {\n merchant: MerchantFieldsFragment;\n businessPolicies: BusinessPolicyFieldsFragment[];\n policyReferrals?: PolicyTableValues[];\n integrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n rentalWaivers: WaiverEntry[];\n}\n\nconst getBadgeColor = (status: PolicyState): string => {\n switch (status) {\n case PolicyState.Inforce:\n return 'bg-green-50 text-green-700 ring-green-600/20';\n case PolicyState.Binding:\n case PolicyState.Pending:\n return 'bg-amber-50 text-amber-700 ring-amber-600/20';\n case PolicyState.Canceled:\n return 'bg-red-50 text-red-700 ring-red-600/20';\n default:\n return 'bg-neutral-50 text-neutral-700 ring-neutral-600/20';\n }\n};\n\nconst ChannelBadge = (props: { state: PolicyState }) => (\n \n {props.state || 'UNKNOWN'}\n \n);\n\nconst BusinessInsuranceSection = (props: HomePageProps) => {\n const history = useHistory();\n const policies = props.businessPolicies.filter((p) => p.state !== PolicyState.Expired);\n\n if (policies.length) {\n return (\n
    \n {policies.map((p) => (\n history.push(`/insurance/overview/policy/${p.id}`)}\n >\n
    \n
    \n
    \n

    \n {getDisplayInsuranceType(p.type)}\n

    \n \n
    \n
    \n

    {p.carrier?.name || 'N/A'}

    \n \n \n {' '}\n

    {p.policyNumber || 'N/A'}

    \n
    \n\n {p.expiresAt && (\n

    \n Expires{' '}\n {new Intl.DateTimeFormat('en-US', { dateStyle: 'medium' }).format(\n new Date(p.expiresAt)\n )}\n

    \n )}\n
    \n
    \n \n
    \n
    \n \n ))}\n
\n );\n }\n\n return (\n
\n

\n You have no business insurance policies.\n

\n
\n \n
\n
\n );\n};\n\nconst CertificatesSection = (props: HomePageProps) => {\n const certificates =\n props.merchant?.files\n ?.filter((f) => f.role === FileRole.Certificate)\n .filter((f) => !!f.details?.certificateNumber)\n .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()) || [];\n\n const history = useHistory();\n\n if (certificates.length) {\n return (\n
\n );\n }\n\n return (\n
\n history.push(`/insurance/certificates/create`)}\n >\n
\n

No certificates created.

\n \n Create Certificate\n \n
\n
\n \n );\n};\n\nexport const HomePage = (props: HomePageProps) => {\n return (\n
\n \n
\n
\n

\n Business Insurance\n

\n

\n View and manage your business insurance policies\n

\n
\n
\n {props.businessPolicies.length > 0 && (\n \n )}\n \n
\n
\n \n\n
\n {props.businessPolicies.length > 0 && (\n
\n
\n
\n

\n Certificates of Insurance\n

\n

\n Recently created certificates of insurance\n

\n
\n
\n \n
\n )}\n
\n
\n );\n};\n","import React from 'react';\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react';\nimport { XMarkIcon } from '@heroicons/react/24/outline';\n\nexport const Slideout = (\n props: React.PropsWithChildren<{\n showing?: boolean;\n title: string;\n onClose: () => void;\n }>\n) => {\n return (\n \n \n\n
\n
\n
\n \n
\n
\n
\n \n {props.title}\n \n
\n \n \n Close panel\n \n \n
\n
\n
\n
{props.children}
\n
\n \n
\n
\n
\n
\n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport apm from '@oysterjs/core/apm';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { IoCheckmark, IoClipboard } from 'react-icons/io5';\n\nconst ErrorIllustration = styled.img<{ forceMobile?: boolean }>`\n border-radius: 8px;\n width: 100%;\n max-width: ${(props) => (props.forceMobile ? '400px' : '300px')};\n transform: scaleX(-1);\n\n @media (max-width: 700px) {\n max-width: 250px;\n }\n\n @media (max-width: 600px) {\n max-width: 400px;\n }\n`;\n\nconst ErrorContainer = styled.div<{ forceMobile?: boolean }>`\n padding: 40px;\n display: flex;\n max-width: 1000px;\n box-sizing: border-box;\n margin: 0 auto;\n flex-direction: ${(props) => (props.forceMobile ? 'column' : 'row')};\n gap: 20px;\n align-items: flex-start;\n\n @media (max-width: 600px) {\n flex-direction: column;\n }\n`;\n\nconst ErrorDetailsContainer = styled.div`\n position: relative;\n border-radius: 8px;\n padding: 20px;\n box-sizing: border-box;\n max-width: 500px;\n width: 100%;\n background: #eaeaea;\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nconst ErrorDetailContainer = styled.div`\n gap: 10px;\n`;\n\nconst ErrorDetailTitle = styled.div`\n text-transform: uppercase;\n color: #666666;\n font-size: 0.7em;\n font-weight: 600;\n padding-bottom: 4px;\n`;\nconst ErrorDetailDescription = styled.pre`\n font-size: 1em;\n font-family: monospace;\n white-space: pre-wrap;\n`;\n\nexport const ErrorDetail = (props: { title: string; description: string }) => (\n \n {props.title}\n {props.description}\n \n);\n\nconst ErrorCopyData = styled.button`\n border: 1px solid #e8e8e8;\n position: absolute;\n top: 0;\n right: 0;\n border-top-right-radius: 8px;\n border-bottom-left-radius: 8px;\n background: rgba(255, 255, 255, 0.65);\n color: #666666;\n padding: 10px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: 0.15s ease-in-out all;\n cursor: pointer;\n\n &:hover:not(.active) {\n background: rgba(255, 255, 255, 0.85);\n color: #333333;\n }\n\n &:active:not(.active) {\n background: rgba(255, 255, 255, 1);\n }\n`;\n\nexport const ErrorDetails = (\n props: React.PropsWithChildren & { errorData: string }>\n) => {\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n if (!copied) {\n return;\n }\n\n navigator.clipboard.writeText(props.errorData);\n setTimeout(() => setCopied(false), 3000);\n }, [copied]);\n\n return (\n \n setCopied(true)}>\n {copied ? : }\n \n {props.children}\n \n );\n};\n\nconst ErrorComponent = (props: { error: Error | WrappedError; forceMobile?: boolean }) => {\n const message = props.error.toString();\n const transaction = apm().getSession().pageLoadId;\n const errorData = [\n { title: 'Error', description: message },\n { title: 'Transaction ID', description: transaction }\n ].filter(({ description }) => !!description);\n\n return (\n \n \n
\n

Something went wrong.

\n

\n There was an error while trying to perform your requested action. If the issue persists,\n please contact our team at{' '}\n support@withoyster.com and include this error\n for reference.\n

\n `${d.title}\\n${d.description}`).join('\\n\\n')}>\n {errorData.map((data) => (\n \n ))}\n \n
\n
\n );\n};\n\n/*\n position: relative;\n border-radius: 8px;\n padding: 20px;\n box-sizing: border-box;\n max-width: 500px;\n width: 100%;\n background: #eaeaea;\n display: flex;\n flex-direction: column;\n gap: 20px;\n */\n\nconst ErrorDetailsV2 = (\n props: React.PropsWithChildren & { errorData: string }>\n) => {\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n if (!copied) {\n return;\n }\n\n navigator.clipboard.writeText(props.errorData);\n setTimeout(() => setCopied(false), 3000);\n }, [copied]);\n\n return (\n
\n setCopied(true)}>\n {copied ? : }\n \n {props.children}\n
\n );\n};\n\nexport const ErrorComponentV2 = (props: { error: Error | WrappedError; forceMobile?: boolean }) => {\n const message = props.error.toString();\n const transaction = apm().getSessionId();\n const errorData = [\n { title: 'Error', description: message },\n { title: 'Session ID', description: transaction || '' }\n ].filter(({ description }) => !!description);\n\n return (\n
\n

Application error

\n

Something went wrong

\n

\n There was an error while trying to perform your requested action. If the issue persists,\n please contact our team via the chat widget or via email at{' '}\n support@withoyster.com and include this error\n for reference.\n

\n\n
\n
\n `${d.title}\\n${d.description}`).join('\\n\\n')}\n >\n {errorData\n .filter((d) => !!d.description)\n .map((data) => (\n \n ))}\n \n
\n
\n
\n );\n};\n\nexport default class ErrorBoundary extends React.Component<\n React.PropsWithChildren<{ forceMobile?: boolean }>,\n { error?: Error | WrappedError }\n> {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n static getDerivedStateFromError(err: Error) {\n return { error: err };\n }\n\n componentDidCatch(error) {\n apm().captureError(error);\n }\n\n render(): React.ReactNode {\n if (this.state.error) {\n return ;\n }\n\n return this.props.children;\n }\n}\n\nexport class ErrorBoundaryV2 extends React.Component<\n React.PropsWithChildren,\n { error?: Error | WrappedError }\n> {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n static getDerivedStateFromError(err: Error) {\n return { error: err };\n }\n\n componentDidCatch(error) {\n apm().captureError(error);\n }\n\n render(): React.ReactNode {\n if (this.state.error) {\n return ;\n }\n\n return this.props.children;\n }\n}\n","import React from 'react';\n\nexport const useWindowScrollPosition = (): {\n scrollPosX: number;\n scrollPosY: number;\n} => {\n const [scrollPosX, setScrollPosX] = React.useState(window.scrollX);\n const [scrollPosY, setScrollPosY] = React.useState(window.scrollY);\n\n React.useEffect(() => {\n const onscroll = () => {\n setScrollPosX(window.scrollX);\n setScrollPosY(window.scrollY);\n };\n\n window.addEventListener('scroll', onscroll);\n return () => window.removeEventListener('scroll', onscroll);\n }, [setScrollPosX, setScrollPosY]);\n\n return { scrollPosX, scrollPosY };\n};\n\nexport const useWindowDimensions = (): {\n innerWidth: number;\n innerHeight: number;\n} => {\n const [innerWidth, setInnerWidth] = React.useState(window.innerWidth);\n const [innerHeight, setInnerHeight] = React.useState(window.innerHeight);\n\n React.useEffect(() => {\n const onresize = () => {\n setInnerWidth(window.innerWidth);\n setInnerHeight(window.innerHeight);\n };\n\n window.addEventListener('resize', onresize);\n return () => window.removeEventListener('resize', onresize);\n }, [setInnerWidth, setInnerHeight]);\n\n return { innerWidth, innerHeight };\n};\n\nexport const openPageInNewTab = (url: string): Window | null => {\n return window.open(url, '_blank');\n};\n\nexport const openAsyncPageInNewTab = (\n urlPromise: Promise\n): Window | null => {\n // First open an empty tab synchronously\n const w = openPageInNewTab('');\n if (w != null) {\n // Resolve location when promise is finished\n urlPromise.then((url) => {\n // If the URL is resolved correctly, set the location, otherwise close the window\n if (url) {\n w.location = url;\n } else {\n w.close();\n }\n });\n }\n\n return w;\n};\n","import { Merchant, MerchantRentalConfiguration, RentalPolicyState } from '@oysterjs/types';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport config from '@oysterjs/core/config';\nimport { openPageInNewTab } from '@oysterjs/core/window';\nimport { getUser } from '@oysterjs/core/auth';\n\nexport const MerchantRentalSetup = (props: {\n merchant?: Merchant;\n configuration?: MerchantRentalConfiguration;\n onContinueToRental: () => void;\n}) => {\n const getDescription = (): JSX.Element => {\n if (!props.configuration) {\n return (\n <>\n

\n Offering theft and damage waivers for your rental customers is a simple process. Here's\n how it works:\n

\n
    \n
  • Oyster will issue your business an insurance policy at no cost.
  • \n
  • \n Before completing a rental transaction, you can offer customers the option to purchase\n a waiver.\n
  • \n
  • If a covered loss occurs, you can file a claim and get reimbursed.
  • \n
  • You earn additional revenue for each waiver your customers purchase.
  • \n
\n \n );\n }\n\n switch (props.configuration?.Details.State) {\n case RentalPolicyState.registered:\n return (\n

\n Your policy application has been received. We will follow up with you after it has been\n processed.\n

\n );\n case RentalPolicyState.submitted:\n return (\n

\n Our team is reviewing your information and will be in touch soon. If you have any\n questions, please feel free to contact us.\n

\n );\n case RentalPolicyState.approved:\n return (\n

\n Your application has been approved! Click on the button below to use the rental app.\n

\n );\n case RentalPolicyState.approved_blanket:\n return (\n

\n Your application has been approved! Click on the button below to use the rental app and\n submit claims.\n

\n );\n case RentalPolicyState.denied:\n return (\n

\n Your policy application has been denied. Please contact us to troubleshoot.\n

\n );\n default:\n throw new Error('Unknown rental configuration state.');\n }\n };\n\n const merchantUser = getUser();\n\n const onApply = () => {\n const params = new URLSearchParams();\n params.set('id', props.merchant?.ID || '');\n params.set('email', props.merchant?.BusinessProfile.Email || '');\n params.set('phone', props.merchant?.BusinessProfile.Phone || '');\n params.set('domain', props.merchant?.BusinessProfile.Domain || '');\n\n params.set('fn', merchantUser?.FirstName || '');\n params.set('ln', merchantUser?.LastName || '');\n\n const merchantAddress = props.merchant?.BusinessProfile.Address;\n params.set('a1', merchantAddress?.AddressLine1 || '');\n if (merchantAddress?.AddressLine2) {\n params.set('a2', props.merchant?.BusinessProfile.Address.AddressLine2 || '');\n }\n params.set('c', merchantAddress?.City || '');\n params.set('s', merchantAddress?.Zone || '');\n params.set('z', merchantAddress?.PostalCode || '');\n\n let filloutFormId = 'nothing';\n switch (config().environment) {\n case 'local':\n filloutFormId = 'x7BhnjHjbJus';\n break;\n case 'staging':\n filloutFormId = '3Wbim9bv9Zus';\n break;\n case 'dev':\n filloutFormId = 'bPBWYEm25kus';\n break;\n case 'production':\n // On production, the fillout form is embedded in our website\n openPageInNewTab(`http://www.withoyster.com/rental-insurance-app?${params.toString()}`);\n return;\n default:\n throw new Error('Invalid environment.');\n }\n\n openPageInNewTab(`https://form.fillout.com/t/${filloutFormId}?${params.toString()}`);\n };\n\n return (\n <>\n {getDescription()}\n {!props.configuration && (\n \n )}\n {props.configuration &&\n (props.configuration.Details.State === RentalPolicyState.approved ||\n props.configuration.Details.State === RentalPolicyState.approved_blanket) && (\n \n )}\n \n );\n};\n","import * as React from 'react';\nimport clsx from 'clsx';\n\nimport {\n Merchant,\n MerchantIntegration,\n MerchantIntegrationStatus,\n MerchantIntegrationType,\n MerchantRentalConfiguration,\n RentalPolicyState\n} from '@oysterjs/types';\nimport { useHistory, useLocation } from 'react-router';\nimport { Slideout } from '@oysterjs/partners/uiv2/slideout';\nimport { DocumentCheckIcon } from '@heroicons/react/24/outline';\nimport { ErrorBoundaryV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { MerchantRentalSetup } from '../../setups/rental';\n\nconst rentalInsuranceChannels: MerchantIntegrationType[] = [MerchantIntegrationType.checkfront];\n\nconst getChannelLabel = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.checkfront:\n return 'Checkfront';\n default:\n return '';\n }\n};\n\nconst getChannelDescription = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.checkfront:\n return 'Configure the Oyster CheckFront app to offer customers peace-of-mind.';\n default:\n return '';\n }\n};\n\nconst getChannelImage = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.checkfront:\n return ;\n default:\n return <>;\n }\n};\n\nconst getChannelPath = (type: MerchantIntegrationType) => {\n switch (type) {\n case MerchantIntegrationType.checkfront:\n return '/integrations/channels/checkfront';\n default:\n return '/integrations/channels';\n }\n};\n\nconst getBadgeColor = (status: MerchantIntegrationStatus): string => {\n switch (status) {\n case MerchantIntegrationStatus.active:\n return 'bg-green-50 text-green-700 ring-green-600/20';\n case MerchantIntegrationStatus.pending:\n return 'bg-amber-50 text-amber-700 ring-amber-600/20';\n case MerchantIntegrationStatus.disabled:\n return 'bg-red-50 text-red-700 ring-red-600/20';\n case MerchantIntegrationStatus.inactive:\n return 'bg-neutral-50 text-neutral-700 ring-neutral-600/20';\n }\n};\n\nconst getRentalConfigurationStatus = (configuration?: MerchantRentalConfiguration) => {\n switch (configuration?.Details.State) {\n case RentalPolicyState.submitted:\n case RentalPolicyState.registered:\n return MerchantIntegrationStatus.pending;\n case RentalPolicyState.approved:\n case RentalPolicyState.approved_blanket:\n return MerchantIntegrationStatus.active;\n }\n};\n\nconst ChannelBadge = (props: { status?: MerchantIntegrationStatus }) => (\n \n {props.status || 'Not added'}\n \n);\n\nexport const ChannelCard = (props: {\n type: MerchantIntegrationType;\n status?: MerchantIntegrationStatus;\n}) => {\n const history = useHistory();\n return (\n history.push(getChannelPath(props.type))}\n />\n );\n};\n\nconst Card = (props: {\n label: string;\n status?: MerchantIntegrationStatus;\n description: string;\n image: React.JSX.Element;\n onClick?: () => void;\n}) => (\n \n
\n
\n
\n

{props.label}

\n \n
\n

{props.description}

\n
\n {props.image}\n
\n \n);\n\ninterface ChannelSlideoutContentProps {\n title: string;\n description: string;\n integrationStatus?: MerchantIntegrationStatus;\n}\n\nconst ChannelSlideoutContent = (props: React.PropsWithChildren) => (\n <>\n
\n

{props.title}

\n \n
\n

{props.description}

\n
{props.children}
\n \n);\n\nexport const ChannelsListPage = (props: {\n apiKey: string;\n merchant: Merchant;\n merchantIntegrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n onUpdateIntegration: (integration: MerchantIntegration) => Promise;\n}) => {\n const history = useHistory();\n const location = useLocation();\n\n const onClickRental = () => {\n if (props.rentalConfiguration?.Details.State === RentalPolicyState.approved) {\n history.push('/rental');\n }\n\n history.push('/integrations/channels/rental');\n };\n\n return (\n
\n
\n

Rental Insurance

\n

\n Configure the channels you use and offer rental waivers to your customers through them.\n

\n
\n
    \n }\n onClick={onClickRental}\n />\n {props.merchantIntegrations.map(\n (integration) =>\n rentalInsuranceChannels.includes(integration.Type) && (\n \n )\n )}\n {rentalInsuranceChannels\n .filter((integration) => {\n return props.merchantIntegrations.every(\n (merchantIntegration) => merchantIntegration.Type != integration\n );\n })\n .map((integration) => (\n \n ))}\n
\n history.replace('/integrations/channels')}\n >\n \n \n history.replace('/rental')}\n />\n \n \n \n
\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { Redirect, Route, Switch, useHistory, useRouteMatch } from 'react-router';\nimport { NavLink } from 'react-router-dom';\ninterface PageNavigationRoute {\n path: string;\n title: string;\n count?: number;\n exact?: boolean;\n absolute?: boolean;\n render: () => JSX.Element;\n}\n\ninterface PageNavigationProps {\n routes: PageNavigationRoute[];\n redirect?: Record;\n}\n\nexport const PageNavigation = (props: React.PropsWithChildren) => {\n const { url, path } = useRouteMatch();\n const history = useHistory();\n const concatPath = (base: string, relative: string) =>\n `${base.replace(/\\/+$/, '')}/${relative.replace(/\\/+$/, '').replace(/^\\/+/, '')}`;\n\n return (\n
\n
\n \n window.location.pathname.includes(concatPath(url, tab.path)))\n ?.path\n }\n onChange={(e) => history.push(concatPath(url, e.currentTarget.value))}\n className=\"block w-full rounded-md border-neutral-300 py-2 pl-3 pr-10 text-base focus:border-primary-500 focus:outline-none focus:ring-primary-500 sm:text-sm\"\n >\n {props.routes.map((tab) => (\n \n ))}\n \n
\n
\n
\n \n
\n
\n
\n \n {props.routes.map((route) => (\n \n ))}\n {Object.entries(props.redirect || {}).map(([from, to]) => (\n \n ))}\n \n
\n
\n );\n};\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nexport const Select = forwardRef(function Select(\n {\n className,\n multiple,\n ...props\n }: { className?: string } & Omit,\n ref: React.ForwardedRef\n) {\n return (\n \n \n {/* {!multiple && (\n \n \n \n \n \n \n )} */}\n \n );\n});\n","import styled from 'styled-components';\n\nexport const Table = styled.table`\n border-collapse: collapse;\n width: 100%;\n margin: 20px 0px;\n\n tr td,\n tr th {\n padding: 16px 16px;\n vertical-align: top;\n vertical-align: middle;\n border-bottom: 1px solid #f2f2f2;\n\n :first-child {\n padding-left: 0px;\n }\n\n :last-child {\n padding-right: 0px;\n vertical-align: middle;\n }\n }\n\n thead tr td,\n thead tr th {\n padding: 8px 16px;\n font-weight: 600;\n font-size: 0.85em;\n color: #666666;\n border-bottom: 3px solid #eaeaea;\n }\n\n tbody tr {\n td.labeled {\n div:last-child {\n color: #999999;\n font-size: 0.85em;\n margin-top: 5px;\n }\n }\n }\n\n @media (max-width: 600px) {\n thead tr td {\n padding: 8px 8px;\n }\n\n tr td {\n padding: 16px 8px;\n }\n }\n`;\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React from 'react';\n\nexport function Fieldset({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n *+[data-slot=control]]:mt-6 [&>[data-slot=text]]:mt-1')}\n />\n );\n}\n\nexport function Legend({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function FieldGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return
;\n}\n\nexport function Field({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n [data-slot=label]+[data-slot=control]]:mt-2',\n '[&>[data-slot=label]+[data-slot=description]]:mt-1',\n '[&>[data-slot=description]+[data-slot=control]]:mt-2',\n '[&>[data-slot=control]+[data-slot=description]]:mt-2',\n '[&>[data-slot=control]+[data-slot=error]]:mt-2',\n '[&>[data-slot=label]]:font-medium'\n )}\n />\n );\n}\n\nexport function Label({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function Description({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function ErrorMessage({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n","import * as React from 'react';\n\nimport { Select } from '@oysterjs/partners/uiv2/select';\nimport { getMerchantReferrals, getMerchantTransactions } from '@oysterjs/core/api/merchant';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { PolicyTableValues, TransactionType } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { Description, Field, FieldGroup, Fieldset, Label } from '@oysterjs/partners/uiv2/fieldset';\n\nconst monthList = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n];\n\nexport const ReferralItem = (props: { referral: PolicyTableValues }) => {\n const item = props.referral.InsuredItems[0];\n return (\n \n {new Intl.DateTimeFormat('en-US').format(new Date(props.referral.CreatedAt))}\n {item.Name}\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(item.Price.Amount)}\n \n \n );\n};\n\nconst AsyncMerchantReferrals = (props: { startDate: Date; endDate: Date }) => (\n \n {([referrals, transactions]) => {\n const payouts = transactions.Transactions?.filter((t) => t.Type === TransactionType.credit);\n if (referrals.Referrals.length == 0)\n return (\n
\n \n \n \n \n \n \n \n

No data

\n

\n There were no referrals eligible for payout in this month.\n

\n
\n );\n else\n return (\n <>\n \n \n \n \n \n \n \n \n \n {referrals.Referrals.map((referral) => (\n \n ))}\n \n
DateItemValue
\n {payouts && payouts.length > 0 && (\n \n \n \n \n \n \n \n \n \n \n {payouts.map((payout) => (\n \n \n \n \n \n \n ))}\n \n
DateTransaction IDAmountStatus
{new Date(payout.CreatedAt).toLocaleDateString()}{payout.ProcessorID || 'TBD'}\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: payout.Currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(payout.Amount)}\n {payout.State}
\n )}\n \n );\n }}\n \n);\nconst getMonthsDate = (today: Date) =>\n [0, 1, 2, 3, 4, 5, 6].map((diff) => ({\n start: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() - diff, 1, 0, 0, 0, 0),\n end: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() + 1 - diff, 1, 0, 0, 0, 0)\n }));\n\nconst getMonthName = (date: Date): string => monthList[date.getUTCMonth()];\n\nexport const ReferralsPage = () => {\n const monthOptions = getMonthsDate(new Date()).map(({ start, end }, i) => ({\n index: i.toString(),\n title: `${getMonthName(new Date(start))} ${new Date(start).getUTCFullYear()}`,\n start,\n end\n }));\n\n const [month, setMonth] = React.useState(monthOptions[0]);\n\n return (\n <>\n
e.preventDefault()}>\n
\n \n \n \n Select the month of data you want to explore.\n {\n setMonth(monthOptions[parseInt(e.currentTarget.value)]);\n }}\n >\n {monthOptions.map((opt) => (\n \n ))}\n \n \n \n
\n
\n \n \n );\n};\n","import { Address, MercuryPaymentTypes, PaymentMethodType } from '@oysterjs/types';\nimport { Get, Post } from './base';\n\nexport const setMerchantPayment = (data: {\n PublicToken: string;\n PaymentType: MercuryPaymentTypes;\n Address?: Partial
;\n}) => Post('/merchant/payment', data);\n\nexport const getMerchantPayment = () =>\n Get<{ Address: Address; PaymentType: PaymentMethodType; MercuryRecipientID: string }>(\n '/merchant/payment'\n );\n\nexport const connectToPlaid = () => Get<{ LinkToken: string }>('/merchant/plaid');\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst BadgeContainer = styled.div<{ color: string }>`\n display: flex;\n gap: 5px;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n padding: 4px 12px;\n background: ${(props) => props.color};\n box-sizing: border-box;\n font-size: 0.75em;\n font-weight: 500;\n color: #333333;\n`;\n\nexport const Badge = (\n props: React.PropsWithChildren<{\n icon?: JSX.Element;\n label: string;\n color: string;\n textColor?: string;\n display?: string;\n }>\n) => (\n
\n \n {props.icon && (\n
\n {props.icon}\n
\n )}\n
{props.label}
\n
\n
\n);\n","import * as React from 'react';\nimport { IoInformationCircleOutline } from 'react-icons/io5';\nimport styled from 'styled-components';\n\nconst BannerContainer = styled.div`\n background: #fff3f0;\n padding: 20px 20px;\n border-radius: 8px;\n box-sizing: border-box;\n width: 100%;\n\n transition: 0.15s all ease-in-out;\n\n display: flex;\n flex-direction: row;\n gap: 10px;\n`;\n\nconst ContentContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row;\n gap: 10px;\n\n @media (max-width: 600px) {\n flex-direction: column;\n }\n`;\n\nconst IconContainer = styled.div`\n font-size: 1.2em;\n`;\n\nconst TextContainer = styled.div`\n flex-grow: 1;\n`;\n\nconst ActionContainer = styled.div`\n min-width: 180px;\n height: 100%;\n display: flex;\n justify-content: flex-end;\n\n @media (max-width: 600px) {\n justify-content: flex-start;\n }\n`;\n\nconst TitleText = styled.div`\n font-weight: 500;\n font-size: 0.9em;\n padding-bottom: 5px;\n`;\n\nconst DescriptionText = styled.div`\n font-size: 0.8em;\n color: #555555;\n`;\n\ninterface BannerProps {\n title: string;\n description: string | JSX.Element;\n bannerAction?: JSX.Element;\n}\n\nexport const Banner: React.FunctionComponent<\n React.AllHTMLAttributes & BannerProps\n> = (props): JSX.Element => (\n \n \n \n \n \n \n {props.title}\n {props.description}\n \n {props.bannerAction && {props.bannerAction}}\n \n \n);\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Spinner } from '../Spinner';\n\nconst UnstyledLink = styled.a`\n color: inherit;\n text-decoration: inherit;\n\n &:visited {\n color: inherit;\n text-decoration: inherit;\n }\n`;\n\nconst ButtonContainerComponent = styled.div`\n display: flex;\n flex-direction: row;\n gap: 0px 6px;\n\n width: 100%;\n justify-content: ${(props) => (props.center ? 'center' : 'left')};\n`;\n\ninterface ButtonContainerProps {\n center?: boolean;\n}\n\nexport const ButtonContainer = (\n props: React.PropsWithChildren & ButtonContainerProps>\n) => {props.children};\n\nconst ButtonComponent = styled.button<{\n primary?: boolean;\n loading?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n min-width: 100px;\n justify-content: center;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n &:active {\n transform: ${(props) => {\n if (props.loading || props.disabled) {\n return 'none';\n }\n return 'translateY(2px)';\n }};\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n`;\n\nconst ButtonDivComponent = styled.div<{\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n :active {\n transform: translateY(2px);\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n :first-child {\n margin-left: 0;\n }\n\n :last-child {\n margin-right: 0;\n }\n`;\n\ninterface ButtonProps {\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n icon?: JSX.Element;\n leftIcon?: JSX.Element;\n style?: React.CSSProperties;\n}\n\ninterface LinkProps {\n href: string;\n target?: string;\n onClick?: () => void;\n}\n\nexport const ButtonLink = (props: React.PropsWithChildren) =>\n props.disabled ? (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { getMerchantPayment } from '@oysterjs/core/api/plaid';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { ButtonLink } from '@oysterjs/ui/Button';\nimport { Loadable } from '@oysterjs/ui/Loadable';\n\nimport { ErrorCode, ErrorType } from '@oysterjs/core/errors';\nimport { Address, DeepPartial, Merchant, PaymentMethodType } from '@oysterjs/types';\nimport { PayoutSummary, UserPayment } from './payment';\n\nexport const AccountStatusBanner = (): JSX.Element => (\n \n {(res) => {\n const hasPayment = res.Merchant.BusinessProfile?.PaymentMethod;\n if (hasPayment) {\n return null;\n }\n\n const hasActionPayment = true;\n const titlePayment = 'Please add a payment method to your account';\n const descriptionPayment =\n 'We need to collect your preferred payment method to receive your payouts.';\n\n return (\n <>\n {!hasPayment && (\n }>\n Add Payment Method\n \n ) : undefined\n }\n >\n )}\n \n );\n }}\n \n);\n\nconst PayoutPage = (props: {\n paymentMethod: PaymentMethodType;\n address: Partial
;\n loading: boolean;\n onUpdateLoading: (loading: boolean) => void;\n onUpdatePayoutsInfo: (\n paymentMethod: PaymentMethodType,\n formAddress?: Partial
,\n mercuryRecipientID?: string\n ) => void;\n mercuryRecipientID?: string;\n error?: string;\n}) => {\n return props.mercuryRecipientID && !props.loading ? (\n \n ) : (\n \n );\n};\n\nexport const PayoutsPage = (props: { merchant: DeepPartial }) => {\n const [paymentMethod, setPaymentMethod] = React.useState(\n props.merchant.BusinessProfile?.PaymentMethod || PaymentMethodType.Unknown\n );\n const [mercuryRecipientID, setMercuryRecipientID] = React.useState(\n props.merchant.MercuryRecipientID\n );\n const [address, setAddress] = React.useState(props.merchant.BusinessProfile?.Address || {});\n const [error, setError] = React.useState('');\n const [loading, setLoading] = React.useState(\n !mercuryRecipientID && paymentMethod !== PaymentMethodType.Unknown && !!address\n );\n\n const merchantPayment = () => {\n getMerchantPayment()\n .then((res) => {\n setMercuryRecipientID(res.MercuryRecipientID);\n setPaymentMethod(res.PaymentType);\n setAddress(res.Address);\n })\n .catch((err) => {\n if (err.type() == ErrorType.processingError && err.code() == ErrorCode.submissionFailed) {\n setError(\n \"There seems to be something wrong with the address you've entered. Please double check that it is entered correctly. If this error persists, please contact us at partners@withoyster.com.\"\n );\n } else {\n setError(err.message);\n }\n })\n .finally(() => setLoading(false));\n };\n\n React.useEffect(() => {\n merchantPayment();\n }, []);\n\n const onUpdatePayoutsInfo = (\n paymentMethod: PaymentMethodType,\n formAddress?: Partial
\n ) => {\n setError('');\n setPaymentMethod(paymentMethod);\n setAddress(formAddress || address);\n\n merchantPayment();\n };\n\n const onUpdateLoading = (loading: boolean) => {\n setLoading(loading);\n };\n\n return (\n <>\n

Payouts

\n

\n {mercuryRecipientID\n ? \"You're all set! Payouts have been configured and you'll receive earned referral fees on a monthly basis.\"\n : loading\n ? 'Your payment method is being processed, please check back later to see if it succeeded.'\n : 'Enter your billing address and select your preferred payout method to receive referral fees.'}\n

\n
\n {mercuryRecipientID ? (\n \n ) : loading ? (\n \n ) : (\n \n )}\n
\n \n \n );\n};\n","import * as React from 'react';\n\nimport { Merchant, MerchantIntegration, MerchantRentalConfiguration } from '@oysterjs/types';\nimport { updateMerchantIntegration } from '@oysterjs/core/api/merchant';\nimport { PageTitle } from '../../../components/Page/section';\nimport { ChannelsListPage } from './channels';\nimport { PageNavigation } from '../../../components/Page/navigation';\nimport { ReferralsPage } from './referrals';\nimport { PayoutsPage } from './payouts';\n\nexport const IntegrationsPage = (props: {\n apiKey: string;\n merchant: Merchant;\n merchantIntegrations: MerchantIntegration[];\n rentalConfiguration?: MerchantRentalConfiguration;\n}) => {\n const [merchantIntegrations, setMerchantIntegrations] = React.useState(\n props.merchantIntegrations\n );\n\n const onUpdateIntegration = async (integration: MerchantIntegration) => {\n const res = await updateMerchantIntegration(integration);\n setMerchantIntegrations(\n merchantIntegrations.map((i) => (i.ID === integration.ID ? res.Integration : i))\n );\n };\n\n React.useEffect(() => {\n setMerchantIntegrations(props.merchantIntegrations);\n }, [props.merchantIntegrations]);\n\n return (\n <>\n \n (\n \n )\n },\n {\n path: '/reports',\n title: 'Reports',\n render: () => \n },\n {\n path: '/payouts',\n title: 'Payment Settings',\n render: () => \n }\n ]}\n />\n \n \n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { motion } from 'motion/react';\nimport * as Headless from '@headlessui/react';\nimport { Text } from './text';\n\nconst sizes = {\n xs: 'sm:max-w-xs',\n sm: 'sm:max-w-sm',\n md: 'sm:max-w-md',\n lg: 'sm:max-w-lg',\n xl: 'sm:max-w-xl',\n '2xl': 'sm:max-w-2xl',\n '3xl': 'sm:max-w-3xl',\n '4xl': 'sm:max-w-4xl',\n '5xl': 'sm:max-w-5xl'\n};\n\nexport function MountableDialog({\n size = 'lg',\n className,\n children,\n ...props\n}: { size?: keyof typeof sizes; className?: string; children: React.ReactNode } & Omit<\n Headless.DialogProps,\n 'className'\n>) {\n return (\n \n \n\n
\n
\n \n \n {children}\n \n \n
\n
\n
\n );\n}\n\nexport function Dialog({\n size = 'lg',\n className,\n children,\n ...props\n}: { size?: keyof typeof sizes; className?: string; children: React.ReactNode } & Omit<\n Headless.DialogProps,\n 'className'\n>) {\n return (\n \n \n\n
\n
\n \n {children}\n \n
\n
\n
\n );\n}\n\nexport function DialogTitle({\n className,\n ...props\n}: { className?: string } & Omit) {\n return (\n \n );\n}\n\nexport function DialogDescription({\n className,\n ...props\n}: { className?: string } & Omit, 'className'>) {\n return (\n \n );\n}\n\nexport function DialogBody({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return
;\n}\n\nexport function DialogActions({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return (\n \n );\n}\n","import * as React from 'react';\nimport { Merchant, MerchantUser, ValidationError } from '@oysterjs/types';\nimport { PageTitle } from '../../components/Page/section';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport { createMerchantUser, getMerchantUsers } from '@oysterjs/core/api/merchant';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport {\n Dialog,\n DialogActions,\n DialogBody,\n DialogDescription,\n DialogTitle\n} from '@oysterjs/partners/uiv2/dialog';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/partners/uiv2/fieldset';\nimport { Input } from '@oysterjs/partners/uiv2/input';\n\nconst UserList = (props: { users: MerchantUser[] }) => (\n
    \n {props.users.map((user) => (\n
  • \n
    \n
    \n

    \n {user.FirstName} {user.LastName}\n

    \n

    {user.Email}

    \n
    \n
    \n {user.FirstName.charAt(0)}\n {user.LastName.charAt(0)}\n
    \n
    \n
  • \n ))}\n
\n);\n\nconst AddUserForm = (props: {\n open: boolean;\n onAddUser: (users: MerchantUser[]) => void;\n onClose: () => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [validationError, setValidationError] = React.useState();\n const [formData, setFormData] = React.useState({\n FirstName: '',\n LastName: '',\n Email: ''\n });\n const [error, setError] = React.useState('');\n\n const handleAddUser = async (e: React.FormEvent) => {\n e.preventDefault();\n setLoading(true);\n try {\n await createMerchantUser(formData);\n props.onAddUser((await getMerchantUsers()).Users);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n Add Team Member\n Add the specified user to the account.\n
\n \n
\n \n \n \n The user's preferred first name.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, FirstName: value }));\n }}\n />\n {validationError?.Field === 'FirstName' && (\n {validationError.Message}\n )}\n \n \n \n The user's preferred last name.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, LastName: value }));\n }}\n />\n {validationError?.Field === 'LastName' && (\n {validationError.Message}\n )}\n \n \n \n The email address the user will use to log in.\n {\n const value = e.currentTarget.value;\n setFormData((prev) => ({ ...prev, Email: value }));\n }}\n />\n {validationError?.Field === 'Email' && (\n {validationError.Message}\n )}\n \n \n
\n
\n \n \n \n \n {error && {error}}\n
\n
\n );\n};\n\nexport const TeamPage = (props: { merchant: Merchant; merchantUsers: MerchantUser[] }) => {\n const [users, setUsers] = React.useState(props.merchantUsers);\n const [showAddUser, setShowAddUser] = React.useState(false);\n\n return (\n <>\n \n \n \n setShowAddUser(false)}\n onAddUser={(users) => {\n setUsers(users);\n setShowAddUser(false);\n }}\n />\n \n );\n};\n","import React from 'react';\n\nexport const PageTitle = (\n props: React.PropsWithChildren<{\n title: string;\n description?: string | JSX.Element;\n badge?: JSX.Element;\n }>\n) => (\n
\n

{props.title}

\n {props.badge &&
{props.badge}
}\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n\nexport const PageSection = (\n props: React.PropsWithChildren<{ title: string; description?: string }>\n) => (\n
\n

{props.title}

\n {props.description &&

{props.description}

}\n
{props.children}
\n
\n);\n","import React from 'react';\nimport clsx from 'clsx';\nimport { PageTitle } from '@oysterjs/ui/Page/section';\nimport { Button as HeadlessButton } from '@headlessui/react';\nimport { ArrowRightIcon, CheckCircleIcon, XCircleIcon } from '@heroicons/react/20/solid';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/partners/uiv2/fieldset';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport { Textarea } from '@oysterjs/partners/uiv2/textarea';\nimport { Select } from '@oysterjs/partners/uiv2/select';\nimport {\n BusinessPolicyFieldsFragment,\n PolicyConversationMessage,\n PolicyConversationMessageRole,\n PolicyState,\n useAddPolicyConversationMessageMutation,\n useGetPolicyConversationQuery\n} from '../../types/graphql';\nimport { getDisplayInsuranceType } from '../../types/map';\n\nexport const ExploreRiskPage = (props: { businessPolicies: BusinessPolicyFieldsFragment[] }) => {\n const explorablePolicies = getExplorablePolicies(props.businessPolicies);\n if (!explorablePolicies.length) {\n return null;\n }\n\n const [selectedPolicy, setSelectedPolicy] = React.useState(\n explorablePolicies[0] || null\n );\n const [showPolicyQuotes, setShowPolicyQuotes] = React.useState>({});\n\n if (!selectedPolicy) {\n return (\n
\n \n \n \n

No policies

\n

\n You don't have any policies to explore. Get started by applying for one.\n

\n
\n \n \n
\n
\n );\n }\n\n const policyStats = [\n {\n name: 'Premium',\n value: new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(\n selectedPolicy.pricing.premium || 0\n )\n },\n // {\n // name: 'Deductible',\n // value: new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(\n // selectedPolicy.details?.deductible || 0\n // )\n // },\n {\n name: 'Policy Number',\n value: selectedPolicy.policyNumber || selectedPolicy.details?.policyNumber || 'N/A'\n },\n {\n name: 'Expiration',\n value: new Date(selectedPolicy.expiresAt || '').toLocaleDateString('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric'\n })\n }\n ];\n\n const policyLimits = [\n { name: 'aggregate', limit: selectedPolicy.details?.limits?.cyberAggregateLimit },\n { name: 'retention', limit: selectedPolicy.details?.limits?.cyberRetentionLimit },\n { name: 'aggregate', limit: selectedPolicy.details?.limits?.glAggregateLimit },\n {\n name: 'medical per occurrence',\n limit: selectedPolicy.details?.limits?.glMedicalPerOccurrenceLimit\n },\n {\n name: 'medical per person',\n limit: selectedPolicy.details?.limits?.glMedicalPerPersonLimit\n },\n { name: 'per occurrence', limit: selectedPolicy.details?.limits?.glPerOccurrenceLimit },\n {\n name: 'personal and advertising injury',\n limit: selectedPolicy.details?.limits?.glPersonalAndAdvertisingInjuryLimit\n },\n {\n name: 'products and completed operations',\n limit: selectedPolicy.details?.limits?.glProductsAndCompletedOperationsLimit\n },\n {\n name: 'rented premises damage',\n limit: selectedPolicy.details?.limits?.glRentedPremisesDamageLimit\n },\n { name: 'building', limit: selectedPolicy.details?.limits?.propertyBuildingLimit },\n { name: 'contents', limit: selectedPolicy.details?.limits?.propertyContentsLimit },\n { name: 'per accident', limit: selectedPolicy.details?.limits?.wcPerAccidentLimit },\n {\n name: 'per disease (employee)',\n limit: selectedPolicy.details?.limits?.wcPerDiseaseEmployeeLimit\n },\n {\n name: 'per disease (policy)',\n limit: selectedPolicy.details?.limits?.wcPerDiseasePolicyLimit\n },\n ...(selectedPolicy.details?.extraLimits || []),\n ...(selectedPolicy.details?.locations?.flatMap((location) => [\n {\n name: `building (${location.address.line1})`,\n limit: location.limits?.propertyBuildingLimit\n },\n {\n name: `contents (${location.address.line1})`,\n limit: location.limits?.propertyContentsLimit\n }\n ]) || [])\n ].filter((limit) => !!limit?.limit);\n\n return (\n <>\n \n
e.preventDefault()}>\n
\n \n \n \n Select the policy you want to explore.\n {\n setSelectedPolicy(\n explorablePolicies.find((p) => p.id === e.currentTarget.value) || null\n );\n }}\n >\n {explorablePolicies.map((policy) => (\n \n ))}\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n

\n Policy overview\n

\n

Basic details about your policy.

\n
\n
\n
\n
\n
\n {policyStats.map((stat) => (\n \n
{stat.name}
\n
\n {stat.value}\n
\n
\n ))}\n \n
\n
\n
Insured Entity
\n
\n \n {selectedPolicy.details?.insured?.name || 'Unknown'}\n \n
\n {selectedPolicy.details?.insured?.address?.line1 || 'Unknown'}\n
\n \n {selectedPolicy.details?.insured?.address?.city || 'Unknown'},{' '}\n {selectedPolicy.details?.insured?.address?.zone || 'Unknown'}{' '}\n {selectedPolicy.details?.insured?.address?.postalCode || 'Unknown'}\n \n
\n
\n
\n
Carrier
\n
\n \n {selectedPolicy.details?.carrier?.name || 'Unknown'}\n \n
\n {selectedPolicy.details?.carrier?.address?.line1 || 'Unknown'}\n
\n \n {selectedPolicy.details?.carrier?.address?.city || 'Unknown'},{' '}\n {selectedPolicy.details?.carrier?.address?.zone || 'Unknown'}{' '}\n {selectedPolicy.details?.carrier?.address?.postalCode || 'Unknown'}\n \n
\n
\n
\n
Policy Summary
\n
\n {selectedPolicy.details?.summary || 'Unknown'}\n
\n
\n
\n
Limits
\n
\n {policyLimits.map((limit) => (\n
\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n currency: 'USD'\n }).format(limit.limit || 0)}{' '}\n {limit.name}\n
\n ))}\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n What's covered\n

\n

Coverage for your business.

\n
\n
\n
\n
\n
\n
\n {selectedPolicy.details?.coverageDescriptions?.map((coverage) => (\n
\n
\n \n {coverage.title}\n
\n
\n {coverage.description}\n
\n {coverage.policyQuotes.length > 0 && !showPolicyQuotes[coverage.title] && (\n \n setShowPolicyQuotes({\n ...showPolicyQuotes,\n [coverage.title]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 ml-6\"\n >\n Show relevant quotes \n \n )}\n {coverage.policyQuotes.length > 0 && showPolicyQuotes[coverage.title] && (\n
\n {coverage.policyQuotes.map((quote) => (\n \n {quote}\n
\n ))}\n
\n )}\n
\n ))}\n \n

\n The coverage descriptions provided here may not be complete, and may have\n important exclusions or limitations. For a full understanding of your coverage,\n please read your policy documents or speak with an insurance agent.\n

\n
\n
\n
\n\n
\n
\n
\n
\n

\n What's not covered\n

\n

\n Exclusions and other limitations on your policy.\n

\n
\n
\n
\n
\n
\n
\n {selectedPolicy.details?.exclusionDescriptions?.map((exclusion) => (\n
\n
\n \n {exclusion.title}\n
\n
\n {exclusion.description}\n
\n {exclusion.policyQuotes.length > 0 && !showPolicyQuotes[exclusion.title] && (\n \n setShowPolicyQuotes({\n ...showPolicyQuotes,\n [exclusion.title]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 ml-6\"\n >\n Show relevant quotes \n \n )}\n {exclusion.policyQuotes.length > 0 && showPolicyQuotes[exclusion.title] && (\n
\n {exclusion.policyQuotes.map((quote) => (\n \n {quote}\n
\n ))}\n
\n )}\n
\n ))}\n \n

\n The exclusions provided here may not be complete, and may have important caveats\n or conditions. For a full understanding of your policy, please read your policy\n documents or speak with an insurance agent.\n

\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n

\n Ask a question\n

\n

\n We'll find related information in your policy.\n

\n
\n
\n
\n
\n \n
\n
\n
\n \n \n );\n};\n\nconst PolicyChat = (props: { policyId: string }) => {\n // Load the initial conversation messages\n const {\n data: initialData,\n loading: initialLoading,\n refetch: refetchInitialData\n } = useGetPolicyConversationQuery({\n variables: { policyId: props.policyId }\n });\n\n // Send a message to the policy chat\n const [\n sendMessage,\n { data: sendMessageData, loading: sendMessageLoading, error: sendMessageError }\n ] = useAddPolicyConversationMessageMutation();\n\n // State for the chat\n const [editorText, setEditorText] = React.useState('');\n const [messages, setMessages] = React.useState([]);\n const [stagedMessage, setStagedMessage] = React.useState('');\n const [showAttachments, setShowAttachments] = React.useState>({});\n\n React.useEffect(() => {\n refetchInitialData({ policyId: props.policyId });\n }, [props.policyId]);\n\n React.useEffect(() => {\n if (initialData) {\n setMessages(initialData.policyConversation);\n }\n }, [initialData]);\n\n React.useEffect(() => {\n if (sendMessageData) {\n setMessages(sendMessageData.riskManagementAddPolicyConversationMessage);\n }\n }, [sendMessageData?.riskManagementAddPolicyConversationMessage]);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setEditorText('');\n setStagedMessage(editorText);\n await sendMessage({\n variables: { policyId: props.policyId, message: editorText }\n });\n setStagedMessage('');\n };\n\n if (initialLoading) {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n }\n\n return (\n
\n
\n
\n
\n
\n
\n                Hello! I'm here to look up information in your policy documents. What would you like\n                to know?\n              
\n
\n
\n {messages.map((message) => (\n \n \n
{message.content}
\n {message.attachments.length > 0 && !showAttachments[message.id] && (\n \n setShowAttachments({\n ...showAttachments,\n [message.id]: true\n })\n }\n className=\"text-xs font-medium text-primary-500 hover:text-primary-800 inline-flex items-center gap-1 mt-2\"\n >\n Show relevant quotes \n \n )}\n {message.attachments.length > 0 && showAttachments[message.id] && (\n
\n {message.attachments?.map((attachment) => (\n \n {attachment.content}\n
\n ))}\n
\n )}\n
\n
\n ))}\n {sendMessageLoading && (\n <>\n
\n
\n
{stagedMessage}
\n
\n
\n \n \n )}\n
\n

\n Please note: This assistant will attempt to find information in your policy. However,\n it is not a licensed agent. Always check your policy documents or schedule a call with\n an Oyster agent for the most accurate information.\n

\n
\n
\n
\n
\n
\n
\n \n \n \n setEditorText(e.target.value)}\n />\n {sendMessageError && {sendMessageError.message}}\n \n \n
\n\n \n Send Message\n \n \n
\n
\n );\n};\n\nconst AIChatProgress = () => {\n // Build a two-minute animation to keep the user engaged while the quote loads\n const steps = [\n { title: 'Loading policy documents...', maxDuration: 2000, maxWidth: 10 },\n { title: 'Reading carefully...', maxDuration: 6000, maxWidth: 45 },\n { title: 'Thinking...', maxDuration: 5000, maxWidth: 80 },\n { title: 'Thinking...', maxDuration: 8000, maxWidth: 90 },\n { title: 'Thinking...', maxDuration: 13000, maxWidth: 100 }\n ];\n\n const [stepIndex, setStepIndex] = React.useState(0);\n React.useEffect(() => {\n if (stepIndex === steps.length) {\n return;\n }\n\n const timeout = setTimeout(() => {\n setStepIndex((prev) => (prev >= steps.length - 1 ? prev : prev + 1));\n }, steps[stepIndex].maxDuration);\n\n return () => clearTimeout(timeout);\n }, [stepIndex]);\n\n return (\n
\n
\n
\n
\n
\n\n
\n {steps[stepIndex].title}\n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nconst getExplorablePolicies = (policies: BusinessPolicyFieldsFragment[]) =>\n policies.filter(\n (policy) => policy.state === PolicyState.Inforce && !!policy.details?.carrier?.address.line1\n );\n","export const Spinner = ({\n color,\n size,\n centerHorizontal\n}: {\n color?: string;\n size?: number;\n centerHorizontal?: boolean;\n}): JSX.Element => (\n \n \n \n \n \n);\n","import * as React from 'react';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Spinner } from '../Spinner';\n\nconst UnstyledLink = styled.a`\n color: inherit;\n text-decoration: inherit;\n\n &:visited {\n color: inherit;\n text-decoration: inherit;\n }\n`;\n\nconst ButtonContainerComponent = styled.div`\n display: flex;\n flex-direction: row;\n gap: 0px 6px;\n\n width: 100%;\n justify-content: ${(props) => (props.center ? 'center' : 'left')};\n`;\n\ninterface ButtonContainerProps {\n center?: boolean;\n}\n\nexport const ButtonContainer = (\n props: React.PropsWithChildren & ButtonContainerProps>\n) => {props.children};\n\nconst ButtonComponent = styled.button<{\n primary?: boolean;\n loading?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n min-width: 100px;\n justify-content: center;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n &:active {\n transform: ${(props) => {\n if (props.loading || props.disabled) {\n return 'none';\n }\n return 'translateY(2px)';\n }};\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n`;\n\nconst ButtonDivComponent = styled.div<{\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n}>`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n padding: 10px 15px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.8em;\n font-weight: 500;\n\n color: ${(props) => (props.primary ? 'white' : '#333333')};\n background: ${(props) => (props.primary ? '#0ea5e9' : '#fafafa')};\n border: ${(props) => (props.primary ? '1px solid transparent' : '1px solid #DADADA')};\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n\n opacity: ${(props) => (props.loading || props.disabled ? 0.6 : 1)};\n cursor: ${(props) => (props.loading || props.disabled ? 'default' : 'pointer')};\n\n transition: all 0.15s ease-in-out;\n\n :active {\n transform: translateY(2px);\n background: ${(props) => {\n if (props.loading || props.disabled) {\n return props.primary ? '#0ea5e9' : '#fafafa';\n }\n return props.primary ? '#269985' : 'rgb(212, 212, 212)';\n }};\n }\n\n :first-child {\n margin-left: 0;\n }\n\n :last-child {\n margin-right: 0;\n }\n`;\n\ninterface ButtonProps {\n primary?: boolean;\n loading?: boolean;\n disabled?: boolean;\n icon?: JSX.Element;\n leftIcon?: JSX.Element;\n style?: React.CSSProperties;\n}\n\ninterface LinkProps {\n href: string;\n target?: string;\n onClick?: () => void;\n}\n\nexport const ButtonLink = (props: React.PropsWithChildren) =>\n props.disabled ? (\n
\n \n);\n\nconst ContentBox = styled.div`\n position: absolute;\n top: 60px;\n padding: 20px 20px;\n height: calc(100% - 60px);\n box-sizing: border-box;\n width: 100%;\n overflow-y: auto;\n\n @media (max-width: 500px) {\n padding: 20px 0px;\n }\n`;\n\ninterface SlideOutProps {\n title?: string;\n showing?: boolean;\n wide?: boolean;\n onClose: () => void;\n onBack?: () => void;\n}\n\nexport const SlideOut = (\n props: React.PropsWithChildren & SlideOutProps>\n) => {\n const [overflowState, setOverflowState] = React.useState(document.body.style.overflow);\n\n React.useEffect(() => {\n if (props.showing) {\n setOverflowState(document.body.style.overflow);\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = overflowState;\n }\n\n return () => {\n document.body.style.overflow = overflowState;\n };\n }, [props.showing]);\n\n return (\n \n \n e.stopPropagation()}\n className=\"slideout-container\"\n >\n
\n {props.children}\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nexport const FormContainer = styled.form`\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n`;\n\nexport const FormRowContainer = styled.div<{\n breakMobile?: boolean;\n alignItems?: string;\n singleItem?: boolean;\n}>`\n display: flex;\n flex-direction: row;\n align-items: ${(props) => (props.alignItems ? props.alignItems : 'normal')};\n gap: 16px;\n width: 100%;\n max-width: ${(props) => (props.singleItem ? 'calc(50% - 8px)' : '100%')};\n\n @media (max-width: 600px) {\n max-width: 100%;\n flex-direction: ${(props) => (props.breakMobile ? 'column' : 'row')};\n }\n`;\n\nconst FormRowHeaderContainer = styled.div<{ paddingTop?: string }>`\n padding-top: ${(props) => (props.paddingTop ? props.paddingTop : '24px')};\n`;\n\nconst FormRowHeaderDescription = styled.div`\n color: #999999;\n font-size: 0.9em;\n padding-top: 4px;\n`;\n\nconst FormRowHeaderTitle = styled.div`\n font-size: 1.1em;\n font-weight: 500;\n`;\n\nconst FormRowError = styled.div`\n font-size: 0.8em;\n color: #d1344b;\n`;\n\ninterface FormRowProps {\n error?: string | false;\n breakMobile?: boolean;\n alignItems?: string;\n singleItem?: boolean;\n}\n\nexport const FormRow: React.FunctionComponent<\n React.PropsWithChildren & FormRowProps>\n> = (props) => (\n <>\n {props.children}\n {props.error && {props.error}}\n \n);\n\ninterface FormRowHeaderProps {\n title?: string;\n description?: string;\n paddingTop?: string;\n}\n\nexport const FormRowHeader: React.FunctionComponent> = (\n props\n) => (\n \n {props.title && {props.title}}\n {props.description && {props.description}}\n \n);\n\nconst FormColumnContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1 1 0;\n`;\n\nconst FormColumnTitle = styled.label`\n font-weight: 500;\n`;\n\nconst FormColumnDescription = styled.div`\n padding-bottom: 8px;\n font-size: 0.8em;\n color: #666666;\n`;\n\nconst FormColumnContents = styled.div``;\n\n// Temporary enum to distinguish the desired style\n// on the merchant form vs. the consumer forms. we'll\n// unify these styles once we have a design language.\nexport enum FormColumnStyle {\n merchant = 'merchant'\n}\n\ninterface FormColumnProps {\n title?: string;\n description?: string;\n label?: string;\n optional?: boolean;\n formColumnStyle?: FormColumnStyle;\n}\n\nexport const FormColumn: React.FunctionComponent<\n React.PropsWithChildren & FormColumnProps>\n> = (props) => {\n const [id] = useId();\n\n return (\n \n \n {props.title || props.label}\n {props.optional && (opt.)}\n \n {props.description && {props.description}}\n \n {React.Children.map(props.children, (child) =>\n React.isValidElement(child) ? React.cloneElement(child as JSX.Element, { id }) : child\n )}\n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { NumericFormat, OnValueChange } from 'react-number-format';\n\nexport const ErrorDisplay = styled.div`\n font-size: 0.8em;\n margin-top: 5px;\n color: #d1344b;\n`;\n\nexport const TextInputComponent = styled.input<{\n error?: string | null | false | true;\n currency?: boolean | false;\n}>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 8px 16px;\n\n padding-left: ${(props) => props.currency && '30px'};\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n &:focus + .suggestions-container {\n display: block;\n }\n`;\n\nexport const TextInput = React.forwardRef(\n (\n props: React.AllHTMLAttributes & {\n error?: string | null | false | true;\n currency?: boolean | false;\n },\n ref: React.Ref\n ) => (\n <>\n
\n {props.currency && (\n \n $\n \n )}\n \n {props.error && props.error !== true && {props.error}}\n
\n \n )\n);\n\nexport const CurrencyComponent = styled(NumericFormat)<{\n error?: string | null | false | true;\n currency?: boolean | false;\n}>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 8px 16px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n &:focus + .suggestions-container {\n display: block;\n }\n`;\n\nexport const CurrencyInput = (\n props: React.AllHTMLAttributes & {\n error?: string | null | false | true;\n currency?: boolean | false;\n value?: string | number;\n onValueChange?: OnValueChange;\n style?: React.CSSProperties;\n }\n) => {\n return (\n
\n \n {props.error && props.error !== true && {props.error}}\n
\n );\n};\n\nconst SuggestionsContainer = styled.div`\n position: absolute;\n display: none;\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n border-radius: 8px;\n z-index: 100;\n background: white;\n font-size: 0.9em;\n\n &:hover {\n display: block;\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n ul li {\n padding: 10px 20px;\n\n &:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n &:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n &:hover {\n background: #0ea5e9;\n color: white;\n cursor: pointer;\n }\n }\n`;\n\nconst Suggestions = (props: {\n suggestions: string[];\n onSelect?: (suggestion: string, index: number) => void;\n}) => (\n \n
    \n {props.suggestions.map((s, i) => (\n
  • (props.onSelect ? props.onSelect(s, i) : null)}>\n {s}\n
  • \n ))}\n
\n
\n);\n\ninterface AutocompleteTextInputProps {\n suggestions: string[];\n id?: string;\n value?: string;\n error?: boolean;\n disabled?: boolean;\n onChange?: (value: string) => void;\n onSelectSuggestion?: (suggestion: string, index: number) => void;\n}\n\nexport const AutocompleteTextInput = (props: AutocompleteTextInputProps): JSX.Element => {\n const [selectedSuggestion, setSelectedSuggestion] = React.useState(false);\n return (\n
\n {\n setSelectedSuggestion(false);\n props.onChange?.(e.currentTarget.value);\n }}\n disabled={props.disabled}\n />\n {props.suggestions.length > 0 && !selectedSuggestion && (\n {\n setSelectedSuggestion(true);\n props.onSelectSuggestion?.(suggestion, index);\n }}\n />\n )}\n
\n );\n};\nexport const TextAreaInputComponent = styled.textarea<{ error?: string | null | false }>`\n border: 0;\n outline: none;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 1em;\n padding: 12px 16px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n`;\n\nexport const TextAreaInput: React.FunctionComponent<\n React.AllHTMLAttributes & { error?: string | null | false }\n> = (props) => (\n <>\n \n {props.error && {props.error}}\n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ErrorDisplay, TextInputComponent } from './text';\nimport { IoAdd } from 'react-icons/io5';\nimport { Spinner } from '../Spinner';\n\nconst SelectInput = styled.select<{ error?: string | false | null }>`\n border: 0;\n outline: none;\n appearance: none;\n background: white;\n\n border-radius: 20px;\n border: ${(props) => (props.error ? '2px solid #d1344b' : '2px solid #e8e8e8')};\n box-sizing: border-box;\n font-size: 1em;\n padding: 8px 40px 8px 20px;\n\n width: 100%;\n\n transition: 0.15s all;\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n ::placeholder {\n color: #aaaaaa;\n }\n\n font-family: 'Inter', 'Helvetica Neue', 'Arial', sans-serif;\n`;\n\nconst Carat = styled.div`\n display: block;\n position: absolute;\n cursor: pointer;\n right: 1rem;\n top: 50%;\n margin-top: -1px;\n width: 0;\n height: 0;\n border-top: 5px solid #999;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n pointer-events: none;\n`;\n\nexport interface SelectProps {\n initialSelected?: string; // denotes uncontrolled\n selected?: string; // denotes controlled\n disabled?: boolean;\n style?: React.CSSProperties;\n\n error?: string | false | null;\n options?: { value: string; displayValue?: string }[];\n onChange?: (value: string) => void;\n}\n\nexport const Select = (\n props: React.AllHTMLAttributes & SelectProps\n): JSX.Element => {\n return (\n
\n
\n {\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n if (props.onChange) {\n props.onChange(e.currentTarget.value);\n }\n }}\n >\n {(props.options || []).map((option) => (\n \n ))}\n \n \n
\n {props.error && {props.error}}\n
\n );\n};\n\nexport const UnstyledSelect = (props: SelectProps): JSX.Element => {\n const [selected, setSelected] = React.useState(props.selected || props.initialSelected);\n\n React.useEffect(() => {\n setSelected(props.selected);\n }, [props.selected]);\n\n return (\n {\n e.stopPropagation();\n }}\n onChange={(e) => {\n e.stopPropagation();\n if (!props.selected) {\n setSelected(e.currentTarget.value);\n }\n if (props.onChange) {\n props.onChange(e.currentTarget.value);\n }\n }}\n value={selected}\n disabled={props.disabled}\n >\n {(props.options || []).map((option) => (\n \n ))}\n \n );\n};\n\nconst SearchableSelectOptionsContainer = styled.div`\n position: absolute;\n display: none;\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n border-radius: 8px;\n margin-top: 4px;\n z-index: 100;\n background: white;\n width: 100%;\n\n &:hover {\n display: block;\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n ul li {\n padding: 10px 20px;\n font-size: 0.9em;\n\n &:first-child {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n &:last-child {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n &:hover {\n background: #0ea5e9;\n color: white;\n cursor: pointer;\n\n span.highlighted {\n background: none;\n font-weight: normal;\n }\n }\n }\n\n li.add-item {\n border-top: 2px solid #f2f2f2;\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 0.9em;\n font-weight: 600;\n\n &.loading {\n background: #f8f8f8;\n cursor: wait;\n color: #666666;\n }\n }\n\n span.highlighted {\n background: yellow;\n font-weight: 600;\n }\n`;\n\nconst SearchableSelectOptions = (props: {\n options: string[];\n inputText: string;\n onSelect: (option: string) => void;\n onAdd: (option: string) => Promise;\n}) => {\n const [loading, setLoading] = React.useState(false);\n\n const handleAddOption = async () => {\n if (loading) {\n return;\n }\n\n try {\n setLoading(true);\n await props.onAdd(props.inputText);\n } finally {\n setLoading(false);\n }\n };\n\n const caseInsensitiveIndexOf = (s: string, sub: string) =>\n s.toLowerCase().indexOf(sub.toLowerCase());\n\n // Ranked options are the options to display in the dropdown. This is filtered\n // and ordered in an intuitive way for the user.\n const rankedOptions = props.options\n // First, only show options that contain the input string as a complete substring\n // unless the input string is empty, in which case show all opions.\n .filter((option) => !props.inputText || caseInsensitiveIndexOf(option, props.inputText) !== -1)\n // Next, build the sort key for each option. First, sort by the position of the\n // first complete substring match (prefer options that have the input text earlier\n // in the option rather than later). If the positions are the same, break the tie\n // by sorting based on the index option, keeping them in the original order (this is\n // also known as a stable sort). The final element is the actual option to render.\n .map((s, i): [number, number, string] => [caseInsensitiveIndexOf(s, props.inputText), i, s])\n // Generic sort comparator that sorts ascending by each corresponding element in the\n // sort key, checking subsequent elements in the key when prior elements are equal.\n .sort((a, b) => {\n for (let i = 0; i < a.length && i < b.length; i++) {\n if (a[i] !== b[i]) {\n return a[i] < b[i] ? -1 : 1;\n }\n }\n return 0;\n });\n\n return (\n \n
    \n
    \n {rankedOptions.map(([, , option]) => (\n
  • props.onSelect?.(option)}>\n {[...option].map((char, i) => (\n = caseInsensitiveIndexOf(option, props.inputText) &&\n i < caseInsensitiveIndexOf(option, props.inputText) + props.inputText.length\n ? 'highlighted'\n : undefined\n }\n >\n {char}\n \n ))}\n
  • \n ))}\n
    \n {!props.options.some((opt) => opt === props.inputText) && props.inputText != '' && (\n
  • \n {loading && (\n <>\n Adding \"{props.inputText}\"...\n \n )}\n {!loading && (\n <>\n Add \"{props.inputText}\"\n \n )}\n
  • \n )}\n
\n
\n );\n};\n\ninterface SearchableSelectProps {\n options: string[];\n initialValue?: string;\n disabled?: boolean;\n error?: string;\n onChange?: (value: string) => void;\n onAddOption?: (value: string) => Promise;\n onSelectOption?: (value: string) => void;\n}\n\nexport const SearchableSelect = (props: SearchableSelectProps): JSX.Element => {\n const [selectedOption, setSelectedOption] = React.useState(false);\n const [value, setValue] = React.useState(props.initialValue);\n\n React.useEffect(() => {\n setValue(props.initialValue);\n }, [props.initialValue]);\n\n return (\n
\n {\n setSelectedOption(false);\n setValue(e.currentTarget.value.trim());\n props.onChange?.(e.currentTarget.value.trim());\n }}\n onFocus={() => setSelectedOption(false)}\n disabled={props.disabled}\n />\n {!selectedOption && (\n {\n setSelectedOption(true);\n setValue(value);\n props.onSelectOption?.(value);\n }}\n onAdd={async (value: string) => {\n if (!props.onAddOption) {\n return;\n }\n\n await props.onAddOption(value);\n setSelectedOption(true);\n setValue(value);\n }}\n />\n )}\n {props.error && {props.error}}\n
\n );\n};\n","import { DayPicker, DayPickerProps } from 'react-day-picker';\nimport styled from 'styled-components';\nimport 'react-day-picker/src/style.css';\n\nconst DatePickerContainer = styled.div<{ loading?: boolean }>`\n .rdp {\n opacity: ${(props) => (props.loading ? 0.5 : 1.0)};\n pointer-events: ${(props) => (props.loading ? 'none' : 'auto')};\n transition: all 0.15s ease-in-out;\n\n margin: 0;\n\n .rdp-caption_label {\n padding: 0;\n border: 0;\n }\n\n .rdp-day_selected,\n .rdp-day_selected:hover,\n .rdp-day_selected:focus,\n .rdp-day_selected:active {\n background-color: #0ea5e9;\n border: 2px solid transparent;\n }\n\n .rdp-day,\n .rdp-day:hover,\n .rdp-day:focus,\n .rdp-day:active {\n border: 2px solid transparent;\n }\n\n .rdp-button:hover:not(.rdp-day_selected) {\n background-color: #e6f9f6;\n }\n }\n`;\n\nexport declare type DatePickerProps = {\n loading?: boolean;\n} & DayPickerProps;\n\nexport const DatePicker = (props: DatePickerProps): JSX.Element => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Table } from '@oysterjs/ui/Table';\n\nexport const SettingsContainer = styled.div`\n margin-top: 20px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nexport const Setting = (\n props: React.PropsWithChildren<{ title: string; description: string; rightAction?: JSX.Element }>\n) => (\n
\n
\n
\n

{props.title}

\n {props.rightAction &&
{props.rightAction}
}\n
\n

\n {props.description}\n

\n
\n
{props.children}
\n
\n);\n\nexport const DetailsContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 10px;\n\n & > div {\n flex: 1 0 0;\n flex-basis: 40%;\n box-sizing: border-box;\n\n &:not(:first-child) {\n max-width: calc(50% - 5px);\n }\n }\n\n @media (max-width: 600px) {\n flex-direction: column;\n\n & > div {\n &:not(:first-child) {\n max-width: 100%;\n }\n }\n }\n`;\n\nconst RentalSlideoutHeader = styled.div`\n justify-content: space-between;\n display: flex;\n align-items: center;\n gap: 0px;\n`;\n\ninterface RentalPageContainerProps {\n title: string;\n description: string;\n badge?: JSX.Element;\n}\n\nexport const RentalPageContainer = (props: React.PropsWithChildren) => (\n
\n \n

{props.title}

\n {props.badge}\n
\n

\n {props.description}\n

\n {props.children}\n
\n);\n\nconst StatementTable = styled(Table)`\n margin: 0;\n\n thead {\n text-align: left;\n }\n\n tbody tr td {\n border: 0;\n font-size: 0.9em;\n }\n\n tbody tr td:last-child,\n thead tr th:last-child {\n text-align: right;\n }\n\n tr.line-item td:last-child {\n font-weight: 500;\n }\n\n tr.line-item--no-adjustment td {\n border-bottom: 1px solid #f2f2f2;\n }\n\n tr.line-item--with-adjustment td {\n padding-bottom: 0px;\n }\n\n tr.line-item-adjustment td {\n font-size: 0.8em;\n padding-top: 4px;\n padding-bottom: 0px;\n color: #666666;\n }\n\n tr.line-item-adjustment--last-of-group td {\n padding-bottom: 16px;\n border-bottom: 1px solid #f2f2f2;\n }\n\n tr.summary-line td {\n font-weight: 500;\n padding-top: 8px;\n padding-bottom: 0px;\n }\n\n tr.summary-line--first-line td {\n border-top: 3px solid #eaeaea;\n }\n`;\n\ninterface Adjustment {\n description: string;\n amount: number;\n}\n\ninterface LineItem {\n waiverId: string;\n date: string;\n customer: string;\n assets: string[];\n rentalDuration: string;\n premium: number;\n adjustments: Adjustment[];\n}\n\nexport const Statement = (props: { lineItems: LineItem[] }) => (\n \n \n \n Date\n Customer\n Assets Rented\n Rental Duration\n Amount\n \n \n \n {props.lineItems.map((item) => (\n \n \n {item.date}\n {item.customer}\n {item.assets.join(', ')}\n {item.rentalDuration}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(item.premium)}\n \n \n {item.adjustments.map((adjustment, i) => (\n \n \n {adjustment.description}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(adjustment.amount)}\n \n \n ))}\n \n ))}\n \n Total Waivers\n {props.lineItems.length}\n \n \n Total Waiver Premium\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(props.lineItems.reduce((acc, curr) => acc + curr.premium, 0))}\n \n \n \n Total Premium Due\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD'\n }).format(\n props.lineItems.reduce(\n (acc, curr) =>\n acc + curr.premium + curr.adjustments.reduce((acc2, curr) => acc2 + curr.amount, 0),\n 0\n )\n )}\n \n \n \n \n);\n","import React from 'react';\n\nimport {\n addRentalAssetSerialNumber,\n createRentalWaiver,\n getMerchantRentalAssets,\n getMerchantRentalConfiguration,\n getRentalWaiver,\n getWaiverPricing,\n updateRentalWaiver\n} from '@oysterjs/core/api/merchant';\nimport { Button, ButtonContainer } from '../../components/Button';\nimport { FormContainer, FormRowHeader, FormRow, FormColumn } from '@oysterjs/ui/Form/builder';\nimport { SearchableSelect, Select } from '@oysterjs/ui/Form/select';\nimport { ErrorDisplay, TextInput, TextInputComponent } from '@oysterjs/ui/Form/text';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { DatePicker } from '@oysterjs/ui/Form/datepicker';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport {\n RentalAsset,\n RentalWaiver,\n RentalBooking,\n Price,\n ValidationError,\n WaiverAsset,\n AssetAccessory,\n WaiverState,\n WaiverEntry,\n BillingMode,\n MerchantRentalConfiguration,\n RentalBookingState\n} from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { RentalPageContainer } from './components';\nimport { openAsyncPageInNewTab } from '@oysterjs/core/window';\nimport config from '@oysterjs/core/config';\n\nconst CoveragePriceAmount = styled.span`\n font-weight: 100;\n font-size: 1.2em;\n vertical-align: baseline;\n`;\n\nconst getCurrentTime = (): Date => {\n const date = new Date();\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n\n return date;\n};\n\nconst minimumRentalDuration = (config?: MerchantRentalConfiguration) =>\n config?.Details.AutoRenewWaiver === true ? 7 : 1;\n\nexport const RentalWaiverForm = (props: {\n waiverId?: string;\n onWaiverCreated: (\n booking: RentalBooking,\n waiver: RentalWaiver,\n showConfirmationInDashboard: boolean\n ) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [priceLoading, setPriceLoading] = React.useState(false);\n const [submitLoading, setSubmitLoading] = React.useState(0);\n const [inputChanged, setInputChanged] = React.useState(false);\n const [showDatePicker, setShowDatePicker] = React.useState(false);\n\n const [rentalConfiguration, setRentalConfiguration] =\n React.useState();\n const [availableAssets, setAvailableAssets] = React.useState([]);\n const [waiver, setWaiver] = React.useState();\n const [booking, setBooking] = React.useState();\n const [startTime, setStartTime] = React.useState(getCurrentTime());\n const [durationInDays, setDurationInDays] = React.useState(1);\n const [waiverPrice, setWaiverPrice] = React.useState({ Currency: 'usd', Amount: 0 });\n const [pricingUpdateIndex, setPricingUpdateIndex] = React.useState(0);\n\n const [error, setError] = React.useState();\n const [validationError, setValidationError] = React.useState();\n const [serialNumberErrors, setSerialNumberErrors] = React.useState<(boolean | undefined)[]>([]);\n\n const fetchData = async () => {\n setLoading(true);\n\n // Fetch rental configuration\n const res = await getMerchantRentalConfiguration();\n const minDurationInDays = res.Configuration ? minimumRentalDuration(res.Configuration) : 1;\n const autoRenewWaiver = !!res.Configuration?.Details.AutoRenewWaiver;\n setRentalConfiguration(res.Configuration);\n\n // Set the initial minimum duration (for renewable waivers, it should be 7 days)\n setDurationInDays(minDurationInDays);\n\n // Fetch assets\n const assets = await getMerchantRentalAssets();\n setAvailableAssets(assets);\n\n let entry: WaiverEntry | undefined;\n if (props.waiverId) {\n entry = await getRentalWaiver(props.waiverId);\n setBooking(entry.Booking);\n setWaiver(entry.Waiver);\n const e = new Date(entry.Booking?.EndTime || '');\n const s = new Date(entry.Booking?.StartTime || '');\n setStartTime(s);\n setDurationInDays(Math.max((e.valueOf() - s.valueOf()) / 86400000, minDurationInDays));\n }\n\n // Fetch booking\n if (!entry || !entry.Booking) {\n const endTime = new Date(startTime);\n endTime.setDate(endTime.getDate() + minDurationInDays);\n setBooking({\n ID: '',\n MerchantID: '',\n State: RentalBookingState.Confirmed,\n StartTime: startTime,\n EndTime: endTime,\n Details: {\n Assets: [assets[0]],\n Accessories: [],\n BookingReference: '',\n Insured: {\n FirstName: '',\n LastName: '',\n Email: ''\n },\n AutoRenew: autoRenewWaiver\n }\n });\n }\n\n // Fetch waiver\n if (!entry || !entry.Waiver) {\n setWaiver({\n ID: '',\n MerchantID: '',\n RentalBookingID: '',\n State: WaiverState.pending,\n Details: {\n BillingMode: BillingMode.Customer,\n Assets: [rentalAssetToWaiverAsset(assets[0])],\n WaiverReferenceNumber: '',\n Premium: {\n Base: 0,\n Total: 0,\n Currency: 'usd',\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0\n },\n PremiumRounding: {\n Amount: 0,\n Currency: 'usd'\n }\n }\n });\n }\n\n setLoading(false);\n setPricingUpdateIndex((i) => ++i);\n };\n\n const rentalAssetToWaiverAsset = (rentalAsset: RentalAsset): WaiverAsset => ({\n Asset: rentalAsset,\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n });\n\n React.useEffect(() => {\n fetchData();\n }, []);\n\n //================================================================\n // BOOKING, WAIVERS, AND ASSETS LOGIC\n //================================================================\n\n // Create a list of unique asset names\n const assetNames = Object.keys(\n availableAssets.map((a) => a.Name).reduce((acc, curr) => ({ ...acc, [curr]: true }), {})\n );\n\n // For each unique asset name, create a list of all the serial numbers and associated asset IDs\n const assetSerialNumbers = Object.fromEntries(\n assetNames.map((name) => [\n name,\n availableAssets\n .filter((a) => a.Name === name)\n .map((a) => ({ serialNumber: a.Details.SerialNumber, assetId: a.ID }))\n .filter((s) => !!s)\n ])\n );\n\n const onChangeBooking = (block: (booking: RentalBooking) => RentalBooking) => {\n if (booking) {\n setInputChanged(true);\n setBooking({ ...block(booking) });\n } else {\n throw new Error('Booking data change attempted without being initialized');\n }\n };\n\n const onChangeWaiver = (block: (waiver: RentalWaiver) => RentalWaiver) => {\n if (waiver) {\n setInputChanged(true);\n setWaiver({ ...block(waiver) });\n } else {\n throw new Error('Waiver data change attempted without being initialized');\n }\n };\n\n const onAddAsset = () => {\n if (booking) {\n onChangeBooking((currentBooking) => ({\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Assets: [...(currentBooking.Details.Assets || []), availableAssets[0]]\n }\n }));\n }\n\n if (waiver) {\n onChangeWaiver((currentWaiver) => ({\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: [\n ...currentWaiver.Details.Assets,\n {\n Asset: availableAssets[0],\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n }\n ]\n }\n }));\n }\n };\n\n const onRemoveAsset = () => {\n clearSerialNumberError(waiver ? waiver.Details.Assets.length - 1 : 0);\n\n if (booking) {\n onChangeBooking((currentBooking) => {\n const updatedAssets = currentBooking.Details.Assets || [];\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Assets: updatedAssets\n }\n };\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n\n if (waiver) {\n onChangeWaiver((currentWaiver) => {\n const updatedAssets = currentWaiver.Details.Assets;\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n };\n\n //================================================================\n // SERIAL NUMBERS LOGIC\n //================================================================\n\n const setSerialNumberError = (index: number) =>\n setSerialNumberErrors((errors) => {\n const newErrors = [...errors];\n newErrors[index] = true;\n return newErrors;\n });\n\n const clearSerialNumberError = (index: number) =>\n setSerialNumberErrors((errors) => {\n const newErrors = [...errors];\n newErrors[index] = undefined;\n return newErrors;\n });\n\n const selectSerialNumber = (index: number, serialNumber: string, assets: RentalAsset[]) => {\n if (!serialNumber) {\n setSerialNumberError(index);\n return;\n }\n\n const selectedAsset = assets.find((ast) => ast.Details.SerialNumber === serialNumber);\n\n if (!selectedAsset) {\n setSerialNumberError(index);\n return;\n }\n\n onChangeWaiver((currentWaiver) => {\n currentWaiver.Details.Assets[index].Asset = selectedAsset;\n return currentWaiver;\n });\n\n onChangeBooking((currentBooking) => {\n if (currentBooking.Details.Assets) {\n currentBooking.Details.Assets[index] = selectedAsset;\n }\n return currentBooking;\n });\n\n setPricingUpdateIndex((i) => ++i);\n clearSerialNumberError(index);\n };\n\n const handleSelectSerialNumber = (index: number) => (serialNumber: string) =>\n selectSerialNumber(index, serialNumber, availableAssets);\n\n const handleAddSerialNumber = (index: number) => async (serialNumber: string) => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n const assetId = waiver?.Details.Assets[index]?.Asset?.ID;\n if (!assetId) {\n throw new Error('Asset not found');\n }\n\n try {\n await addRentalAssetSerialNumber(assetId, serialNumber);\n const assets = await getMerchantRentalAssets();\n\n selectSerialNumber(index, serialNumber, assets);\n setAvailableAssets(assets);\n\n setError(undefined);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setLoading(false);\n }\n };\n\n //================================================================\n // ACCESSORIES LOGIC\n //================================================================\n\n const onAddAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (waiver) {\n const updatedAsset = {\n ...waiver.Details.Assets[assetIndex]\n };\n updatedAsset.Accessories = [...updatedAsset.Accessories, accessory];\n const updatedAssets = [\n ...waiver.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...waiver.Details.Assets.slice(assetIndex + 1, waiver.Details.Assets.length)\n ];\n\n onChangeWaiver((currentWaiver) => {\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n\n if (booking) {\n onChangeBooking((currentBooking) => {\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Accessories: [...currentBooking.Details.Accessories, accessory]\n }\n };\n });\n }\n\n setPricingUpdateIndex((i) => ++i);\n };\n\n const onRemoveAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (waiver) {\n const updatedAsset = {\n ...waiver.Details.Assets[assetIndex]\n };\n const indexToRemove = updatedAsset.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n if (indexToRemove !== -1) {\n updatedAsset.Accessories.splice(indexToRemove, 1);\n const updatedAssets = [\n ...waiver.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...waiver.Details.Assets.slice(assetIndex + 1, waiver.Details.Assets.length)\n ];\n\n onChangeWaiver((currentWaiver) => {\n return {\n ...currentWaiver,\n Details: {\n ...currentWaiver.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n }\n\n if (booking) {\n const indexToRemove = booking.Details.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n\n if (indexToRemove !== -1) {\n onChangeBooking((currentBooking) => {\n const updatedAccessories = currentBooking.Details.Accessories;\n updatedAccessories.splice(indexToRemove, 1);\n return {\n ...currentBooking,\n Details: {\n ...currentBooking.Details,\n Accessories: updatedAccessories\n }\n };\n });\n }\n }\n\n setPricingUpdateIndex((i) => ++i);\n };\n\n //================================================================\n // DATE AND TIME LOGIC\n //================================================================\n\n const getStartTimeOptions = () => {\n const options: { value: string; displayValue: string }[] = [];\n for (let i = 0; i < 24; i++) {\n options.push({ value: i.toString(), displayValue: `${i.toString().padStart(2, '0')}:00` });\n }\n\n return options;\n };\n\n const updateBookingTimes = () => {\n if (booking) {\n onChangeBooking((currentBooking) => {\n currentBooking.StartTime = startTime;\n currentBooking.EndTime = new Date(startTime);\n currentBooking.EndTime.setDate(currentBooking.EndTime.getDate() + durationInDays);\n return currentBooking;\n });\n\n setPricingUpdateIndex((i) => ++i);\n }\n };\n\n React.useEffect(() => {\n updateBookingTimes();\n }, [startTime, durationInDays]);\n\n //================================================================\n // PRICING LOGIC\n //================================================================\n // TODO: Maybe we can re-use this somewhere\n function useDebounce(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = React.useState(value);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n return () => clearTimeout(timer);\n }, [value, delay]);\n\n return debouncedValue;\n }\n\n const debouncedPricingUpdateIndex = useDebounce(pricingUpdateIndex, 500);\n React.useEffect(() => {\n if (booking && waiver) {\n setPriceLoading(true);\n getWaiverPricing(booking, waiver)\n .then((updatedWaiver) => {\n onChangeWaiver(() => updatedWaiver);\n setWaiverPrice({\n Currency: updatedWaiver.Details.Premium.Currency,\n Amount: updatedWaiver.Details.Premium.Total\n });\n })\n .finally(() => setPriceLoading(false));\n }\n }, [!!booking, !!waiver, debouncedPricingUpdateIndex]);\n\n //================================================================\n // CREATE LOGIC\n //================================================================\n\n const onCreateOrUpdateWaiver = (sendEmail: boolean) => {\n if (booking && waiver) {\n let apiFunc = createRentalWaiver;\n if (booking.ID && waiver.ID) {\n apiFunc = updateRentalWaiver;\n }\n\n // Check that selected assets have a serial number and that the\n // serial number matches an available asset.\n let hasSerialNumberError = false;\n for (let i = 0; i < waiver.Details.Assets.length; i++) {\n const serialNumber = waiver.Details.Assets[i].Asset?.Details.SerialNumber;\n const asset = availableAssets.find((ast) => ast.Details.SerialNumber === serialNumber);\n\n if (!serialNumber || !asset) {\n setSerialNumberError(i);\n hasSerialNumberError = true;\n }\n }\n\n if (hasSerialNumberError) {\n return;\n }\n\n setSubmitLoading(sendEmail ? 1 : 2);\n setError(undefined);\n setValidationError(undefined);\n setInputChanged(false);\n const updateHandler = apiFunc(booking, waiver, sendEmail)\n .then((res) => {\n props.onWaiverCreated(res.UpdatedBooking, res.UpdatedWaiver, !sendEmail);\n if (!sendEmail) {\n return (\n config().serviceBaseUrl.getoyster +\n `/rental/waiver/${res.UpdatedWaiver.ID}/confirm?from=partner`\n );\n }\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n })\n .finally(() => setSubmitLoading(0));\n\n openAsyncPageInNewTab(updateHandler);\n }\n };\n\n return (\n \n {\n e.preventDefault();\n updateBookingTimes();\n }}\n >\n {loading && !booking && !waiver && }\n {booking && waiver && (\n <>\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.FirstName = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.LastName = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.Email = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.Insured.Phone = value;\n return b;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeBooking((b) => {\n b.Details.BookingReference = value;\n return b;\n });\n }}\n />\n \n \n \n \n setShowDatePicker(true)}\n />\n \n \n {\n const updatedTime = new Date(startTime);\n updatedTime.setHours(newStartHour as number, 0);\n setStartTime(updatedTime);\n }}\n disabled={!!submitLoading}\n />\n \n \n {\n const value = e.currentTarget.value;\n setDurationInDays(Number(value));\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'Duration' &&\n validationError?.Message\n }\n disabled={!!submitLoading}\n />\n \n \n {showDatePicker && (\n \n {\n setShowDatePicker(false);\n date.setHours(\n startTime.getHours(),\n startTime.getMinutes(),\n startTime.getSeconds()\n );\n setStartTime(date);\n }}\n selected={startTime}\n disabled={(day) => {\n const today = new Date(new Date().setHours(0, 0, 0, 0));\n return day.getTime() < today.setDate(today.getDate());\n }}\n />\n \n )}\n\n \n {waiver &&\n waiver.Details.Assets.filter((asset) => !!asset.Asset).map((asset, index) => {\n const getAccessoriesQuantity = (\n list: AssetAccessory[],\n accessory: AssetAccessory\n ): number =>\n list.filter((acc) => acc.Name === accessory.Name && acc.Value === accessory.Value)\n .length;\n\n return (\n
\n \n \n ({ value: name }))}\n defaultValue={asset.Asset!.Name}\n onChange={(value) => {\n const selectedAsset = availableAssets.find((ast) => ast.Name === value);\n if (!selectedAsset) {\n throw new Error('Selected asset not found');\n }\n\n onChangeWaiver((currentWaiver) => {\n currentWaiver.Details.Assets[index].Asset = selectedAsset;\n currentWaiver.Details.Assets[index].Accessories = [];\n\n return currentWaiver;\n });\n\n onChangeBooking((currentBooking) => {\n if (currentBooking.Details.Assets) {\n currentBooking.Details.Assets[index] = selectedAsset;\n }\n currentBooking.Details.Accessories = [];\n\n return currentBooking;\n });\n\n clearSerialNumberError(index);\n setPricingUpdateIndex((i) => ++i);\n }}\n />\n \n \n a.serialNumber)\n .filter((s) => !!s)}\n initialValue={asset.Asset!.Details.SerialNumber}\n error={\n serialNumberErrors[index]\n ? 'Please choose a serial number or enter a new one and click \"add\"'\n : undefined\n }\n onChange={handleSelectSerialNumber(index)}\n onSelectOption={handleSelectSerialNumber(index)}\n onAddOption={handleAddSerialNumber(index)}\n />\n \n \n \n {asset.Asset!.Details.AvailableAccessories?.map((acc) => (\n \n \n {acc.Name}\n
\n onRemoveAccessory(index, acc)}\n >\n -\n \n

{getAccessoriesQuantity(asset.Accessories, acc)}

\n onAddAccessory(index, acc)}\n >\n +\n \n
\n ))}\n
\n
\n );\n })}\n
\n \n \n Remove asset\n \n
\n\n {/* Waiver pricing component */}\n \n
\n {priceLoading && }\n {!priceLoading && (\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: waiverPrice.Currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(waiverPrice.Amount)}\n \n )}\n

\n Due at signing\n

\n
\n\n {/* Actions */}\n \n !!v)}\n loading={submitLoading === 1}\n style={{ marginRight: '10px', flexGrow: 1 }}\n onClick={() => onCreateOrUpdateWaiver(true)}\n >\n Send to customer\n \n !!v)}\n loading={submitLoading === 2}\n style={{ marginLeft: '10px', flexGrow: 1 }}\n onClick={() => onCreateOrUpdateWaiver(false)}\n >\n Sign waiver\n \n \n {error && error}\n \n )}\n \n \n );\n};\n","import { IoArrowForward } from 'react-icons/io5';\nimport { Button, ButtonContainer } from '../../components/Button';\nimport { RentalPageContainer } from './components';\n\nexport const RentalWaiverSentPage = (props: { onClose: () => void }) => (\n \n \"\"\n {props.onClose && (\n \n \n \n )}\n \n);\n","import { PolicyType } from '@oysterjs/types';\nimport config from './config';\n\nconst getStaticFileUrl = (path: string): string =>\n `${config().backendBaseUrl.statics}/${path.replace(/^\\/+/, '')}`;\n\nexport const getSamplePolicyUrl = (type: PolicyType): string => {\n switch (type) {\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return getStaticFileUrl('/policy/sample/m_jewelry');\n case PolicyType.markelOffroad:\n return getStaticFileUrl('/policy/sample/m_offroad');\n case PolicyType.markelMotorcycle:\n return getStaticFileUrl('/policy/sample/m_motorcycle');\n case PolicyType.markelBike:\n return getStaticFileUrl('/policy/sample/m_bike');\n case PolicyType.worthAveElectronics:\n return getStaticFileUrl('/policy/sample/w_electronics');\n default:\n return getStaticFileUrl(`/policy/sample/${type}`);\n }\n};\n\nexport const getDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/doc/${id}`);\n};\n\nexport const getPolicyDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/policy/doc/${id}`);\n};\n\nexport const getRentalDocumentUrl = (id: string): string => {\n return getStaticFileUrl(`/rental/doc/${id}`);\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport {\n cancelBookingRenewal,\n getMerchantRentalConfiguration,\n getRentalBooking,\n getRentalBookingFiles,\n getRentalClaimByWaiverId\n} from '@oysterjs/core/api/merchant';\nimport { Button, ButtonContainer, ButtonLink } from '../../components/Button';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport {\n AttachmentFile,\n DefaultFileRoles,\n Insured,\n MerchantRentalConfiguration,\n RentalBooking,\n RentalClaim,\n RentalClaimState,\n RentalWaiver,\n WaiverState\n} from '@oysterjs/types';\nimport { DetailsContainer, RentalPageContainer } from './components';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport { IoBicycle, IoPerson, IoRefresh } from 'react-icons/io5';\nimport { Table } from '@oysterjs/ui/Table';\nimport { getRentalDocumentUrl } from '@oysterjs/core/statics';\n\nconst InsuredItemContainer = styled.div`\n border-radius: 16px;\n padding: 16px;\n border: 2px dotted #eaeaea;\n transition: all 0.15s ease-in-out;\n display: flex;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InsuredItemDetails = styled.div`\n flex: 1 0 0px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst InsuredItemTitle = styled.div`\n gap: 16px;\n display: flex;\n justify-content: space-between;\n font-weight: 500;\n`;\n\nconst InsuredItemContent = styled.div`\n font-size: 0.9em;\n color: #666666;\n`;\n\nexport const RentalDescription = (props: {\n itemName: string;\n serialNumber: string;\n accessories: string[];\n startDate: Date;\n endDate: Date;\n}) => {\n const formattedRentalDate = () => {\n const f = new Intl.DateTimeFormat(undefined, {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit'\n });\n\n return `${f.format(props.startDate)} - ${f.format(props.endDate)}`;\n };\n\n return (\n \n
\n \n
\n \n \n
{props.itemName}
\n
\n \n
{props.serialNumber}
\n {props.accessories.length > 0 &&
{props.accessories.join(', ')}
}\n
{formattedRentalDate()}
\n
\n
\n
\n );\n};\n\nexport const InsuredDescription = (props: { insured: Insured }) => (\n \n
\n \n
\n \n \n
\n {props.insured.FirstName} {props.insured.LastName}\n
\n
\n \n
{props.insured.Email}
\n {props.insured.AddressCity &&\n props.insured.AddressState &&\n props.insured.AddressZipCode && (\n
\n {props.insured.AddressCity.trim()}, {props.insured.AddressState.trim()}{' '}\n {props.insured.AddressZipCode.trim()}\n
\n )}\n {!props.insured.AddressCity && props.insured.Phone &&
{props.insured.Phone}
}\n
\n
\n
\n);\n\nexport const RenewalDescription = (props: {\n waiver?: RentalWaiver;\n booking: RentalBooking;\n showRenewalPeriod?: boolean;\n}) => {\n const f = new Intl.DateTimeFormat(undefined, {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit'\n });\n\n return (\n \n
\n \n
\n \n \n
{props.waiver ? 'Booking and Waiver Renewal' : 'Booking Renewal'}
\n
\n \n {props.booking.Details.AutoRenew && !props.showRenewalPeriod && (\n <>Will renew on {`${f.format(new Date(props.booking.EndTime))}`}\n )}\n {props.booking.Details.AutoRenew && props.showRenewalPeriod && (\n <>\n Will renew every{' '}\n {`${\n (new Date(props.booking.EndTime).valueOf() -\n new Date(props.booking.StartTime).valueOf()) /\n 86400000\n }`}{' '}\n days\n \n )}\n {!props.booking.Details.AutoRenew && <>Renewal canceled}\n \n
\n
\n );\n};\n\nexport const RentalBookingDetailsPage = (props: {\n bookingId: string;\n onCreateWaiver: (booking: RentalBooking) => void;\n onViewWaiver: (waiver: RentalWaiver) => void;\n onFileClaim: (waiver: RentalWaiver) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [rentalConfig, setRentalConfig] = React.useState();\n const [waiver, setWaiver] = React.useState();\n const [booking, setBooking] = React.useState();\n const [claim, setClaim] = React.useState();\n const [files, setFiles] = React.useState(null);\n\n const onFetchData = async () => {\n if (!props.bookingId) {\n return;\n }\n\n // If we're refreshing, avoid loading flash by suppressing the loader\n if (!booking) {\n setLoading(true);\n }\n\n const entry = await getRentalBooking(props.bookingId);\n if (!entry.Booking) {\n throw new Error(`Booking ${props.bookingId} does not exist`);\n }\n setBooking(entry.Booking);\n setWaiver(entry.Waiver);\n\n const config = await getMerchantRentalConfiguration();\n setRentalConfig(config.Configuration);\n\n // Get claim if waiver exists\n if (entry.Waiver) {\n const res = await getRentalClaimByWaiverId(entry.Waiver?.ID);\n setClaim(res.Claim);\n }\n\n // Get documents/files if booking exists\n if (entry.Booking) {\n const res = await getRentalBookingFiles(entry.Booking?.ID);\n setFiles(res);\n }\n\n setLoading(false);\n };\n\n const onCancelRenewal = async () => {\n setLoading(true);\n const updatedBooking = await cancelBookingRenewal(props.bookingId);\n if (updatedBooking) {\n setBooking(updatedBooking);\n }\n setLoading(false);\n };\n\n React.useEffect(() => {\n onFetchData();\n }, [props.bookingId]);\n\n React.useEffect(() => {\n window.addEventListener('focus', onFetchData);\n return () => window.removeEventListener('focus', onFetchData);\n });\n\n const getCompactRentedAssets = (b: RentalBooking): string => {\n if (!b.Details.Assets?.length) {\n return '';\n }\n\n return (\n b.Details.Assets[0].Name +\n (b.Details.Assets.length > 1 ? ` and ${b.Details.Assets.length - 1} other(s)` : '')\n );\n };\n\n const getWaiverStatus = (b?: RentalBooking, w?: RentalWaiver) => {\n if (!b) {\n return ;\n }\n\n if (!w || w.State == WaiverState.unknown) {\n return ;\n }\n\n switch (w.State) {\n case WaiverState.pending:\n return ;\n case WaiverState.canceled:\n return ;\n case WaiverState.active:\n case WaiverState.expired:\n return ;\n default:\n return ;\n }\n };\n\n const getClaimStatus = (c?: RentalClaim) => {\n switch (c?.State) {\n case RentalClaimState.requires_information:\n return 'Please provide all required information and submit the claim.';\n case RentalClaimState.logged:\n case RentalClaimState.submitted:\n return 'Claim has been submitted. We will process your information and notify you of any updates.';\n case RentalClaimState.approved:\n return 'Claim has been approved.';\n case RentalClaimState.denied:\n return 'Claim has been denied. Please contact us if you need any support.';\n default:\n return undefined;\n }\n };\n\n const getFileNameForRentalFiles = (file: AttachmentFile): string => {\n switch (file.Attachment?.Role) {\n case DefaultFileRoles.signedRentalAgreement:\n return 'Signed Rental Agreement';\n case DefaultFileRoles.waiverLDWDocument:\n return 'Loss Damage Waiver';\n default:\n return 'Other';\n }\n return '';\n };\n\n return (\n \n {loading && }\n {!loading && booking && (\n <>\n \n \n {rentalConfig?.Details.AutoRenewWaiver &&\n waiver &&\n waiver.State === WaiverState.active && (\n \n )}\n {booking.Details.Assets?.map((asset) => (\n a.Name)}\n startDate={new Date(booking.StartTime)}\n endDate={new Date(booking.EndTime)}\n />\n ))}\n {booking.Details.BookingLineItems?.map((asset) => (\n a.Name)}\n startDate={new Date(booking.StartTime)}\n endDate={new Date(booking.EndTime)}\n />\n ))}\n \n\n \n {booking &&\n waiver &&\n rentalConfig?.Details.AutoRenewWaiver &&\n booking.Details.AutoRenew &&\n waiver &&\n waiver.State === WaiverState.active && (\n \n )}\n {(!waiver || waiver.State === WaiverState.unknown) && (\n \n )}\n {waiver && waiver.State === WaiverState.pending && (\n \n )}\n {waiver &&\n (waiver.State === WaiverState.active || waiver.State === WaiverState.expired) && (\n <>\n

{getClaimStatus(claim)}

\n {(!claim ||\n claim.State === RentalClaimState.unknown ||\n claim.State === RentalClaimState.requires_information) && (\n \n )}\n \n )}\n
\n\n {files && files.length > 0 && (\n \n \n \n \n \n \n \n \n {files.map((a) => (\n \n \n \n \n ))}\n \n
Booking documents and files
{getFileNameForRentalFiles(a)}\n \n View\n \n
\n )}\n \n )}\n \n );\n};\n","import styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nconst CheckboxContainer = styled.div<{ disabled?: boolean; checked?: boolean }>`\n .checkbox-symbol {\n pointer-events: none;\n user-select: none;\n }\n\n .checkbox-container {\n box-sizing: border-box;\n background: #ffffff;\n }\n\n .checkbox-container * {\n box-sizing: border-box;\n }\n\n .checkbox-input {\n position: absolute;\n visibility: hidden;\n }\n\n .checkbox {\n user-select: none;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n overflow: hidden;\n transition: all 0.15s ease;\n display: flex;\n }\n\n .checkbox span {\n vertical-align: middle;\n transform: translate3d(0, 0, 0);\n position: relative;\n margin-top: 2px;\n width: 16px;\n height: 16px;\n border-radius: 3px;\n transform: scale(1);\n border: 1px solid #cccfdb;\n transition: all 0.15s ease;\n background: ${(props) => (props.disabled ? '#ffffff' : props.checked ? '#0EA5E9' : 'white')};\n opacity: ${(props) => (props.disabled ? '0.3' : '1.0')};\n }\n\n .checkbox span svg {\n position: absolute;\n top: 3px;\n left: 2px;\n fill: none;\n stroke: #fff;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all 0.15s ease;\n transform: translate3d(0, 0, 0);\n }\n\n .checkbox-input:checked + .checkbox span {\n background: #0ea5e9;\n border-color: #0ea5e9;\n animation: zoom-in-out 0.15s ease;\n }\n\n .checkbox-input:checked + .checkbox span svg {\n stroke-dashoffset: 0;\n }\n\n @keyframes zoom-in-out {\n 50% {\n transform: scale(0.9);\n }\n }\n`;\n\nexport interface CheckboxProps {\n label?: string;\n checked?: boolean;\n disabled?: boolean;\n onChange?: () => void;\n}\n\nexport const Checkbox = (props: CheckboxProps): JSX.Element => {\n const [id] = useId();\n return (\n \n
\n \n \n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { ValidationError } from '@oysterjs/types';\n\nimport { AutocompleteTextInput, TextInput } from './text';\nimport { getLocationSuggestions, getMapURL, MAPBOX_PUBLIC_KEY } from '@oysterjs/core/mapbox';\nimport { FormColumn, FormRow } from './builder';\nimport { AddressAutofill } from '@mapbox/search-js-react';\nimport config from '@oysterjs/core/config';\n\nconst ErrorDisplay = styled.div`\n font-size: 0.8em;\n margin-top: 5px;\n color: #d1344b;\n`;\n\ninterface AddressInputProps {\n id: string;\n\n onChange: (address: string, longitude: number, latitude: number) => void;\n disabled?: boolean;\n\n initialAddress?: [string, number, number];\n validationError?: ValidationError;\n}\n\nexport const AddressInput: React.FunctionComponent> = (\n props\n) => {\n const [state, setState] = React.useState<[string, number, number]>(\n props.initialAddress || ['', 0, 0]\n );\n const [suggestions, setSuggestions] = React.useState<\n {\n address: string;\n coordinates: [number, number];\n }[]\n >([]);\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n const setData = (address: string, longitude: number, latitude: number) => {\n setState([address, longitude, latitude]);\n props.onChange(address, longitude, latitude);\n };\n\n return (\n <>\n s.address)}\n error={!!validationError}\n value={state[0]}\n onChange={(value) => {\n setData(value, 0, 0);\n setValidationError(undefined);\n getLocationSuggestions(value).then(setSuggestions);\n }}\n onSelectSuggestion={(suggestion, index) => {\n setData(suggestion, suggestions[index].coordinates[0], suggestions[index].coordinates[1]);\n setValidationError(undefined);\n }}\n disabled={props.disabled}\n />\n {validationError && {validationError?.Message}}\n {state[1] !== 0 && state[2] !== 0 && (\n \n )}\n \n );\n};\n\ninterface Address {\n businessName?: string;\n streetAddress?: string;\n streetAddressLine2?: string;\n aptFloor?: string;\n aptUnit?: string;\n city?: string;\n state?: string;\n zipCode?: string;\n}\n\ninterface AddressInputFormProps {\n showBusinessName?: boolean;\n showSecondLine?: boolean;\n singleSecondLine?: boolean;\n initialValue?: Address;\n validationError?: Partial>;\n onChange: (address: Address) => void;\n disabled?: boolean;\n}\n\nconst ConditionalWrapper = ({ condition, wrap, children }) =>\n condition ? wrap(children) : children;\n\nexport const AddressInputForm: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => {\n const [state, setState] = React.useState
(\n props.initialValue || {\n businessName: '',\n streetAddress: '',\n streetAddressLine2: '',\n aptFloor: '',\n aptUnit: '',\n city: '',\n state: '',\n zipCode: ''\n }\n );\n\n const onChange = (fn: (prev: Address) => Address) =>\n setState((prev) => {\n const next = fn(prev);\n props.onChange(next);\n return next;\n });\n\n return (\n <>\n {props.showBusinessName && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, businessName: value }));\n }}\n autoComplete=\"organization\"\n />\n \n \n )}\n \n \n (\n {child}\n )}\n >\n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, streetAddress: value }));\n }}\n autoComplete=\"address-line1\"\n />\n \n \n \n {props.showSecondLine && props.singleSecondLine && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, streetAddressLine2: value }));\n }}\n autoComplete=\"address-line2\"\n />\n \n \n )}\n {props.showSecondLine && !props.singleSecondLine && (\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, aptFloor: value }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, aptUnit: value }));\n }}\n />\n \n \n )}\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, city: value }));\n }}\n autoComplete=\"address-level2\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, state: value }));\n }}\n autoComplete=\"address-level1\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange((prev) => ({ ...prev, zipCode: value }));\n }}\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n \n \n \n );\n};\n","import styled from 'styled-components';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\n\nexport const RequirementItem = (props: { name: string; description: string }): JSX.Element => (\n \n \n \n \n \n {props.name}\n {props.description}\n \n \n);\n\nexport const RequirementPage = ({\n items,\n onNext\n}: {\n items: Array<{ name: string; description: string }>;\n onNext: () => void;\n}): JSX.Element => (\n <>\n {items.map((item) => (\n \n ))}\n \n \n \n \n);\n\nexport const RequirementItemContainer = styled.div`\n padding: 16px 0px;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n`;\n\nexport const RequirementCheckboxContainer = styled.div`\n width: 30px;\n`;\n\nexport const RequirementContentContainer = styled.div`\n width: calc(100% - 30px);\n`;\n\nexport const RequirementDescription = styled.div<{ marginTop?: string }>`\n color: #999999;\n font-size: 0.9em;\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '5px')};\n`;\n\nexport const RequirementTitle = styled.div`\n font-weight: 500;\n`;\n\nexport const RequirementError = styled.div`\n font-size: 0.8em;\n margin-top: 10px;\n color: #d1344b;\n`;\n","import styled from 'styled-components';\n\nimport { IoAttachOutline, IoClose } from 'react-icons/io5';\n\nconst AttachmentLozengeContainer = styled.div<{ uploading?: boolean }>`\n opacity: ${(props) => (props.uploading ? 0.5 : 1.0)};\n pointer-events: ${(props) => (props.uploading ? 'none' : 'auto')};\n transition: all 0.15s ease-in-out;\n\n font-size: 0.8em;\n padding: 5px 10px;\n background: #eaeaea;\n border-radius: 30px;\n color: #333333;\n\n * {\n vertical-align: middle;\n }\n\n .close-icon {\n color: #666666;\n cursor: pointer;\n\n &:hover {\n color: #000000;\n }\n }\n`;\n\nconst formatSize = (size: number) => {\n if (size < 1024) {\n return `${size}B`;\n }\n if (size < 1024 * 1024) {\n return `${Math.round(size / 1024)}KB`;\n }\n if (size < 1024 * 1024 * 1024) {\n return `${Math.round(size / (1024 * 1024))}MB`;\n }\n return 'big';\n};\n\nexport const AttachmentLozenge = (props: {\n name: string;\n url?: string;\n size?: number;\n uploading?: boolean;\n onRemove?: () => void;\n}): JSX.Element => {\n return (\n e.stopPropagation()}\n >\n \n {props.name}\n {props.size != undefined && props.size > 0 && (\n <>\n {' '}({formatSize(props.size)})\n \n )}\n {props.onRemove && (\n {\n e.stopPropagation();\n if (props.onRemove) {\n props.onRemove();\n }\n }}\n />\n )}\n \n );\n};\n","import React from 'react';\nimport { IoCheckmarkCircle, IoEllipseOutline } from 'react-icons/io5';\nimport { AttachmentFile, ValidationError } from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { ErrorDisplay } from '../Form/text';\nimport { Spinner } from '../Spinner';\nimport { AttachmentLozenge } from './lozenge';\n\nconst AttachmentContainer = styled.div<{ enabled?: boolean; error?: boolean; dragging?: boolean }>`\n box-shadow: ${(props) =>\n props.error ? '0 0 0 2px #d1344b' : props.enabled ? '0 0 0 0px #C8C8C8' : '0 0 0 2px #0ea5e9'};\n border: ${(props) =>\n props.error || !props.enabled ? '1px solid transparent' : '1px dashed #C8C8C8'};\n border-radius: 8px;\n transition: 0.15s all ease-in-out;\n padding: 16px;\n box-sizing: border-box;\n background: ${(props) => (props.dragging ? '#e2e2e2' : 'white')};\n\n display: flex;\n flex-direction: row;\n margin: 0px;\n cursor: pointer;\n\n * {\n pointer-events: none;\n }\n`;\n\nconst AttachmentCheckboxContainer = styled.div`\n width: 30px;\n`;\n\nconst AttachmentContentContainer = styled.div`\n width: calc(100% - 30px);\n`;\n\nconst AttachmentDescription = styled.div`\n color: #999999;\n font-size: 0.9em;\n margin-top: 5px;\n`;\n\nconst AttachmentContent = styled.div`\n font-size: 0.9em;\n margin-top: 5px;\n padding: 10px 0px 5px 0px;\n\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 5px;\n\n * {\n pointer-events: auto;\n }\n`;\n\nconst AttachmentHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 500;\n`;\n\nconst ChildrenContainer = styled.div`\n margin-top: 10px;\n`;\n\nconst getFilesFromEvent = (dataTransfer?: DataTransfer): File[] => {\n const files: File[] = [];\n\n if (dataTransfer && dataTransfer.items) {\n // Use DataTransferItemList interface to access the file(s)\n for (let i = 0; i < dataTransfer.items.length; i++) {\n // If dropped items aren't files, reject them\n if (dataTransfer.items[i].kind === 'file') {\n const file = dataTransfer.items[i].getAsFile();\n if (file) {\n files.push(file);\n }\n }\n }\n } else if (dataTransfer && dataTransfer.files) {\n // Use DataTransfer interface to access the file(s)\n for (let i = 0; i < dataTransfer.files.length || 0; i++) {\n const file = dataTransfer.files[i];\n if (file) {\n files.push(file);\n }\n }\n }\n\n return files;\n};\n\nexport interface AttachmentUploaderProps {\n title?: string;\n description?: string;\n multiple?: boolean;\n allowDeleteExisting?: boolean;\n attachments: AttachmentFile[];\n onAttachmentsAdded: (files: File[]) => Promise;\n onAttachmentRemoved?: (index: number, attachment?: AttachmentFile, file?: File) => Promise;\n validationError?: ValidationError;\n}\n\nexport const AttachmentUploader: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => {\n const [loading, setLoading] = React.useState(false);\n const [dragging, setDragging] = React.useState(false);\n\n const attachRef = React.useRef(null);\n\n const [validationError, setValidationError] = React.useState();\n const [existingAttachmentsList, setExistingAttachmentsList] = React.useState(\n []\n );\n const [newAttachmentsList, setNewAttachmentsList] = React.useState([]);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n React.useEffect(() => {\n // Set existing attachments\n setExistingAttachmentsList(props.attachments);\n\n // Remove new attachments that has the same name as existing attachments\n // This is for the case where we've uploaded the file and backend updates the list of attachments\n setNewAttachmentsList((prev) =>\n prev.filter(\n (newAttachment) =>\n props.attachments.findIndex(\n (uploadedAttachment) => uploadedAttachment.Name === newAttachment.name\n ) === -1\n )\n );\n }, [props]);\n\n const addFiles = (files: File[]) => {\n setValidationError(undefined);\n setNewAttachmentsList((prev) => [...prev, ...files]);\n setLoading(true);\n\n // Call the attachment added callback, remove new files if the call fails\n props\n .onAttachmentsAdded(files)\n .catch(() => {\n setNewAttachmentsList((prev) =>\n prev.filter((newAttachment) => files.indexOf(newAttachment) === -1)\n );\n })\n .finally(() => setLoading(false));\n };\n\n const onDragEnter = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(true);\n };\n\n const onDragLeave = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(false);\n };\n\n const onDragOver = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'copy';\n }\n };\n\n const onDrop = (e: { dataTransfer?: DataTransfer; preventDefault: () => void }) => {\n e.preventDefault();\n setDragging(false);\n\n const files = getFilesFromEvent(e.dataTransfer);\n if (files.length > 0) {\n addFiles(files);\n }\n };\n\n return (\n
\n addFiles(Array.from(e.currentTarget?.files || []))}\n />\n attachRef?.current?.click()}\n >\n \n {!loading && newAttachmentsList.length + props.attachments.length === 0 && (\n \n )}\n {!loading && newAttachmentsList.length + props.attachments.length > 0 && (\n \n )}\n {loading && }\n \n \n {props.title && {props.title}}\n {props.description && {props.description}}\n {existingAttachmentsList.length + newAttachmentsList.length > 0 && (\n \n {existingAttachmentsList.map((attachment, index) => (\n {\n setLoading(true);\n if (props.onAttachmentRemoved) {\n props\n .onAttachmentRemoved(index, attachment, undefined)\n .then(() => setLoading(false));\n }\n }\n : undefined\n }\n />\n ))}\n {newAttachmentsList.map((file, index) => (\n {\n setLoading(true);\n if (props.onAttachmentRemoved) {\n props\n .onAttachmentRemoved(\n existingAttachmentsList.length + index,\n undefined,\n file\n )\n .then(() => {\n setNewAttachmentsList((prev) => {\n const newIndex = prev.indexOf(file);\n if (newIndex >= 0) {\n prev.splice(newIndex, 1);\n }\n return prev;\n });\n setLoading(false);\n });\n }\n }\n : undefined\n }\n />\n ))}\n \n )}\n {props.children && {props.children}}\n {validationError && (\n {validationError.Message}\n )}\n \n \n
\n );\n};\n","import React from 'react';\nimport { RentalPageContainer } from './components';\nimport { FormContainer, FormRowHeader, FormRow, FormColumn } from '@oysterjs/ui/Form/builder';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport {\n AssetAccessory,\n AttachmentFile,\n DefaultFileRoles,\n RentalAsset,\n RentalBooking,\n RentalClaim,\n RentalClaimState,\n RentalDamageType,\n ValidationError,\n WaiverEntry\n} from '@oysterjs/types';\nimport {\n getMerchantRentalAssets,\n getRentalClaimByWaiverId,\n createRentalClaim,\n uploadClaimAttachments,\n getRentalClaim,\n updateRentalClaim\n} from '@oysterjs/core/api/merchant';\nimport { WrappedError, ErrorType } from '@oysterjs/core/errors';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { ErrorDisplay, TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport {\n RequirementItemContainer,\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementTitle,\n RequirementDescription\n} from '@oysterjs/ui/common';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\nimport { Button } from '../../components/Button';\nimport { DatePicker } from '@oysterjs/ui/Form/datepicker';\n\nconst getCurrentTime = (): Date => {\n const date = new Date();\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n\n return date;\n};\n\nexport const RentalClaimForm = (props: {\n waiverId: string;\n claimId: string;\n onClaimSubmitted: (claim: RentalClaim, booking?: RentalBooking) => void;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [booking, setBooking] = React.useState();\n const [claim, setClaim] = React.useState();\n const [availableAssets, setAvailableAssets] = React.useState([]);\n const [attachments, setAttachments] = React.useState([]);\n const [filesToUpload, setFilesToUpload] = React.useState([]);\n\n const [incidentDate, setIncidentDate] = React.useState(getCurrentTime());\n const [showDatePicker, setShowDatePicker] = React.useState(false);\n\n const [error, setError] = React.useState();\n const [inputChanged, setInputChanged] = React.useState(false);\n const [validationError, setValidationError] = React.useState();\n\n const fetchData = async () => {\n if (!props.waiverId) {\n return;\n }\n\n try {\n setLoading(true);\n let res: { Entry: WaiverEntry; Claim?: RentalClaim; Attachments: AttachmentFile[] };\n if (props.waiverId) {\n res = await getRentalClaimByWaiverId(props.waiverId);\n } else if (props.claimId) {\n res = await getRentalClaim(props.claimId);\n } else {\n throw new Error(`No claim ID or waiver ID provided.`);\n }\n setBooking(res.Entry.Booking);\n setAttachments(res.Attachments || []);\n\n let claim: RentalClaim | undefined = res.Claim;\n if (!claim) {\n claim = {\n ID: '',\n MerchantID: '',\n RentalWaiverID: res.Entry.Waiver?.ID || '',\n State: RentalClaimState.requires_information,\n Details: {\n Assets: res.Entry.Waiver?.Details.Assets || [],\n ClaimNumber: '',\n DamageType: RentalDamageType.unknown,\n IncidentDate: new Date(),\n IncidentCause: '',\n IncidentAddress: {}\n }\n };\n }\n setClaim(claim);\n\n const assets = await getMerchantRentalAssets();\n setAvailableAssets(assets);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n throw e;\n }\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n fetchData();\n }, [props.waiverId]);\n\n const onChangeClaim = (block: (claim: RentalClaim) => RentalClaim) => {\n setInputChanged(true);\n setClaim((prev) => {\n if (!prev) {\n throw new Error(`Updating claim without being initialized`);\n }\n\n return { ...block(prev) };\n });\n };\n\n const onAttachmentsAdded = (addedFiles) => {\n if (validationError?.Field == 'Attachment') {\n setValidationError(undefined);\n }\n\n setFilesToUpload((prev) => [...prev, ...addedFiles]);\n return Promise.resolve();\n };\n\n const onAttachmentRemoved = (index) => {\n if (validationError?.Field == 'Attachment') {\n setValidationError(undefined);\n }\n\n setFilesToUpload([\n ...filesToUpload.slice(0, index),\n ...filesToUpload.slice(index + 1, filesToUpload.length)\n ]);\n return Promise.resolve();\n };\n\n const getDamageTypeOptions = () => {\n return Object.values(RentalDamageType).map((d) => ({ value: d, displayValue: d }));\n };\n\n //================================================================\n // ASSETS LOGIC\n //================================================================\n\n const onAddAsset = () => {\n if (claim) {\n onChangeClaim((currentClaim) => ({\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: [\n ...currentClaim.Details.Assets,\n {\n Asset: availableAssets[0],\n Accessories: [],\n Premium: {\n Currency: 'usd',\n Base: 0,\n MerchantFeeAmount: 0,\n OysterFeeAmount: 0,\n ProcessingFeeAmount: 0,\n Total: 0\n }\n }\n ]\n }\n }));\n }\n };\n\n const onRemoveAsset = () => {\n if (claim) {\n onChangeClaim((currentClaim) => {\n const updatedAssets = currentClaim.Details.Assets;\n updatedAssets.splice(updatedAssets.length - 1, 1);\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n };\n\n const onAddAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (claim) {\n const updatedAsset = {\n ...claim.Details.Assets[assetIndex]\n };\n updatedAsset.Accessories = [...updatedAsset.Accessories, accessory];\n const updatedAssets = [\n ...claim.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...claim.Details.Assets.slice(assetIndex + 1, claim.Details.Assets.length)\n ];\n\n onChangeClaim((currentClaim) => {\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n };\n\n const onRemoveAccessory = (assetIndex: number, accessory: AssetAccessory) => {\n if (claim) {\n const updatedAsset = {\n ...claim.Details.Assets[assetIndex]\n };\n const indexToRemove = updatedAsset.Accessories.findIndex(\n (acc) => acc.Name === accessory.Name && acc.Value === accessory.Value\n );\n if (indexToRemove !== -1) {\n updatedAsset.Accessories.splice(indexToRemove, 1);\n const updatedAssets = [\n ...claim.Details.Assets.slice(0, assetIndex),\n updatedAsset,\n ...claim.Details.Assets.slice(assetIndex + 1, claim.Details.Assets.length)\n ];\n\n onChangeClaim((currentClaim) => {\n return {\n ...currentClaim,\n Details: {\n ...currentClaim.Details,\n Assets: updatedAssets\n }\n };\n });\n }\n }\n };\n\n //================================================================\n // SUBMISSION LOGIC\n //================================================================\n\n const onSubmitClaim = async () => {\n if (claim) {\n try {\n setSubmitLoading(true);\n setError(undefined);\n setValidationError(undefined);\n setInputChanged(false);\n\n const claimToSubmit = {\n ...claim,\n Details: {\n ...claim.Details,\n IncidentDate: incidentDate\n }\n };\n\n // Submit the claim\n let updatedClaim: RentalClaim;\n if (claim.ID || props.claimId) {\n updatedClaim = await updateRentalClaim(props.claimId, claimToSubmit);\n } else {\n updatedClaim = await createRentalClaim(claimToSubmit);\n }\n\n // Set the created claim as state claim in case there are\n // any further API errors.\n if (updatedClaim) {\n setClaim(updatedClaim);\n }\n\n // Upload the files\n if (filesToUpload.length > 0) {\n const updatedFiles = await uploadClaimAttachments(\n updatedClaim.ID,\n DefaultFileRoles.waiverClaimAttachment,\n filesToUpload\n );\n\n setAttachments(updatedFiles);\n setFilesToUpload([]);\n }\n\n props.onClaimSubmitted(updatedClaim, booking);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n } finally {\n setSubmitLoading(false);\n }\n } else {\n throw new Error('Invalid claim state');\n }\n };\n\n return (\n \n {\n e.preventDefault();\n }}\n >\n {loading && }\n {claim && (\n <>\n \n {claim.Details.Assets.filter((asset) => !!asset.Asset).map((asset, index) => {\n const getDisplayName = (ast: RentalAsset): string =>\n `${ast.Name}${ast.Details.SerialNumber ? ` [${ast.Details.SerialNumber}]` : ''}`;\n\n const getAccessoriesQuantity = (\n list: AssetAccessory[],\n accessory: AssetAccessory\n ): number =>\n list.filter((acc) => acc.Name === accessory.Name && acc.Value === accessory.Value)\n .length;\n\n return (\n
\n \n \n {\n return {\n displayValue: getDisplayName(propsAsset),\n value: propsAsset.ID\n };\n })}\n value={asset.Asset!.ID}\n onChange={(value) => {\n const selectedAsset = availableAssets.find((ast) => ast.ID === value);\n if (!selectedAsset) {\n throw new Error('Selected asset not found');\n }\n\n onChangeClaim((currentClaim) => {\n currentClaim.Details.Assets[index].Asset = selectedAsset;\n currentClaim.Details.Assets[index].Accessories = [];\n\n return currentClaim;\n });\n }}\n />\n \n \n \n {asset.Asset!.Details.AvailableAccessories.map((acc) => (\n \n \n {acc.Name}\n
\n onRemoveAccessory(index, acc)}\n >\n -\n \n

{getAccessoriesQuantity(asset.Accessories, acc)}

\n onAddAccessory(index, acc)}\n >\n +\n \n
\n ))}\n
\n
\n );\n })}\n
\n \n \n Remove asset\n \n
\n \n \n \n setShowDatePicker(true)}\n />\n \n \n {showDatePicker && (\n \n {\n setShowDatePicker(false);\n date.setHours(\n incidentDate.getHours(),\n incidentDate.getMinutes(),\n incidentDate.getSeconds()\n );\n setIncidentDate(date);\n }}\n selected={incidentDate}\n disabled={(day) => {\n const today = new Date(new Date().setHours(0, 0, 0, 0));\n return day.getTime() < today.setDate(today.getDate());\n }}\n />\n \n )}\n\n \n \n \n onChangeClaim((c) => {\n c.Details.DamageType = v;\n return c;\n })\n }\n />\n \n \n\n {!inputChanged &&\n validationError?.Field === 'DamageType' &&\n validationError?.Message && {validationError?.Message}}\n\n {(claim.Details.DamageType === RentalDamageType.fire ||\n claim.Details.DamageType === RentalDamageType.theft ||\n claim.Details.DamageType === RentalDamageType.accident) && (\n <>\n {(claim.Details.DamageType === RentalDamageType.theft ||\n claim.Details.DamageType === RentalDamageType.accident) && (\n <>\n \n \n \n onChangeClaim((c) => {\n c.Details.PoliceReportFiled = !c.Details.PoliceReportFiled;\n return c;\n })\n }\n />\n \n \n Police report filed\n \n Check this box if a police report has been completed and filed.\n \n \n \n \n )}\n {(claim.Details.DamageType === RentalDamageType.fire ||\n !!claim.Details.PoliceReportFiled) && (\n <>\n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.NameOfEmergencyDepartment = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.ReportOrIncidentNumber = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n />\n \n \n \n )}\n \n )}\n {claim.Details.DamageType === RentalDamageType.water && (\n <>\n \n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.SourceOfWaterDamage = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n error={\n !inputChanged &&\n validationError?.Field === 'SourceOfWaterDamage' &&\n validationError?.Message\n }\n />\n \n \n \n )}\n \n {\n const value = e.currentTarget.value;\n onChangeClaim((c) => {\n c.Details.IncidentCause = value;\n return c;\n });\n }}\n disabled={!!submitLoading}\n error={\n !inputChanged &&\n validationError?.Field === 'IncidentCause' &&\n validationError?.Message\n }\n />\n \n \n onChangeClaim((c) => {\n claim.Details.IncidentAddress = {\n AddressLine1: addr.streetAddress || '',\n AddressLine2: addr.streetAddressLine2,\n AddressCity: addr.city || '',\n AddressState: addr.state || '',\n AddressZipCode: addr.zipCode || ''\n };\n return c;\n })\n }\n validationError={{\n streetAddress:\n !inputChanged &&\n validationError?.Field === 'AddressLine1' &&\n validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n validationError?.Field === 'AddressLine2' &&\n validationError?.Message,\n city:\n !inputChanged &&\n validationError?.Field === 'AddressCity' &&\n validationError?.Message,\n state:\n !inputChanged &&\n validationError?.Field === 'AddressState' &&\n validationError?.Message,\n zipCode:\n !inputChanged &&\n validationError?.Field === 'AddressZipCode' &&\n validationError?.Message\n }}\n />\n \n \n \n onChangeClaim((c) => {\n c.Details.HasOtherInsuranceCoverage = !c.Details.HasOtherInsuranceCoverage;\n return c;\n })\n }\n />\n \n \n Other Insurance Coverage\n \n Check this box if you have any other insurance coverage for the asset.\n \n \n \n \n \n \n onSubmitClaim()}\n >\n Submit Claim Request\n \n {error && error}\n \n )}\n \n \n );\n};\n","import React from 'react';\n\nimport {\n addRentalAssetSerialNumber,\n createMerchantRentalAsset,\n deleteMerchantRentalAsset\n} from '@oysterjs/core/api/merchant';\nimport { DeepPartial, RentalAsset, ValidationError } from '@oysterjs/types';\nimport { RentalPageContainer } from './components';\nimport { Table } from '@oysterjs/ui/Table';\nimport { Button, ButtonContainer, UnstyledButton } from '../../components/Button';\nimport { IoArrowForward, IoTrashOutline } from 'react-icons/io5';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { ErrorDisplay, TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nexport const ViewRentalAssetPage = (props: {\n asset?: RentalAsset;\n assets: RentalAsset[];\n onChange: () => Promise;\n onClose: () => void;\n}) => {\n const [deleteSerialNumberLoading, setDeleteSerialNumberLoading] = React.useState(false);\n const [addSerialNumberLoading, setAddSerialNumberLoading] = React.useState(false);\n const [serialNumber, setSerialNumber] = React.useState('');\n const [error, setError] = React.useState();\n\n const asset = props.asset;\n if (!asset) {\n return null;\n }\n\n // Find all non-deleted assets whose name matches and does not have an\n // empty serial number.\n const serialNumberAssets = props.assets.filter(\n (a) => a.Name === asset.Name && !!a.Details.SerialNumber\n );\n\n const deleteAsset = async (assetId: string) => {\n if (deleteSerialNumberLoading) {\n return;\n }\n\n setDeleteSerialNumberLoading(true);\n\n try {\n await deleteMerchantRentalAsset(assetId);\n await props.onChange();\n\n setError(undefined);\n } catch (e) {\n setError(WrappedError.asWrappedError(e).message);\n } finally {\n setDeleteSerialNumberLoading(false);\n }\n };\n\n const addSerialNumber = async () => {\n if (addSerialNumberLoading) {\n return;\n }\n\n setAddSerialNumberLoading(true);\n\n try {\n await addRentalAssetSerialNumber(asset.ID, serialNumber);\n await props.onChange();\n\n setSerialNumber('');\n setError(undefined);\n } catch (e) {\n setError(WrappedError.asWrappedError(e).message);\n } finally {\n setAddSerialNumberLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n {serialNumberAssets.map((a) => (\n \n \n \n \n ))}\n \n
Serial Number
{a.Details.SerialNumber}\n deleteAsset(a.ID)}\n disabled={deleteSerialNumberLoading}\n >\n \n \n
\n \n \n
\n
\n setSerialNumber(e.currentTarget.value)}\n disabled={addSerialNumberLoading}\n />\n
\n
\n \n Add Serial Number\n \n
\n
\n {error && {error}}\n
\n
\n );\n};\n\nexport const CreateRentalAssetPage = (props: {\n onCreate: (asset: RentalAsset) => Promise;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [validationError, setValidationError] = React.useState();\n const [asset, _setAsset] = React.useState>({});\n\n const setAsset = (field: string, fn: React.SetStateAction>) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n\n _setAsset(fn);\n };\n\n const addAsset = async () => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n try {\n const createdAsset = await createMerchantRentalAsset(asset);\n await props.onCreate(createdAsset);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setError(err.message);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n <>\n \n

\n An asset is defined as{' '}\n all items in your inventory of the same type, model, and value. For example, if you\n have ten (10) \"Aventon Level.2\" bikes, you would create one asset here with quantity \"10\"\n add each bike's serial number in the next step.\n

\n e.preventDefault()}>\n \n \n setAsset('Type', (prev) => ({ ...prev, Type: value }))}\n />\n \n \n {\n const value = e.currentTarget.value;\n setAsset('Name', (prev) => ({ ...prev, Name: value }));\n }}\n />\n \n \n\n \n \n {\n const value = parseFloat(e.currentTarget.value);\n setAsset('Value', (prev) => ({\n ...prev,\n Value: isNaN(value) ? undefined : value\n }));\n }}\n />\n \n \n \n \n \n\n \n \n {\n const value = e.currentTarget.value;\n setAsset('Description', (prev) => ({ ...prev, Description: value }));\n }}\n />\n \n \n\n \n \n \n {error && {error}}\n \n \n
\n );\n};\n","import styled from 'styled-components';\nimport { useId } from 'react-id-generator';\n\nconst RadioContainer = styled.div<{ disabled?: boolean; checked?: boolean }>`\n .radio-symbol {\n pointer-events: none;\n user-select: none;\n }\n\n .radio-container {\n box-sizing: border-box;\n background: #ffffff;\n }\n\n .radio-container * {\n box-sizing: border-box;\n }\n\n .radio-input {\n position: absolute;\n visibility: hidden;\n }\n\n .radio {\n user-select: none;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n overflow: hidden;\n transition: all 0.15s ease;\n display: flex;\n }\n\n .radio span {\n vertical-align: middle;\n transform: translate3d(0, 0, 0);\n position: relative;\n margin-top: 2px;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n transform: scale(1);\n border: 1px solid #cccfdb;\n transition: all 0.15s ease;\n background: ${(props) => (props.disabled ? '#666666' : props.checked ? '#0EA5E9' : 'white')};\n }\n\n .radio span svg {\n position: absolute;\n top: 2px;\n left: 2px;\n fill: none;\n stroke: #fff;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n transition: all 0.15s ease;\n transform: translate3d(0, 0, 0);\n }\n\n .radio-input:checked + .radio span {\n background: ${(props) => (props.disabled ? '' : '#0EA5E9')};\n border-color: ${(props) => (props.disabled ? '#666666' : '#0EA5E9')};\n animation: zoom-in-out 0.15s ease;\n }\n\n .radio-input:checked + .radio span svg {\n stroke-dashoffset: 0;\n }\n\n @keyframes zoom-in-out {\n 50% {\n transform: scale(0.9);\n }\n }\n`;\n\nexport interface RadioProps {\n label: string;\n id?: string;\n name?: string;\n checked?: boolean;\n disabled?: boolean;\n onChange?: () => void;\n}\n\nexport const Radio = (props: RadioProps): JSX.Element => {\n const [id] = useId();\n return (\n \n
\n \n \n
\n
\n );\n};\n","import * as React from 'react';\nimport { IoArrowForward, IoCheckmarkOutline, IoCheckmarkSharp } from 'react-icons/io5';\nimport styled from 'styled-components';\nimport { Button } from '../Button';\nimport { Spinner } from '../Spinner';\nimport { Checkbox } from '../Form/checkbox';\nimport { Radio } from '../Form/radio';\n\nexport const CardGallery = styled.ul`\n list-style: none;\n display: flex;\n flex-direction: row;\n justify-content: left;\n flex-wrap: wrap;\n gap: 40px;\n padding: 20px 0px 0px 0px;\n\n a {\n text-decoration: none;\n }\n`;\n\nconst CardContainer = styled.div<{ comingSoon?: boolean }>`\n box-shadow: ${(props) =>\n !props.comingSoon\n ? '0px 0px 12px rgba(55, 55, 55, 0.3)'\n : '0px 0px 12px rgba(55, 55, 55, 0.3)'};\n height: 260px;\n width: 240px;\n border-radius: 8px;\n transition: all 0.15s ease-in-out;\n cursor: ${(props) => (props.comingSoon ? 'default' : 'pointer')};\n position: relative;\n overflow-y: hidden;\n\n ${(props) =>\n !props.comingSoon\n ? `:hover {\n box-shadow: 0px 0px 24px rgba(55, 55, 55, 0.4);\n transform: scale(1.02);\n }`\n : ''}\n`;\n\nconst CardImage = styled.div`\n width: 100%;\n height: 160px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n\n img {\n height: 85%;\n max-width: 190px;\n border-radius: 8px;\n }\n`;\n\nconst CardContents = styled.div`\n padding: 20px;\n\n h3 {\n margin: 0 0 5px 0;\n padding: 0;\n color: #333333;\n }\n\n h4 {\n margin: 0;\n padding: 0;\n font-weight: 400;\n color: #333333;\n font-size: 0.85em;\n }\n`;\n\nconst CardBadgeContainer = styled.div`\n position: absolute;\n top: 10px;\n right: 10px;\n`;\n\ninterface ComingSoonProps {\n product: string;\n}\n\nexport const ComingSoon: React.FunctionComponent> = () => {\n const [success, setSuccess] = React.useState(false);\n\n const onClick = () => {\n if (success) {\n return;\n }\n\n setSuccess(true);\n };\n\n return (\n
\n : }\n primary\n disabled={success}\n onClick={onClick}\n >\n Get notified\n \n
\n );\n};\n\nexport const Card = (props: {\n title: string;\n description: string;\n image: JSX.Element;\n badge?: JSX.Element;\n comingSoon?: boolean;\n onClick?: () => void;\n}): JSX.Element => {\n const ref = React.useRef(null);\n const [mouseOver, setMouseOver] = React.useState(false);\n\n React.useEffect(() => {\n if (!ref || !ref.current || !props.comingSoon) {\n return;\n }\n\n ref.current.scroll({\n top: mouseOver ? 300 : 0,\n left: 0,\n behavior: 'smooth'\n });\n }, [mouseOver]);\n\n return (\n setMouseOver(true)}\n onMouseLeave={() => setMouseOver(false)}\n aria-label={props.title}\n >\n \n {props.image}\n \n

{props.title}

\n

{props.description}

\n
\n {props.comingSoon && }\n
\n {props.badge && {props.badge}}\n \n );\n};\n\nconst SlimCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 320px;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n opacity: ${(props) => (props.disabled ? 0.5 : 1.0)};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #C8C8C8')};\n box-shadow: ${(props) =>\n props.disabled && props.selected\n ? '0 0 0 1px #666666'\n : !props.disabled && props.selected\n ? '0 0 0 2px #0ea5e9'\n : '0 0 0 0px #C8C8C8'};\n`;\n\nconst SlimCardImage = styled.div`\n padding: 20px 10px 20px 20px;\n box-sizing: border-box;\n border-radius: 8px;\n text-align: center;\n\n img {\n width: 100%;\n border-radius: 8px;\n }\n\n svg {\n color: #4c617f;\n font-size: 1.8em;\n }\n`;\n\nconst SlimCardContents = styled(CardContents)`\n width: 100%;\n padding: 20px 20px 20px 10px;\n flex-grow: 1;\n\n h3 {\n margin: 0 0 2px 0;\n }\n`;\n\nconst CheckmarkBox = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: absolute;\n height: 30px;\n width: 30px;\n text-align: center;\n top: -2px;\n right: -2px;\n line-height: 32px;\n color: white;\n background: ${(props) => (props.disabled ? '#666666' : '#0EA5E9')};\n border-top-right-radius: 8px;\n border-bottom-left-radius: 8px;\n transition: 0.15s all;\n\n visibility: ${(props) => (props.selected ? 'visible' : 'hidden')};\n opacity: ${(props) => (props.selected ? 1 : 0)};\n`;\n\nconst TitleBadge = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const SelectableOptionCard = (props: {\n title: string;\n description: string;\n image: JSX.Element;\n badge?: JSX.Element;\n titleAction?: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n {props.image}\n \n \n

\n {props.title}\n

\n {(props.badge || props.titleAction) && (\n \n {props.badge}\n {props.titleAction}\n
\n )}\n \n

{props.description}

\n \n \n {!props.loading && }\n {props.loading && }\n \n \n);\n\nconst SelectableCheckboxCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 100%;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n border: ${(props) => (props.selected ? '1px solid #0EA5E9' : '1px solid #E2E2E2')};\n`;\n\nconst SelectableCheckboxCardContents = styled.div`\n display: flex;\n gap: 8px;\n cursor: pointer;\n padding: 20px;\n flex-grow: 1;\n`;\n\nexport const SelectableCheckboxCard = (props: {\n title: string;\n subTitle: JSX.Element;\n description: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n
\n {props.title}\n {props.subTitle}\n {props.description}\n
\n
\n \n);\n\nconst ItemizedItemsCardContainer = styled.div`\n position: relative;\n display: flex;\n max-width: 100%;\n width: 100%;\n border-radius: 8px;\n border: 1px solid #e2e2e2;\n`;\n\nconst ItemizedItemsCardContents = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 20px;\n flex-grow: 1;\n`;\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nconst ItemizedItemsCardDivider = styled.div`\n width: 100%;\n height: 1.5px;\n border: 0;\n background-color: #e2e2e2;\n`;\n\ntype Items = {\n title: string;\n link?: string;\n price: number;\n};\n\ntype FeeDetails = {\n title: string;\n price: number;\n};\n\ntype PriceBreakdown = {\n subTotal: number;\n fees?: FeeDetails[];\n grandTotal: number;\n};\n\nexport const ItemizedItemsCard = (props: {\n items: Items[];\n price: PriceBreakdown;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n {props.items.map((item) => {\n return (\n
\n \n {item.title}\n {'$' + item.price}\n \n {item.link && (\n \n View quote document\n \n )}\n
\n );\n })}\n \n
\n \n Subtotal\n {'$' + props.price.subTotal}\n \n {props.price.fees &&\n props.price.fees.map((fee) => {\n return (\n \n {fee.title}\n {'$' + fee.price}\n \n );\n })}\n \n Total Due\n {'$' + props.price.grandTotal}\n \n
\n
\n
\n);\n\nconst RadioSelectableCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n flex-direction: column;\n display: flex;\n max-width: calc(33% - 16px);\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n border: ${(props) => (props.selected ? '1px solid #0EA5E9' : '1px solid #E2E2E2')};\n\n @media (max-width: 600px) {\n max-width: 100%;\n }\n`;\n\nconst RadioSelectableCardContents = styled.div`\n display: flex;\n gap: 8px;\n cursor: pointer;\n padding: 20px 20px 20px 20px;\n flex-grow: 1;\n`;\n\nconst RadioSelectableListItems = styled.div`\n display: flex;\n flex-direction: column;\n padding: 15px 15px 15px 20px;\n`;\n\nconst RadioSelectableCardDivider = styled.div<{ selected?: boolean }>`\n font-size: 12px;\n display: flex;\n align-items: center;\n color: ${(props) => (props.selected ? '#0EA5E9' : '#666666')};\n\n &::before,\n &::after {\n flex-grow: 1;\n content: '';\n border: 0;\n background-color: ${(props) => (props.selected ? '#0EA5E9' : '#E2E2E2')};\n height: 1.5px;\n }\n\n &::before {\n margin-right: 5px;\n }\n\n &::after {\n margin-left: 5px;\n }\n`;\n\nexport const RadioSelectableCard = (props: {\n title: string;\n subTitle: JSX.Element;\n description: JSX.Element;\n selected?: boolean;\n loading?: boolean;\n disabled?: boolean;\n checkItems?: string[];\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n
\n {props.title}\n {props.subTitle}\n {props.description}\n
\n
\n {props.checkItems && (\n <>\n \n What's covered\n \n \n {props.checkItems.map((label) => {\n return (\n \n \n {label}\n \n );\n })}\n \n \n )}\n \n);\n\nconst ShadowCardContainer = styled.div`\n background: #f6f6f6;\n border: 2px dashed #dfdfdf;\n height: 260px;\n width: 240px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n\n color: #b2b2b2;\n\n svg {\n font-size: 3em;\n color: #b2b2b2;\n }\n\n :hover {\n border: 2px solid #dfdfdf;\n transform: scale(1.02);\n }\n`;\n\nexport const ShadowCard = (props: {\n icon: JSX.Element;\n description: string;\n onClick?: () => void;\n}): JSX.Element => (\n \n
{props.icon}
\n
{props.description}
\n
\n);\n\nexport const WidgetCardGallery = styled.ul`\n list-style: none;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n gap: 10px;\n font-size: 0.8em;\n width: 400px;\n flex-wrap: wrap;\n padding-inline-start: 5px;\n\n a {\n text-decoration: none;\n }\n`;\n\nconst WidgetCardContainer = styled.div<{ selected?: boolean; disabled?: boolean }>`\n position: relative;\n display: flex;\n max-width: 160px;\n width: 100%;\n border-radius: 8px;\n transition: 0.15s all;\n cursor: pointer;\n opacity: ${(props) => (props.disabled ? 0.5 : 1.0)};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #C8C8C8')};\n background-color: ${(props) => (props.selected ? '#0ea5e930' : 'transparent')};\n box-shadow: ${(props) =>\n props.disabled && props.selected\n ? '0 0 0 1px #666666'\n : !props.disabled && props.selected\n ? '0 0 0 2px #0ea5e9'\n : '0 0 0 0px #C8C8C8'};\n`;\n\nconst WidgetCardContents = styled(CardContents)`\n width: 100%;\n padding: 8px;\n`;\n\nexport const WidgetOptionCard = (props: {\n title: JSX.Element;\n subtitle: JSX.Element;\n description: () => string | undefined;\n selected?: boolean;\n disabled?: boolean;\n onClick?: () => void;\n style?: React.CSSProperties;\n}): JSX.Element => (\n \n \n \n \n {props.title}\n {props.subtitle}\n
\n \n {!!props.description() &&

{props.description()}

}\n \n \n);\n","import config from '@oysterjs/core/config';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\n\nconst FooterStandardContainer = styled.div`\n display: flex;\n justify-content: space-between;\n\n @media (max-width: 500px) {\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: 10px;\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n justify-content: space-between;\n gap: 10px;\n`;\n\nconst FooterLinksContainer = styled.div`\n display: flex;\n\n a {\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n`;\n\nconst OysterCopyright = (props: { color?: string }) => (\n
\n © 2024 Oyster Technologies, Inc.\n
\n);\n\nconst CustomFooter = (props: { policyType?: PolicyType }) => {\n switch (props.policyType) {\n case PolicyType.chubbJewelry:\n return (\n
\n Insurance described is offered by Oyster Insurance Agency, LLC (California license no.\n 6006158). Insurance is underwritten and provided by Federal Insurance Company (Whitehouse\n Station, NJ), a Chubb ® company. Chubb is the marketing name used to refer to\n subsidiaries of Chubb Limited providing insurance and related services. Coverage is\n subject to the language of the policies as actually issued.\n
\n );\n default:\n return <>;\n }\n};\n\nexport const FooterStandard = (props: { policyType?: PolicyType; color?: string }): JSX.Element => (\n \n \n \n \n \n Contact Us\n \n \n Terms\n \n \n Privacy\n \n \n \n \n \n);\n\nconst FooterMinimalContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n font-size: 0.8em;\n justify-content: space-around;\n`;\n\nexport const FooterMinimal = (props: { color?: string }): JSX.Element => (\n \n \n \n);\n","import React from 'react';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { FooterMinimal, FooterStandard } from './footer';\n\nconst PaneContainer = styled.div<{ gap: number }>`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: ${(props) => props.gap}px;\n\n @media (max-width: 700px) {\n display: block;\n }\n`;\n\nconst Pane = styled.div<{ gap: number; paneWidth: number }>`\n width: calc(${(props) => props.paneWidth}% - ${(props) => props.gap / 2}px);\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nexport const TwoPaneContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n gap?: number;\n leftPaneWidth?: number;\n rightPane: JSX.Element;\n }>\n> = (props) => (\n \n \n {props.children}\n \n \n {props.rightPane}\n \n \n);\n\nexport enum FooterStyle {\n none,\n minimal,\n standard\n}\n\nconst PageContainerDiv = styled.div<{\n width?: number | string;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n}>`\n max-width: ${(props) =>\n props.width ? (isNaN(Number(props.width)) ? props.width : `${props.width}px`) : '1000px'};\n width: 100%;\n margin-top: ${(props) => (props.marginTop !== undefined ? `${props.marginTop}px` : 'auto')};\n margin-right: ${(props) => (props.marginRight !== undefined ? `${props.marginRight}px` : 'auto')};\n margin-bottom: ${(props) =>\n props.marginBottom !== undefined ? `${props.marginBottom}px` : 'auto'};\n margin-left: ${(props) => (props.marginLeft !== undefined ? `${props.marginLeft}px` : 'auto')};\n`;\n\nexport const PageContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n width?: number | string;\n footerStyle?: FooterStyle;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n policyType?: PolicyType;\n footerTextColor?: string;\n }>\n> = (props) => {\n return (\n \n {props.children}\n {(props.footerStyle === undefined || props.footerStyle === FooterStyle.standard) && (\n \n )}\n {props.footerStyle === FooterStyle.minimal && }\n \n );\n};\n\nexport const PageSection = styled.div<{\n noBorder?: boolean;\n noPadding?: boolean;\n centered?: boolean;\n customPadding?: string;\n}>`\n padding: ${(props) =>\n props.customPadding ? props.customPadding : props.noPadding ? '0px 40px' : '20px 40px'};\n border-bottom: ${(props) => (props.noBorder ? '0' : '1px solid #f8f8f8')};\n ${(props) =>\n !props.centered\n ? ``\n : `\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n `}\n\n h2 {\n color: #666666;\n }\n`;\n","import { loadStripe, Stripe } from '@stripe/stripe-js';\nimport config from './config';\n\nconst STRIPE_PUBLIC_KEY = () => config().secrets.stripePublicKey || '';\nconst COTERIE_STRIPE_PUBLIC_KEY = () => config().secrets.coterieStripePublicKey || '';\n\nconst stripe = loadStripe(STRIPE_PUBLIC_KEY(), {\n apiVersion: '2020-08-27'\n});\n\nexport default (): Promise => stripe;\n\nexport const loadCoterieStripe = (): Promise =>\n loadStripe(COTERIE_STRIPE_PUBLIC_KEY(), {\n apiVersion: '2020-08-27'\n });\n","import React from 'react';\nimport { Analytics } from './analytics';\n\nconst tagId = 'AW-10974576559';\n\nexport enum GetOysterEventNames {\n GetAQuickQuote = 'Get A Quick Quote', // On the first page of getoyster\n ReviewCoverage = 'Review Coverage', // When users see their coverage after form inputs\n PaymentSubmitted = 'Payment Submitted', // When users submit their payment info\n PaymentMethodSubmitted = 'Payment Method Submitted', // When users submit their payment method to create a token\n OfferSubmitted = 'Offer Submitted', // When payment is accepted and policy is confirmed\n ApplicationSubmitted = 'Application Submitted', // When users activate their account\n\n WaiverPaymentSubmitted = 'Waiver Payment Submitted' // When users submit their payment info\n}\n\nconst install = () => {\n const scriptId = 'ga-gtag';\n\n if (document.getElementById(scriptId)) return;\n\n const { head } = document;\n const script = document.createElement('script');\n script.id = scriptId;\n script.type = 'text/javascript';\n script.src = `https://www.googletagmanager.com/gtag/js?id=${tagId}`;\n head.insertBefore(script, head.firstChild);\n\n const tagScript = document.createElement('script');\n tagScript.type = 'text/javascript';\n tagScript.innerText = `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${tagId}');\n `;\n head.insertBefore(tagScript, script);\n};\n\nexport const useGoogleTags = (): void => {\n React.useEffect(() => {\n install();\n }, []);\n};\n\nexport class GoogleTagAnalytics implements Analytics {\n identify(): void {\n // Do nothing\n }\n screen(): void {\n // Do nothing\n }\n event(name: string, properties: { [property: string]: unknown }): void {\n // Track only when Google Tag is installed\n if (window['dataLayer'] !== undefined && window['dataLayer'].length > 0) {\n const tagEvent = convertEvent(name);\n if (tagEvent.type) {\n window['gtag']('event', tagEvent.type, { send_to: tagEvent.sendTo, ...properties });\n }\n }\n }\n reset(): void {\n // Do nothing\n }\n}\n\ninterface GTagEvent {\n type: string;\n sendTo: string;\n}\n\nconst convertEvent = (name: string): GTagEvent => {\n switch (name) {\n case GetOysterEventNames.GetAQuickQuote:\n return {\n type: 'conversion',\n sendTo: `${tagId}/0FLjCNLW8toDEK__ivEo`\n };\n case GetOysterEventNames.ReviewCoverage:\n return {\n type: 'conversion',\n sendTo: `${tagId}/iiNpCNvW8toDEK__ivEo`\n };\n case GetOysterEventNames.OfferSubmitted:\n return {\n type: 'conversion',\n sendTo: `${tagId}/MbxmCIHex-YDEK__ivEo`\n };\n case GetOysterEventNames.ApplicationSubmitted:\n return {\n type: 'conversion',\n sendTo: `${tagId}/zQfFCKSfyNkDEK__ivEo`\n };\n default:\n return {\n type: '',\n sendTo: ''\n };\n }\n};\n","import React from 'react';\nimport config from '../config';\nimport { GoogleTagAnalytics } from './googletags';\n\nexport interface Analytics {\n identify(id: string, properties?: { [property: string]: string }): void;\n screen(name: string, properties?: { [property: string]: string }): void;\n event(name: string, properties?: { [property: string]: unknown }): void;\n reset(): void;\n}\n\nclass AggregateAnalytics implements Analytics {\n analytics: Analytics[];\n\n constructor() {\n this.analytics = [new GoogleTagAnalytics()];\n return;\n }\n\n identify(id: string, properties: { [property: string]: string }): void {\n try {\n this.analytics.forEach((a) => a.identify(id, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n screen(name: string, properties: { [property: string]: string }): void {\n try {\n this.analytics.forEach((a) => a.screen(name, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n event(name: string, properties: { [property: string]: unknown }): void {\n try {\n this.analytics.forEach((a) => a.event(name, properties));\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n reset(): void {\n try {\n this.analytics.forEach((a) => a.reset());\n } catch (e) {\n if (config().environment !== 'production') {\n throw e;\n }\n }\n }\n}\n\nexport const useAnalytics = (): Analytics => {\n const [analytics] = React.useState(new AggregateAnalytics());\n return analytics;\n};\n","import * as React from 'react';\nimport { IoArrowBack, IoArrowForward, IoLockClosed } from 'react-icons/io5';\nimport {\n useStripe,\n useElements,\n Elements,\n PaymentElement,\n CardElement\n} from '@stripe/react-stripe-js';\n\nimport { Button, ButtonContainer, UnstyledButton } from '@oysterjs/ui/Button';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport loadStripe from '@oysterjs/core/stripe';\nimport { PolicyType, PaymentMethod as IPaymentMethod } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { GetOysterEventNames } from '@oysterjs/core/analytics/googletags';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { getDocumentUrl } from '@oysterjs/core/statics';\nimport { FaCcAmex, FaCcDiscover, FaCcMastercard, FaCcVisa, FaCreditCard } from 'react-icons/fa';\nimport { Stripe } from '@stripe/stripe-js';\n\nexport const PaymentMethod: React.FunctionComponent<\n React.PropsWithChildren<{ paymentMethod: IPaymentMethod }>\n> = (props) => (\n
\n
\n {(() => {\n switch (props.paymentMethod.Brand) {\n case 'visa':\n return ;\n case 'mastercard':\n return ;\n case 'discover':\n return ;\n case 'amex':\n return ;\n default:\n return ;\n }\n })()}\n
\n
\n
\n
\n
\n {props.paymentMethod.Brand.charAt(0).toUpperCase() +\n props.paymentMethod.Brand.substring(1)}{' '}\n {props.paymentMethod.LastFour}\n
\n
\n
\n
\n Expires {props.paymentMethod.ExpMonth}/{props.paymentMethod.ExpYear}\n
\n
\n
\n);\n\nconst PaymentDisclosure = (props: { policyType?: string; noPadding?: boolean }) => {\n const disclosure = (() => {\n switch (props.policyType) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return {\n name: 'Cyclist Compliance Disclosure',\n url: 'https://www.withoyster.com/cyclist-compliance-disclosures'\n };\n case PolicyType.minicoJewelry:\n return {\n name: 'Jewelry Compliance Disclosure',\n url: 'https://www.withoyster.com/jewelry-compliance-disclosures'\n };\n case PolicyType.worthAveElectronics:\n return {\n name: 'Electronics Compliance Disclosure',\n url: 'https://www.withoyster.com/electronics-compliance-disclosures'\n };\n default:\n return {\n name: 'Electronic Transaction Consent',\n url: 'https://www.withoyster.com/consent-to-electronic-transactions'\n };\n }\n })();\n\n return (\n
\n

\n By submitting this form, you allow Oyster to charge your card for future payments and agree\n to Oyster's{' '}\n \n Terms & Conditions\n {' '}\n ,{' '}\n \n Privacy Policy\n \n , and{' '}\n \n {disclosure.name}\n \n .\n

\n
\n );\n};\n\nexport const SubmissionDisclosure = (props: { policyType?: string; noPadding?: boolean }) => {\n const disclosure = (() => {\n switch (props.policyType) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return {\n name: 'Cyclist Compliance Disclosure',\n url: 'https://www.withoyster.com/cyclist-compliance-disclosures'\n };\n case PolicyType.minicoJewelry:\n return {\n name: 'Jewelry Compliance Disclosure',\n url: 'https://www.withoyster.com/jewelry-compliance-disclosures'\n };\n case PolicyType.worthAveElectronics:\n return {\n name: 'Electronics Compliance Disclosure',\n url: 'https://www.withoyster.com/electronics-compliance-disclosures'\n };\n default:\n return {\n name: 'Electronic Transaction Consent',\n url: 'https://www.withoyster.com/consent-to-electronic-transactions'\n };\n }\n })();\n\n return (\n
\n

\n By continuing with this application, you agree to Oyster's{' '}\n \n Terms & Conditions\n {' '}\n ,{' '}\n \n Privacy Policy\n \n , and{' '}\n \n {disclosure.name}\n \n .\n

\n
\n );\n};\n\nconst PaymentCollection = (props: {\n returnUrl: string;\n continueLabel?: string;\n setupOnly: boolean;\n onBack?: ((e) => void) | null;\n policyType?: string;\n underwriter?: string;\n hideLegal?: boolean;\n defaultName?: string;\n defaultEmail?: string;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [hasConsent, setHasConsent] = React.useState(false);\n\n const stripe = useStripe();\n const elements = useElements();\n const analytics = useAnalytics();\n\n const handleSubmit = async () => {\n if (!stripe || !elements) {\n return;\n }\n\n if (props.policyType && props.policyType == PolicyType.chubbJewelry && !hasConsent) {\n setError('Please agree to the Electronic Transaction Consent.');\n return;\n }\n\n setLoading(true);\n analytics.event(GetOysterEventNames.PaymentSubmitted);\n\n const options = {\n elements,\n confirmParams: {\n return_url: props.returnUrl\n }\n };\n const { error } = props.setupOnly\n ? await stripe.confirmSetup(options)\n : await stripe.confirmPayment(options);\n\n if (error && error.type !== 'validation_error') {\n setError(error.message || '');\n }\n\n setLoading(false);\n };\n\n return (\n <>\n
\n \n \n {!props.hideLegal && (\n \n )}\n {props.policyType && props.policyType == PolicyType.markelBike && (\n
\n

\n Insurance Underwritten By: Markel Group Inc.\n

\n
\n )}\n\n {props.policyType && props.policyType == PolicyType.chubbJewelry && (\n <>\n {props.underwriter && (\n
\n

\n Insurance Underwritten By:{' '}\n {props.underwriter == 'FEDERAL' ? 'Federal Insurance Co' : props.underwriter}\n

\n
\n )}\n {\n e.stopPropagation();\n setHasConsent(!hasConsent);\n }}\n >\n \n {\n setHasConsent(!hasConsent);\n }}\n />\n \n \n \n I acknowledge that I’ve read and accepted the{' '}\n \n Electronic Communications Consent\n \n \n \n \n \n )}\n\n {(!stripe || !elements) && (\n
\n \n
\n )}\n {error && {error}}\n\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n primary\n disabled={!stripe || !elements}\n loading={loading}\n onClick={handleSubmit}\n >\n {props.continueLabel || 'Confirm'}\n \n \n \n \n );\n};\n\nexport const ShowDefaultPayment = (props: {\n confirmPaymentIntent: () => Promise;\n returnUrl: string;\n defaultPayment: IPaymentMethod;\n continueLabel?: string;\n policyType?: string;\n underwriter?: string;\n onBack?: ((e) => void) | null;\n}): JSX.Element => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [hasConsent, setHasConsent] = React.useState(false);\n\n const handleSubmit = async () => {\n setError(undefined);\n setLoading(true);\n if (props.policyType && props.policyType == PolicyType.chubbJewelry && !hasConsent) {\n setError('Please agree to the Electronic Communications Consent.');\n }\n props\n .confirmPaymentIntent()\n .then(() => (window.location.href = props.returnUrl.replace(window.location.origin, '')))\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false));\n };\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Default Payment Method\n
\n \n
\n Oyster will use your default payment method to purchase this policy. If you would like\n to use a different payment method, you can change your default{' '}\n \n here\n \n .\n \n
\n \n {props.policyType && props.policyType == PolicyType.chubbJewelry && (\n <>\n {props.underwriter && (\n
\n

\n Insurance Underwritten By:{' '}\n {props.underwriter == 'FEDERAL' ? 'Federal Insurance Co' : props.underwriter}\n

\n
\n )}\n {\n e.stopPropagation();\n setHasConsent(!hasConsent);\n }}\n >\n \n {\n setHasConsent(!hasConsent);\n }}\n />\n \n \n \n I acknowledge that I’ve read and accepted the{' '}\n \n Electronic Communications Consent\n \n \n \n \n \n )}\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n loading={loading}\n primary\n onClick={handleSubmit}\n >\n {props.continueLabel || 'Confirm'}\n \n \n \n {error && {error}}\n \n );\n};\n\nexport const PaymentMethodInput: React.FunctionComponent<{\n getPaymentIntent: () => Promise;\n returnUrl: string;\n continueLabel?: string;\n policyType?: string;\n setupOnly: boolean;\n onBack?: ((e) => void) | null;\n underwriter?: string;\n hideLegal?: boolean;\n defaultName?: string;\n defaultEmail?: string;\n}> = (props) => (\n \n {(clientSecret) => (\n \n \n \n )}\n \n);\n\nconst CardElementTokenCollection = (props: {\n onTokenCreated: (token: string) => void;\n onError: (error: string) => void;\n onBack: ((e) => unknown) | null;\n onSkip: () => void;\n canSkip: boolean;\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const stripe = useStripe();\n const elements = useElements();\n const analytics = useAnalytics();\n\n const handleSubmit = async () => {\n if (!stripe || !elements) {\n return;\n }\n\n setLoading(true);\n analytics.event(GetOysterEventNames.PaymentMethodSubmitted);\n\n const cardElements = elements.getElement('card')!;\n const result = await stripe.createToken(cardElements);\n if (result.error) {\n if (result.error.type !== 'validation_error') {\n props.onError(result.error.message || '');\n } else {\n setError(result.error.message);\n }\n } else {\n props.onTokenCreated(result.token.id);\n }\n\n setLoading(false);\n };\n\n return (\n <>\n
\n
\n \n
\n
\n

\n Please note that this policy is underwritten by Coterie. By submitting this form, you\n allow Coterie to make direct charges to this payment method.\n

\n
\n
\n {(!stripe || !elements) && (\n
\n \n
\n )}\n {error && {error}}\n\n \n \n {props.onBack && (\n \n )}\n }\n icon={}\n primary\n disabled={!stripe || !elements}\n loading={loading}\n onClick={handleSubmit}\n >\n Confirm\n \n \n {props.canSkip && (\n \n \n Get connected with an Oyster representative\n \n \n )}\n \n \n );\n};\n\nexport const CardElementTokenCollectionInput: React.FunctionComponent<{\n onTokenCreated: (token: string) => void;\n onError: (error: string) => void;\n onBack: ((e) => unknown) | null;\n onSkip: () => void;\n stripeProvider: () => Promise;\n canSkip: boolean;\n}> = (props) => (\n \n \n \n);\n","import React from 'react';\n\nimport { RentalPageContainer } from './components';\nimport { Button, ButtonContainer, LinkComponent, UnstyledButton } from '../../components/Button';\nimport { IoArrowForward, IoTrashOutline } from 'react-icons/io5';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { Checkbox, CheckboxProps } from '@oysterjs/ui/Form/checkbox';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport {\n deleteRentalDocument,\n getMerchantRentalPaymentSetup,\n getRentalDocuments,\n uploadRentalDocuments\n} from '@oysterjs/core/api/merchant';\nimport { PaymentMethodInput } from '@oysterjs/core/payment';\nimport { Merchant } from '@oysterjs/types';\nimport { Table } from '@oysterjs/ui/Table';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\nconst LabeledCheckbox = (props: CheckboxProps) => (\n
\n \n
{props.label}
\n
\n);\n\nexport const MerchantBilledInsuranceSettings = (props: {\n merchant?: Merchant;\n onEnable: () => void;\n}) => {\n const [agreementAccepted, setAgreementAccepted] = React.useState(false);\n\n return (\n \n \n {(setup) => (\n <>\n

\n Simplify the process to cover your customers and your rentals by paying for the\n waivers on behalf of the customer. You can then choose to consolidate the waiver\n charge into a single point-of-sale transaction at the time of rental.\n

\n

How it works

\n
    \n
  • Connect your bank account here.
  • \n
  • \n For subsequently-created waivers, Oyster won't collect premium from the customer.\n Instead, Oyster will count the premium for your store.\n
  • \n
  • \n At the start of the month, Oyster will send an invoice for the waiver premium owed\n from the prior month, accounting for any fees or remittances. Your account will be\n debited the quoted amount 7 days later.\n
  • \n
\n {setup.SetupIntentClientSecret && (\n Promise.resolve(setup.SetupIntentClientSecret || '')}\n returnUrl={window.location.origin + `/rental/settings/merchant-billing`}\n setupOnly\n hideLegal\n continueLabel=\"Connect Account\"\n defaultName={props.merchant?.BusinessProfile.Name}\n defaultEmail={props.merchant?.BusinessProfile.Email}\n />\n )}\n {setup.PaymentMethod && (\n e.preventDefault()}>\n \n \n \n {setup.PaymentMethod.BankName} {setup.PaymentMethod.LastFour}\n \n \n \n \n setAgreementAccepted((prev) => !prev)}\n />\n \n \n \n }\n disabled={!agreementAccepted}\n onClick={props.onEnable}\n >\n Accept and enable\n \n \n \n )}\n \n )}\n
\n \n );\n};\n\nexport const MerchantUnifiedWaiverFlowSettings = (props: {\n merchant?: Merchant;\n onEnable: (enabled: boolean) => void;\n}) => {\n // Fetch documents\n const [documents, setDocuments] = React.useState<{ Name: string; ID: string }[]>([]);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const getDocuments = async () => {\n setLoading(true);\n setError(undefined);\n\n try {\n setDocuments(await getRentalDocuments());\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n getDocuments();\n }, []);\n\n // Add documents\n const [attachments, setAttachments] = React.useState([]);\n const [uploadLoading, setUploadLoading] = React.useState(false);\n const [deleteLoading, setDeleteLoading] = React.useState(false);\n\n const onAttachmentsAdded = async (files: File[]) => setAttachments((prev) => [...prev, ...files]);\n\n const uploadDocuments = async () => {\n setUploadLoading(true);\n setError(undefined);\n\n try {\n if (attachments.length > 0) {\n const updatedFiles = await uploadRentalDocuments(attachments);\n setAttachments([]);\n setDocuments(updatedFiles);\n }\n\n props.onEnable(true);\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setUploadLoading(false);\n }\n };\n\n // Delete document\n const deleteDocument = async (id: string) => {\n setDeleteLoading(true);\n setError(undefined);\n\n try {\n setDocuments(await deleteRentalDocument(id));\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n setError(err.message);\n } finally {\n setDeleteLoading(false);\n }\n };\n\n return (\n \n

How it works

\n
    \n
  • Upload your rental documents and enable this feature.
  • \n
  • \n Provide your customers access to our flow via{' '}\n \n link or QR code\n \n .\n
  • \n
  • \n The customer fills out the information and reads, agrees to, and signs your documents.\n
  • \n
  • \n View the documents with an appended signature page as part of each booking's details.\n
  • \n
\n

Your rental documents

\n

View and manage the documents that customers are asked to agree to here.

\n {loading && }\n {!loading && documents.length > 0 && (\n \n \n \n \n \n \n \n \n {documents.map((a) => (\n \n \n \n \n ))}\n \n
Document Name
{a.Name}\n deleteDocument(a.ID)} disabled={loading}>\n \n \n
\n )}\n \n \n \n \n \n {error && {error}}\n \n );\n};\n","import ReactTooltip from 'react-tooltip';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport styled from 'styled-components';\n\nconst LinkContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-between;\n gap: 12px;\n`;\n\nconst LinkDisplay = styled.div`\n border: 0;\n\n display: flex;\n flex-direction: row;\n\n padding: 10px 15px;\n border-radius: 4px;\n box-sizing: border-box;\n\n font-size: 0.8em;\n font-weight: 500;\n\n min-width: 100px;\n width: 100%;\n justify-content: start;\n\n color: #000000;\n background: #f2f2f2;\n border: '1px solid #DADADA';\n font-family: 'Inter', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n`;\n\nexport const CopyableLink = (props: { link: string }) => (\n \n \n {props.link}\n \n navigator.clipboard.writeText(props.link)}\n >\n Copied!\n \n \n \n \n navigator.clipboard.writeText(props.link)}\n >\n Copied!\n \n \n);\n","import styled from 'styled-components';\n\nconst SwitchContainer = styled.div``;\n\nconst SwitchLabel = styled.label<{ disabled?: boolean }>`\n position: relative;\n display: inline-block;\n width: 48px;\n height: 26px;\n\n opacity: ${(props) => (props.disabled ? 0.5 : 1.0)};\n transition: 0.15s all ease-in-out;\n\n input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .slider {\n position: absolute;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 1px solid rgba(200, 200, 200, 0.8);\n transition: 0.15s all ease-in-out;\n border-radius: 34px;\n background: white;\n }\n\n .slider:before {\n position: absolute;\n content: '';\n height: 18px;\n width: 18px;\n left: 4px;\n bottom: 3px;\n background-color: rgba(200, 200, 200, 0.8);\n transition: 0.15s all ease-in-out;\n border-radius: 50%;\n }\n\n input:checked + .slider {\n background-color: #0ea5e9;\n border: 1px solid #0ea5e9;\n }\n\n input:checked + .slider:before {\n transform: translateX(20px);\n background-color: white;\n }\n`;\n\nexport const Switch = (props: {\n enabled?: boolean;\n disabled?: boolean;\n loading?: boolean;\n onChange?: (checked: boolean) => void;\n}): JSX.Element => (\n \n \n {\n props.onChange?.(e.currentTarget.checked);\n }}\n />\n \n \n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport {\n IoShieldCheckmarkSharp,\n IoShieldOutline,\n IoChevronForwardSharp,\n IoCheckmarkSharp,\n IoAlertCircleSharp,\n IoPerson,\n IoBusiness,\n IoDownload\n} from 'react-icons/io5';\n\nimport {\n BillingMode,\n Merchant,\n MerchantRentalConfiguration,\n RentalAsset,\n RentalBooking,\n RentalPolicyState,\n RentalWaiver,\n WaiverEntry,\n WaiverState\n} from '@oysterjs/types';\nimport { PageTitle } from '../../components/Page/section';\nimport {\n getMerchantAccount,\n getMerchantRentalAssets,\n getMerchantRentalConfiguration,\n getRentalWaivers,\n requestQRCodePdf,\n updateMerchantRentalConfiguration\n} from '@oysterjs/core/api/merchant';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { Button, ButtonContainer, LinkComponent } from '../../components/Button';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { Table } from '@oysterjs/ui/Table';\nimport { PageNavigation } from '../../components/Page/navigation';\nimport { SlideOut } from '@oysterjs/ui/Modal/slideout';\nimport { useHistory, useLocation } from 'react-router';\nimport { RentalWaiverForm } from '../rental/RentalWaiverForm';\nimport { RentalWaiverSentPage } from '../rental/RentalWaiverSentPage';\nimport { RentalBookingDetailsPage } from '../rental/RentalBookingDetailsPage';\nimport { RentalClaimForm } from '../rental/RentalClaimForm';\nimport { CreateRentalAssetPage, ViewRentalAssetPage } from '../rental/RentalAssetPage';\nimport { Setting, SettingsContainer, Statement } from '../rental/components';\nimport { CardGallery, SelectableOptionCard } from '@oysterjs/ui/Card';\nimport {\n MerchantBilledInsuranceSettings,\n MerchantUnifiedWaiverFlowSettings\n} from '../rental/RentalSettings';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { Loadable, LoadableContainer } from '@oysterjs/ui/Loadable';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { CopyableLink } from '../setups/referralLink';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Switch } from '@oysterjs/ui/Form/switch';\nimport { MerchantRentalSetup } from '../setups/rental';\n\nconst RentalTable = styled(Table)`\n thead tr th {\n text-align: left;\n\n &:first-child {\n padding-right: 0px;\n }\n &:last-child {\n padding-left: 0px;\n }\n }\n\n tbody tr {\n &:hover {\n cursor: pointer;\n background: #f2f2f2;\n }\n }\n\n tbody tr td {\n svg {\n display: block;\n color: #637d8c;\n }\n\n &:first-child {\n padding-right: 0px;\n\n svg {\n float: right;\n }\n }\n\n &:last-child {\n padding-left: 0px;\n\n svg {\n float: left;\n }\n }\n }\n`;\n\nconst MerchantRentalList = (props: {\n rentalConfiguration: MerchantRentalConfiguration;\n waivers: WaiverEntry[];\n}) => {\n const history = useHistory();\n\n const onCreateNewWaiver = () => {\n history.push('/rental/overview/waiver/edit');\n };\n\n const onViewBooking = (bookingId: string) => {\n history.push(`/rental/overview/booking/${bookingId}/view`);\n };\n\n const onCreateClaim = () => {\n history.push(`/rental/overview/claim`);\n };\n\n return (\n <>\n {props.rentalConfiguration.Details.State === RentalPolicyState.approved && (\n \n \n \n )}\n {props.rentalConfiguration.Details.State === RentalPolicyState.approved_blanket && (\n \n \n \n )}\n {\n \n \n \n \n Rental Date\n Booking Reference\n Customer Name\n Email\n Assets\n \n \n \n \n {props.waivers.map((entry) => {\n if (!entry.Booking) {\n return;\n }\n\n return (\n onViewBooking(entry.Booking?.ID || '')}>\n \n {(() => {\n switch (entry.Waiver?.State) {\n case WaiverState.active:\n case WaiverState.expired:\n return ;\n default:\n return ;\n }\n })()}\n \n {new Date(entry.Booking.StartTime).toLocaleDateString()}\n {entry.Booking.Details.BookingReference}\n \n {entry.Booking.Details.Insured.FirstName}{' '}\n {entry.Booking.Details.Insured.LastName}\n \n {entry.Booking.Details.Insured.Email}\n \n {entry.Booking.Details.Assets?.map((asset) => (\n {`${asset.Name} [${asset.Details.SerialNumber}]`}
\n ))}\n {entry.Booking.Details.BookingLineItems?.map((asset) => (\n
{`${asset.Name} [${asset.SerialNumber}]`}
\n ))}\n \n \n \n \n \n );\n })}\n \n \n }\n {props.waivers.length === 0 && (\n

\n No waivers have been created yet. Click on create waiver button above to start.\n

\n )}\n \n );\n};\n\nconst MerchantRentalAssetManager = () => {\n const history = useHistory();\n\n const [assets, setAssets] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n\n const getAssetIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/assets\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n // Create a list of unique asset names\n const assetGroups: [string, RentalAsset[]][] = Object.entries(\n assets.reduce((acc, curr) => ({ ...acc, [curr.Name]: [...(acc[curr.Name] || []), curr] }), {})\n );\n assetGroups.sort((a, b) => (a[0] < b[0] ? -1 : 1));\n\n const selectedAsset = assets.find((a) => a.ID === getAssetIdFromRentalUrl());\n\n const fetchAssets = async () => {\n setLoading(assets.length === 0);\n try {\n const assets = await getMerchantRentalAssets();\n\n // It's possible that the asset that the merchant is currently viewing has\n // been removed, even though there are other assets with the same name. In\n // that case, find an alternative asset with the same name to ensure that\n // there is continuity in the UX.\n if (selectedAsset && !assets.find((a) => a.ID === selectedAsset.ID)) {\n const replacementAsset = assets.find((a) => a.Name === selectedAsset.Name);\n if (replacementAsset) {\n history.replace(`/rental/assets/${replacementAsset.ID}/view`);\n } else {\n history.replace('/rental/assets');\n }\n }\n\n setAssets(assets);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n fetchAssets();\n }, []);\n\n const onCreateAsset = () => history.push(`/rental/assets/create`);\n const onViewAsset = (assetId: string) => history.push(`/rental/assets/${assetId}/view`);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && (\n <>\n \n \n \n \n \n \n Asset Name\n Type\n Value\n Description\n Quantity\n \n \n \n \n {assetGroups.map(([name, assets]) => (\n onViewAsset(assets[0].ID)}>\n {assets[0].Name}\n {assets[0].Type}\n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n maximumFractionDigits: 0\n }).format(assets[0].Value)}\n \n {assets[0].Description}\n {assets.length}\n \n \n \n \n ))}\n \n \n \n )}\n {!loading && assets.length === 0 && (\n

\n No rental assets has been added yet. Click on \"Create Asset\" above to start.\n

\n )}\n\n 0 &&\n /^\\/rental\\/assets\\/.*\\/view/.test(location.pathname)\n }\n onClose={() => history.replace('/rental/assets')}\n onBack={() => history.replace('/rental/assets')}\n >\n \n history.replace('/rental/assets')}\n />\n \n \n\n history.replace('/rental/assets')}\n onBack={() => history.replace('/rental/assets')}\n >\n \n {\n await fetchAssets();\n history.replace(`/rental/assets/${asset.ID}/view`);\n }}\n />\n \n \n \n );\n};\n\nconst MerchantRentalSettings = () => {\n const history = useHistory();\n\n const [merchant, setMerchant] = React.useState();\n const [configuration, setConfiguration] = React.useState();\n\n const [loading, setLoading] = React.useState(false);\n const [updateLoading, setUpdateLoading] = React.useState(false);\n const [updated, setUpdated] = React.useState(false);\n const [error, setError] = React.useState();\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const [merchant, config] = await Promise.all([\n getMerchantAccount(),\n getMerchantRentalConfiguration()\n ]);\n setMerchant(merchant.Merchant);\n setConfiguration(config.Configuration);\n } finally {\n setLoading(false);\n }\n };\n\n const onUpdate = async (\n fn: (config: MerchantRentalConfiguration) => MerchantRentalConfiguration\n ) => {\n // Store the original config so we can revert to it in case of an error\n const origConfig = configuration ? { ...configuration } : configuration;\n const updatedConfig = configuration ? fn(configuration).Details : {};\n\n // Set the loading flag and tentatively update the policy with the\n // desired changes.\n setUpdateLoading(true);\n setUpdated(false);\n setError(undefined);\n setConfiguration((config) => (config ? fn(config) : config));\n\n try {\n // Update the policy and set the policy based on the backend response,\n // which may have rejected the update.\n const res = await updateMerchantRentalConfiguration(updatedConfig);\n setConfiguration(res.Configuration);\n setUpdated(true);\n } catch (e) {\n // If there was an error, revert to the original policy\n const err = WrappedError.asWrappedError(e);\n setConfiguration(origConfig);\n setError(err.message);\n } finally {\n // In any case, set the loading flag to false\n setUpdateLoading(false);\n }\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && configuration && (\n <>\n \n \n \n \n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, BillingMode: BillingMode.Customer }\n }))\n }\n image={}\n />\n history.push('/rental/settings/merchant-billing')}\n image={}\n />\n \n \n \n {\n if (!configuration?.Details.UnifiedWaiverFlowEnabled) {\n history.push('/rental/settings/unified-waiver-flow');\n } else {\n onUpdate((prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n UnifiedWaiverFlowEnabled: false\n }\n }));\n }\n }}\n />\n {configuration?.Details.UnifiedWaiverFlowEnabled && (\n
\n \n Manage rental documents\n \n
\n )}\n \n
\n {(updated || error) && (\n
\n {updated && (\n \n \n
Saved!
\n
\n )}\n {error && (\n \n \n
{error}
\n \n )}\n \n )}\n \n )}\n\n history.replace('/rental/settings')}\n onBack={() => history.replace('/rental/settings')}\n >\n \n {\n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, BillingMode: BillingMode.Merchant }\n }));\n history.replace('/rental/settings');\n }}\n />\n \n \n\n history.replace('/rental/settings')}\n onBack={() => history.replace('/rental/settings')}\n >\n \n {\n onUpdate((prev) => ({\n ...prev,\n Details: { ...prev.Details, UnifiedWaiverFlowEnabled: enabled }\n }));\n history.replace('/rental/settings');\n }}\n />\n \n \n \n );\n};\n\nconst MerchantRentalResources = () => {\n const [configuration, setConfiguration] = React.useState();\n const [referralLink, setReferralLink] = React.useState();\n const [qrCode, setQrCode] = React.useState();\n\n const [loading, setLoading] = React.useState(false);\n const [downloadLoading, setDownloadLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const config = await getMerchantRentalConfiguration();\n setConfiguration(config.Configuration);\n setReferralLink(config.ReferralLink);\n setQrCode(config.QRCodeBase64);\n } finally {\n setLoading(false);\n }\n };\n\n const onDownload = async () => {\n setError(undefined);\n setDownloadLoading(true);\n requestQRCodePdf()\n .then((res) => {\n const binaryString = window.atob(res.DocumentZip);\n const binaryLen = binaryString.length;\n\n const arrayBuffer = new ArrayBuffer(binaryLen);\n const intArray = new Uint8Array(arrayBuffer);\n for (let i = 0; i < binaryLen; i++) {\n intArray[i] = binaryString.charCodeAt(i);\n }\n\n const blob = new Blob([arrayBuffer], { type: 'application/zip' });\n window.open(URL.createObjectURL(blob), '_self');\n })\n .catch(() => {\n setError(\n 'Seems like something went wrong, please contact partners@withoyster.com to get your marketing kit!'\n );\n })\n .finally(() => setDownloadLoading(false));\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n return (\n <>\n {loading && (\n \n \n \n )}\n {!loading && configuration && (\n <>\n \n \n

\n Download and print this QR code. We recommend attaching it to every asset you rent\n out and writing the name and serial number for your customers to easily reference.\n

\n {qrCode && (\n \n )}\n {referralLink && (\n
\n \n
\n )}\n

\n Oyster also provides a co-branded marketing kit which includes a flyer summarizing\n the coverages of the waiver and the same QR code your customers can use to purchase\n a waiver. We recommend putting this up in your shop and sending it digitally for\n every reservation.\n

\n \n }\n loading={downloadLoading}\n onClick={onDownload}\n >\n Download your kit\n \n \n {error && {error}}\n \n
\n \n )}\n \n );\n};\n\nconst monthList = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n];\n\nconst getMonthsDate = (today: Date) =>\n [0, 1, 2, 3, 4, 5, 6].map((diff) => ({\n start: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() - diff, 1, 0, 0, 0, 0),\n end: Date.UTC(today.getUTCFullYear(), today.getUTCMonth() + 1 - diff, 1, 0, 0, 0, 0)\n }));\n\nconst getMonthName = (date: Date): string => monthList[date.getUTCMonth()];\n\nexport const MerchantRentalStatementsPage = (props: { waivers: WaiverEntry[] }) => {\n const monthOptions = getMonthsDate(new Date()).map(({ start, end }) => ({\n title: `${getMonthName(new Date(start))} ${new Date(start).getUTCFullYear()}`,\n start,\n end\n }));\n\n const [selectedMonth, setSelectedMonth] = React.useState(monthOptions[0]);\n const waivers = props.waivers.filter(\n (w): w is { Waiver: RentalWaiver; Booking: RentalBooking } =>\n !!w.Waiver &&\n !!w.Booking &&\n [WaiverState.active, WaiverState.expired].includes(w.Waiver.State) &&\n new Date(w.Booking.StartTime).getTime() >= selectedMonth.start &&\n new Date(w.Booking.StartTime).getTime() < selectedMonth.end\n );\n\n return (\n
\n \n \n ({ value: o.title }))}\n onChange={(value) => setSelectedMonth(monthOptions.find((m) => m.title === value)!)}\n />\n \n \n {waivers.length === 0 &&

No waivers in this billing period.

}\n {waivers.length > 0 && }\n \n
\n
\n );\n};\n\nconst MerchantRentalStatement = (props: {\n waivers: { Waiver: RentalWaiver; Booking: RentalBooking }[];\n}) => {\n const calculateDuration = (booking: RentalBooking) => {\n const days = Math.ceil(\n (new Date(booking.EndTime).getTime() - new Date(booking.StartTime).getTime()) /\n (24 * 60 * 60 * 1000)\n );\n\n if (days === 1) {\n return `${days} day`;\n }\n\n return `${days} days`;\n };\n\n return (\n ({\n waiverId: waiver.Waiver.ID,\n date: new Date(waiver.Booking.StartTime).toLocaleDateString(),\n customer:\n waiver.Booking.Details.Insured.FirstName + ' ' + waiver.Booking.Details.Insured.LastName,\n assets:\n waiver.Waiver.Details.Assets?.map(\n (a) => a.Asset?.Name || a.BookingLineItem?.Name || ''\n ).filter((a) => !!a) || [],\n rentalDuration: calculateDuration(waiver.Booking),\n premium: waiver.Waiver.Details.Premium.Total,\n adjustments: [\n {\n description: 'Paid by customer',\n show: waiver.Waiver?.Details.BillingMode !== BillingMode.Merchant,\n amount: -waiver.Waiver.Details.Premium.Total\n },\n {\n description: 'Merchant Fee',\n show: waiver.Waiver.Details.Premium.MerchantFeeAmount > 0,\n amount: -waiver.Waiver.Details.Premium.MerchantFeeAmount\n }\n ].filter((a) => a.show)\n }))}\n />\n );\n};\n\nexport const MerchantRentalPage = () => {\n const history = useHistory();\n const location = useLocation();\n\n const [merchant, setMerchant] = React.useState();\n const [configuration, setConfiguration] = React.useState();\n const [loading, setLoading] = React.useState(false);\n\n const onFetchData = async () => {\n setLoading(true);\n try {\n const merchant = await getMerchantAccount();\n setMerchant(merchant.Merchant);\n const config = await getMerchantRentalConfiguration();\n setConfiguration(config.Configuration);\n } finally {\n setLoading(false);\n }\n };\n\n React.useEffect(() => {\n onFetchData();\n }, []);\n\n const getWaiverIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/overview\\/waiver\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n const getBookingIdFromRentalUrl = (): string => {\n const pathMatch = window.location.pathname.match(/.*\\/rental\\/overview\\/booking\\/(.*)\\/.*/);\n if (pathMatch && pathMatch.length > 1) {\n return pathMatch[1];\n } else {\n return '';\n }\n };\n\n return (\n <>\n \n \n {loading && }\n {!loading &&\n merchant &&\n (!configuration || configuration?.Details.State !== RentalPolicyState.approved) && (\n history.replace('/rental')}\n />\n )}\n\n {!loading &&\n merchant &&\n configuration &&\n configuration?.Details.State === RentalPolicyState.approved && (\n (\n \n {(waivers) => (\n \n )}\n \n )\n },\n {\n path: '/assets',\n title: 'Asset Manager',\n render: () => \n },\n {\n path: '/resources',\n title: 'Resources',\n render: () => \n },\n {\n path: '/statements',\n title: 'Statements',\n render: () => (\n \n {(waivers) => }\n \n )\n },\n {\n path: '/settings',\n title: 'Settings',\n render: () => \n }\n ]}\n />\n )}\n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n {\n onFetchData();\n if (showConfirmationInDashboard) {\n history.push(`/rental/overview/booking/${booking.ID}/view`);\n } else {\n history.push(`/rental/overview/waiver/${waiver.ID}/sent`);\n }\n }}\n />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n history.push('/rental/overview/waiver/create')}\n onViewWaiver={(waiver) => history.push(`/rental/overview/waiver/${waiver.ID}/edit`)}\n onFileClaim={(waiver) => history.push(`/rental/overview/waiver/${waiver.ID}/claim`)}\n />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n history.replace('/rental/overview')} />\n \n \n\n history.replace('/rental/overview')}\n onBack={() => history.replace('/rental/overview')}\n >\n \n {\n if (booking) {\n history.replace(`/rental/overview/booking/${booking.ID}/view`);\n } else {\n history.replace('/rental/overview');\n }\n }}\n />\n \n \n \n \n \n );\n};\n","import config from '@oysterjs/core/config';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\n\nconst FooterStandardContainer = styled.div`\n display: flex;\n justify-content: space-between;\n\n @media (max-width: 500px) {\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: 10px;\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n justify-content: space-between;\n gap: 10px;\n`;\n\nconst FooterLinksContainer = styled.div`\n display: flex;\n\n a {\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n`;\n\nconst OysterCopyright = (props: { color?: string }) => (\n
\n © 2024 Oyster Technologies, Inc.\n
\n);\n\nconst CustomFooter = (props: { policyType?: PolicyType }) => {\n switch (props.policyType) {\n case PolicyType.chubbJewelry:\n return (\n
\n Insurance described is offered by Oyster Insurance Agency, LLC (California license no.\n 6006158). Insurance is underwritten and provided by Federal Insurance Company (Whitehouse\n Station, NJ), a Chubb ® company. Chubb is the marketing name used to refer to\n subsidiaries of Chubb Limited providing insurance and related services. Coverage is\n subject to the language of the policies as actually issued.\n
\n );\n default:\n return <>;\n }\n};\n\nexport const FooterStandard = (props: { policyType?: PolicyType; color?: string }): JSX.Element => (\n \n \n \n \n \n Contact Us\n \n \n Terms\n \n \n Privacy\n \n \n \n \n \n);\n\nconst FooterMinimalContainer = styled.div`\n padding: 20px 40px;\n display: flex;\n font-size: 0.8em;\n justify-content: space-around;\n`;\n\nexport const FooterMinimal = (props: { color?: string }): JSX.Element => (\n \n \n \n);\n","import React from 'react';\nimport { PolicyType } from '@oysterjs/types';\nimport styled from 'styled-components';\nimport { FooterMinimal, FooterStandard } from './footer';\n\nconst PaneContainer = styled.div<{ gap: number }>`\n display: flex;\n flex-direction: row;\n width: 100%;\n gap: ${(props) => props.gap}px;\n\n @media (max-width: 700px) {\n display: block;\n }\n`;\n\nconst Pane = styled.div<{ gap: number; paneWidth: number }>`\n width: calc(${(props) => props.paneWidth}% - ${(props) => props.gap / 2}px);\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nexport const TwoPaneContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n gap?: number;\n leftPaneWidth?: number;\n rightPane: JSX.Element;\n }>\n> = (props) => (\n \n \n {props.children}\n \n \n {props.rightPane}\n \n \n);\n\nexport enum FooterStyle {\n none,\n minimal,\n standard\n}\n\nconst PageContainerDiv = styled.div<{\n width?: number | string;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n}>`\n max-width: ${(props) =>\n props.width ? (isNaN(Number(props.width)) ? props.width : `${props.width}px`) : '1000px'};\n width: 100%;\n margin-top: ${(props) => (props.marginTop !== undefined ? `${props.marginTop}px` : 'auto')};\n margin-right: ${(props) => (props.marginRight !== undefined ? `${props.marginRight}px` : 'auto')};\n margin-bottom: ${(props) =>\n props.marginBottom !== undefined ? `${props.marginBottom}px` : 'auto'};\n margin-left: ${(props) => (props.marginLeft !== undefined ? `${props.marginLeft}px` : 'auto')};\n`;\n\nexport const PageContainer: React.FunctionComponent<\n React.PropsWithChildren<{\n width?: number | string;\n footerStyle?: FooterStyle;\n marginTop?: number;\n marginRight?: number;\n marginLeft?: number;\n marginBottom?: number;\n policyType?: PolicyType;\n footerTextColor?: string;\n }>\n> = (props) => {\n return (\n \n {props.children}\n {(props.footerStyle === undefined || props.footerStyle === FooterStyle.standard) && (\n \n )}\n {props.footerStyle === FooterStyle.minimal && }\n \n );\n};\n\nexport const PageSection = styled.div<{\n noBorder?: boolean;\n noPadding?: boolean;\n centered?: boolean;\n customPadding?: string;\n}>`\n padding: ${(props) =>\n props.customPadding ? props.customPadding : props.noPadding ? '0px 40px' : '20px 40px'};\n border-bottom: ${(props) => (props.noBorder ? '0' : '1px solid #f8f8f8')};\n ${(props) =>\n !props.centered\n ? ``\n : `\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n `}\n\n h2 {\n color: #666666;\n }\n`;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst VerticalLayoutContainer = styled.div<{ activeIconColor?: string; invertedIcon?: boolean }>`\n display: flex;\n flex-direction: column;\n\n // if inverted, border --> activeIconColor || white; background -> border and text color;\n .icon-container {\n border: ${(props) => (props.invertedIcon ? props.activeIconColor || '2px solid #0EA5E9' : '0')};\n background: ${(props) => (props.invertedIcon ? 'white' : props.activeIconColor || '#0EA5E9')};\n }\n`;\n\nconst VerticalLayoutItemContainer = styled.div<{ last?: boolean; inactive?: boolean }>`\n pointer-events: ${(props) => (props.inactive ? 'none' : 'auto')};\n padding-bottom: 30px;\n display: flex;\n gap: 16px;\n border-left: 1px solid ${(props) => (props.last ? 'transparent' : '#eaeaea')};\n margin-left: 16px;\n transition: min-height 0.5s ease-in-out;\n`;\n\nconst VerticalLayoutIconContainer = styled.div<{ inactive?: boolean }>`\n height: 34px;\n width: 34px;\n margin-left: -19px;\n color: white;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n border: 2px solid white;\n align-items: center;\n\n transition: background 0.15s ease-in-out;\n background: ${(props) => (props.inactive ? '#cccccc !important' : 'inherit')};\n\n svg {\n vertical-align: middle;\n }\n`;\n\nconst VerticalLayoutDetailsContainer = styled.div<{ inactive?: boolean }>`\n box-sizing: border-box;\n flex: 1 0 0;\n transition: opacity 0.15s ease-in-out;\n opacity: ${(props) => (props.inactive ? 0.3 : 1)};\n`;\n\ninterface VerticalLayoutProps {\n activeIconColor?: string;\n invertedIcon?: boolean;\n}\n\nexport const VerticalLayout: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => (\n \n {props.children}\n \n);\n\ninterface VerticalLayoutItemProps {\n icon: JSX.Element;\n last?: boolean;\n inactive?: boolean;\n style?: React.CSSProperties;\n onClick?: () => void;\n children?: React.ReactNode | React.ReactNode[];\n}\n\nexport const VerticalLayoutItem = React.forwardRef(\n (props: React.PropsWithChildren, ref: React.Ref) => (\n \n \n {props.icon}\n \n \n {props.children}\n \n \n )\n);\n","import * as React from 'react';\nimport { IoCheckmark, IoCopyOutline, IoPaperPlane } from 'react-icons/io5';\n\nimport { Button } from '@oysterjs/ui/Button';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { TwoPaneContainer } from '../../components/Page';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { VerticalLayout, VerticalLayoutItem } from '@oysterjs/ui/VerticalLayout';\nimport config from '@oysterjs/core/config';\nimport { Merchant, ReferralStatus } from '@oysterjs/types';\nimport { PageTitle } from '../../components/Page/section';\nimport { getMerchantReferralList } from '@oysterjs/core/api/merchant';\n\nconst ActivityItem = (props: {\n referree: string;\n date: string;\n amount: string;\n last?: boolean;\n}) => (\n } last={props.last}>\n <>\n \n
{props.referree}
\n
{props.amount}
\n \n
{props.date}
\n \n
\n);\n\nconst ReferralList = () => {\n return (\n <>\n

Your Referrals

\n \n r.filter((r) => r.Status === ReferralStatus.fulfilled)\n )}\n inline\n >\n {(data) => (\n <>\n {data.length === 0 &&

No referrals yet.

}\n {data.length > 0 && (\n \n {data.map((referral, i) => (\n \n ))}\n \n )}\n \n )}\n \n \n );\n};\n\nconst getInviteLinkHost = (): string => {\n const [, user] = window.location.host.split('.');\n switch (config().environment) {\n case 'production':\n return 'https://withoyster.com/m/invite';\n case 'staging':\n return 'https://withoyster.com/m/invite-staging';\n case 'dev':\n case 'local':\n return `https://withoyster.com/m/invite-dev-${user}`;\n }\n};\n\nexport const InvitePage = (props: { merchant: Merchant }): JSX.Element => {\n const link = `${getInviteLinkHost()}/${props.merchant.PublicHandle}`;\n\n const [copyClicked, setCopyClicked] = React.useState(false);\n\n React.useEffect(() => {\n if (!copyClicked) {\n return;\n }\n\n if (navigator && navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(link).catch(() => 0);\n }\n\n const timeout = setTimeout(() => {\n setCopyClicked(false);\n }, 2000);\n\n return () => clearTimeout(timeout);\n }, [copyClicked]);\n\n return (\n }>\n \n For each merchant that joins Oyster using your referral link, you'll both receive $100.{' '}\n \n Terms apply\n \n .\n \n }\n />\n \n

Share your link

\n
\n
\n
\n \n
\n
\n : }\n primary\n disabled={copyClicked}\n onClick={() => setCopyClicked(true)}\n onPointerUp={() => setCopyClicked(true)}\n >\n Copy Link\n \n
\n
\n
\n
\n );\n};\n","import styled from 'styled-components';\n\nexport const ActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n margin: 12px 0px 12px 0px;\n gap: 12px;\n`;\n\nexport const Action = styled.button`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n\n padding: 8px 16px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.7em;\n font-weight: 500;\n\n justify-content: center;\n\n color: #333333;\n background: #eaeaea;\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n cursor: pointer;\n\n transition: all 0.15s ease-in-out;\n\n svg {\n font-size: 1.2em;\n }\n\n &:hover {\n background: #e6e6e6;\n }\n\n &:active {\n background: #cccccc;\n }\n`;\n","'use client';\n\nimport * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { Fragment } from 'react';\n\nexport function Listbox({\n className,\n placeholder,\n autoFocus,\n 'aria-label': ariaLabel,\n children: options,\n ...props\n}: {\n className?: string;\n placeholder?: React.ReactNode;\n autoFocus?: boolean;\n 'aria-label'?: string;\n children?: React.ReactNode;\n} & Omit, 'multiple'>) {\n return (\n \n \n {placeholder}\n }\n className={clsx([\n // Basic layout\n 'relative block w-full appearance-none rounded-lg py-[calc(theme(spacing[2.5])-1px)] sm:py-[calc(theme(spacing[1.5])-1px)]',\n // Set minimum height for when no value is selected\n 'min-h-11 sm:min-h-9',\n // Horizontal padding\n 'pl-[calc(theme(spacing[3.5])-1px)] pr-[calc(theme(spacing.7)-1px)] sm:pl-[calc(theme(spacing.3)-1px)]',\n // Typography\n 'text-left text-base/6 text-neutral-950 placeholder:text-neutral-400 sm:text-sm/6 dark:text-white forced-colors:text-[CanvasText]',\n // Border\n 'border border-neutral-950/10 group-data-[active]:border-neutral-950/20 group-data-[hover]:border-neutral-950/20 dark:border-white/10 dark:group-data-[active]:border-white/20 dark:group-data-[hover]:border-white/20',\n // Background color\n 'bg-transparent dark:bg-white/5',\n // Invalid state\n 'group-data-[invalid]:border-red-500 group-data-[invalid]:group-data-[hover]:border-red-500 group-data-[invalid]:dark:border-red-600 group-data-[invalid]:data-[hover]:dark:border-red-600',\n // Disabled state\n 'group-data-[disabled]:border-neutral-950/20 group-data-[disabled]:opacity-100 group-data-[disabled]:dark:border-white/15 group-data-[disabled]:dark:bg-white/[2.5%] dark:data-[hover]:group-data-[disabled]:border-white/15'\n ])}\n />\n \n \n \n \n \n \n \n \n {options}\n \n \n );\n}\n\nexport function ListboxOption({\n children,\n className,\n ...props\n}: { className?: string; children?: React.ReactNode } & Omit<\n Headless.ListboxOptionProps<'div', T>,\n 'className'\n>) {\n const sharedClasses = clsx(\n // Base\n 'flex min-w-0 items-center',\n // Icons\n '[&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:shrink-0 sm:[&>[data-slot=icon]]:size-4',\n '[&>[data-slot=icon]]:text-neutral-500 [&>[data-slot=icon]]:group-data-[focus]/option:text-white [&>[data-slot=icon]]:dark:text-neutral-400',\n 'forced-colors:[&>[data-slot=icon]]:text-[CanvasText] forced-colors:[&>[data-slot=icon]]:group-data-[focus]/option:text-[Canvas]',\n // Avatars\n '[&>[data-slot=avatar]]:-mx-0.5 [&>[data-slot=avatar]]:size-6 sm:[&>[data-slot=avatar]]:size-5'\n );\n\n return (\n \n {({ selectedOption }) => {\n if (selectedOption) {\n return
{children}
;\n }\n\n return (\n \n
\n );\n}\n\nexport function ListboxLabel({ className, ...props }: React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n );\n}\n\nexport function ListboxDescription({\n className,\n children,\n ...props\n}: React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n {children}\n \n );\n}\n","import styled from 'styled-components';\n\nconst OysterLogoOldContainer = styled.div<{ inline?: boolean }>`\n display: ${(props) => (props.inline ? 'inline-block' : 'flex')};\n vertical-align: middle;\n justify-content: left;\n align-items: center;\n padding: ${(props) => (props.inline ? '0' : '10px 10px 10px 0px')};\n\n svg {\n vertical-align: middle;\n }\n`;\n\nconst OysterWordMarkContainer = styled.div`\n display: inline-block;\n vertical-align: middle;\n justify-content: left;\n align-items: center;\n padding: 0;\n\n svg {\n vertical-align: middle;\n }\n`;\n\nexport const OysterLogo = ({\n scale,\n color,\n className\n}: {\n scale?: number;\n color?: string;\n className?: string;\n}): JSX.Element => (\n
\n \n \n \n \n \n \n
\n);\n\nexport const OysterLogoOld = ({\n scale,\n inline,\n verticalAlign,\n light,\n color,\n textTransform\n}: {\n scale?: number;\n verticalAlign?: string;\n inline?: boolean;\n light?: boolean;\n color?: string;\n textTransform?: string;\n}): JSX.Element => (\n \n \n \n \n \n \n \n \n \n);\n\nexport const OysterWordMark = ({\n scale,\n forceLight\n}: {\n scale?: number;\n forceLight?: boolean;\n}): JSX.Element => (\n \n \n \n \n \n \n \n \n \n);\n","import clsx from 'clsx';\nimport React from 'react';\n\ntype HeadingProps = { level?: 1 | 2 | 3 | 4 | 5 | 6 } & React.ComponentPropsWithoutRef<\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n>;\n\nexport function Heading({ className, level = 1, ...props }: HeadingProps) {\n const Element: `h${typeof level}` = `h${level}`;\n\n return ;\n}\n\nexport function Subheading({ className, level = 2, ...props }: HeadingProps) {\n const Element: `h${typeof level}` = `h${level}`;\n\n return (\n \n );\n}\n","import React from 'react';\n\nimport {\n ApplicationFieldsFragment,\n ApplicationQuotableCarrierFieldsFragment,\n ApplicationQuoteFieldsFragment,\n GetBusinessApplicationDocument,\n GetBusinessApplicationQuery\n} from '../../types/graphql';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\nimport { ApolloError } from '@apollo/client';\n\nexport const ApplicationContext = React.createContext<\n ReturnType\n>({} as ReturnType);\n\nexport type BusinessApplication = ApplicationFieldsFragment &\n ApplicationQuoteFieldsFragment &\n ApplicationQuotableCarrierFieldsFragment;\n\nexport const useBusinessApplicationProvider = (\n id: string,\n includeQuotes: boolean,\n includeQuotableCarriers: boolean\n) => {\n const [application, setApplication] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const getApplication = async () => {\n const [res] = await Promise.all([\n getMerchantGraphQLClient()\n .query({\n errorPolicy: 'all',\n query: GetBusinessApplicationDocument,\n variables: { id, includeQuotes, includeQuotableCarriers }\n })\n .then((res) => {\n if (res.data?.businessApplication) {\n return res.data.businessApplication;\n }\n if (res.error?.message) {\n throw res.error;\n }\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n throw new Error('Application not found');\n }),\n new Promise((resolve) => setTimeout(resolve, 500))\n ]);\n\n return res;\n };\n\n const loadApplication = async (): Promise => {\n if (!id || loading) {\n return null;\n }\n\n setLoading(true);\n\n try {\n const res = await getApplication();\n setApplication(res);\n return res;\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n\n return null;\n };\n\n return {\n applicationId: id,\n application,\n loading,\n error,\n setError,\n updateApplication: setApplication,\n loadApplication,\n getApplication\n };\n};\n","import React from 'react';\nimport { useLocation } from 'react-router';\nimport styled from 'styled-components';\n\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Heading } from '@oysterjs/partners/uiv2/heading';\nimport { useWindowScrollPosition } from '@oysterjs/core/window';\nimport { ApplicationContext, BusinessApplication, useBusinessApplicationProvider } from './context';\nimport { CSSTransition, SwitchTransition } from 'react-transition-group';\nimport { ErrorComponentV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { BusinessApplicationState } from '../../types/graphql';\nimport { useHistory } from 'react-router-dom';\n\nconst ProgressBar = (props: { progress: number }) => {\n const scrollPos = useWindowScrollPosition();\n\n return (\n
\n \n
\n );\n};\n\nexport const ApplicationWrapper = (\n props: React.PropsWithChildren<{\n id: string;\n includeQuotes?: boolean;\n includeQuotableCarriers?: boolean;\n }>\n) => {\n const value = useBusinessApplicationProvider(\n props.id,\n !!props.includeQuotes,\n !!props.includeQuotableCarriers\n );\n return !props.id ? null : (\n {props.children}\n );\n};\n\nexport const TransitionContainer = styled.div`\n .fade-enter,\n &.fade-enter {\n opacity: 0;\n }\n .fade-enter-active,\n &.fade-enter-active {\n opacity: 1;\n transition: 0.15s opacity ease;\n }\n .fade-exit,\n &.fade-exit {\n opacity: 1;\n }\n .fade-exit-active,\n &.fade-exit-active {\n opacity: 0;\n transition: 0.15s opacity ease;\n }\n\n .fade-500-enter,\n &.fade-500-enter {\n opacity: 0;\n }\n .fade-500-enter-active,\n &.fade-500-enter-active {\n opacity: 1;\n transition: 0.5s opacity ease;\n }\n .fade-500-exit,\n &.fade-500-exit {\n opacity: 1;\n }\n .fade-500-exit-active,\n &.fade-500-exit-active {\n opacity: 0;\n transition: 0.5s opacity ease;\n }\n`;\n\nexport const PageWrapper = (\n props: React.PropsWithChildren<{\n title: string;\n description: string;\n progress: number;\n loading?: boolean;\n loader?: () => Promise;\n skeleton?: JSX.Element;\n }>\n) => {\n const { application, loading, error, loadApplication } = React.useContext(ApplicationContext);\n const location = useLocation();\n const history = useHistory();\n const loader =\n props.loader ||\n (() =>\n loadApplication().then((res) => {\n if (res?.state == BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${res.id}/complete`);\n }\n }));\n\n React.useEffect(() => {\n window.scroll({ top: 0 });\n loader();\n }, [location.pathname]);\n\n return (\n
\n \n
\n
\n
\n \n
\n\n \n \n \n {!error && (\n <>\n {application?.businessName && (\n \n {application.businessName}\n \n )}\n {!application?.businessName && (\n
\n )}\n \n {props.title}\n \n

\n {props.description}\n

\n \n )}\n {error && }\n \n \n \n\n \n \n \n {(!application || loading || props.loading) && !error && props.skeleton}\n {!!application && !loading && !props.loading && !error && props.children}\n \n \n \n
\n
\n
\n );\n};\n","import * as React from 'react';\nimport { IoDownloadOutline, IoOpenOutline } from 'react-icons/io5';\nimport { Badge } from '@oysterjs/ui/Badge';\n\nimport { PageTitle } from '../../../components/Page/section';\nimport { Action, ActionsContainer } from './table';\nimport config from '@oysterjs/core/config';\nimport {\n BusinessInsuranceType,\n BusinessOperationType,\n Merchant,\n MerchantUser,\n ProductType\n} from '@oysterjs/types';\nimport {\n PolicyState,\n FileRole,\n GetCertificateQuery,\n GetCertificateDocument,\n File,\n GenerateCertificateInput,\n useGenerateCertificateMutation,\n InsuranceType,\n AddressInput,\n MerchantFieldsFragment,\n FileFieldsFragment\n} from '../../../types/graphql';\nimport {\n GetMerchantBusinessPolicyDocument,\n GetMerchantBusinessPolicyQuery,\n ValidationError\n} from '../../../types/graphql';\nimport { getDisplayInsuranceType } from '../../../types/map';\nimport { openPageInNewTab } from '@oysterjs/core/window';\nimport { useHistory, useLocation } from 'react-router';\nimport { Slideout } from '@oysterjs/partners/uiv2/slideout';\nimport ErrorBoundary, { ErrorBoundaryV2 } from '@oysterjs/ui/ErrorBoundary';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport clsx from 'clsx';\nimport { NavLink } from 'react-router-dom';\nimport { DocumentPlusIcon, ExclamationTriangleIcon } from '@heroicons/react/24/outline';\nimport { BusinessPolicyFieldsFragment } from '../../../types/graphql';\nimport {\n Description,\n ErrorMessage,\n Field,\n FieldGroup,\n Fieldset,\n Label\n} from '@oysterjs/partners/uiv2/fieldset';\nimport { Input } from '@oysterjs/partners/uiv2/input';\nimport { Textarea } from '@oysterjs/partners/uiv2/textarea';\nimport { Listbox } from '@oysterjs/partners/uiv2/listbox';\nimport { AddressForm, RadioField } from '../../commercial/form';\nimport { TransitionContainer } from '../../commercial/common';\nimport { CheckCircleIcon } from '@heroicons/react/20/solid';\nimport { ApolloError } from '@apollo/client';\nimport * as Headless from '@headlessui/react';\n\nconst getFormId = (): string => {\n switch (config().environment) {\n case 'production':\n return 'vtaJwrn7SEus';\n default:\n return 'ohCv6cYeRaus';\n }\n};\n\nconst toNumber = (s?: string) => s?.replace(/[^\\d.]/g, '');\n\nconst getFilloutParameters = (merchant: Merchant, merchantUser: MerchantUser) => ({\n 'data-first_name': merchantUser.FirstName,\n 'data-last_name': merchantUser.LastName,\n 'data-email': merchantUser.Email,\n 'data-phone': merchant.BusinessProfile.Phone,\n 'data-merchant_id': merchant.ID,\n 'data-business_name': merchant.BusinessProfile.Name,\n 'data-dba_name': merchant.BusinessProfile.DBA,\n 'data-website': merchant.BusinessProfile.Domain,\n 'data-address_line_1': merchant.BusinessProfile.Address.AddressLine1,\n 'data-address_line_2': merchant.BusinessProfile.Address.AddressLine2,\n 'data-address_city': merchant.BusinessProfile.Address.City,\n 'data-address_state': merchant.BusinessProfile.Address.Zone,\n 'data-address_zip_code': merchant.BusinessProfile.Address.PostalCode,\n 'data-business_type':\n {\n [ProductType.bike]: 'BIKES',\n [ProductType.jewelry]: 'JEWELRY',\n [ProductType.electronics]: 'ELECTRONICS'\n }[merchant.BusinessProfile.ProductVerticals?.[0] || ''] ||\n merchant.BusinessProfile.ProductVerticals?.[0],\n 'data-insurance_types': merchant.BusinessProfile.Personalization.BusinessInsuranceTypes?.map(\n (t) =>\n ({\n [BusinessInsuranceType.BusinessOwners]: 'BUSINESS_OWNERS',\n [BusinessInsuranceType.CommercialAuto]: 'AUTO',\n [BusinessInsuranceType.Cyber]: 'CYBER',\n [BusinessInsuranceType.DirectorsAndOfficers]: 'DIRECTORS_OFFICERS',\n [BusinessInsuranceType.GeneralLiability]: 'GENERAL_LIABILITY',\n [BusinessInsuranceType.JewelersBlock]: 'JEWELERS_BLOCK',\n [BusinessInsuranceType.Property]: 'PROPERTY',\n [BusinessInsuranceType.Rental]: 'RENTAL',\n [BusinessInsuranceType.ShippingAndTransportation]: 'SHIPPING',\n [BusinessInsuranceType.UmbrellaExcess]: 'UMBRELLA',\n [BusinessInsuranceType.WorkersCompensation]: 'WORKERS_COMP'\n })[t] ||\n merchant.BusinessProfile.Personalization.BusinessInsuranceTypesOtherDesc ||\n t\n ).join(','),\n 'data-operation_types': merchant.BusinessProfile.Personalization.BusinessOperationTypes?.map(\n (t) =>\n ({\n [BusinessOperationType.RetailECommerce]: 'RETAIL',\n [BusinessOperationType.ServiceOrRepair]: 'SERVICE',\n [BusinessOperationType.Wholesale]: 'WHOLESALE',\n [BusinessOperationType.Rental]: 'RENTAL',\n [BusinessOperationType.Manufacturing]: 'MANUFACTORING_DESIGN'\n })[t] ||\n merchant.BusinessProfile.Personalization.BusinessOperationTypesOtherDesc ||\n t\n ).join(','),\n 'data-own_brand': merchant.BusinessProfile.Personalization.BusinessManufactureOrWholesaleOwnBrand,\n 'data-revenue_retail': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownRetail\n ),\n 'data-revenue_service': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownServiceOrRepair\n ),\n 'data-revenue_wholesale': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownWholesale\n ),\n 'data-revenue_rental': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownRental\n ),\n 'data-revenue_manufacturing': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownManufacturing\n ),\n 'data-revenue_other': toNumber(\n merchant.BusinessProfile.Personalization.BusinessRevenueBreakdownOther\n ),\n 'data-total_employee_payroll': toNumber(\n merchant.BusinessProfile.Personalization.BusinessTotalPayroll\n ),\n 'data-number_of_losses': toNumber(\n merchant.BusinessProfile.Personalization.BusinessNumberOfPriorLosses\n )\n});\n\nconst GetInsurance = (props: { merchant: Merchant; merchantUser: MerchantUser }) => {\n React.useEffect(() => {\n // Create script component.\n const script = document.createElement('script');\n script.id = 'fillout-embed';\n script.src = `//server.fillout.com/embed/v1/`;\n script.defer = true;\n\n // Add the script to the DOM\n document.head.appendChild(script);\n\n // Remove the script when the component unmounts\n return () => {\n document.head.removeChild(script);\n };\n }, []);\n\n const prefilledParameters = getFilloutParameters(props.merchant, props.merchantUser);\n\n return (\n <>\n

\n Submit the form to get a tailored quote for your business. Our commercial insurance team of\n experts will reach out soon upon submission.\n

\n \n \n );\n};\n\nconst InsuranceFormSubmitted = () => (\n <>\n

\n Thank you for submitting your information. Our commercial insurance team of experts will reach\n out soon.\n

\n \n);\n\nconst statuses = {\n [PolicyState.Binding]: 'text-primary-700 bg-primary-50 ring-primary-600/20',\n [PolicyState.Inforce]: 'text-green-700 bg-green-50 ring-green-600/20',\n [PolicyState.Expired]: 'text-neutral-600 bg-neutral-50 ring-neutral-500/10',\n [PolicyState.Canceled]: 'text-red-700 bg-red-50 ring-red-600/10'\n};\n\nexport const CertificatesTable = (props: { certificates: FileFieldsFragment[] }) => (\n \n \n \n \n Certificate Holder\n \n \n \n \n \n \n \n {props.certificates.map((certificate) => (\n \n \n \n \n \n \n ))}\n \n
\n Certificate Number\n \n Creation Date\n \n Edit\n
\n {certificate.details?.certificateHolder.name}\n \n {certificate.details?.certificateNumber}\n \n {new Intl.DateTimeFormat('en-US').format(new Date(certificate.createdAt))}\n \n \n View\n , {certificate.details?.certificateNumber}\n \n
\n);\n\nconst ManageBusinessInsurance = (props: {\n merchant: Merchant;\n merchantUser: MerchantUser;\n graphMerchant: MerchantFieldsFragment;\n policies: BusinessPolicyFieldsFragment[];\n}) => {\n const urlParams = new URLSearchParams(\n Object.fromEntries(\n Object.entries(getFilloutParameters(props.merchant, props.merchantUser)).map(\n ([key, value]) => [key.replace(/^data-/, ''), value]\n )\n )\n );\n\n const filloutLink =\n config().environment === 'production'\n ? 'https://www.withoyster.com/business-insurance-app'\n : `https://form.fillout.com/t/${getFormId()}?${urlParams.toString()}`;\n\n const certificates = props.graphMerchant.files\n .filter((f) => f.role === FileRole.Certificate)\n .filter((f) => !!f.details?.certificateNumber);\n\n return (\n
\n
\n
\n
\n
\n

\n Your Coverage\n

\n

\n Details about your business insurance policies\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n Coverage\n \n \n Status\n \n \n Carrier\n \n \n Expiration Date\n \n \n \n \n \n {props.policies.map((policy) => (\n \n \n \n \n \n \n \n ))}\n \n
\n Edit\n
\n
\n {getDisplayInsuranceType(policy.type)}\n
\n
\n {policy.policyNumber || 'N/A'}\n
\n
\n \n {titleCase(policy.state)}\n \n \n {policy.carrier.name}\n \n {!policy.expiresAt || isNaN(new Date(policy.expiresAt).getTime())\n ? 'N/A'\n : new Intl.DateTimeFormat('en-US').format(new Date(policy.expiresAt))}\n \n \n View\n , {getDisplayInsuranceType(policy.type)}\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n Your Certificates\n

\n

\n Certificates of insurance you have created with Oyster\n

\n
\n {certificates.length > 0 && (\n
\n \n
\n )}\n
\n
\n
\n
\n
\n {certificates.length === 0 && (\n
\n \n

No certiciates

\n

\n Get started by creating a new certificate.\n

\n
\n \n
\n
\n )}\n {certificates.length > 0 && }\n
\n
\n
\n
\n
\n );\n};\n\nconst getPolicyBadge = (state: PolicyState) => {\n switch (state) {\n case PolicyState.Binding:\n return ;\n\n case PolicyState.Inforce:\n return ;\n\n case PolicyState.Expired:\n return ;\n\n default:\n return <>;\n }\n};\n\nconst titleCase = (s: string) =>\n s\n .split(/[\\s_]/g)\n .map((part) => part[0].toUpperCase() + part.substring(1).toLowerCase())\n .join(' ');\n\nconst unescapeSafe = (input: string) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n return doc.documentElement.textContent;\n};\n\nconst ViewBusinessPolicy = (props: { policy: BusinessPolicyFieldsFragment }) => (\n
\n {[\n ['Carrier', props.policy.carrier.name],\n [\n 'Premium',\n new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD' }).format(\n props.policy.pricing.premium\n )\n ],\n [\n 'Total Charge',\n new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD' }).format(\n props.policy.pricing.total\n )\n ],\n ['Payment Mode', titleCase(props.policy.pricing.billingType)]\n ].map(([label, description]) => (\n
\n
{label}
\n
{description}
\n
\n ))}\n
\n
Documents
\n {!props.policy.files.length && (\n
No documents available yet
\n )}\n {!!props.policy.files.length && (\n
    \n {props.policy.files\n .filter((f) => !!f.url)\n .map((f) => (\n
  • \n \n {titleCase(f.role)} \n \n
  • \n ))}\n
\n )}\n
\n
\n);\n\nconst ViewCertificate = (props: { certificate: File }) => (\n <>\n \n \n openPageInNewTab(\n `${config().serviceBaseUrl.partners}/certificate/${\n props.certificate.details?.certificateNumber\n }`\n )\n }\n >\n Open Sharable Link \n \n openPageInNewTab(props.certificate.url || '')}>\n Download Certificate \n \n \n
\n {[\n ['Insured Name', unescapeSafe(props.certificate.details?.insured.name || '')],\n ['Insured Address', unescapeSafe(props.certificate.details?.insured.address || '')],\n [\n 'Certificate Holder Name',\n unescapeSafe(props.certificate.details?.certificateHolder.name || '')\n ],\n [\n 'Certificate Holder Address',\n unescapeSafe(props.certificate.details?.certificateHolder.address || '')\n ],\n [\n 'Description of Operations',\n unescapeSafe(props.certificate.details?.descriptionOfOperations || '')\n ]\n ].map(\n ([label, description]) =>\n !!description && (\n
\n
{label}
\n
{description}
\n
\n )\n )}\n
\n \n);\n\ntype AdditionalInsured = {\n id: string;\n type: string;\n address: AddressInput | null;\n title: string;\n description: string;\n policyType: InsuranceType;\n policyId: string;\n};\n\nconst CreateCertificate = (props: { policies: BusinessPolicyFieldsFragment[] }) => {\n const history = useHistory();\n const [generateCertificate, { loading }] = useGenerateCertificateMutation();\n\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [error, setError] = React.useState();\n const [needsAgentAction, setNeedsAgentAction] = React.useState(false);\n\n // Define the form variables\n const [form, setForm] = React.useState<\n Omit & {\n additionalInsured: boolean | null;\n }\n >({\n additionalInsured: null,\n additionalInsuredRelationship: null,\n additionalInsuredRelationshipDescription: null,\n address: { line1: '', line2: '', city: '', zone: '', postalCode: '' },\n name: '',\n notes: ''\n });\n\n // Define the list of additional insureds that the user can select\n const [selectedAdditionalInsured, setSelectedAdditionalInsured] =\n React.useState(null);\n const additionalInsureds: AdditionalInsured[] = [\n ...(props.policies\n .filter(\n (p) =>\n p.state === PolicyState.Inforce &&\n [\n InsuranceType.BusinessOwners,\n InsuranceType.CommercialAuto,\n InsuranceType.GeneralLiability,\n InsuranceType.Package\n ].includes(p.type)\n )\n .flatMap(\n (p) =>\n p.details?.blanketAdditionalInsureds?.map((b) => ({\n id: b.type + ' /// ' + p.id + ' /// ' + 'blanket',\n type: 'blanket',\n address: null,\n title: b.type,\n description: b.description,\n policyType: p.type,\n policyId: p.id\n })) || []\n ) || []),\n ...(props.policies\n .filter(\n (p) =>\n p.state === PolicyState.Inforce &&\n [\n InsuranceType.BusinessOwners,\n InsuranceType.CommercialAuto,\n InsuranceType.GeneralLiability,\n InsuranceType.Package\n ].includes(p.type)\n )\n .flatMap(\n (p) =>\n p.details?.namedAdditionalInsureds?.map((n) => ({\n id: n.name + ' /// ' + p.id + ' /// ' + 'named',\n type: 'named',\n address: n.address,\n title: n.name,\n description: n.address.line1,\n policyType: p.type,\n policyId: p.id\n })) || []\n ) || [])\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n try {\n const res = await generateCertificate({\n variables: {\n req: {\n ...form,\n additionalInsured: form.additionalInsured || false,\n additionalInsuredRelationship: form.additionalInsured\n ? selectedAdditionalInsured?.title || 'other'\n : null\n }\n },\n errorPolicy: 'all'\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n\n if (res.data && !res.data.generateCertificate && validationErrors.length === 0) {\n setNeedsAgentAction(true);\n } else if (res.data?.generateCertificate?.details?.certificateNumber) {\n history.push(\n `/insurance/certificates/certificate/${res.data?.generateCertificate?.details?.certificateNumber}`\n );\n }\n } catch (e) {\n setError(e as ApolloError);\n }\n };\n\n // Reset the form\n const onReset = () => {\n setForm({\n name: '',\n address: { line1: '', line2: '', city: '', zone: '', postalCode: '' },\n additionalInsured: null,\n additionalInsuredRelationship: null,\n additionalInsuredRelationshipDescription: '',\n notes: ''\n });\n setNeedsAgentAction(false);\n };\n\n if (needsAgentAction) {\n return (\n <>\n
\n
\n
\n \n
\n
\n

Request Received

\n

\n Your request has been received. An agent will follow up via email with your\n completed certificate.\n

\n
\n
\n
\n \n \n );\n }\n\n return (\n \n
\n
\n \n {\n updateForm(['additionalInsured'], (prev) => ({\n ...prev,\n additionalInsured: val === 'true'\n }));\n }}\n error={getError(['additionalInsured'])}\n />\n\n {form.additionalInsured && (\n <>\n {additionalInsureds.length > 0 && (\n \n \n {\n setSelectedAdditionalInsured(val);\n updateForm(['additionalInsuredRelationship'], (prev) => ({\n ...prev,\n additionalInsuredRelationship: val?.title || null,\n additionalInsuredRelationshipDescription: null\n }));\n if (val?.type === 'named') {\n updateFormMulti(\n [\n ['name'],\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n name: val?.title || prev.name,\n address: val?.address || prev.address\n })\n );\n } else {\n updateFormMulti(\n [\n ['name'],\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n name: '',\n address: {\n line1: '',\n line2: '',\n city: '',\n zone: '',\n postalCode: ''\n }\n })\n );\n }\n }}\n invalid={!!getError(['additionalInsuredRelationship'])}\n className=\"w-full truncate\"\n >\n {additionalInsureds.map((ai) => (\n \n ))}\n \n \n {getError(['additionalInsuredRelationship'])}\n \n )}\n {(additionalInsureds.length === 0 || selectedAdditionalInsured?.id === 'other') && (\n \n \n \n Describe the relationship between the certificate holder and the insured.\n \n {\n const val = e.currentTarget.value;\n updateForm(['additionalInsuredRelationshipDescription'], (prev) => ({\n ...prev,\n additionalInsuredRelationshipDescription: val\n }));\n }}\n invalid={!!getError(['additionalInsuredRelationshipDescription'])}\n />\n \n {getError(['additionalInsuredRelationshipDescription'])}\n \n \n )}\n {(additionalInsureds.length === 0 || selectedAdditionalInsured?.id === 'other') && (\n
\n
\n
\n \n
\n
\n

\n Additional Review Required\n

\n

\n In order to make sure your policy extends coverage to this party, Oyster\n will perform a manual review. In most cases, you'll receive your\n certificate within 24 hours, but the process may take up to several\n business days depending on complexity. Our agents will follow up via\n email.\n

\n
\n
\n
\n )}\n \n )}\n
\n\n {form.additionalInsured !== null && (\n \n \n \n \n Enter the name of the party that will receive and hold the certificate.\n \n {\n const val = e.currentTarget.value;\n updateForm(['name'], (prev) => ({ ...prev, name: val }));\n }}\n invalid={!!getError(['name'])}\n />\n {getError(['name'])}\n \n \n )}\n\n {form.additionalInsured !== null && (\n \n updateFormMulti(\n [\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n address: update(prev.address)\n })\n )\n }\n validationErrors={{\n line1: getError(['address', 'line1']),\n line2: getError(['address', 'line2']),\n city: getError(['address', 'city']),\n zone: getError(['address', 'zone']),\n postalCode: getError(['address', 'postalCode'])\n }}\n />\n )}\n\n {form.additionalInsured !== null && (\n \n \n \n \n Additional notes to include for the Oyster team to review.\n \n {\n const val = e.currentTarget.value;\n updateForm(['notes'], (prev) => ({ ...prev, notes: val }));\n }}\n invalid={!!getError(['notes'])}\n />\n {getError(['notes'])}\n \n \n )}\n
\n\n {form.additionalInsured !== null && (\n \n )}\n\n {error && (\n
\n {error.message}\n
\n )}\n
\n
\n );\n};\n\nconst AdditionalInsuredListOption = (props: {\n type: string;\n title: string;\n description: string;\n value: AdditionalInsured;\n}) => {\n const sharedClasses = clsx(\n // Base\n 'flex flex-grow flex-col max-w-[26rem] col-start-2'\n );\n\n return (\n \n {({ selectedOption }) => {\n if (selectedOption) {\n return (\n
\n
{props.title}
\n
\n {props.description}\n
\n
\n );\n }\n\n return (\n \n
\n
\n
\n
{props.title}
\n
\n {props.description}\n
\n
\n
\n );\n }}\n \n );\n};\n\nexport const InsurancePage = (props: {\n merchant: Merchant;\n merchantUser: MerchantUser;\n graphMerchant: MerchantFieldsFragment;\n policies?: BusinessPolicyFieldsFragment[];\n}) => {\n const history = useHistory();\n const location = useLocation();\n\n return (\n <>\n \n\n {!props.merchant.BusinessProfile.Personalization.BusinessInsuranceFilloutFormSubmitted &&\n !props.policies?.length && (\n \n )}\n {props.merchant.BusinessProfile.Personalization.BusinessInsuranceFilloutFormSubmitted &&\n !props.policies?.length && }\n {!!props.policies?.length && (\n \n )}\n\n history.replace('/insurance/overview')}\n title=\"View Policy\"\n >\n \n {!location.pathname.match(/\\/policy\\/(.+)$/)?.[1] ? null : (\n ({\n query: GetMerchantBusinessPolicyDocument,\n variables: {\n id: location.pathname.match(/\\/policy\\/(.+)$/)?.[1]\n }\n })\n .then((res) => {\n if (res.data?.businessPolicy) {\n return res.data.businessPolicy;\n }\n\n throw new Error('Policy not found');\n })}\n >\n {(data) => (\n \n \n \n )}\n \n )}\n \n \n\n history.replace('/insurance/certificates')}\n title=\"View Certificate\"\n >\n \n {!location.pathname.match(/\\/certificate\\/(.+)$/)?.[1] ? null : (\n ({\n query: GetCertificateDocument,\n variables: {\n certificateNumber: location.pathname.match(/\\/certificate\\/(.+)$/)?.[1]\n }\n })\n .then((res) => {\n if (res.data?.certificate?.details) {\n return res.data.certificate;\n }\n\n throw new Error('Certificate not found');\n })}\n >\n {(data) => (\n \n \n \n )}\n \n )}\n \n \n\n history.replace('/insurance/certificates')}\n title=\"Create Certificate\"\n >\n \n \n \n \n \n \n \n );\n};\n\ninterface PolicySlideoutContainerProps {\n title: string;\n description: string;\n badge?: JSX.Element;\n}\n\nexport const PolicySlideoutContainer = (\n props: React.PropsWithChildren\n) => (\n <>\n

{props.title}

\n

{props.description}

\n {props.children}\n \n);\n","import { Redirect, Route as BrowserRoute, Switch, useLocation } from 'react-router';\nimport { useRouteMatch, NavLink } from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport {\n getMerchantAccount,\n getMerchantGraphQLClient,\n getMerchantIntegrations,\n getMerchantReferrals,\n getMerchantRentalConfiguration,\n getMerchantUsers,\n getRentalWaivers,\n merchantUserSignOut\n} from '@oysterjs/core/api/merchant';\nimport { HomePage } from './home';\nimport { IntegrationsPage } from './insurance/product';\nimport { TeamPage } from './team';\nimport { ExploreRiskPage } from './risk';\nimport { MerchantRentalPage } from './rental';\nimport { InvitePage } from './invite';\nimport { InsurancePage } from './insurance/business';\nimport { ApolloProvider } from '@apollo/client';\nimport { GetMerchantDocument, GetMerchantQuery } from '../types/graphql';\nimport {\n GetMerchantBusinessPoliciesQuery,\n GetMerchantBusinessPoliciesDocument\n} from '../types/graphql';\nimport React from 'react';\n\nimport clsx from 'clsx';\nimport {\n Dialog,\n DialogBackdrop,\n DialogPanel,\n Menu,\n MenuButton,\n TransitionChild\n} from '@headlessui/react';\nimport {\n Bars3Icon,\n BellIcon,\n PowerIcon,\n GiftIcon,\n HomeIcon,\n PuzzlePieceIcon,\n ShieldCheckIcon,\n UsersIcon,\n XMarkIcon\n} from '@heroicons/react/24/outline';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { resetToken, useAuth } from '@oysterjs/core/auth';\n\nconst navigation = [\n { name: 'Home', href: '/home', icon: HomeIcon },\n { name: 'Insurance', href: '/insurance', icon: ShieldCheckIcon },\n { name: 'Integrations', href: '/integrations', icon: PuzzlePieceIcon },\n { name: 'Team', href: '/team', icon: UsersIcon },\n { name: 'Invite', href: '/invite', icon: GiftIcon }\n];\n\nconst AsyncMerchantHomePage = () => (\n ({ query: GetMerchantDocument })\n .then((res) => res.data?.merchant),\n getMerchantGraphQLClient()\n .query({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n getMerchantReferrals(\n new Date(new Date().getUTCFullYear(), new Date().getUTCMonth()),\n new Date(new Date().getUTCFullYear(), new Date().getUTCMonth() + 1)\n ),\n getMerchantIntegrations(),\n getMerchantRentalConfiguration(),\n getRentalWaivers()\n ])}\n >\n {([merchant, businessPolicies, referrals, integrations, rental, waivers]) => {\n return !merchant ? null : (\n \n );\n }}\n \n);\n\nconst AsyncMerchantIntegrationsPage = () => (\n \n {([accountRes, integrationsRes, rentalRes]) => {\n return (\n \n );\n }}\n \n);\n\nconst AsyncMerchantInsurancePage = () => (\n ({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || []),\n getMerchantGraphQLClient()\n .query({ query: GetMerchantDocument })\n .then((res) => res.data?.merchant)\n ])}\n >\n {([account, businessPolicies, merchant]) => {\n return !merchant ? null : (\n \n );\n }}\n \n);\n\nconst AsyncExploreRiskPage = () => (\n ({ query: GetMerchantBusinessPoliciesDocument })\n .then((res) => res.data?.businessPolicies || [])\n ])}\n >\n {([businessPolicies]) => {\n return ;\n }}\n \n);\n\nconst AsyncTeamPage = () => (\n \n {([account, users]) => {\n return ;\n }}\n \n);\n\nconst AsyncInvitePage = () => (\n \n {(account) => {\n return ;\n }}\n \n);\n\nconst DashboardContainer = (props: React.PropsWithChildren) => {\n const [sidebarOpen, setSidebarOpen] = React.useState(false);\n const location = useLocation();\n const [auth] = useAuth();\n const user = auth.MerchantUser;\n\n const signOut = () => {\n merchantUserSignOut().finally(() => {\n resetToken();\n });\n };\n\n return (\n <>\n
\n \n \n\n
\n \n \n
\n setSidebarOpen(false)}\n className=\"-m-2.5 p-2.5\"\n >\n Close sidebar\n \n \n
\n
\n {/* Sidebar component, swap this element with another sidebar if you like */}\n
\n
\n \n
\n \n
\n \n
\n
\n\n {/* Static sidebar for desktop */}\n
\n {/* Sidebar component, swap this element with another sidebar if you like */}\n
\n
\n \n
\n \n
\n
\n\n
\n
\n setSidebarOpen(true)}\n className=\"-m-2.5 p-2.5 text-neutral-700 lg:hidden\"\n >\n Open sidebar\n \n \n\n {/* Separator */}\n
\n\n
\n
\n {/*
\n \n \n \n */}\n
\n \n View notifications\n \n \n\n {/* Separator */}\n \n\n {/* Profile dropdown */}\n \n \n Open user menu\n\n
\n {user?.FirstName[0]}\n {user?.LastName[0]}\n
\n \n \n {user?.FirstName} {user?.LastName}\n \n {/* */}\n \n
\n
\n
\n
\n
\n\n
\n
{props.children}
\n
\n
\n
\n \n );\n};\n\nexport const Dashboard = () => {\n const { path } = useRouteMatch();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nconst ProgressContainer = styled.div`\n margin: 30px 0px 30px 0px;\n position: relative;\n`;\n\nconst ProgressBarContainer = styled.div``;\n\nconst ProgressBarTrack = styled.div`\n background: #eaeaea;\n width: 100%;\n height: 6px;\n border-radius: 4px;\n`;\n\nconst ProgressBarInner = styled.div`\n height: 100%;\n background: #0ea5e9;\n border-radius: 4px;\n transition: all 0.15s ease-in;\n`;\n\nconst ProgressStepContainer = styled.div`\n position: absolute;\n top: -16px;\n left: 0;\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst ProgressStep = styled.div<{ filled: boolean }>`\n height: 32px;\n width: 32px;\n transform: scale(1);\n border-radius: 50%;\n background: ${(props) => (props.filled ? '#0EA5E9' : '#eaeaea')};\n transition: all 0.15s ease-in;\n\n text-align: center;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n a,\n svg {\n display: block;\n font-size: 1em;\n color: ${(props) => (props.filled ? 'white' : '#666666')};\n transition: all 0.15s ease-in;\n }\n`;\n\nconst ProgressBar = (props: { percentage: number }) => (\n \n \n \n \n \n);\n\ninterface ProgressProps {\n steps: number | JSX.Element[];\n currentStep: number;\n}\n\nexport const Progress = (props: ProgressProps): JSX.Element => {\n const numSteps = (() => {\n if (Number.isFinite(props.steps)) {\n return props.steps as number;\n }\n if (Array.isArray(props.steps)) {\n return (props.steps as JSX.Element[]).length;\n }\n // impossible?\n return 0;\n })();\n\n const steps = (() => {\n if (Number.isFinite(props.steps)) {\n return [...Array(numSteps).keys()].map(() => <>);\n }\n if (Array.isArray(props.steps)) {\n return props.steps as JSX.Element[];\n }\n // impossible?\n return [];\n })();\n\n return (\n \n \n \n {steps.map((step, i) => (\n \n {step}\n \n ))}\n \n \n );\n};\n","import * as React from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { Merchant, MerchantUser, ValidationError } from '@oysterjs/types';\nimport { getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { PageContainer, PageSection } from './components/Page';\nimport { Spinner } from '@oysterjs/ui/Spinner/index';\n\nexport const ThrowError = (props: { error: Error }) => {\n throw props.error;\n};\n\nexport const Authenticated = (props: React.PropsWithChildren) => {\n const [loaded, setLoaded] = React.useState(false);\n const [data, setData] = React.useState<{\n Merchant: Merchant;\n MerchantUser: MerchantUser;\n PersonalizationError?: ValidationError;\n }>();\n\n const history = useHistory();\n const match = useRouteMatch();\n\n React.useEffect(() => {\n if (!loaded) {\n getMerchantAccount()\n .then((data) => setData(data))\n .finally(() => setLoaded(true));\n }\n }, [loaded]);\n\n React.useEffect(() => {\n setLoaded(false);\n }, [match.url]);\n\n if (!loaded) {\n return (\n \n \n \n \n \n );\n }\n\n if (data?.PersonalizationError) {\n // launch personalization flow\n history.replace('/personalization');\n return null;\n }\n\n if (data?.Merchant) {\n return <>{props.children};\n }\n\n return null;\n};\n","import styled from 'styled-components';\n\nimport { Checkbox } from './checkbox';\nimport { Radio } from './radio';\n\nconst OptionContainer = styled.div<{ enabled: boolean; disabled?: boolean }>`\n transition: 0.15s all ease-in-out;\n box-sizing: border-box;\n cursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n\n display: flex;\n flex-direction: row;\n`;\n\nconst OptionCheckboxContainer = styled.div`\n width: 27px;\n padding-left: 3px;\n`;\n\nconst OptionImageContainer = styled.div`\n width: 60px;\n height: 60px;\n margin-right: 10px;\n border-radius: 10px;\n border: 1px solid #eeeeee;\n background: #eeeeee;\n\n img {\n width: 60px;\n object-fit: cover;\n border-radius: 10px;\n }\n`;\n\nconst OptionContentContainer = styled.div`\n flex: 1 1 0;\n`;\n\nconst OptionDescription = styled.div`\n color: #999999;\n font-size: 0.8em;\n margin-top: 5px;\n`;\n\nconst OptionContent = styled.div`\n color: #999999;\n font-size: 0.8em;\n margin-top: 5px;\n padding: 10px 0px 5px 0px;\n`;\n\nconst OptionHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 600;\n`;\n\nconst OptionHeader = ({\n title,\n description\n}: {\n title: string;\n description?: string | JSX.Element;\n}) => (\n \n {title}\n {description}\n \n);\n\ninterface OptionGroupProps {\n multi?: boolean;\n loading?: boolean;\n name: string;\n options: Array<{\n title: string;\n description: string | JSX.Element;\n imageUrl?: string;\n titleRight?: string | JSX.Element;\n enabled?: boolean;\n disabled?: boolean;\n children?: JSX.Element;\n onSelect?: () => void;\n }>;\n}\n\nexport const OptionGroup = (props: OptionGroupProps): JSX.Element => (\n
\n {props.options.map((option) => (\n option.onSelect && option.onSelect()}\n >\n \n {props.multi ? (\n option.onSelect && option.onSelect()}\n />\n ) : (\n option.onSelect && option.onSelect()}\n />\n )}\n \n {option.imageUrl && (\n \n \n \n )}\n \n \n {option.description}\n {option.enabled && option.children && {option.children}}\n \n \n ))}\n
\n);\n","import styled from 'styled-components';\nimport {\n InStoreSalesChannelType,\n Merchant,\n OnlineSalesChannelType,\n Personalization,\n RentalProductType,\n SalesChannelType,\n ValidationError\n} from '@oysterjs/types';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { Checkbox, CheckboxProps } from '@oysterjs/ui/Form/checkbox';\nimport { Radio, RadioProps } from '@oysterjs/ui/Form/radio';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { OptionGroup } from '@oysterjs/ui/Form/option';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nexport interface PageProps {\n merchant: Merchant;\n onNext: () => Promise;\n onBack: ((e) => unknown) | null;\n onUpdate: (merchant: Merchant) => void;\n validationError?: ValidationError;\n loading: boolean;\n}\n\nexport const NColumnListContainer = styled.div<{ columns: number }>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 8px;\n\n & > * {\n flex: 1 0\n calc(\n ${(props) => Math.floor(100 / props.columns)}% -\n ${(props) => Math.ceil(8 / props.columns)}px\n );\n }\n`;\n\nexport const LabeledCheckbox = (props: CheckboxProps) => (\n
\n \n
{props.label}
\n
\n);\n\nconst LabeledRadio = (props: RadioProps) => (\n
\n \n
{props.label}
\n
\n);\n\nexport const MerchantPersonalizationProductInsuranceForm = (props: PageProps) => {\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Online)\n ? [...(prev.SalesChannels || []), SalesChannelType.Online]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Online)\n }))\n },\n {\n title: 'Owned Retail',\n description:\n 'You accept orders in-store with a physical point-of-sale system, like Lightspeed.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.InStore)\n ? [...(prev.SalesChannels || []), SalesChannelType.InStore]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.InStore)\n }))\n },\n {\n title: 'Dealer',\n description: 'Your sales occur through authorized dealers or third-parties.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Dealer\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Dealer)\n ? [...(prev.SalesChannels || []), SalesChannelType.Dealer]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Dealer)\n }))\n },\n {\n title: 'Rental',\n description: 'Some of your products are available to rent or lease.',\n enabled: props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Rental\n ),\n onSelect: () =>\n updatePersonalization((prev) => ({\n ...prev,\n SalesChannels: !prev.SalesChannels?.includes(SalesChannelType.Rental)\n ? [...(prev.SalesChannels || []), SalesChannelType.Rental]\n : prev.SalesChannels.filter((v) => v !== SalesChannelType.Rental)\n }))\n }\n ]}\n />\n \n \n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) && (\n <>\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n OnlineSalesChannelType: v\n }))\n }\n error={\n props.validationError?.Field === 'OnlineSalesChannelType' &&\n props.validationError?.Message\n }\n style={{ maxWidth: '360px' }}\n />\n \n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) &&\n props.merchant.BusinessProfile.Personalization.OnlineSalesChannelType ===\n OnlineSalesChannelType.Other && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n OnlineSalesChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Online\n ) &&\n props.merchant.BusinessProfile.Personalization.OnlineSalesChannelType ===\n OnlineSalesChannelType.Shopify && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n ShopifyAdminURL: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ) && (\n <>\n \n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n InStoreSalesChannelType: v\n }))\n }\n error={\n props.validationError?.Field === 'InStoreSalesChannelType' &&\n props.validationError?.Message\n }\n style={{ maxWidth: '360px' }}\n />\n \n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.InStore\n ) &&\n props.merchant.BusinessProfile.Personalization.InStoreSalesChannelType ===\n InStoreSalesChannelType.Other && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n InStoreSalesChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.SalesChannels?.includes(\n SalesChannelType.Rental\n ) && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalChannelName: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n \n \n \n {\n updatePersonalization((personalization) => ({\n ...personalization,\n ProductAnnualRevenue: e.currentTarget.value\n }));\n }}\n />\n \n \n \n );\n};\n\nexport const MerchantPersonalizationRentalInsuranceForm = (props: PageProps) => {\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {[\n RentalProductType.BikesAndEbikes,\n RentalProductType.Kayaks,\n RentalProductType.Paddleboards,\n RentalProductType.Other\n ].map((operation) => (\n {\n const checked =\n props.merchant.BusinessProfile.Personalization.RentalProductTypes?.includes(\n operation\n );\n if (checked) {\n updatePersonalization((personalization) => ({\n ...personalization,\n RentalProductTypes: (personalization.RentalProductTypes || []).filter(\n (o) => o !== operation\n )\n }));\n } else {\n updatePersonalization((personalization) => ({\n ...personalization,\n RentalProductTypes: [...(personalization.RentalProductTypes || []), operation]\n }));\n }\n }}\n />\n ))}\n \n \n {props.merchant.BusinessProfile.Personalization.RentalProductTypes?.includes(\n RentalProductType.Other\n ) && (\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalProductTypeOtherDesc: value\n }));\n }}\n style={{ maxWidth: '360px' }}\n />\n \n \n )}\n {props.merchant.BusinessProfile.Personalization.RentalProductTypes?.some((productType) =>\n [RentalProductType.BikesAndEbikes, RentalProductType.Other].includes(productType)\n ) && (\n <>\n \n \n \n \n \n updatePersonalization((personalization) => ({\n ...personalization,\n RentalMotorizedAssetsExceedEBikeClassification: true\n }))\n }\n />\n \n updatePersonalization((personalization) => ({\n ...personalization,\n RentalMotorizedAssetsExceedEBikeClassification: false\n }))\n }\n />\n \n \n \n \n )}\n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalMaximumAssetValue: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAverageAssetValue: value\n }));\n }}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAnnualRevenue: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalAnnualVolume: value\n }));\n }}\n />\n \n \n\n \n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalPlatformName: value\n }));\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n updatePersonalization((prev) => ({\n ...prev,\n RentalPointOfSaleName: value\n }));\n }}\n />\n \n \n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { Button, ButtonContainer, ButtonLink, LinkComponent } from '../../components/Button';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '../../components/Page';\nimport {\n IoArrowForward,\n IoBagOutline,\n IoCheckmarkDone,\n IoCheckmarkSharp,\n IoFlag,\n IoTimerOutline\n} from 'react-icons/io5';\nimport {\n Merchant,\n MerchantIntegrationType,\n Personalization,\n ProductType,\n ValidationError\n} from '@oysterjs/types';\nimport { personalizeMerchant, getMerchantAccount } from '@oysterjs/core/api/merchant';\nimport { matchPath, Route as BrowserRoute, Switch, useHistory, useRouteMatch } from 'react-router';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { Progress } from '@oysterjs/ui/Form/progress';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { ThrowError } from '../../authenticated';\nimport {\n MerchantPersonalizationProductInsuranceForm,\n MerchantPersonalizationRentalInsuranceForm,\n PageProps\n} from './forms';\n\ninterface Page {\n path: string;\n component: (props: PageProps) => JSX.Element;\n hasError: (validationError: ValidationError) => boolean;\n icon: JSX.Element;\n}\n\nconst OptionContainer = styled.div<{ selected: boolean }>`\n transition: 0.15s all ease-in-out;\n box-sizing: border-box;\n cursor: pointer;\n\n display: flex;\n flex-direction: row;\n\n padding: 24px;\n\n box-shadow: ${(props) => (props.selected ? '0 0 0 2px #0ea5e9' : 'none')};\n border: ${(props) => (props.selected ? '1px solid transparent' : '1px dashed #e2e2e2')};\n border-radius: 12px;\n`;\n\nconst OptionCheckboxContainer = styled.div`\n width: 32px;\n padding-left: 2px;\n padding-top: 2px;\n`;\n\nconst OptionContentContainer = styled.div`\n flex: 1 1 0;\n`;\n\nconst OptionDescription = styled.div`\n color: #333333;\n font-size: 0.9em;\n margin-top: 4px;\n`;\n\nconst OptionHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 500;\n font-size: 1.2em;\n`;\n\nconst OptionContent = styled.ul`\n margin: 0px;\n padding: 16px 0px 5px 0px;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n`;\n\nconst InsuranceDetailItemContainer = styled.li`\n color: #666666;\n font-size: 0.9em;\n list-style: none;\n display: flex;\n flex: 1 0 30%;\n gap: 0px 8px;\n`;\n\nconst InsuranceDetailItem = (props: { item: string }) => (\n \n
\n \n
\n
{props.item}
\n
\n);\n\nconst InsuranceOptionCardContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nconst InsuranceOptionCard = (props: {\n title: string;\n description: string;\n displayItems: string[];\n selected: boolean;\n onSelect: () => void;\n}) => (\n props.onSelect()}>\n \n props.onSelect()}\n />\n \n \n {props.title}\n {props.description}\n \n {props.displayItems.map((item) => (\n \n ))}\n \n \n \n);\n\nconst MerchantPersonalizationIntro = (props: PageProps) => {\n const merchantEligibleForRentalInsurance =\n props.merchant.BusinessProfile.ProductVerticals?.includes(ProductType.bike);\n\n const updatePersonalization = (fn: (prev: Personalization) => Personalization) =>\n props.onUpdate({\n ...props.merchant,\n BusinessProfile: {\n ...props.merchant.BusinessProfile,\n Personalization: fn(props.merchant.BusinessProfile.Personalization)\n }\n });\n\n return (\n <>\n \n

What can we help you with?

\n

\n Oyster is a unified platform to serve all your insurance needs. Choose which products\n you're interested in so we can personalize your experience.\n

\n
\n \n \n \n updatePersonalization((prev) => ({\n ...prev,\n BusinessInsuranceEnabled: !prev.BusinessInsuranceEnabled\n }))\n }\n />\n \n updatePersonalization((prev) => ({\n ...prev,\n ProductInsuranceEnabled: !prev.ProductInsuranceEnabled\n }))\n }\n />\n {merchantEligibleForRentalInsurance && (\n \n updatePersonalization((prev) => ({\n ...prev,\n RentalInsuranceEnabled: !prev.RentalInsuranceEnabled\n }))\n }\n />\n )}\n \n \n \n \n \n I need help with something else\n \n \n \n {props.validationError && (\n \n {props.validationError.Message}\n \n )}\n \n \n );\n};\n\nconst MerchantPersonalizationProductInsurancePage = (props: PageProps) => {\n return (\n <>\n \n

Your Sales Channels

\n

Tell us a little bit about what and how you sell.

\n \n
\n \n \n \n \n \n \n \n );\n};\n\nconst MerchantPersonalizationRentalInsurancePage = (props: PageProps) => {\n return (\n <>\n \n

Your Rental Operations

\n

\n We'll use this information to get you set up with the right integrations and products.\n

\n \n
\n \n \n \n \n \n \n \n );\n};\n\nconst MerchantPersonalizationCompletePageContainer = styled.div`\n width: 100%;\n display: flex;\n margin: 30px 0px;\n gap: 20px;\n\n @media (max-width: 900px) {\n flex-direction: column;\n align-items: center;\n gap: 40px;\n }\n`;\n\nconst MerchantPersonalizationCompletePagePane = styled.div`\n max-width: 700px;\n flex: 1 0 1;\n\n a {\n font-weight: 500;\n }\n\n @media (max-width: 900px) {\n width: 80%;\n }\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nconst MerchantPersonalizationCompletePageImage = styled.img`\n display: block;\n margin: auto;\n width: 100%;\n max-width: 450px;\n`;\n\nconst getChannelUrl = (type: MerchantIntegrationType): string => {\n switch (type) {\n case MerchantIntegrationType.referral_link:\n return `/integrations/channels/referral`;\n case MerchantIntegrationType.qr_code:\n return `/integrations/channels/qrcode`;\n case MerchantIntegrationType.shopify:\n return `/integrations/channels/shopify`;\n default:\n return ``;\n }\n};\n\nexport const MerchantPersonalizationCompletePage = (props: PageProps) => {\n return (\n \n \n \n

Welcome to Oyster!

\n

\n Thank you for becoming an Oyster partner. There are a few steps remaining, which you can\n also find in the partners dashboard.\n

\n {props.merchant.BusinessProfile.Personalization.BusinessInsuranceEnabled && (\n <>\n

Business Insurance

\n

\n Continue to the dashboard and complete your{' '}\n \n business insurance application\n \n . Our team of insurance experts will reach out shortly to better understand your\n insurance needs.\n

\n \n )}\n {props.merchant.BusinessProfile.Personalization.ProductInsuranceEnabled && (\n <>\n

Product Insurance

\n

\n Access and share your{' '}\n \n custom referral link\n {' '}\n and{' '}\n \n marketing materials\n \n .\n

\n

\n Install and configure your{' '}\n \n Shopify integration\n \n .\n

\n

\n Set your{' '}\n \n payout method\n {' '}\n to receive revenue.\n

\n \n )}\n {props.merchant.BusinessProfile.Personalization.RentalInsuranceEnabled && (\n <>\n

Rental Insurance

\n

\n Continue to the dashboard and set up the{' '}\n \n rental insurance app\n \n . Our team will reach out to get you up and running.\n

\n \n )}\n \n } href=\"/\">\n Go to the dashboard\n \n \n
\n \n
\n
\n );\n};\n\nconst getPages = (merchant: Merchant): Page[] => {\n const pages: Page[] = [\n {\n path: '/personalization',\n hasError: (err: ValidationError) => err.Field === 'InsuranceEnabled',\n component: MerchantPersonalizationIntro,\n icon: \n }\n ];\n\n if (merchant.BusinessProfile.Personalization.ProductInsuranceEnabled) {\n pages.push({\n path: '/personalization/product',\n hasError: (err: ValidationError) =>\n [\n 'SalesChannels',\n 'OnlineSalesChannelType',\n 'OnlineSalesChannelName',\n 'ShopifyAdminURL',\n 'InStoreSalesChannelType',\n 'InStoreSalesChannelName',\n 'RentalChannelName',\n 'ProductAnnualRevenue'\n ].includes(err.Field),\n component: MerchantPersonalizationProductInsurancePage,\n icon: \n });\n }\n\n if (merchant.BusinessProfile.Personalization.RentalInsuranceEnabled) {\n pages.push({\n path: '/personalization/rental',\n hasError: (err: ValidationError) => err.Field.startsWith('Rental'),\n component: MerchantPersonalizationRentalInsurancePage,\n icon: \n });\n }\n\n // Add the final page\n pages.push({\n path: '/personalization/complete',\n hasError: () => false,\n component: MerchantPersonalizationCompletePage,\n icon: \n });\n\n return pages;\n};\n\nexport default () => {\n useRouteMatch();\n const history = useHistory();\n\n const [pages, setPages] = React.useState([]);\n const [error, setError] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [merchant, setMerchant] = React.useState();\n const [validationError, setValidationError] = React.useState();\n\n // Handle initial load - fetch the initial merchant\n // account and determine if the merchant still needs\n // to personalize. If not, put them on the completion\n // page. If they do, and they're on the complete page,\n // return them to the first page.\n React.useEffect(() => {\n setLoading(true);\n getMerchantAccount()\n .then((data) => {\n setMerchant(data.Merchant);\n setPages(getPages(data.Merchant));\n if (data.PersonalizationError && window.location.pathname === '/personalization/complete') {\n history.replace('/personalization');\n }\n if (\n !data.PersonalizationError &&\n window.location.pathname.startsWith('/personalization') &&\n window.location.pathname !== '/personalization/complete'\n ) {\n history.replace('/personalization/complete');\n return null;\n }\n })\n .catch((err) => setError(err))\n .finally(() => setLoading(false));\n }, []);\n\n React.useEffect(() => {\n if (merchant) {\n setPages(getPages(merchant));\n }\n }, [merchant, window.location.pathname]);\n\n if (error) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n }\n\n if (loading && !merchant) {\n return (\n \n \n \n \n \n \n \n \n );\n }\n\n // This case should never happen, it's purely here to help the\n // TypeScript compiler a little bit :)\n if (!merchant) {\n return null;\n }\n\n const currentPageIndex = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n const onUpdate = async (merchant: Merchant) => {\n setMerchant(merchant);\n setValidationError(undefined);\n };\n\n const onBack = (e) => {\n e.preventDefault();\n if (currentPageIndex > 0) {\n history.push(pages[currentPageIndex - 1].path);\n window.scrollTo({ top: 0 });\n }\n };\n\n const onNext = async () => {\n if (!merchant) {\n return;\n }\n\n setLoading(true);\n try {\n const { Merchant, NextValidationError } = await personalizeMerchant(merchant);\n\n let nextPageIndex;\n const nextPages = getPages(Merchant);\n\n if (NextValidationError) {\n nextPageIndex = nextPages.findIndex((page) => page.hasError(NextValidationError));\n if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n nextPageIndex = currentPageIndex + 1;\n }\n if (nextPageIndex <= currentPageIndex) {\n setValidationError(NextValidationError);\n }\n } else {\n setValidationError(undefined);\n nextPageIndex = currentPageIndex + 1;\n }\n\n if (Merchant) {\n setMerchant(Merchant);\n }\n\n setPages(() => {\n if (nextPageIndex !== currentPageIndex && nextPageIndex < nextPages.length) {\n history.push(nextPages[nextPageIndex].path);\n window.scrollTo({ top: 0 });\n }\n return nextPages;\n });\n } catch (e) {\n if (e instanceof Error) {\n setError(e);\n }\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n \n \n \n \n {currentPageIndex !== 0 && currentPageIndex !== pages.length - 1 && (\n \n \n i < currentPageIndex ? (\n {page.icon}\n ) : (\n page.icon\n )\n )}\n currentStep={currentPageIndex}\n />\n \n )}\n \n {pages.map((page) => (\n \n React.createElement(page.component, {\n loading,\n merchant,\n validationError:\n validationError && page.hasError(validationError) ? validationError : undefined,\n onNext,\n onBack,\n onUpdate\n })\n }\n />\n ))}\n \n \n \n );\n};\n","import * as React from 'react';\nimport { useLocation, useHistory } from 'react-router';\nimport {\n linkBIApplicationWithShopify,\n linkMerchantWithCheckfront,\n linkMerchantWithLightspeedRetailRSeries,\n linkMerchantWithShopify\n} from '@oysterjs/core/api/merchant';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { PageContainer, PageSection } from './components/Page';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { ButtonContainer, ButtonLink } from './components/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { Spinner } from '@oysterjs/ui/Spinner';\n\n/**\n * This component is the entrypoint to OAuth callback when\n * a user adds the Oyster app to their shopify store. The\n * proposed flow will be:\n *\n * 1. merchant is redirected to /link/shopify?data (this component)\n * 2. if merchant is not logged in:\n * 2a. if merchant has an account:\n * -> sign in flow with redirect to /link/shopify?data\n * 2b. if merchant does not have account:\n * -> sign up flow, then log in flow, and redirect to /link/shopify?data\n * 3. if merchant is logged in:\n * -> show special linking page/animation\n * -> send request to API endpoint /merchant/link\n * -> receive integration ID or error if could not link or already linked to another merchant\n * 4. if this integration was already linked to this merchant, this is just a reauthorization\n * -> redirect back to the embedded app\n * else:\n * -> redirect to dashboard page /channels/{ID} and show remaining integration\n * instructions with link to open app in merchant's shopify store\n */\nexport const OnboardShopify: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const shop = new URLSearchParams(location.search).get('shop');\n const redirection = `${location.pathname}${location.search}`;\n\n const biApplicationID = JSON.parse(\n window.localStorage.getItem('oyster-commercial-application-id') || '{}'\n )['BIApplicationID'];\n\n return (\n <>\n {!biApplicationID && (\n \n {() => {\n history.replace('/integrations/channels/shopify');\n return <>;\n }}\n \n )}\n {biApplicationID && (\n \n {() => {\n history.replace(`/app/commercial/${biApplicationID}/connect`);\n return <>;\n }}\n \n )}\n \n );\n};\n\nexport const OnboardLightspeedRetailRSeries: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const code = new URLSearchParams(location.search).get('code');\n const redirection = `${location.pathname}${location.search}`;\n\n return (\n \n {() => {\n history.replace('/integrations/channels/lsretail-rseries');\n return <>;\n }}\n \n );\n};\n\nexport const OnboardWooCommerce: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const params = new URLSearchParams(location.search);\n const success = params.get('success') === '1';\n\n React.useEffect(() => {\n let timeout;\n if (success) {\n timeout = setTimeout(() => history.replace('/integrations/channels/woocommerce'), 2000);\n }\n\n return () => clearTimeout(timeout);\n }, []);\n\n return (\n \n \n \n \n {success && (\n \n \n \n )}\n {!success && (\n \n

Something went wrong

\n

There was an error linking your store. Please try again.

\n \n } href=\"/integrations/channels/woocommerce\">\n Try Again\n \n \n
\n )}\n
\n );\n};\n\nexport const OnboardCheckfront: React.FunctionComponent = () => {\n const location = useLocation();\n const history = useHistory();\n\n const code = new URLSearchParams(location.search).get('code');\n const redirection = `${location.pathname}${location.search}`;\n\n return (\n \n {() => {\n history.replace('/integrations/channels/checkfront');\n return <>;\n }}\n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst DigitsInputContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst Digit = styled.input`\n border: 0;\n outline: none;\n box-shadow: none;\n appearance: none;\n\n border-radius: 15px;\n border: 2px solid #e8e8e8;\n box-sizing: border-box;\n font-size: 1.8em;\n font-weight: 500;\n\n width: 60px;\n height: 72px;\n text-align: center;\n\n transition: 0.15s border ease-in-out;\n\n &:not(:last-child) {\n margin-right: 10px;\n }\n\n &:focus {\n border: 2px solid #0ea5e9;\n }\n\n @media (max-width: 500px) {\n width: 48px;\n height: 58px;\n font-size: 1.4em;\n }\n\n @media (max-width: 400px) {\n width: 42px;\n height: 50px;\n font-size: 1.2em;\n }\n`;\n\nexport const DigitsInput = (props: {\n digits: number;\n initialDigits?: string;\n disabled?: boolean;\n onComplete: (value: string) => void;\n onInputChange: (value: string) => void;\n}): JSX.Element => {\n const refs = [...new Array(props.digits)].map(() => React.useRef(null));\n const [digits, setDigits] = React.useState(\n (() => {\n const digits = new Array(props.digits).fill('');\n (props.initialDigits || '').split('').forEach((v, i) => {\n if (i < digits.length) {\n digits[i] = v;\n }\n });\n return digits;\n })()\n );\n\n React.useEffect(() => {\n refs[0].current?.focus();\n }, []);\n\n return (\n \n {[...new Array(props.digits)].map((_, i) => (\n \n \n {\n if (e.key === 'Backspace') {\n refs[i - 1]?.current?.focus();\n }\n }}\n onFocus={(e) => {\n e.currentTarget.select();\n }}\n onChange={(e) => {\n const value = e.currentTarget.value;\n setDigits((prev) => {\n const next = [...prev];\n next[i] = '';\n value.split('').forEach((v, j) => {\n if (i + j < next.length) {\n next[i + j] = v;\n }\n });\n props.onInputChange(next.join(''));\n if (i + value.length >= next.length) {\n props.onComplete(next.join(''));\n }\n if (next[i]) {\n refs[i]?.current?.blur();\n refs[i + value.length]?.current?.focus();\n }\n return next;\n });\n }}\n >\n \n ))}\n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { IoArrowForward, IoLockClosed } from 'react-icons/io5';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { Button, ButtonContainer, LinkComponent } from '../../components/Button';\nimport { useAuth } from '@oysterjs/core/auth';\nimport { OysterLogoOld } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '../../components/Page';\nimport { DigitsInput } from '@oysterjs/ui/Form/digits';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { AdditionalMerchantProductType, ProductType, ValidationError } from '@oysterjs/types';\nimport { FormColumn, FormContainer, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { FormRow } from '@oysterjs/ui/Form/builder';\nimport {\n createMerchant,\n merchantUserSignInComplete,\n merchantUserSignInInit\n} from '@oysterjs/core/api/merchant';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nconst SignInContainer = styled.div`\n width: 100%;\n display: flex;\n margin: 30px 0px;\n gap: 20px;\n\n @media (max-width: 900px) {\n flex-direction: column;\n align-items: center;\n gap: 40px;\n }\n`;\n\nconst SignInPane = styled.div`\n width: 50%;\n max-width: 700px;\n\n @media (max-width: 700px) {\n width: 100%;\n }\n`;\n\nconst SignInImage = styled.img`\n display: block;\n margin: auto;\n width: 100%;\n max-width: 320px;\n max-height: 400px;\n\n @media (max-width: 550px) {\n width: 100%;\n }\n`;\n\nconst SignInPage = (props: { redirect?: string }) => {\n const history = useHistory();\n\n const [email, setEmail] = React.useState('');\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState('');\n\n const redirectUri = props.redirect ? `redirect=${encodeURIComponent(props.redirect)}` : '';\n const signupUri = `/signup?${redirectUri}`;\n\n const handleLogin = () => {\n setLoading(true);\n setTimeout(\n () =>\n merchantUserSignInInit(email)\n .then(() =>\n history.push(\n `/signin?email=${encodeURIComponent(email)}` +\n `${redirectUri ? `&${redirectUri}` : ''}`\n )\n )\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false)),\n 500\n );\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n handleLogin();\n };\n\n return (\n \n \n \n

Merchant Sign In

\n \n Don't have a merchant account yet?{' '}\n Create one.\n

\n \n \n \n setEmail(e.currentTarget.value)}\n />\n \n \n \n }\n icon={}\n loading={loading}\n onClick={() => handleLogin()}\n >\n Sign In\n \n \n \n
\n\n \n
\n
\n );\n};\n\nconst SignUpPage = (props: { code?: string; redirect?: string }) => {\n const history = useHistory();\n\n const [formData, setFormData] = React.useState({\n BusinessName: '',\n BusinessDBA: '',\n BusinessDomain: '',\n ProductVerticals: [],\n FirstName: '',\n LastName: '',\n Email: '',\n Phone: '',\n AccessCode: props.code || ''\n });\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState('');\n\n const [validationError, setValidationError] = React.useState();\n\n const redirectUri = props.redirect ? `redirect=${encodeURIComponent(props.redirect)}` : '';\n const signinUri = `/signin?${redirectUri}`;\n\n const setData = (field: string, value: string | ProductType[]) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n setFormData((prev) => ({\n ...prev,\n [field]: value\n }));\n };\n\n const handleSignUp = () => {\n setLoading(true);\n createMerchant({\n Merchant: {\n BusinessProfile: {\n Name: formData.BusinessName,\n DBA: formData.BusinessDBA,\n Email: formData.Email,\n Phone: formData.Phone,\n Domain: formData.BusinessDomain,\n ProductVerticals: formData.ProductVerticals\n }\n },\n MerchantUser: {\n FirstName: formData.FirstName,\n LastName: formData.LastName,\n Email: formData.Email,\n Phone: formData.Phone\n },\n AccessCode: formData.AccessCode\n })\n .then(() =>\n history.push(\n `/signin?email=${encodeURIComponent(formData.Email)}` +\n `${redirectUri ? `&${redirectUri}` : ''}`\n )\n )\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setError('');\n setValidationError(err.getValidationError());\n } else {\n setValidationError(undefined);\n setError(err.message);\n }\n })\n .finally(() => setLoading(false));\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n handleSignUp();\n };\n\n return (\n \n

Get started

\n \n Tell us some basic information about your business and yourself. Already have a merchant\n account? Sign in.\n

\n \n \n \n \n setData('BusinessName', e.currentTarget.value)}\n autoComplete=\"business-name\"\n />\n \n \n setData('BusinessDBA', e.currentTarget.value)}\n autoComplete=\"business-name\"\n />\n \n \n \n \n setData('BusinessDomain', e.currentTarget.value)}\n autoComplete=\"website\"\n />\n \n \n {\n setData('ProductVerticals', value ? [value] : []);\n }}\n error={validationError?.SubField === 'ProductVerticals' && validationError?.Message}\n />\n \n \n \n \n \n setData('FirstName', e.currentTarget.value)}\n autoComplete=\"first-name\"\n />\n \n \n setData('LastName', e.currentTarget.value)}\n autoComplete=\"last-name\"\n />\n \n \n \n \n setData('Email', e.currentTarget.value)}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n setData('Phone', e.currentTarget.value)}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n }\n icon={}\n loading={loading}\n onClick={() => handleSignUp()}\n >\n Sign Up\n \n \n {error && {error}}\n

\n By signing up, you agree to Oyster's{' '}\n \n Terms of Service\n \n {', '}\n \n Privacy Policy\n {' '}\n and{' '}\n \n Merchant Partner Agreement\n \n .\n

\n
\n
\n );\n};\n\nconst SignInCompletePage = (props: { email: string; redirect?: string; code?: string }) => {\n const history = useHistory();\n\n const [code, setCode] = React.useState(props.code);\n const [loading, setLoading] = React.useState(false);\n const [resending, setResending] = React.useState(false);\n const [error, setError] = React.useState('');\n const [, setAuth] = useAuth();\n\n const resendCode = () => {\n setResending(true);\n setTimeout(\n () =>\n merchantUserSignInInit(props.email, props.redirect)\n .catch((err) => setError(err.message))\n .finally(() => setResending(false)),\n 500\n );\n };\n\n const handleLogin = (code?: string) => {\n if (code === undefined || code.length !== 6) {\n return;\n }\n\n setLoading(true);\n setTimeout(\n () =>\n merchantUserSignInComplete(props.email, code)\n .then((res) => {\n setLoading(false);\n setAuth(res);\n props.redirect ? history.replace(props.redirect) : history.push('/');\n })\n .catch((err) => {\n setLoading(false);\n setError(err.message);\n }),\n 500\n );\n };\n\n React.useEffect(() => {\n handleLogin(props.code);\n }, [props.code]);\n\n return (\n <>\n
\n \n

Check your email

\n

\n We've sent a magic link to {props.email}. Click the link in the email to finish\n signing in, or enter the 6-digit code from the email here. The code is valid for 15\n minutes.\n

\n
\n \n \n \n \n \n \n }\n icon={}\n onClick={(e) => {\n e.preventDefault();\n handleLogin(code);\n }}\n loading={loading}\n >\n Continue\n \n \n \n {error && {error}}\n
\n \n \n \n );\n};\n\nconst SignInCompleteWrapper: React.FunctionComponent<{\n width?: number;\n children: (data: { code?: string; email?: string; redirect?: string }) => JSX.Element | null;\n}> = (props) => {\n // Triggers a re-render when the URL changes, but does not contain the query string\n useRouteMatch();\n\n const params = new URLSearchParams(window.location.search);\n const email = params.get('email') || undefined;\n const redirect = params.get('redirect') || undefined;\n const code = params.get('code') || undefined;\n\n return (\n \n \n \n \n {props.children({ code, email, redirect })}\n \n );\n};\n\nexport const SignIn = (): JSX.Element => (\n \n {({ code, email, redirect }) => {\n if (email) {\n return ;\n }\n\n return ;\n }}\n \n);\n\nexport const SignUp = (): JSX.Element => (\n \n {({ code, email, redirect }) => {\n if (email) {\n return ;\n }\n\n return ;\n }}\n \n);\n","import {\n AccountSummary,\n AttachmentFile,\n Policy,\n Product,\n Statement,\n UserReferral,\n UserVerification\n} from '@oysterjs/types';\nimport { Delete, Get, getEncodedQueryString, Post } from './base';\nimport { CreatePolicyOptions } from './sdk';\nimport config from '@oysterjs/core/config';\n\nexport const getPolicies = () => Get<{ Policies: Policy[] }>('/user/policies');\n\nexport const getPolicy = (policyId: string) =>\n Get<{ Policy: Policy }>(`/user/policies/${policyId}`);\n\nexport const userCreatePolicy = (products: Product[], opts?: CreatePolicyOptions) =>\n Post<{ Policy: Policy }>(\n `/user/policy?${getEncodedQueryString({\n AllowValidationErrors: opts?.allowValidationErrors\n })}`,\n {\n Products: products,\n Insured: opts?.insured,\n ReferralChannelInfo: opts?.referralChannel\n },\n {\n headers: {\n 'X-Merchant-API-Key': opts?.merchantApiKey || config().merchant?.apiKey || '',\n 'X-Merchant-Integration-ID': opts?.integrationID || ''\n }\n }\n );\n\nexport const getAccountSummary = (redirectUrl?: string) =>\n Get('/user/account', { redirectUrl });\n\nexport const confirmAccount = (redirectUrl?: string) =>\n Post('/user/account/confirm', undefined, { redirectUrl });\n\nexport const getAccountStatement = (statementId: string) =>\n Get<{ Statement: Statement }>(`/user/account/statements/${statementId}`);\n\nexport const retrieveVerificationSession = () =>\n Post<{ VerificationSession: UserVerification }>('/user/account/verifications');\n\nexport const deletePaymentMethod = (id: string) => Delete(`/user/account/payment_methods/${id}`);\n\nexport const makePaymentMethodDefault = (id: string) =>\n Post(`/user/account/payment_methods/${id}/default`);\n\nexport const createPaymentMethod = () =>\n Post<{ StripeClientSecret: string }>('/user/account/payment_methods').then(\n (d) => d.StripeClientSecret\n );\n\nexport const getReferralList = () =>\n Get<{ Referrals: UserReferral[] }>('/user/referrals').then((d) => d.Referrals || []);\n\nexport const expressInterest = (product: string) => Post('/user/interest', { Product: product });\n\nexport const userCreatePolicyAttachments = (policyId: string, fileRole: string, files: File[]) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n form.append('FileRole', fileRole);\n return Post<{ Metadata: AttachmentFile[] }>(`/user/policy/${policyId}/attach`, undefined, {\n body: form\n }).then((d) => d.Metadata || []);\n};\n\nexport const userGetPaymentSession = (policyId: string): Promise =>\n Post<{ StripeClientSecret: string }>(`/user/policies/${policyId}/payment`).then((d) => {\n return d.StripeClientSecret;\n });\n\nexport const userCompletePolicy = (policyId: string) =>\n Post<{ Policy: Policy; Redirect?: string }>(`/user/policies/${policyId}/complete`, undefined, {\n headers: {\n 'X-Merchant-API-Key': config().merchant?.apiKey || ''\n }\n });\n\nexport const userIdentify = (email?: string, firstName?: string, lastName?: string) =>\n Post<{ Token: string; Email: string }>(`/user/identify`, {\n Email: email,\n FirstName: firstName,\n LastName: lastName\n });\n","/**\n * Debounces a function\n */\nexport default ) => ReturnType>(func: F, waitFor: number) => {\n let timeout: NodeJS.Timeout;\n\n const debounced = (...args: Parameters) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), waitFor);\n };\n\n return debounced;\n};\n","import React from 'react';\nimport { Cookies } from 'react-cookie';\nimport { userIdentify } from './api/user';\nimport debounce from './debounce';\n\n/**\n * The tracking script ID used to connect this instance to our account.\n */\nconst PORTAL_ID = '22383747';\n\n/**\n * Hubspot chat properties that can be accessed through the context.\n */\ninterface HubspotChatContextProps {\n /**\n * Manually identify the current user based on the provided information.\n */\n identify: (email: string, firstName?: string, lastName?: string) => void;\n}\n\n/**\n * Hubspot chat context which gives access to HubspotChatContextProps.\n */\nexport const HubspotChatContext = React.createContext(null);\n\n/**\n * Provider that allows child elements to access HubspotChatContext. Also\n * initializes and renders the chat widget.\n */\nexport const HubspotChatContextProvider = (props: React.PropsWithChildren) => {\n const chat = useHubspotChat(PORTAL_ID);\n return {props.children};\n};\n\n/**\n * Implements the interface to the Hubspot chat widget and manages its lifecycle.\n *\n * @param portalId the script ID to use to initialize Hubspot\n */\nexport const useHubspotChat = (portalId): HubspotChatContextProps => {\n // Indicates that the Hubspot script has loaded (not necessarily the widget)\n const [scriptLoaded, setScriptLoaded] = React.useState(false);\n // Indicates that we are manually identifying the user based on information\n // they have entered, and that this should take precedence over the absense\n // of any automatic user identification.\n const [manualIdentification, setManualIdentification] = React.useState(false);\n\n /**\n * Updates the Hubspot identification of the user based on a response\n * from the API server. It returns true if the identification changed\n * and false otherwise.\n */\n const updateIdentification = (email: string, token: string): boolean => {\n if (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationEmail !== email ||\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationToken !== token\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (email && email !== window.hsConversationsSettings.identificationEmail) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq = window._hsq || [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['identify', { email }]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } else if (!email && email !== window.hsConversationsSettings.identificationEmail) {\n new Cookies().remove('hubspotutk');\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationEmail = email;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings.identificationToken = token;\n\n return true;\n }\n\n return false;\n };\n\n const trackPageView = () => {\n const path = location.pathname + location.search;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq = window._hsq || [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['setPath', path]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window._hsq.push(['trackPageView']);\n };\n\n /**\n * Performs identification with the API server, using either the provided\n * credentials or falling back to the session cookie which authenticates\n * the current user. It returns true if the identification changed and false\n * otherwise.\n */\n const identify = async (\n email?: string,\n firstName?: string,\n lastName?: string,\n manual?: boolean\n ): Promise => {\n if (!scriptLoaded) {\n return false;\n }\n\n try {\n // get token\n const res = await userIdentify(email, firstName, lastName);\n setManualIdentification((prev) => prev || !!manual);\n return updateIdentification(res.Email, res.Token);\n } catch (e) {\n // Only reset the identification if the user was not identified manually\n if (manualIdentification || manual) {\n return false;\n }\n\n return updateIdentification('', '');\n }\n };\n\n /**\n * Resets the widget state and reloads it. Call this when the identification\n * changes in order to reflect the latest state. This function is debounced\n * so that the latest state is always available and to respect the 1-second\n * throttle that the Hubspot SDK applies.\n */\n const refreshWidget = debounce(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.clear({ resetWidget: true });\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.widget.load();\n }, 500);\n\n /**\n * Effect that controls the initial load of the hook. It adds the\n * Hubspot script tag and sets `scriptLoaded` to `true` when the\n * script finishes loading and is ready.\n */\n React.useEffect(() => {\n // Set HubSpot chat settings\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsSettings = {\n loadImmediately: false,\n identificationEmail: '',\n identificationToken: ''\n };\n\n // Add event listener.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsOnReady = [() => setScriptLoaded(true)];\n\n // Create script component.\n const script = document.createElement('script');\n script.src = `//js.hs-scripts.com/${portalId}.js`;\n script.defer = true;\n\n // Add the script to the DOM\n document.head.appendChild(script);\n\n // Cleanup when the component is component is unmounted\n return () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.hsConversationsOnReady = [];\n document.head.removeChild(script);\n };\n }, []);\n\n /**\n * Effect controls the initial load of the widget by identifying\n * the current user (using the automatic, cookie-based method) and\n * then loads the widget.\n */\n React.useEffect(() => {\n if (scriptLoaded) {\n identify().then(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.HubSpotConversations.widget.load();\n });\n }\n }, [scriptLoaded]);\n\n /**\n * Effect controls subsequent page route changes by re-performing\n * identification and refreshing the widget if identification changes.\n */\n React.useEffect(() => {\n if (scriptLoaded) {\n identify()\n .then((updatedIdentification) => {\n if (updatedIdentification) {\n refreshWidget();\n }\n })\n .finally(trackPageView);\n }\n\n // This effect intentionally omits `loaded` from the array\n // so that identification and refresh only runs on subsequent\n // page changes. The effect above should take care of the\n // initial render and loading of the chat widget.\n }, [location.pathname, location.search]);\n\n return {\n identify: async (email, firstName, lastName) => {\n const updatedIdentification = await identify(email, firstName, lastName, true);\n if (updatedIdentification) {\n refreshWidget();\n }\n }\n };\n};\n","import * as React from 'react';\nimport clsx from 'clsx';\nimport styled from 'styled-components';\nimport { CertificateCoverage, CertificateDetails, InsuranceType } from '../../types/graphql';\nimport { IoCheckmarkOutline, IoCopyOutline, IoOpenOutline } from 'react-icons/io5';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { CheckIcon } from '@heroicons/react/24/outline';\nimport { Button } from '@oysterjs/partners/uiv2/button';\n\nexport const CertificateSectionContainer = styled.div`\n display: flex;\n gap: 30px;\n flex-direction: row;\n\n @media (max-width: 650px) {\n flex-direction: column;\n }\n`;\n\nexport const CertificateRightSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 30px;\n padding: 0px 0px 0px 30px;\n flex: 1 0 224px;\n\n @media (max-width: 650px) {\n border-top: 1px solid #cccccc;\n padding: 30px 0px 0px 0px;\n }\n`;\n\nexport const CertificateLeftSection = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 16px;\n`;\n\nexport const CertificateRightSectionTitle = styled.div`\n text-transform: uppercase;\n color: #999999;\n font-weight: 600;\n font-size: 0.8em;\n`;\n\nconst unescapeSafe = (input: string) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n return doc.documentElement.textContent;\n};\n\nconst CertificateEntity = (props: { entity: string; name: string; address: string }) => (\n
\n
{props.entity}
\n {props.name &&

{unescapeSafe(props.name)}

}\n

\n {props.address\n .trim()\n .split('\\n')\n .map((l) => (\n \n {unescapeSafe(l)}\n
\n
\n ))}\n

\n
\n);\n\nconst CertificatePolicy = (props: { coverage: CertificateCoverage }) => (\n
\n

{getDisplayInsuranceType(props.coverage.type)}

\n

\n {unescapeSafe(props.coverage.insurer.name)}\n

\n

\n {props.coverage.policyNumber}\n

\n
    \n
  • \n \n
    \n Policy is effective from{' '}\n {new Date(props.coverage.effectiveDate?.toString().replace('Z', '')).toLocaleDateString()}{' '}\n to{' '}\n {new Date(\n props.coverage.expirationDate?.toString().replace('Z', '')\n ).toLocaleDateString()}\n
    \n
  • \n {props.coverage.hasWaiverOfSubrogation && (\n
  • \n \n
    Policy has waiver of subrogation
    \n
  • \n )}\n {props.coverage.holderIsAdditionalInsured && (\n
  • \n \n
    \n Policy lists certificate holder as an additional insured\n
    \n
  • \n )}\n {props.coverage.type !== InsuranceType.WorkersCompensation &&\n props.coverage.limits.map((limit) => (\n
  • \n \n
    \n {limit.name} Limit:{' '}\n {new Intl.NumberFormat(undefined, {\n currency: 'USD',\n style: 'currency',\n maximumFractionDigits: 0\n }).format(limit.limit)}\n
    \n
  • \n ))}\n
\n
\n);\n\nconst CertificateSection = (props: { certificate: CertificateDetails }) => (\n \n \n {props.certificate.coverages.map((coverage) => (\n \n ))}\n \n \n \n \n {props.certificate.descriptionOfOperations && (\n \n )}\n \n \n);\n\nconst ActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 12px;\n`;\n\nexport const Action = styled.button`\n border: 0;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n\n padding: 8px 16px;\n border-radius: 30px;\n user-select: none;\n\n font-size: 0.7em;\n font-weight: 500;\n\n justify-content: center;\n\n color: #333333;\n background: #eaeaea;\n font-family: 'Rubik', 'Helvetica Neue', 'Helvetica', Arial, sans-serif;\n cursor: pointer;\n\n transition: all 0.15s ease-in-out;\n\n svg {\n font-size: 1.2em;\n }\n\n &:hover {\n background: #e6e6e6;\n }\n\n &:active {\n background: #cccccc;\n }\n`;\n\nconst MarketingBanner = () => (\n
\n

Get a competitive quote for your business insurance.

\n

\n Oyster is the only all-in-one platform for all your insurance needs, from insurance for your\n business to insurance for your customers. Our team of experts can help you save up to 30% on\n insurance costs.\n

\n \n Get a Quote\n \n
\n);\n\nexport const Certificate = (props: { url: string; details: CertificateDetails }) => {\n const [copyClicked, setCopyClicked] = React.useState(false);\n\n React.useEffect(() => {\n if (!copyClicked) {\n return;\n }\n\n if (navigator && navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(window.location.href).catch(() => 0);\n }\n\n const timeout = setTimeout(() => {\n setCopyClicked(false);\n }, 2000);\n\n return () => clearTimeout(timeout);\n }, [copyClicked]);\n\n return (\n
\n

\n This document was produced by {props.details.producer.name} to certify that the insured has\n been issued the listed policies, each with its respective limits and conditions.\n

\n \n setCopyClicked(true)}>\n {!copyClicked && (\n <>\n Copy Link \n \n )}\n {copyClicked && (\n <>\n Link Copied! \n \n )}\n \n \n \n View Certificate \n \n \n \n \n \n
\n );\n};\n","import {\n CertificateLeftSection,\n CertificateRightSection,\n CertificateSectionContainer\n} from './certificate';\n\nconst CertificatePolicySkeleton = () => (\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n);\n\nconst CertificateSectionSkeleton = () => (\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n);\n\nexport const CertificateSkeleton = () => (\n <>\n
\n
\n\n
\n
\n
\n
\n\n
\n \n
\n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { useGetCertificateLazyQuery } from '../../types/graphql';\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Certificate } from './certificate';\nimport { CertificateSkeleton } from './skeleton';\nimport { CSSTransition, SwitchTransition } from 'react-transition-group';\nimport { Heading } from '@oysterjs/partners/uiv2/heading';\nimport { ErrorComponentV2 } from '@oysterjs/ui/ErrorBoundary';\n\nconst TransitionContainer = styled.div`\n &.fade-enter {\n opacity: 0;\n }\n &.fade-enter-active {\n opacity: 1;\n transition: 0.15s opacity ease;\n }\n &.fade-exit {\n opacity: 1;\n }\n &.fade-exit-active {\n opacity: 0;\n transition: 0.15s opacity ease;\n }\n`;\n\nexport const CertificateApp = (props: { certificateNumber: string }) => {\n const [getCertificate, { data, error }] = useGetCertificateLazyQuery({\n variables: { certificateNumber: props.certificateNumber }\n });\n\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n // For visual purposes load longer\n setTimeout(() => getCertificate().finally(() => setLoading(false)), 1500);\n }, []);\n\n return (\n
\n
\n
\n
\n \n
\n\n \n \n \n {!error && (\n <>\n {data?.certificate?.details?.insured?.name && (\n \n {data.certificate.details.insured.name}\n \n )}\n {!data?.certificate?.details?.insured?.name && (\n
\n )}\n \n Certificate of Insurance\n \n \n )}\n {error && }\n \n \n \n\n \n \n \n {loading && !error && }\n {!loading && !error && data?.certificate?.details && data?.certificate?.url && (\n \n )}\n \n \n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useHistory } from 'react-router';\nimport { useMutation } from '@apollo/client';\nimport { Button as HeadlessButton } from '@headlessui/react';\n\nimport { ShieldCheckIcon, LockClosedIcon, ComputerDesktopIcon } from '@heroicons/react/20/solid';\nimport { OysterWordMark } from '@oysterjs/ui/Logo';\nimport { Field, FieldGroup, Fieldset, Label } from '@oysterjs/partners/uiv2/fieldset';\nimport {\n CreateBusinessApplicationDocument,\n CreateBusinessApplicationMutation\n} from '../../types/graphql';\nimport { Input } from '@oysterjs/partners/uiv2/input';\nimport { Select } from '@oysterjs/partners/uiv2/select';\nimport { ProductType } from '../../types/graphql';\n\nconst features = [\n {\n name: 'Comprehensive coverage.',\n description:\n 'Oyster works with 30+ carriers to ensure you get tailored coverage for your business.',\n icon: ShieldCheckIcon\n },\n {\n name: 'Digital experience.',\n description: 'Experience a seamless digital experience from quote to policy management.',\n icon: ComputerDesktopIcon\n },\n {\n name: 'Risk management.',\n description:\n 'Generate, share, and manage COIs on your own. Get access to a dedicated risk expert.',\n icon: LockClosedIcon\n }\n];\n\nconst getMerchantInfo = (merchantHandle?: string) => {\n const merchants = {\n '1800d2c': {\n name: '1-800-D2C',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f55ce0fe8f522bbf8a_1800d2c-p-500.png',\n size: 'h-8'\n },\n aircfo: {\n name: 'AirCFO',\n logo: '/images/logos/aircfo.png',\n size: 'h-8'\n },\n bbg: {\n name: 'Balanced Business Group',\n logo: '/images/logos/bbg.png',\n size: 'h-10'\n },\n beyondsku: {\n name: 'BeyondSKU',\n logo: '/images/logos/beyondsku.png',\n size: 'h-10'\n },\n bookkeeper360: {\n name: 'Bookkeeper360',\n logo: '/images/logos/bookkeeper360.svg',\n size: 'h-10'\n },\n cfoplans: {\n name: 'CFO Plans',\n logo: '/images/logos/cfoplans.png',\n size: 'h-10'\n },\n decimal: {\n name: 'Decimal',\n logo: '/images/logos/decimal.png',\n size: 'h-10'\n },\n ecombalance: {\n name: 'EcomBalance',\n logo: '/images/logos/ecombalance.png',\n size: 'h-10'\n },\n finta: {\n name: 'Finta',\n logo: '/images/logos/finta.png',\n size: 'h-10'\n },\n fulfil: {\n name: 'Fulfil',\n logo: '/images/logos/fulfil.png',\n size: 'h-10'\n },\n guidance: {\n name: 'Guidance',\n logo: '/images/logos/guidance.png',\n size: 'h-10'\n },\n hawkemedia: {\n name: 'Hawke Media',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f67cb2a4a80735ff4c_hawkemedia.png',\n size: 'h-8'\n },\n keptpro: {\n name: 'KeptPro',\n logo: '/images/logos/keptpro.png',\n size: 'h-10'\n },\n pacificcrestgroup: {\n name: 'Pacific Crest Group',\n logo: '/images/logos/pacificcrestgroup.jpg',\n size: 'h-10'\n },\n paperchase: {\n name: 'Paperchase',\n logo: '/images/logos/paperchase.png',\n size: 'h-10'\n },\n scharfconsulting: {\n name: 'Scharf Consulting',\n logo: '/images/logos/scharfconsulting.png',\n size: 'h-10'\n },\n pilot: {\n name: 'Pilot',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f500e083184307f7cb_pilot.png',\n size: 'h-10'\n },\n rho: {\n name: 'Rho',\n logo: 'https://cdn.prod.website-files.com/612afc0875843d237ddf95fc/66a279f59a6e8aa01ecb6ad9_rho.png',\n size: 'h-8'\n },\n smartrr: {\n name: 'SmartRR',\n logo: '/images/logos/smartrr.png',\n size: 'h-9'\n },\n steptwo: {\n name: 'StepTwo',\n logo: '/images/logos/steptwo.png',\n size: 'h-10'\n }\n };\n\n return merchantHandle ? merchants[merchantHandle] : null;\n};\n\nexport const Landing = (props: { merchantHandle?: string }) => {\n const history = useHistory();\n\n const [isSubmitting, setIsSubmitting] = React.useState(false);\n const [createApplication, { data, error }] = useMutation(\n CreateBusinessApplicationDocument\n );\n\n React.useEffect(() => {\n if (data?.createBusinessApplication?.id) {\n history.push(`/commercial/app/${data.createBusinessApplication.id}`);\n }\n }, [data?.createBusinessApplication?.id]);\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n\n const formData = new FormData(e.currentTarget);\n const form = Object.fromEntries(formData.entries());\n\n if (form.businessVertical === ProductType.Bike) {\n // Go to fillout\n const filloutParams = new URLSearchParams({\n first_name: form.fullName?.toString().split(' ')[0] || '',\n last_name: form.fullName?.toString().split(' ')[1] || '',\n email: form.email?.toString() || '',\n phone: form.phone?.toString() || '',\n business_type: 'BIKES'\n });\n window.location.href = `https://www.withoyster.com/business-insurance-app?${filloutParams.toString()}`;\n return;\n }\n\n setIsSubmitting(true);\n setTimeout(() => {\n createApplication({\n variables: {\n application: {\n businessName: form.businessName?.toString(),\n fullName: form.fullName?.toString(),\n email: form.email?.toString(),\n phone: form.phone?.toString()\n }\n }\n }).finally(() => {\n setIsSubmitting(false);\n });\n }, 1000);\n };\n\n const merchantInfo = getMerchantInfo(props.merchantHandle);\n\n return (\n
\n
\n
\n
\n
\n
\n \n {merchantInfo?.logo && (\n \n \n \n )}\n {merchantInfo?.logo && (\n \n )}\n
\n

\n Reduce risk and grow confidently\n

\n

\n Find the right insurance for your business\n

\n {!merchantInfo?.name && (\n

\n Oyster works with top-rated insurance carriers to provide you with the best\n coverage for your business. Plus, leverage Oyster's risk management platform and\n experts to better protect your business.\n

\n )}\n {!!merchantInfo?.name && (\n

\n {merchantInfo.name} works with Oyster to offer insurance from top-rated carriers\n so that you get the best coverage for your business. Plus, leverage Oyster's risk\n management platform and experts to better protect your business.\n

\n )}\n
\n {features.map((feature) => (\n
\n
\n \n {feature.name}{' '}\n
\n
{feature.description}
\n
\n ))}\n
\n
\n
\n
\n
\n

Start your quote

\n
\n
\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n
\n\n \n Continue\n \n {!!error?.message && (\n
{error.message}
\n )}\n \n\n \n \n
\n
\n
\n
\n
\n
\n );\n};\n","import clsx from 'clsx';\nimport React from 'react';\nimport { Link } from './link';\n\nexport function Text({ className, ...props }: React.ComponentPropsWithoutRef<'p'>) {\n return (\n \n );\n}\n\nexport function TextLink({ className, ...props }: React.ComponentPropsWithoutRef) {\n return (\n \n );\n}\n\nexport function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>) {\n return ;\n}\n\nexport function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>) {\n return (\n \n );\n}\n","import clsx from 'clsx';\nimport React from 'react';\n\nexport function Divider({\n soft = false,\n className,\n ...props\n}: { soft?: boolean } & React.ComponentPropsWithoutRef<'hr'>) {\n return (\n \n );\n}\n","import * as Headless from '@headlessui/react';\nimport clsx from 'clsx';\nimport React, { forwardRef } from 'react';\nimport { TouchTarget } from './button';\nimport { Link } from './link';\n\nconst colors = {\n red: 'bg-red-500/15 text-red-700 group-data-[hover]:bg-red-500/25 dark:bg-red-500/10 dark:text-red-400 dark:group-data-[hover]:bg-red-500/20',\n orange:\n 'bg-orange-500/15 text-orange-700 group-data-[hover]:bg-orange-500/25 dark:bg-orange-500/10 dark:text-orange-400 dark:group-data-[hover]:bg-orange-500/20',\n amber:\n 'bg-amber-400/20 text-amber-700 group-data-[hover]:bg-amber-400/30 dark:bg-amber-400/10 dark:text-amber-400 dark:group-data-[hover]:bg-amber-400/15',\n yellow:\n 'bg-yellow-400/20 text-yellow-700 group-data-[hover]:bg-yellow-400/30 dark:bg-yellow-400/10 dark:text-yellow-300 dark:group-data-[hover]:bg-yellow-400/15',\n lime: 'bg-lime-400/20 text-lime-700 group-data-[hover]:bg-lime-400/30 dark:bg-lime-400/10 dark:text-lime-300 dark:group-data-[hover]:bg-lime-400/15',\n green:\n 'bg-green-500/15 text-green-700 group-data-[hover]:bg-green-500/25 dark:bg-green-500/10 dark:text-green-400 dark:group-data-[hover]:bg-green-500/20',\n emerald:\n 'bg-emerald-500/15 text-emerald-700 group-data-[hover]:bg-emerald-500/25 dark:bg-emerald-500/10 dark:text-emerald-400 dark:group-data-[hover]:bg-emerald-500/20',\n teal: 'bg-teal-500/15 text-teal-700 group-data-[hover]:bg-teal-500/25 dark:bg-teal-500/10 dark:text-teal-300 dark:group-data-[hover]:bg-teal-500/20',\n cyan: 'bg-cyan-400/20 text-cyan-700 group-data-[hover]:bg-cyan-400/30 dark:bg-cyan-400/10 dark:text-cyan-300 dark:group-data-[hover]:bg-cyan-400/15',\n sky: 'bg-sky-500/15 text-sky-700 group-data-[hover]:bg-sky-500/25 dark:bg-sky-500/10 dark:text-sky-300 dark:group-data-[hover]:bg-sky-500/20',\n blue: 'bg-blue-500/15 text-blue-700 group-data-[hover]:bg-blue-500/25 dark:text-blue-400 dark:group-data-[hover]:bg-blue-500/25',\n indigo:\n 'bg-indigo-500/15 text-indigo-700 group-data-[hover]:bg-indigo-500/25 dark:text-indigo-400 dark:group-data-[hover]:bg-indigo-500/20',\n violet:\n 'bg-violet-500/15 text-violet-700 group-data-[hover]:bg-violet-500/25 dark:text-violet-400 dark:group-data-[hover]:bg-violet-500/20',\n purple:\n 'bg-purple-500/15 text-purple-700 group-data-[hover]:bg-purple-500/25 dark:text-purple-400 dark:group-data-[hover]:bg-purple-500/20',\n fuchsia:\n 'bg-fuchsia-400/15 text-fuchsia-700 group-data-[hover]:bg-fuchsia-400/25 dark:bg-fuchsia-400/10 dark:text-fuchsia-400 dark:group-data-[hover]:bg-fuchsia-400/20',\n pink: 'bg-pink-400/15 text-pink-700 group-data-[hover]:bg-pink-400/25 dark:bg-pink-400/10 dark:text-pink-400 dark:group-data-[hover]:bg-pink-400/20',\n rose: 'bg-rose-400/15 text-rose-700 group-data-[hover]:bg-rose-400/25 dark:bg-rose-400/10 dark:text-rose-400 dark:group-data-[hover]:bg-rose-400/20',\n zinc: 'bg-zinc-600/10 text-zinc-700 group-data-[hover]:bg-zinc-600/20 dark:bg-white/5 dark:text-zinc-400 dark:group-data-[hover]:bg-white/10',\n neutral:\n 'bg-neutral-100 text-neutral-700 group-data-[hover]:bg-neutral-200 dark:bg-neutral-900 dark:text-neutral-400 dark:group-data-[hover]:bg-neutral-800'\n};\n\ntype BadgeProps = { color?: keyof typeof colors; hoverColor?: keyof typeof colors };\n\nexport function Badge({\n color = 'zinc',\n className,\n ...props\n}: BadgeProps & React.ComponentPropsWithoutRef<'span'>) {\n return (\n \n );\n}\n\nexport const BadgeButton = forwardRef(function BadgeButton(\n {\n color = 'zinc',\n className,\n children,\n ...props\n }: BadgeProps & { className?: string; children: React.ReactNode } & (\n | Omit\n | Omit, 'className'>\n ),\n ref: React.ForwardedRef\n) {\n const classes = clsx(\n className,\n 'group relative inline-flex rounded-md focus:outline-none data-[focus]:outline data-[focus]:outline-2 data-[focus]:outline-offset-2 data-[focus]:outline-blue-500'\n );\n\n return 'href' in props ? (\n }>\n \n {children}\n \n \n ) : (\n \n \n {children}\n \n \n );\n});\n","import React from 'react';\nimport {\n Combobox as HeadlessCombobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions\n} from '@headlessui/react';\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/react/20/solid';\nimport clsx from 'clsx';\nimport { ErrorMessage } from './fieldset';\nimport { Badge } from './badge';\n\ntype Option = { value: T; label: string; description?: string; badgeText?: string };\n\nexport function Combobox<\n T extends {\n toString(): string;\n }\n>(props: {\n value?: T;\n error?: string;\n disabled?: boolean;\n placeholder?: string;\n options: Option[];\n minQueryLength?: number;\n maxOptions?: number;\n onChange: (value: T | '') => void;\n}) {\n const [query, setQuery] = React.useState('');\n const [selectedOption, setSelectedOption] = React.useState(\n props.value ? (props.options.find((opt) => opt.value === props.value) ?? null) : null\n );\n\n const queryRegex = new RegExp(`(${query.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n\n const minQueryLength = props.minQueryLength || 3;\n const maxOptions = props.maxOptions || 50;\n\n React.useEffect(() => {\n setSelectedOption(\n props.value ? (props.options.find((opt) => opt.value === props.value) ?? null) : null\n );\n }, [props.value, props.options]);\n\n const filteredOptions = props.options.filter((option) => {\n return (\n option.label.toString().toLowerCase().includes(query.trim().toLowerCase()) ||\n option.value.toString().toLowerCase().includes(query.trim().toLowerCase()) ||\n option.description?.toString().toLowerCase().includes(query.trim().toLowerCase())\n );\n });\n\n return (\n <>\n ) => {\n setQuery('');\n setSelectedOption(option);\n props.onChange(option?.value ?? '');\n }}\n data-invalid={props.error ? true : undefined}\n disabled={props.disabled}\n immediate={props.minQueryLength === 0}\n >\n \n {\n setQuery(event.target.value);\n setSelectedOption(null);\n props.onChange('');\n }}\n onBlur={() => setQuery('')}\n displayValue={(option: { label: string }) => option?.label}\n data-invalid={props.error ? true : undefined}\n disabled={props.disabled}\n placeholder={props.placeholder}\n />\n \n \n \n\n {(filteredOptions.length <= maxOptions || query.trim().length >= minQueryLength) &&\n filteredOptions.length > 0 && (\n \n {filteredOptions.map((option) => (\n \n
\n
\n
\n {option.label.split(queryRegex).map((part, i) =>\n part.toLowerCase() === query.trim().toLowerCase() ? (\n \n {part}\n \n ) : (\n {part}\n )\n )}\n
\n {option.badgeText && (\n
\n {option.badgeText}\n
\n )}\n
\n {option.description && (\n
\n {option.description.split(queryRegex).map((part, i) =>\n part.toLowerCase() === query.trim().toLowerCase() ? (\n \n {part}\n \n ) : (\n {part}\n )\n )}\n
\n )}\n
\n\n \n \n ))}\n
\n )}\n \n \n {!!props.error && {props.error}}\n \n );\n}\n","import clsx from 'clsx';\n\nexport function LegendSkeleton({ className }: { className?: string }) {\n return (\n \n );\n}\n\nexport function LabelSkeleton({\n className,\n long,\n extraLong\n}: {\n className?: string;\n long?: boolean;\n extraLong?: boolean;\n}) {\n return (\n \n );\n}\n\nexport function DescriptionSkeleton({ className, long }: { className?: string; long?: boolean }) {\n return (\n \n );\n}\n\nexport function TextSkeleton({ className }: { className?: string }) {\n return (\n <>\n \n \n \n );\n}\n\nexport function InputSkeleton({ className, short }: { className?: string; short?: boolean }) {\n return (\n \n );\n}\n","import React from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { useHistory } from 'react-router';\nimport styled from 'styled-components';\nimport clsx from 'clsx';\n\nimport {\n Button as HeadlessButton,\n Checkbox as HeadlessCheckbox,\n Radio,\n RadioGroup,\n Dialog,\n DialogBackdrop,\n DialogPanel,\n DialogTitle\n} from '@headlessui/react';\n\nimport {\n BuildingOffice2Icon,\n ShieldCheckIcon,\n ShieldExclamationIcon,\n XMarkIcon\n} from '@heroicons/react/24/outline';\nimport {\n CheckCircleIcon,\n CheckIcon,\n ChevronDoubleRightIcon,\n TrashIcon,\n PencilSquareIcon,\n PlusIcon,\n CurrencyDollarIcon,\n InformationCircleIcon\n} from '@heroicons/react/20/solid';\n\nimport { Text } from '@oysterjs/partners/uiv2/text';\nimport {\n Fieldset,\n Legend,\n Field,\n Label,\n FieldGroup,\n Description,\n ErrorMessage\n} from '@oysterjs/partners/uiv2/fieldset';\nimport { Input, InputGroup } from '@oysterjs/partners/uiv2/input';\nimport { Select } from '@oysterjs/partners/uiv2/select';\nimport { Textarea } from '@oysterjs/partners/uiv2/textarea';\nimport { Divider } from '@oysterjs/partners/uiv2/divider';\nimport { Combobox } from '@oysterjs/partners/uiv2/combobox';\n\nimport { naics, states } from './naics';\nimport { Button } from '@oysterjs/partners/uiv2/button';\nimport { PageWrapper } from './common';\nimport {\n AddBusinessApplicationLocationDocument,\n Address,\n ApplicationQuoteFieldsFragment,\n AvailableCoverageLimit,\n BindQuoteDocument,\n BindQuoteMutation,\n BuildingConstructionType,\n BuildingOwnershipType,\n BurglarAlarmType,\n BusinessApplicationCarrier,\n BusinessApplicationQuoteState,\n BusinessApplicationQuoteType,\n BusinessApplicationState,\n BusinessLegalEntityType,\n GetCoverageLimitsDocument,\n GetCoverageLimitsQuery,\n InsuranceLimits,\n InsuranceType,\n PastPolicyLossClaimStatus,\n PastPolicyLossType,\n PaymentPlanInstallmentFrequency,\n PaymentPlanPaymentMethodType,\n QuoteBusinessApplicationDocument,\n QuoteBusinessApplicationMutation,\n RemoveBusinessApplicationLocationDocument,\n SubmitBusinessApplicationDocument,\n SubmitBusinessApplicationMutation,\n UnderwritingQuestion,\n UnderwritingQuestionDependencyType,\n UnderwritingQuestionType,\n UnderwritingStatement,\n UpdateBusinessApplicationDocument,\n UpdateBusinessApplicationLocationDocument,\n UpdateBusinessApplicationMutation,\n ValidationError\n} from '../../types/graphql';\nimport { ApplicationContext } from './context';\nimport {\n DescriptionSkeleton,\n InputSkeleton,\n LabelSkeleton,\n LegendSkeleton,\n TextSkeleton\n} from '@oysterjs/partners/uiv2/skeleton';\nimport { getMerchantGraphQLClient, merchantUserSignInInit } from '@oysterjs/core/api/merchant';\nimport * as UnderwritingForm from './form';\nimport { getDisplayInsuranceType } from '../../types/map';\nimport { Heading } from '@oysterjs/partners/uiv2/heading';\nimport { ApolloError } from '@apollo/client';\n\nconst commonCoverages = [\n '$0 liability deductible',\n 'AM-Best Excellent-rated carrier',\n 'Create and manage COIs online',\n 'Dedicated risk expert'\n];\n\nconst insuranceTypes = [\n {\n id: InsuranceType.BusinessOwners,\n title: 'Business Owners',\n description: 'Combines essential coverages that include both liability and property.',\n coverages: [\n 'Premise, products, and operations liability including property',\n ...commonCoverages\n ]\n },\n {\n id: InsuranceType.GeneralLiability,\n title: 'General Liability',\n description: 'Covers your business from legal claims arising from normal operations.',\n coverages: ['Premise, products, and operations liability', ...commonCoverages]\n },\n {\n id: InsuranceType.WorkersCompensation,\n title: \"Workers' Compensation\",\n description: 'Covers your workers by providing benefits in case of illness or injury.',\n coverages: ['Employee physical injury, disability, and death', ...commonCoverages]\n },\n {\n id: InsuranceType.Cyber,\n title: 'Cyber',\n description: 'Covers your business from cyber incidents and data breaches.',\n coverages: ['Data breach, data loss, and hacked equipment', ...commonCoverages]\n },\n {\n id: InsuranceType.DirectorsAndOfficers,\n title: 'Directors and Officers',\n description: 'Protects your company and its executives from legal claims.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.ErrorsAndOmission,\n title: 'Errors and Omission',\n description: 'Protects your business from claims of inadequate work or negligent actions.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.Rental,\n title: 'Rental',\n description: 'Covers any equipment your rent out from damage and liability.',\n coverages: [...commonCoverages]\n },\n {\n id: InsuranceType.UmbrellaOrExcess,\n title: 'Umbrella or Excess',\n description: 'Provides additional coverage above your primary policies.',\n coverages: [...commonCoverages]\n }\n];\n\nconst workersCompensationDisabledStates = ['WY', 'ND', 'WA', 'OH'];\n\nconst currencyFormatter = new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n});\n\nconst displaySelectedLimit = (insuranceType: InsuranceType, selectedLimits: InsuranceLimits) => {\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n return `${currencyFormatter.format(selectedLimits.wcPerAccidentLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.wcPerDiseaseEmployeeLimit || 0\n )} / ${currencyFormatter.format(selectedLimits.wcPerDiseasePolicyLimit || 0)}`;\n case InsuranceType.GeneralLiability:\n return `${currencyFormatter.format(selectedLimits.glPerOccurrenceLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.glAggregateLimit || 0\n )}`;\n case InsuranceType.BusinessOwners:\n return `${currencyFormatter.format(selectedLimits.bopPerOccurrenceLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.bopAggregateLimit || 0\n )}`;\n case InsuranceType.Cyber:\n return `${currencyFormatter.format(selectedLimits.cyberRetentionLimit || 0)} / ${currencyFormatter.format(\n selectedLimits.cyberAggregateLimit || 0\n )}`;\n default:\n return '';\n }\n};\n\nconst PlusDivider = (props: React.PropsWithChildren) => {\n return (\n
\n
\n
\n
\n
{props.children}
\n
\n );\n};\n\nexport const Intro = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [availableLimits, setAvailableLimits] = React.useState();\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n contact?: {\n fullName?: string;\n email?: string;\n phone?: string;\n };\n selectedLimits?: {\n coverageState?: string;\n wcPerAccidentLimit?: number | null;\n wcPerDiseaseEmployeeLimit?: number | null;\n wcPerDiseasePolicyLimit?: number | null;\n glPerOccurrenceLimit?: number | null;\n glAggregateLimit?: number | null;\n bopPerOccurrenceLimit?: number | null;\n bopAggregateLimit?: number | null;\n cyberRetentionLimit?: number | null;\n cyberAggregateLimit?: number | null;\n };\n naicsCode?: string;\n insuranceTypes?: InsuranceType[];\n insuranceEffectiveAt?: string;\n }>({});\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n contact: {\n fullName: application?.contact.fullName || '',\n email: application?.contact.email || '',\n phone: application?.contact.phone || ''\n },\n selectedLimits: application?.selectedLimits || {},\n naicsCode: application?.naicsCode || '',\n insuranceTypes: application?.insuranceTypes || [],\n insuranceEffectiveAt: (application?.insuranceEffectiveAt\n ? new Date(application?.insuranceEffectiveAt)\n : new Date()\n )\n .toISOString()\n .split('T')[0]\n });\n }, [application]);\n\n // If the coverage state changes, reload the available limits based on\n // the state.\n React.useEffect(() => {\n if (!form.selectedLimits?.coverageState) {\n return;\n }\n\n setLoading(true);\n getMerchantGraphQLClient()\n .query({\n query: GetCoverageLimitsDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id || '',\n state: form.selectedLimits.coverageState\n }\n })\n .then((res) => {\n if (res.data?.coverageLimits) {\n setAvailableLimits(res.data.coverageLimits);\n chooseDefaultLimits(res.data.coverageLimits);\n }\n if (res.error?.message) {\n setError(res.error);\n }\n })\n .finally(() => setLoading(false));\n\n return () =>\n updateForm([], (prev) => ({\n ...prev,\n selectedLimits: { coverageState: prev.selectedLimits?.coverageState }\n }));\n }, [form.selectedLimits?.coverageState]);\n\n React.useEffect(() => {\n // Unselect WC if selected\n if (!checkWorkersCompensationEligibility()) {\n updateForm(['insuranceTypes'], (prev) => ({\n ...prev,\n insuranceTypes: (prev.insuranceTypes || []).filter(\n (v) => v !== InsuranceType.WorkersCompensation\n )\n }));\n }\n }, [form.selectedLimits?.coverageState]);\n\n // Define handlers for limits\n const onChangeLimit =\n (insuranceType: InsuranceType) => (e: React.ChangeEvent) => {\n const selectedIndex = parseInt(e.currentTarget.value);\n if (isNaN(selectedIndex)) {\n return;\n }\n\n setLimit(availableLimits || [], insuranceType, selectedIndex);\n };\n\n const setLimit = (\n limits: AvailableCoverageLimit[],\n insuranceType: InsuranceType,\n index: number\n ) => {\n const fields = {\n [InsuranceType.WorkersCompensation]: [\n 'wcPerAccidentLimit',\n 'wcPerDiseaseEmployeeLimit',\n 'wcPerDiseasePolicyLimit'\n ],\n [InsuranceType.GeneralLiability]: ['glPerOccurrenceLimit', 'glAggregateLimit'],\n [InsuranceType.BusinessOwners]: ['bopPerOccurrenceLimit', 'bopAggregateLimit'],\n [InsuranceType.Cyber]: ['cyberRetentionLimit', 'cyberAggregateLimit']\n };\n\n updateFormMulti(\n fields[insuranceType]?.map((field) => ['selectedLimits', field]) || [],\n (prev) => ({\n ...prev,\n selectedLimits: {\n ...prev.selectedLimits,\n ...Object.fromEntries(\n Object.entries(limits?.[index]?.limits || {}).filter(([, v]) => !!v)\n )\n }\n })\n );\n };\n\n const getLimitValue = (insuranceType: InsuranceType) => {\n // Depending on the insurance type, find the index of the available limit based on what\n // is selected in the form.\n let index: number | undefined;\n\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.wcPerAccidentLimit &&\n form.selectedLimits?.wcPerDiseaseEmployeeLimit &&\n form.selectedLimits?.wcPerDiseasePolicyLimit &&\n l.limits.wcPerAccidentLimit === form.selectedLimits?.wcPerAccidentLimit &&\n l.limits.wcPerDiseaseEmployeeLimit === form.selectedLimits?.wcPerDiseaseEmployeeLimit &&\n l.limits.wcPerDiseasePolicyLimit === form.selectedLimits?.wcPerDiseasePolicyLimit\n );\n break;\n case InsuranceType.GeneralLiability:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.glPerOccurrenceLimit &&\n form.selectedLimits?.glAggregateLimit &&\n l.limits.glPerOccurrenceLimit === form.selectedLimits?.glPerOccurrenceLimit &&\n l.limits.glAggregateLimit === form.selectedLimits?.glAggregateLimit\n );\n break;\n case InsuranceType.BusinessOwners:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.bopPerOccurrenceLimit &&\n form.selectedLimits?.bopAggregateLimit &&\n l.limits.bopPerOccurrenceLimit === form.selectedLimits?.bopPerOccurrenceLimit &&\n l.limits.bopAggregateLimit === form.selectedLimits?.bopAggregateLimit\n );\n break;\n case InsuranceType.Cyber:\n index = availableLimits?.findIndex(\n (l) =>\n form.selectedLimits?.cyberRetentionLimit &&\n form.selectedLimits?.cyberAggregateLimit &&\n l.limits.cyberRetentionLimit === form.selectedLimits?.cyberRetentionLimit &&\n l.limits.cyberAggregateLimit === form.selectedLimits?.cyberAggregateLimit\n );\n break;\n }\n\n return index === undefined || index < 0 ? '' : index.toString();\n };\n\n const chooseDefaultLimits = (limits: AvailableCoverageLimit[]) => {\n // Group limits by insurance type\n const groupedLimits: Record = limits.reduce(\n (acc, limit) => ({\n ...acc,\n [limit.insuranceType]: [...(acc[limit.insuranceType] || []), limit]\n }),\n {} as Record\n );\n\n // Choose the default limit for each insurance type if it's not already set\n Object.entries(groupedLimits).forEach(([insuranceType, limits]) => {\n let index: number = -1;\n\n switch (insuranceType) {\n case InsuranceType.WorkersCompensation:\n if (!form.selectedLimits?.wcPerAccidentLimit) {\n index = limits.findIndex((l) => l.limits.wcPerAccidentLimit === 1_000_000);\n }\n break;\n case InsuranceType.GeneralLiability:\n if (!form.selectedLimits?.glPerOccurrenceLimit) {\n index = limits.findIndex((l) => l.limits.glPerOccurrenceLimit === 1_000_000);\n }\n break;\n case InsuranceType.BusinessOwners:\n if (!form.selectedLimits?.bopPerOccurrenceLimit) {\n index = limits.findIndex((l) => l.limits.bopPerOccurrenceLimit === 1_000_000);\n }\n break;\n case InsuranceType.Cyber:\n if (!form.selectedLimits?.cyberRetentionLimit) {\n index = limits.findIndex((l) => l.limits.cyberRetentionLimit === 10_000);\n }\n break;\n }\n\n if (index !== -1) {\n setLimit(limits, insuranceType as InsuranceType, index);\n }\n });\n };\n\n // Define the error fields that need to be validated on this page\n const errorFields = [\n ['contact', 'fullName'],\n ['contact', 'email'],\n ['contact', 'phone'],\n ['naicsCode'],\n ['insuranceTypes'],\n ['selectedLimits', 'coverageState'],\n ['selectedLimits', 'wcPerAccidentLimit'],\n ['selectedLimits', 'wcDiseaseEachEmployeeLimit'],\n ['selectedLimits', 'wcPerDiseasePolicyLimit'],\n ['selectedLimits', 'glPerOccurrenceLimit'],\n ['selectedLimits', 'glAggregateLimit'],\n ['selectedLimits', 'bopPerOccurrenceLimit'],\n ['selectedLimits', 'bopAggregateLimit'],\n ['selectedLimits', 'cyberRetentionLimit'],\n ['selectedLimits', 'cyberAggregateLimit'],\n ['insuranceEffectiveAt']\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n const checkWorkersCompensationEligibility = () => {\n if (!form.selectedLimits?.coverageState) {\n return true;\n }\n\n return !workersCompensationDisabledStates.includes(form.selectedLimits?.coverageState);\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n ...form,\n insuranceEffectiveAt: form.insuranceEffectiveAt + 'T00:00:00Z'\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/business`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n
\n
\n Contact information\n Provide your information and how we can contact you.\n \n
\n \n \n {\n const fullName = e.currentTarget.value;\n updateForm(['contact', 'fullName'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, fullName }\n }));\n }}\n invalid={!!getError(['contact', 'fullName'])}\n />\n {!!getError(['contact', 'fullName']) && (\n {getError(['contact', 'fullName'])}\n )}\n \n \n \n {\n const email = e.currentTarget.value;\n updateForm(['contact', 'email'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, email }\n }));\n }}\n invalid={!!getError(['contact', 'email'])}\n />\n {!!getError(['contact', 'email']) && (\n {getError(['contact', 'email'])}\n )}\n \n \n \n {\n const phone = e.currentTarget.value;\n updateForm(['contact', 'phone'], (prev) => ({\n ...prev,\n contact: { ...prev.contact, phone }\n }));\n }}\n invalid={!!getError(['contact', 'phone'])}\n />\n {!!getError(['contact', 'phone']) && (\n {getError(['contact', 'phone'])}\n )}\n \n
\n
\n
\n\n \n\n
\n Business classification\n \n Tell us how to classify your business. This will ensure you get the right coverages for\n your business.\n \n\n \n \n \n \n Choose the state that you're looking for coverage in (most of the time, this is the\n state that the business is based out of).\n \n {\n const val = e.currentTarget.value;\n updateForm(['selectedLimits', 'coverageState'], (prev) => ({\n ...prev,\n selectedLimits: { coverageState: val }\n }));\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n {!!getError(['selectedLimits', 'coverageState']) && (\n {getError(['selectedLimits', 'coverageState'])}\n )}\n \n \n \n \n Search for the industry classification that best matches your business.\n \n \n updateForm(['naicsCode'], (prev) => ({ ...prev, naicsCode }))\n }\n options={Object.entries(naics).map(([code, entry]) => ({\n value: code,\n label: entry.title,\n description: entry.description\n }))}\n error={getError(['naicsCode'])}\n />\n \n \n
\n\n \n\n
\n Coverage\n \n Select the types of insurance coverage that your business needs. We can get you a\n competitive quote for each of these.\n \n\n \n \n
\n {insuranceTypes.map((insuranceType) => (\n \n updateForm(['insuranceTypes'], (prev) => ({\n ...prev,\n insuranceTypes: checked\n ? [...(prev.insuranceTypes || []), insuranceType.id]\n : (prev.insuranceTypes || []).filter((v) => v !== insuranceType.id)\n }))\n }\n disabled={\n insuranceType.id === InsuranceType.WorkersCompensation &&\n !checkWorkersCompensationEligibility()\n }\n aria-label={insuranceType.title}\n aria-description={`${insuranceType.title}: ${insuranceType.description}`}\n className={clsx([\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:pointer-events-none',\n 'group relative flex cursor-pointer rounded-lg bg-white p-4 shadow-sm focus:outline-none border border-neutral-950/10 data-[hover]:border-neutral-950/20 data-[focus]:border-primary-500 data-[focus]:ring-2 data-[focus]:ring-primary-500 dark:bg-neutral-800 dark:border-white/10 dark:data-[hover]:border-white/20'\n ])}\n >\n \n \n \n {insuranceType.title}\n \n \n {(insuranceType.id !== InsuranceType.WorkersCompensation ||\n checkWorkersCompensationEligibility()) &&\n insuranceType.description}\n {insuranceType.id === InsuranceType.WorkersCompensation &&\n !checkWorkersCompensationEligibility() &&\n \"Your state is a monopolistic state. If you need to obtain workers' compensation coverage, please contact your state.\"}\n \n \n \n \n \n \n ))}\n
\n {!!getError(['insuranceTypes']) && (\n {getError(['insuranceTypes'])}\n )}\n
\n
\n {!!availableLimits?.length && (\n \n {form.insuranceTypes?.includes(InsuranceType.BusinessOwners) && (\n \n \n \n Choose the liability limits you'd like on your business owner's policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.BusinessOwners ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'bopPerOccurrenceLimit']) && (\n \n {getError(['selectedLimits', 'bopPerOccurrenceLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.GeneralLiability) && (\n \n \n Choose the limits you'd like on your liability policy.\n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.GeneralLiability ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'glPerOccurrenceLimit']) && (\n \n {getError(['selectedLimits', 'glPerOccurrenceLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && (\n \n \n \n Choose the limits you'd like on your workers' compensation policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.WorkersCompensation ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'wcPerAccidentLimit']) && (\n \n {getError(['selectedLimits', 'wcPerAccidentLimit'])}\n \n )}\n \n )}\n {form.insuranceTypes?.includes(InsuranceType.Cyber) && (\n \n \n \n Choose the liability limits you'd like on your cyber policy.\n \n \n \n {availableLimits.map((limit, i) =>\n limit.insuranceType !== InsuranceType.Cyber ? null : (\n \n )\n )}\n \n {!!getError(['selectedLimits', 'cyberRetentionLimit']) && (\n \n {getError(['selectedLimits', 'cyberRetentionLimit'])}\n \n )}\n \n )}\n \n )}\n\n \n \n \n \n This is the date you'd like your insurance coverage to start. You can change this\n later.\n \n {\n const insuranceEffectiveAt = e.currentTarget.value;\n updateForm(['insuranceEffectiveAt'], (prev) => ({\n ...prev,\n insuranceEffectiveAt\n }));\n }}\n invalid={!!getError(['insuranceEffectiveAt'])}\n />\n {!!getError(['insuranceEffectiveAt']) && (\n {getError(['insuranceEffectiveAt'])}\n )}\n \n \n
\n\n
\n \n Save and continue\n \n
\n \n \n );\n};\n\nexport const IntroSkeleton = () => {\n return (\n
\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n\n \n\n
\n \n \n\n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const Business = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n // const [jobCodes, setJobCodes] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n businessName?: string;\n businessDba?: string;\n mailingAddress: Address;\n fein?: string;\n legalEntityType?: string;\n annualRevenue?: string;\n yearOfFounding?: string;\n yearsOfManagementExperience?: string;\n employeeInfo?: {\n numFullTimeEmployees?: string;\n numPartTimeEmployees?: string;\n totalEmployeePayroll?: string;\n };\n owners?: {\n fullName?: string;\n annualPayroll?: string;\n dateOfBirth?: string;\n jobCode?: string;\n }[];\n }>({ mailingAddress: { line1: '', city: '', zone: '', postalCode: '' } });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n businessName: application?.businessName || '',\n businessDba: application?.businessDba || '',\n mailingAddress: {\n line1: application?.mailingAddress?.line1 || '',\n line2: application?.mailingAddress?.line2,\n city: application?.mailingAddress?.city || '',\n zone: application?.mailingAddress?.zone || '',\n postalCode: application?.mailingAddress?.postalCode || ''\n },\n fein: application?.fein || '',\n legalEntityType: application?.legalEntityType || '',\n annualRevenue: !application?.annualRevenue ? '' : application.annualRevenue.toString(),\n yearOfFounding: application?.yearOfFounding || '',\n yearsOfManagementExperience: !application?.annualRevenue\n ? ''\n : application.yearsOfManagementExperience.toString(),\n employeeInfo: {\n numFullTimeEmployees: !application?.employeeInfo?.numFullTimeEmployees\n ? ''\n : application.employeeInfo.numFullTimeEmployees.toString(),\n numPartTimeEmployees: !application?.employeeInfo?.numPartTimeEmployees\n ? ''\n : application.employeeInfo.numPartTimeEmployees.toString(),\n totalEmployeePayroll: !application?.employeeInfo?.totalEmployeePayroll\n ? ''\n : application.employeeInfo.totalEmployeePayroll.toString()\n },\n owners: application?.owners?.length\n ? application.owners.map((owner) => ({\n fullName: owner.fullName,\n annualPayroll: !owner.annualPayroll ? '' : owner.annualPayroll.toString(),\n dateOfBirth: (owner.dateOfBirth ? new Date(owner.dateOfBirth) : new Date())\n .toISOString()\n .split('T')[0],\n jobCode: owner.jobCode || ''\n }))\n : [\n {\n fullName: '',\n annualPayroll: '',\n dateOfBirth: new Date().toISOString().split('T')[0],\n jobCode: ''\n }\n ]\n });\n }, [application]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = [\n ['businessName'],\n ['businessDba'],\n ['mailingAddress', 'line1'],\n ['mailingAddress', 'line2'],\n ['mailingAddress', 'city'],\n ['mailingAddress', 'zone'],\n ['mailingAddress', 'postalCode'],\n ['fein'],\n ['legalEntityType'],\n ['annualRevenue'],\n ['yearOfFounding'],\n ['yearsOfManagementExperience'],\n ['employeeInfo', 'numFullTimeEmployees'],\n ['employeeInfo', 'numPartTimeEmployees'],\n ['employeeInfo', 'totalEmployeePayroll'],\n ...(form.owners?.flatMap((_, i) => [\n ['owners', i.toString(), 'fullName'],\n ['owners', i.toString(), 'annualPayroll'],\n ['owners', i.toString(), 'dateOfBirth'],\n ['owners', i.toString(), 'jobCode']\n ]) || [])\n ];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n const addEmptyOwner = () =>\n updateForm([], (prev) => ({\n ...prev,\n owners: [\n ...(prev.owners || []),\n {\n fullName: '',\n annualPayroll: '',\n dateOfBirth: new Date().toISOString().split('T')[0]\n }\n ]\n }));\n\n const removePreviousOwner = () =>\n updateForm([], (prev) => ({\n ...prev,\n owners: prev.owners?.slice(0, prev.owners.length - 1)\n }));\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n ...form,\n employeeInfo: {\n numFullTimeEmployees: parseInt(\n (form.employeeInfo?.numFullTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n numPartTimeEmployees: parseInt(\n (form.employeeInfo?.numPartTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n totalEmployeePayroll: parseFloat(\n (form.employeeInfo?.totalEmployeePayroll || '0').replace(/[$,]/g, '')\n )\n },\n legalEntityType: form.legalEntityType || null,\n annualRevenue: parseFloat((form.annualRevenue || '').replace(/[$,]/g, '')),\n yearsOfManagementExperience: parseInt(form.yearsOfManagementExperience || '0'),\n owners: form.owners?.map((owner) => ({\n ...owner,\n annualPayroll: parseFloat((owner.annualPayroll || '0').replace(/[$,]/g, ''))\n }))\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/locations`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n
\n
\n Business Profile\n Provide some basic details about the business you'd like insurance for.\n \n
\n \n \n {\n const businessName = e.currentTarget.value;\n updateForm(['businessName'], (prev) => ({ ...prev, businessName }));\n }}\n invalid={!!getError(['businessName'])}\n />\n {!!getError(['businessName']) && (\n {getError(['businessName'])}\n )}\n \n \n \n {\n const businessDba = e.currentTarget.value;\n updateForm(['businessDba'], (prev) => ({ ...prev, businessDba }));\n }}\n invalid={!!getError(['businessDba'])}\n />\n {!!getError(['businessDba']) && (\n {getError(['businessDba'])}\n )}\n \n
\n
\n \n updateFormMulti(\n [\n ['mailingAddress', 'line1'],\n ['mailingAddress', 'line2'],\n ['mailingAddress', 'city'],\n ['mailingAddress', 'zone'],\n ['mailingAddress', 'postalCode']\n ],\n (prev) => ({\n ...prev,\n mailingAddress: update(prev.mailingAddress)\n })\n )\n }\n initialValue={{\n line1: form.mailingAddress?.line1 || '',\n line2: form.mailingAddress?.line2,\n city: form.mailingAddress?.city || '',\n zone: form.mailingAddress?.zone || '',\n postalCode: form.mailingAddress?.postalCode || ''\n }}\n validationErrors={{\n line1: getError(['mailingAddress', 'line1']),\n line2: getError(['mailingAddress', 'line2']),\n city: getError(['mailingAddress', 'city']),\n zone: getError(['mailingAddress', 'zone']),\n postalCode: getError(['mailingAddress', 'postalCode'])\n }}\n />\n
\n\n \n\n
\n Business Details\n \n Tell us more about your business, including your FEIN, legal entity type, annual\n revenue, and year of founding.\n \n\n \n
\n {application?.insuranceTypes.includes(InsuranceType.WorkersCompensation) && (\n \n \n {\n const fein = e.currentTarget.value;\n updateForm(['fein'], (prev) => ({ ...prev, fein }));\n }}\n invalid={!!getError(['fein'])}\n />\n {!!getError(['fein']) && {getError(['fein'])}}\n \n )}\n \n \n {\n const legalEntityType = e.currentTarget.value;\n updateForm(['legalEntityType'], (prev) => ({ ...prev, legalEntityType }));\n }}\n invalid={!!getError(['legalEntityType'])}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!!getError(['legalEntityType']) && (\n {getError(['legalEntityType'])}\n )}\n \n
\n
\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualRevenue = e.currentTarget.value;\n updateForm(['annualRevenue'], (prev) => ({ ...prev, annualRevenue }));\n }}\n invalid={!!getError(['annualRevenue'])}\n />\n \n\n {!!getError(['annualRevenue']) && (\n {getError(['annualRevenue'])}\n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearOfFounding = e.currentTarget.value;\n updateForm(['yearOfFounding'], (prev) => ({ ...prev, yearOfFounding }));\n }}\n invalid={!!getError(['yearOfFounding'])}\n />\n {!!getError(['yearOfFounding']) && (\n {getError(['yearOfFounding'])}\n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearsOfManagementExperience = e.currentTarget.value;\n updateForm(['yearsOfManagementExperience'], (prev) => ({\n ...prev,\n yearsOfManagementExperience\n }));\n }}\n invalid={!!getError(['yearsOfManagementExperience'])}\n />\n {!!getError(['yearsOfManagementExperience']) && (\n {getError(['yearsOfManagementExperience'])}\n )}\n \n
\n
\n
\n\n {(application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) ||\n application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation)) && }\n\n {application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) && (\n
\n Employees\n \n Tell us how many employees work at your business and the total payroll amount\n (excluding owners).\n \n\n \n
\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numFullTimeEmployees = e.currentTarget.value;\n updateForm(['employeeInfo', 'numFullTimeEmployees'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numFullTimeEmployees\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'numFullTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numFullTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numFullTimeEmployees'])}\n \n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numPartTimeEmployees = e.currentTarget.value;\n updateForm(['employeeInfo', 'numPartTimeEmployees'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numPartTimeEmployees\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'numPartTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numPartTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numPartTimeEmployees'])}\n \n )}\n \n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalEmployeePayroll = e.currentTarget.value;\n updateForm(['employeeInfo', 'totalEmployeePayroll'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n totalEmployeePayroll\n }\n }));\n }}\n invalid={!!getError(['employeeInfo', 'totalEmployeePayroll'])}\n />\n \n {!!getError(['employeeInfo', 'totalEmployeePayroll']) && (\n \n {getError(['employeeInfo', 'totalEmployeePayroll'])}\n \n )}\n \n
\n
\n
\n )}\n\n {application?.insuranceTypes?.some((i) =>\n [\n InsuranceType.BusinessOwners,\n InsuranceType.GeneralLiability,\n InsuranceType.Cyber\n ].includes(i)\n ) &&\n application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && }\n\n {application?.insuranceTypes?.includes(InsuranceType.WorkersCompensation) && (\n
\n Business owners\n Tell us about each individual considered an owner of your business.\n\n {form.owners?.map((owner, index) => (\n \n
\n \n \n {\n const fullName = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'fullName'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, fullName }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'fullName'])}\n />\n {!!getError(['owners', index.toString(), 'fullName']) && (\n \n {getError(['owners', index.toString(), 'fullName'])}\n \n )}\n \n\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualPayroll = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'annualPayroll'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, annualPayroll }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'annualPayroll'])}\n />\n \n {!!getError(['owners', index.toString(), 'annualPayroll']) && (\n \n {getError(['owners', index.toString(), 'annualPayroll'])}\n \n )}\n \n\n \n \n {\n const dateOfBirth = e.currentTarget.value;\n updateForm(['owners', index.toString(), 'dateOfBirth'], (prev) => ({\n ...prev,\n owners: prev.owners?.map((owner, i) =>\n i !== index ? owner : { ...owner, dateOfBirth }\n )\n }));\n }}\n invalid={!!getError(['owners', index.toString(), 'dateOfBirth'])}\n />\n {!!getError(['owners', index.toString(), 'dateOfBirth']) && (\n \n {getError(['owners', index.toString(), 'dateOfBirth'])}\n \n )}\n \n
\n
\n ))}\n\n \n {form.owners && form.owners.length > 1 && (\n \n )}\n \n \n
\n )}\n\n
\n \n \n
\n \n \n );\n};\n\nexport const BusinessSkeleton = () => {\n return (\n
\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n \n\n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
\n
\n
\n\n \n\n
\n \n \n\n \n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
\n
\n
\n
\n );\n};\n\nexport const Locations = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n // const [jobCodes, setJobCodes] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [open, setOpen] = React.useState(false);\n const [form, setForm] = React.useState<{\n id: string;\n isPrimary: boolean;\n address: Address;\n buildingInfo: {\n annualSales?: string;\n areaOccupiedByBusiness?: string;\n buildingCoverage?: string;\n burglarAlarmType?: BurglarAlarmType | '';\n constructionType?: BuildingConstructionType | '';\n ownershipType?: BuildingOwnershipType | '';\n personalPropertyCoverage?: string;\n sprinkleredPercentage?: string;\n totalArea?: string;\n totalStories?: string;\n yearBuilt?: string;\n };\n employeeInfo: {\n numFullTimeEmployees?: string;\n numPartTimeEmployees?: string;\n totalEmployeePayroll?: string;\n jobCode?: string;\n };\n }>({\n id: '',\n address: { line1: '', city: '', zone: '', postalCode: '' },\n buildingInfo: {},\n isPrimary: false,\n employeeInfo: {}\n });\n\n // Define the error fields that need to be validated on this page\n const errorFields = Array((application?.locations?.length || 0) + 1)\n .fill(0)\n .flatMap((_, i) => [\n ['locations', i.toString(), 'isPrimary'],\n ['locations', i.toString(), 'address', 'line1'],\n ['locations', i.toString(), 'address', 'line2'],\n ['locations', i.toString(), 'address', 'city'],\n ['locations', i.toString(), 'address', 'zone'],\n ['locations', i.toString(), 'address', 'postalCode'],\n ['locations', i.toString(), 'buildingInfo', 'annualSales'],\n ['locations', i.toString(), 'buildingInfo', 'areaOccupiedByBusiness'],\n ['locations', i.toString(), 'buildingInfo', 'buildingCoverage'],\n ['locations', i.toString(), 'buildingInfo', 'burglarAlarmType'],\n ['locations', i.toString(), 'buildingInfo', 'constructionType'],\n ['locations', i.toString(), 'buildingInfo', 'ownershipType'],\n ['locations', i.toString(), 'buildingInfo', 'personalPropertyCoverage'],\n ['locations', i.toString(), 'buildingInfo', 'sprinkleredPercentage'],\n ['locations', i.toString(), 'buildingInfo', 'totalArea'],\n ['locations', i.toString(), 'buildingInfo', 'totalStories'],\n ['locations', i.toString(), 'buildingInfo', 'yearBuilt'],\n ['locations', i.toString(), 'employeeInfo', 'numFullTimeEmployees'],\n ['locations', i.toString(), 'employeeInfo', 'numPartTimeEmployees'],\n ['locations', i.toString(), 'employeeInfo', 'totalEmployeePayroll'],\n ['locations', i.toString(), 'employeeInfo', 'jobCode']\n ]);\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) => {\n const foundIdx = application?.locations?.findIndex((l) => l.id === form.id) || 0;\n const idx = foundIdx !== -1 ? foundIdx : (application?.locations?.length || 1) - 1;\n\n fieldParts = ['locations', idx.toString(), ...fieldParts];\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n );\n });\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) => {\n const foundIdx = application?.locations?.findIndex((l) => l.id === form.id) || 0;\n const idx = foundIdx !== -1 ? foundIdx : application?.locations?.length || 0;\n\n fieldParts = ['locations', idx.toString(), ...fieldParts];\n return validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n };\n\n const locationIndexHasError = (index: number) =>\n !open && !!validationErrors.find((e) => e.field[1] === index.toString());\n\n const getDefaultLocationInfo = () => ({\n id: '' + Math.random(),\n isPrimary: !application?.locations?.length,\n address: { line1: '', city: '', zone: '', postalCode: '' },\n buildingInfo: {\n annualSales:\n application?.locations.length === 0 ? application?.annualRevenue.toString() : undefined\n },\n employeeInfo: {\n numFullTimeEmployees:\n application?.locations.length === 0\n ? application?.employeeInfo.numFullTimeEmployees.toString()\n : undefined,\n numPartTimeEmployees:\n application?.locations.length === 0\n ? application?.employeeInfo.numPartTimeEmployees.toString()\n : undefined,\n totalEmployeePayroll:\n application?.locations.length === 0\n ? application?.employeeInfo.totalEmployeePayroll.toString()\n : undefined\n }\n });\n\n const addLocation = () => {\n setValidationErrors([]);\n updateForm([], () => ({ ...getDefaultLocationInfo() }));\n setOpen(true);\n };\n\n const addLocationFromMailingAddress = () => {\n setValidationErrors([]);\n updateForm([], () => ({\n ...getDefaultLocationInfo(),\n address: application?.mailingAddress || {\n line1: '',\n city: '',\n zone: '',\n postalCode: ''\n }\n }));\n setOpen(true);\n };\n\n const discardChanges = () => {\n editLocation(form.id);\n setValidationErrors([]);\n setOpen(false);\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n // determine if update or addition\n const isUpdate = application?.locations?.find((l) => l.id === form.id);\n const mutation = isUpdate\n ? UpdateBusinessApplicationLocationDocument\n : AddBusinessApplicationLocationDocument;\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: mutation,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id,\n locationId: form.id,\n location: {\n ...form,\n buildingInfo: {\n annualSales: parseFloat((form.buildingInfo?.annualSales || '0').replace(/[$,]/g, '')),\n areaOccupiedByBusiness: parseFloat(\n (form.buildingInfo?.areaOccupiedByBusiness || '0').replace(/[,]/g, '')\n ),\n buildingCoverage: parseFloat(\n (form.buildingInfo?.buildingCoverage || '0').replace(/[$,]/g, '')\n ),\n burglarAlarmType: form.buildingInfo.burglarAlarmType || undefined,\n constructionType: form.buildingInfo.constructionType || undefined,\n ownershipType: form.buildingInfo.ownershipType || undefined,\n personalPropertyCoverage: parseFloat(\n (form.buildingInfo?.personalPropertyCoverage || '0').replace(/[$,]/g, '')\n ),\n sprinkleredPercentage: parseFloat(\n (form.buildingInfo?.sprinkleredPercentage || '0').replace(/[,]/g, '')\n ),\n totalArea: parseFloat((form.buildingInfo?.totalArea || '0').replace(/[,]/g, '')),\n totalStories: parseFloat(\n (form.buildingInfo?.totalStories || '0').replace(/[,]/g, '')\n ),\n yearBuilt: form.buildingInfo.yearBuilt || undefined\n },\n employeeInfo: {\n jobCode: form.employeeInfo?.jobCode || '',\n numFullTimeEmployees: parseInt(\n (form.employeeInfo?.numFullTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n numPartTimeEmployees: parseInt(\n (form.employeeInfo?.numPartTimeEmployees || '0').replace(/[$,]/g, '')\n ),\n totalEmployeePayroll: parseFloat(\n (form.employeeInfo?.totalEmployeePayroll || '0').replace(/[$,]/g, '')\n )\n }\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.businessApplication || application);\n\n if (noValidationErrorMatched) {\n setOpen(false);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const editLocation = (id: string) => {\n const location = application?.locations?.find((l) => l.id === id);\n if (!location) {\n return;\n }\n\n updateForm([], () => ({\n id: location.id,\n isPrimary: location.isPrimary,\n address: location.address,\n buildingInfo: {\n ...location.buildingInfo,\n annualSales: location.buildingInfo.annualSales\n ? location.buildingInfo.annualSales.toString()\n : '',\n areaOccupiedByBusiness: location.buildingInfo.areaOccupiedByBusiness\n ? location.buildingInfo.areaOccupiedByBusiness.toString()\n : '',\n buildingCoverage: location.buildingInfo.buildingCoverage\n ? location.buildingInfo.buildingCoverage.toString()\n : '',\n burglarAlarmType: location.buildingInfo.burglarAlarmType || '',\n constructionType: location.buildingInfo.constructionType || '',\n ownershipType: location.buildingInfo.ownershipType || '',\n personalPropertyCoverage: location.buildingInfo.personalPropertyCoverage\n ? location.buildingInfo.personalPropertyCoverage.toString()\n : '',\n sprinkleredPercentage: location.buildingInfo.sprinkleredPercentage\n ? location.buildingInfo.sprinkleredPercentage.toString()\n : '',\n totalArea: location.buildingInfo.totalArea\n ? location.buildingInfo.totalArea.toString()\n : '',\n totalStories: location.buildingInfo.totalStories\n ? location.buildingInfo.totalStories.toString()\n : ''\n },\n employeeInfo: {\n numFullTimeEmployees: !location?.employeeInfo?.numFullTimeEmployees\n ? ''\n : location.employeeInfo.numFullTimeEmployees.toString(),\n numPartTimeEmployees: !location?.employeeInfo?.numPartTimeEmployees\n ? ''\n : location.employeeInfo.numPartTimeEmployees.toString(),\n totalEmployeePayroll: !location?.employeeInfo?.totalEmployeePayroll\n ? ''\n : location.employeeInfo.totalEmployeePayroll.toString(),\n jobCode: location.employeeInfo.jobCode || ''\n }\n }));\n setOpen(true);\n };\n\n const removeLocation = async (id: string) => {\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: RemoveBusinessApplicationLocationDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application?.id,\n locationId: id\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.businessApplication || application);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const onContinue = async () => {\n setLoading(true);\n\n try {\n // Trigger an update to get any validation errors\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {}\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/losses`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n \n \n\n
\n\n
\n
\n
\n \n
\n
\n
\n \n Add a new location\n \n
\n setOpen(false)}\n className=\"relative rounded-md bg-primary-800 text-primary-200 hover:text-white focus:outline-none focus:ring-2 focus:ring-white\"\n >\n \n Close panel\n \n \n
\n
\n
\n
\n
\n
\n Location Address\n Enter the address for the location you'd like to add.\n {\n updateFormMulti(\n [\n ['address', 'line1'],\n ['address', 'line2'],\n ['address', 'city'],\n ['address', 'zone'],\n ['address', 'postalCode']\n ],\n (prev) => ({ ...prev, address: update(prev.address) })\n );\n }}\n initialValue={{\n line1: form.address?.line1 || '',\n line2: form.address?.line2,\n city: form.address?.city || '',\n zone: form.address?.zone || '',\n postalCode: form.address?.postalCode || ''\n }}\n validationErrors={{\n line1: getError(['address', 'line1']),\n line2: getError(['address', 'line2']),\n city: getError(['address', 'city']),\n zone: getError(['address', 'zone']),\n postalCode: getError(['address', 'postalCode'])\n }}\n />\n
\n {application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Building Information\n Tell us about some building characteristics\n \n
\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const areaOccupiedByBusiness = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'areaOccupiedByBusiness'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n areaOccupiedByBusiness\n }\n })\n );\n }}\n />\n
\n square feet\n
\n
\n {!!getError(['buildingInfo', 'areaOccupiedByBusiness']) && (\n \n {getError(['buildingInfo', 'areaOccupiedByBusiness'])}\n \n )}\n
\n\n \n \n {\n const burglarAlarmType = e.currentTarget.value;\n updateForm(['buildingInfo', 'burglarAlarmType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n burglarAlarmType: burglarAlarmType as BurglarAlarmType\n }\n }));\n }}\n >\n \n \n \n \n \n \n {!!getError(['buildingInfo', 'burglarAlarmType']) && (\n \n {getError(['buildingInfo', 'burglarAlarmType'])}\n \n )}\n \n\n \n \n {\n const constructionType = e.currentTarget.value;\n updateForm(['buildingInfo', 'constructionType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n constructionType:\n constructionType as BuildingConstructionType\n }\n }));\n }}\n >\n \n \n \n \n \n \n \n \n {!!getError(['buildingInfo', 'constructionType']) && (\n \n {getError(['buildingInfo', 'constructionType'])}\n \n )}\n \n\n \n \n {\n const ownershipType = e.currentTarget.value;\n updateForm(['buildingInfo', 'ownershipType'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n ownershipType: ownershipType as BuildingOwnershipType\n }\n }));\n }}\n >\n \n \n \n \n \n {!!getError(['buildingInfo', 'ownershipType']) && (\n \n {getError(['buildingInfo', 'ownershipType'])}\n \n )}\n \n\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const sprinkleredPercentage = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'sprinkleredPercentage'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n sprinkleredPercentage\n }\n })\n );\n }}\n />\n\n
\n %\n
\n
\n {!!getError(['buildingInfo', 'sprinkleredPercentage']) && (\n \n {getError(['buildingInfo', 'sprinkleredPercentage'])}\n \n )}\n
\n\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalArea = e.currentTarget.value;\n updateForm(['buildingInfo', 'totalArea'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n totalArea\n }\n }));\n }}\n />\n\n
\n square feet\n
\n
\n {!!getError(['buildingInfo', 'totalArea']) && (\n \n {getError(['buildingInfo', 'totalArea'])}\n \n )}\n
\n\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalStories = e.currentTarget.value;\n updateForm(['buildingInfo', 'totalStories'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n totalStories\n }\n }));\n }}\n />\n {!!getError(['buildingInfo', 'totalStories']) && (\n \n {getError(['buildingInfo', 'totalStories'])}\n \n )}\n \n\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const yearBuilt = e.currentTarget.value;\n updateForm(['buildingInfo', 'yearBuilt'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n yearBuilt\n }\n }));\n }}\n />\n {!!getError(['buildingInfo', 'yearBuilt']) && (\n \n {getError(['buildingInfo', 'yearBuilt'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Operational Information\n Tell us about the operations tied to this location\n \n
\n \n \n \n Sales per year associated with this location\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualSales = e.currentTarget.value;\n updateForm(['buildingInfo', 'annualSales'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n annualSales\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'annualSales']) && (\n \n {getError(['buildingInfo', 'annualSales'])}\n \n )}\n \n\n \n \n \n Coverage for the structure of the building\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const buildingCoverage = e.currentTarget.value;\n updateForm(['buildingInfo', 'buildingCoverage'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n buildingCoverage\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'buildingCoverage']) && (\n \n {getError(['buildingInfo', 'buildingCoverage'])}\n \n )}\n \n\n \n \n \n Covers business property inside, e.g. inventory, furniture, and\n equipment\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const personalPropertyCoverage = e.currentTarget.value;\n updateForm(\n ['buildingInfo', 'personalPropertyCoverage'],\n (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n personalPropertyCoverage\n }\n })\n );\n }}\n />\n \n {!!getError(['buildingInfo', 'personalPropertyCoverage']) && (\n \n {getError(['buildingInfo', 'personalPropertyCoverage'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.GeneralLiability) &&\n !application?.insuranceTypes.includes(InsuranceType.BusinessOwners) && (\n
\n Operational Information\n Tell us about the operations tied to this location\n \n
\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const annualSales = e.currentTarget.value;\n updateForm(['buildingInfo', 'annualSales'], (prev) => ({\n ...prev,\n buildingInfo: {\n ...prev.buildingInfo,\n annualSales\n }\n }));\n }}\n />\n \n {!!getError(['buildingInfo', 'annualSales']) && (\n \n {getError(['buildingInfo', 'annualSales'])}\n \n )}\n \n
\n
\n
\n )}\n {application?.insuranceTypes.includes(InsuranceType.WorkersCompensation) && (\n
\n Employee Information\n Tell us about the employees tied to this location\n \n
\n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numFullTimeEmployees = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'numFullTimeEmployees'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numFullTimeEmployees\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'numFullTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numFullTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numFullTimeEmployees'])}\n \n )}\n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const numPartTimeEmployees = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'numPartTimeEmployees'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n numPartTimeEmployees\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'numPartTimeEmployees'])}\n />\n {!!getError(['employeeInfo', 'numPartTimeEmployees']) && (\n \n {getError(['employeeInfo', 'numPartTimeEmployees'])}\n \n )}\n \n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown'\n ? e.preventDefault()\n : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const totalEmployeePayroll = e.currentTarget.value;\n updateForm(\n ['employeeInfo', 'totalEmployeePayroll'],\n (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n totalEmployeePayroll\n }\n })\n );\n }}\n invalid={!!getError(['employeeInfo', 'totalEmployeePayroll'])}\n />\n \n {!!getError(['employeeInfo', 'totalEmployeePayroll']) && (\n \n {getError(['employeeInfo', 'totalEmployeePayroll'])}\n \n )}\n \n {/* \n \n \n Choose the role that best describes these employees.\n \n \n updateForm(['employeeInfo', 'jobCode'], (prev) => ({\n ...prev,\n employeeInfo: {\n ...prev?.employeeInfo,\n jobCode\n }\n }))\n }\n options={\n jobCodes?.map((jobCode) => ({\n label: jobCode.description,\n value: jobCode.id\n })) || []\n }\n error={getError(['employeeInfo', 'jobCode'])}\n disabled={loading}\n />\n */}\n
\n
\n
\n )}\n
\n
\n \n Discard\n \n \n
\n
\n
\n \n
\n
\n
\n
\n\n {!application?.locations?.length && (\n
\n \n

No locations added

\n

Add a business location to continue.

\n
\n history.push(`/commercial/app/${application?.id}/business`)}\n disabled={loading}\n >\n Previous Page\n \n \n \n
\n
\n )}\n\n {!!application?.locations?.length && (\n
    \n {application.locations.map((location, i) => (\n \n
    \n
    \n
    \n

    \n {location.address.line1}\n

    \n

    \n {location.address.city}, {location.address.zone}\n

    \n {location.isPrimary && (\n \n Primary Location\n \n )}\n
    \n \n
    \n\n {locationIndexHasError(i) && (\n \n Please correct errors before proceeding.\n \n )}\n
    \n
    \n
    \n
    \n removeLocation(location.id)}\n disabled={loading}\n >\n \n Remove\n \n
    \n
    \n editLocation(location.id)}\n disabled={loading}\n >\n \n Edit\n \n
    \n
    \n
    \n \n ))}\n
  • \n \n \n \n Add another location\n \n \n
  • \n
\n )}\n\n {!!application?.locations?.length && (\n
\n history.push(`/commercial/app/${application?.id}/business`)}\n disabled={loading}\n >\n Previous Page\n \n \n Save and continue\n \n
\n )}\n \n );\n};\n\nexport const LocationsSkeleton = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport const Losses = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [hasLosses, setHasLosses] = React.useState<'YES' | 'NO' | null>(null);\n const [form, setForm] = React.useState<\n {\n claimDate?: string;\n claimStatus?: string;\n lossDate?: string;\n lossDescription?: string;\n lossState?: string;\n lossType?: string;\n policyEffectiveDate?: string;\n policyExpirationDate?: string;\n policyType?: string;\n totalPaidAmount?: string;\n totalReservedAmount?: string;\n }[]\n >([]);\n\n React.useEffect(() => {\n if (application?.pastPolicyLosses?.length) {\n setHasLosses('YES');\n setForm(\n application.pastPolicyLosses.map((l) => ({\n claimDate: l.claimDate ? new Date(l.claimDate).toISOString().split('T')[0] : undefined,\n claimStatus: l.claimStatus || '',\n lossDate: l.lossDate ? new Date(l.lossDate).toISOString().split('T')[0] : undefined,\n lossDescription: l.lossDescription,\n lossState: l.lossState || '',\n lossType: l.lossType || '',\n policyEffectiveDate: l.policyEffectiveDate\n ? new Date(l.policyEffectiveDate).toISOString().split('T')[0]\n : undefined,\n policyExpirationDate: l.policyExpirationDate\n ? new Date(l.policyExpirationDate).toISOString().split('T')[0]\n : undefined,\n policyType: l.policyType || '',\n totalPaidAmount: (l.totalPaidAmount || '').toString(),\n totalReservedAmount: (l.totalReservedAmount || '').toString()\n }))\n );\n }\n }, [application]);\n\n React.useEffect(() => {\n if (hasLosses === 'YES' && form.length === 0) {\n setForm([{}]);\n }\n }, [hasLosses]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = Array((application?.pastPolicyLosses?.length || 0) + 1)\n .fill(0)\n .flatMap((_, i) => [\n ['pastPolicyLosses', i.toString(), 'claimDate'],\n ['pastPolicyLosses', i.toString(), 'claimStatus'],\n ['pastPolicyLosses', i.toString(), 'lossDate'],\n ['pastPolicyLosses', i.toString(), 'lossDescription'],\n ['pastPolicyLosses', i.toString(), 'lossState'],\n ['pastPolicyLosses', i.toString(), 'lossType'],\n ['pastPolicyLosses', i.toString(), 'policyEffectiveDate'],\n ['pastPolicyLosses', i.toString(), 'policyExpirationDate'],\n ['pastPolicyLosses', i.toString(), 'policyType'],\n ['pastPolicyLosses', i.toString(), 'totalPaidAmount'],\n ['pastPolicyLosses', i.toString(), 'totalReservedAmount']\n ]);\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) => {\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n );\n });\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n const addLoss = () => updateForm([], (prev) => [...prev, {}]);\n\n const removeLoss = async (index: number) => {\n setValidationErrors([]);\n updateForm([], (prev) => prev.filter((_, i) => i !== index));\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n pastPolicyLosses:\n hasLosses === 'YES'\n ? form.map((l) => ({\n claimDate: l.claimDate || '',\n claimStatus: l.claimStatus || undefined,\n lossDate: l.lossDate || '',\n lossDescription: l.lossDescription || '',\n lossState: l.lossState || '',\n lossType: l.lossType || undefined,\n policyEffectiveDate: l.policyExpirationDate\n ? yearsAgo(l.policyExpirationDate, 1)\n : '',\n policyExpirationDate: l.policyExpirationDate || '',\n policyType: l.policyType || undefined,\n totalPaidAmount: parseFloat((l.totalPaidAmount || '0').replace(/[$,]/g, '')),\n totalReservedAmount: parseFloat(\n (l.totalReservedAmount || '0').replace(/[$,]/g, '')\n )\n }))\n : []\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/carriers`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const yearsAgo = (d: string, n: number) => {\n const date = new Date(d);\n date.setFullYear(date.getFullYear() - n);\n return date.toISOString().split('T')[0];\n };\n\n return (\n }\n >\n
\n
\n \n \n \n \n Include all losses regardless of whether a claim was paid out by an insurance policy\n \n \n \n Yes\n \n \n No\n \n \n \n \n {hasLosses === 'YES' &&\n form.map((loss, i) => (\n \n
\n \n \n {\n const policyType = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'policyType'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, policyType: policyType as InsuranceType, lossType: '' }\n )\n );\n }}\n >\n \n \n \n \n \n \n {!!getError(['pastPolicyLosses', i.toString(), 'policyType']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'policyType'])}\n \n )}\n \n\n \n \n {\n const date = e.currentTarget.value;\n updateForm(\n ['pastPolicyLosses', i.toString(), 'policyExpirationDate'],\n (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : {\n ...loss,\n policyExpirationDate: date\n }\n )\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'policyExpirationDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'policyExpirationDate'])}\n \n )}\n \n\n \n \n {\n const lossType = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossType'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, lossType: lossType as PastPolicyLossType }\n )\n );\n }}\n disabled={!loss.policyType}\n >\n \n {loss.policyType === InsuranceType.WorkersCompensation && (\n <>\n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.GeneralLiability && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.BusinessOwners && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {loss.policyType === InsuranceType.Cyber && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n {!!getError(['pastPolicyLosses', i.toString(), 'lossType']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossType'])}\n \n )}\n \n\n \n \n {\n const lossState = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossState'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, lossState }))\n );\n }}\n >\n \n {states.map((state) => (\n \n ))}\n \n {!!getError(['pastPolicyLosses', i.toString(), 'lossState']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossState'])}\n \n )}\n \n\n \n \n {\n const lossDate = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossDate'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, lossDate }))\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'lossDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossDate'])}\n \n )}\n \n\n \n \n {\n const claimDate = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'claimDate'], (prev) =>\n prev.map((loss, index) => (i !== index ? loss : { ...loss, claimDate }))\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'claimDate']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'claimDate'])}\n \n )}\n \n\n \n \n {\n const claimStatus = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'claimStatus'], (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : { ...loss, claimStatus: claimStatus as PastPolicyLossClaimStatus }\n )\n );\n }}\n >\n \n \n \n \n {!!getError(['pastPolicyLosses', i.toString(), 'claimStatus']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'claimStatus'])}\n \n )}\n \n\n \n \n \n \n \n e.key === 'ArrowUp' || e.key === 'ArrowDown' ? e.preventDefault() : null\n }\n onWheel={(e) => e.currentTarget.blur()}\n onChange={(e) => {\n const amount = e.currentTarget.value;\n updateForm(\n ['pastPolicyLosses', i.toString(), 'totalPaidAmount'],\n (prev) =>\n prev.map((loss, index) =>\n i !== index\n ? loss\n : {\n ...loss,\n totalPaidAmount: amount,\n totalReservedAmount: '0'\n }\n )\n );\n }}\n />\n \n {!!getError(['pastPolicyLosses', i.toString(), 'totalPaidAmount']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'totalPaidAmount'])}\n \n )}\n \n\n \n \n {\n const lossDescription = e.currentTarget.value;\n updateForm(['pastPolicyLosses', i.toString(), 'lossDescription'], (prev) =>\n prev.map((loss, index) =>\n i !== index ? loss : { ...loss, lossDescription }\n )\n );\n }}\n />\n {!!getError(['pastPolicyLosses', i.toString(), 'lossDescription']) && (\n \n {getError(['pastPolicyLosses', i.toString(), 'lossDescription'])}\n \n )}\n \n
\n\n
\n {form.length > 1 && (\n \n )}\n {i === form.length - 1 && (\n \n )}\n
\n
\n ))}\n
\n\n
\n history.push(`/commercial/app/${application?.id}/locations`)}\n disabled={loading}\n >\n Previous Page\n \n \n Save and continue\n \n
\n
\n \n );\n};\n\nexport const LossesSkeleton = () => {\n return (\n
\n
\n \n \n \n \n \n \n \n
\n
\n );\n};\n\nexport const CarrierSelection = () => {\n const history = useHistory();\n\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n selectedCarriers: BusinessApplicationCarrier[];\n }>({ selectedCarriers: [] });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n selectedCarriers: application?.selectedCarriers || []\n });\n }, [application]);\n\n // Define the error fields that need to be validated on this page\n const errorFields = [['selectedCarriers']];\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (fieldParts: string[]) =>\n validationErrors.find(\n (e) => e.field.length === fieldParts.length && e.field.every((v, i) => v === fieldParts[i])\n )?.message;\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n selectedCarriers: form.selectedCarriers\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/underwriting`);\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const onSubmitWithNoQuotes = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!application) {\n return;\n }\n\n try {\n setLoading(true);\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: SubmitBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application.id\n }\n });\n\n if (res.data?.submitBusinessApplication) {\n updateApplication(res.data.submitBusinessApplication);\n }\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n history.push(`/commercial/app/${application.id}/complete`);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n const rates =\n application?.quotableCarriers?.length === undefined\n ? []\n : application?.insuranceTypes?.map((t) => ({\n name: getDisplayInsuranceType(t),\n id: t,\n description: insuranceTypes.find((i) => i.id === t)?.description || '',\n features: insuranceTypes.find((i) => i.id === t)?.coverages || commonCoverages,\n online: !!application?.quotableCarriers?.some((c) => c.supportedPolicies?.includes(t))\n })) || [];\n\n return (\n }\n >\n
\n
\n {rates.map((quote) => (\n
\n {quote.online && (\n
\n
\n \n Great news! We found coverage.\n
\n
\n )}\n {!quote.online && (\n
\n
\n \n Online coverage not available.\n
\n
\n )}\n \n \n {quote.name}\n \n

\n {quote.description}\n

\n {quote.online && (\n \n {quote.features.map((feature) => (\n
  • \n \n {feature}\n
  • \n ))}\n \n )}\n {!quote.online && (\n

    \n We can't quote your business online, but we'll pair you with a dedicated\n insurance expert to find you coverage after you submit your application.\n

    \n )}\n
    \n
    \n ))}\n
    \n
    \n\n {!!application?.quotableCarriers?.length && (\n
    \n
    \n Select carriers\n \n By choosing more carriers, you'll increase the likelihood of getting a competitive\n quote. However, you may also need to answer more underwriting questions.\n \n \n ({\n displayText: c.name,\n value: c.id\n })) || []\n }\n onChange={() => {}}\n onChangeMulti={(selected) => {\n updateForm(['selectedCarriers'], (prev) => ({\n ...prev,\n selectedCarriers: selected as BusinessApplicationCarrier[]\n }));\n }}\n error={getError(['selectedCarriers'])}\n />\n \n
    \n
    \n history.push(`/commercial/app/${application?.id}/losses`)}\n >\n Back to Application\n \n \n
    \n
    \n )}\n\n {!application?.quotableCarriers?.length && (\n
    \n
    \n history.push(`/commercial/app/${application?.id}/losses`)}\n >\n Back to Application\n \n \n
    \n
    \n )}\n \n );\n};\n\nexport const CarrierSelectionSkeleton = () => {\n return (\n
    \n
    \n
    \n
    \n \n \n \n
      \n \n \n \n \n
    \n
    \n
    \n \n \n \n
      \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport const UnderwritingProgress = (props: {\n steps: string[];\n currentStep: number;\n onClick: (step: number) => void;\n}) => {\n return (\n \n );\n};\n\nconst MarkdownStyleContainer = styled.div`\n color: #4b5563;\n\n h1 {\n &:first-child {\n margin-top: 0;\n padding-top: 0;\n }\n\n font-size: 1.375rem;\n }\n h2 {\n font-size: 1.25rem;\n }\n h3 {\n font-size: 1.125rem;\n }\n h4 {\n font-size: 1rem;\n }\n h5 {\n font-size: 0.875rem;\n }\n h6 {\n font-size: 0.875rem;\n }\n p {\n font-size: 0.875rem;\n line-height: 1rem;\n margin: 0.5rem 0;\n }\n`;\n\nexport const CarrierStatement = (props: { statements: UnderwritingStatement[] }) => {\n return (\n
    \n \n {props.statements.map((s) => s.markdown).join('\\n\\n')}\n \n
    \n );\n};\n\nconst getCarrierName = (carrier: BusinessApplicationCarrier): string => {\n switch (carrier) {\n case BusinessApplicationCarrier.Amtrust:\n return 'AmTrust';\n case BusinessApplicationCarrier.Biberk:\n return 'BiBerk';\n case BusinessApplicationCarrier.Chubb:\n return 'Chubb';\n case BusinessApplicationCarrier.Cna:\n return 'CNA';\n case BusinessApplicationCarrier.Coalition:\n return 'Coalition';\n case BusinessApplicationCarrier.Coterie:\n return 'Coterie';\n case BusinessApplicationCarrier.Employers:\n return 'Employers';\n case BusinessApplicationCarrier.Gaig:\n return 'Great American';\n case BusinessApplicationCarrier.Guard:\n return 'Guard';\n case BusinessApplicationCarrier.Hiscox:\n return 'Hiscox';\n case BusinessApplicationCarrier.Libertymutual:\n return 'Liberty Mutual';\n case BusinessApplicationCarrier.Markel:\n return 'Markel';\n case BusinessApplicationCarrier.Nationwide:\n return 'Nationwide';\n case BusinessApplicationCarrier.Next:\n return 'Next';\n case BusinessApplicationCarrier.Progressive:\n return 'Progressive';\n case BusinessApplicationCarrier.Travelers:\n return 'Travelers';\n }\n};\n\nexport const Underwriting = () => {\n const history = useHistory();\n\n // Common state variables\n const { application, updateApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n const [validationErrors, setValidationErrors] = React.useState([]);\n const [carrierIndex, setCarrierIndex] = React.useState(0);\n\n // Define the form variables\n const [form, setForm] = React.useState<{\n generalAnswers: { [key: string]: string | null | undefined };\n locationAnswers: { [key: string]: { [key: string]: string | null | undefined } };\n }>({ generalAnswers: {}, locationAnswers: {} });\n\n // Set the form values based on the application\n React.useEffect(() => {\n setForm({\n generalAnswers:\n application?.underwritingAnswers\n ?.filter((a) => !a.locationId)\n .reduce(\n (acc, answer) => ({\n ...acc,\n [answer.questionId]: answer.answer\n }),\n {}\n ) || {},\n locationAnswers:\n application?.underwritingAnswers\n ?.filter((a) => !!a.locationId)\n .reduce(\n (acc, answer) => ({\n ...acc,\n [answer.locationId || '']: {\n ...acc[answer.locationId || ''],\n [answer.questionId]: answer.answer\n }\n }),\n {}\n ) || {}\n });\n }, [application]);\n\n // Reset the scroll position when the carrier index changes\n React.useEffect(() => {\n window.scrollTo(0, 0);\n }, [carrierIndex]);\n\n // Define the error fields that need to be validated on this page\n const errorFields =\n application?.underwritingQuestions.map((question) => ['underwritingQuestions', question.id]) ||\n [];\n\n // List of carriers to display questions for\n const carriers = [\n ...new Set(application?.underwritingQuestions.flatMap((question) => question.carriers))\n ].sort((a, b) => a.localeCompare(b));\n\n // Questions grouped by carriers\n const carrierQuestionGroups = carriers.map((carrier) => ({\n carrier: carrier,\n generalQuestions:\n application?.underwritingQuestions.filter(\n (question) => !question.locationId && question.carriers.includes(carrier)\n ) || [],\n locationQuestions:\n application?.locations\n .map((location) => ({\n location: location.address.line1,\n questions: application?.underwritingQuestions.filter(\n (question) => question.locationId === location.id && question.carriers.includes(carrier)\n )\n }))\n .filter((v) => !!v.questions?.length) || [],\n statements: application?.underwritingStatements.filter((s) => s.carrier === carrier) || []\n }));\n\n // Define an update handler for the form\n const updateFormMulti = (\n fieldPartsList: string[][],\n update: (prev: typeof form) => typeof form\n ) => {\n fieldPartsList.forEach((fieldParts) =>\n setValidationErrors((prev) =>\n prev.filter(\n (e) =>\n e.field.length !== fieldParts.length || !e.field.every((v, i) => v === fieldParts[i])\n )\n )\n );\n setForm((prev) => update(prev));\n };\n\n const updateForm = (fieldParts: string[], update: (prev: typeof form) => typeof form) =>\n updateFormMulti([fieldParts], update);\n\n // Get the error message for a specific field\n const getError = (questionId: string, locationId?: string) =>\n validationErrors.find(\n (e) =>\n e.field[0] === 'underwritingQuestions' &&\n (e.field[1] === questionId || (e.field[1] === locationId && e.field[2] === questionId))\n )?.message;\n\n const renderQuestion = (question: UnderwritingQuestion) => {\n const componentTypeMap = {\n [UnderwritingQuestionType.Date]: UnderwritingForm.DateField,\n [UnderwritingQuestionType.Radio]: UnderwritingForm.RadioField,\n [UnderwritingQuestionType.Email]: UnderwritingForm.EmailField,\n [UnderwritingQuestionType.Phonenumber]: UnderwritingForm.PhoneNumberField,\n [UnderwritingQuestionType.Number]: UnderwritingForm.NumberField,\n [UnderwritingQuestionType.Year]: UnderwritingForm.YearField,\n [UnderwritingQuestionType.Text]: UnderwritingForm.TextField,\n [UnderwritingQuestionType.Singleselectdropdown]: UnderwritingForm.SelectField,\n [UnderwritingQuestionType.Multiselectdropdown]: UnderwritingForm.MultiSelectField\n };\n\n // Check if the question type is present in the component type map\n if (!componentTypeMap[question.type]) {\n return null;\n }\n\n const updateGeneralForm = (value: string) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n generalAnswers: {\n ...prev.generalAnswers,\n [question.id]: value\n }\n }));\n\n const updateLocationForm = (value: string) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n locationAnswers: {\n ...prev.locationAnswers,\n [question.locationId || '']: {\n ...prev.locationAnswers[question.locationId || ''],\n [question.id]: value\n }\n }\n }));\n\n const updateGeneralFormMulti = (values: string[]) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n generalAnswers: {\n ...prev.generalAnswers,\n [question.id]: values.filter((v) => !!v).join(':#:')\n }\n }));\n\n const updateLocationFormMulti = (values: string[]) =>\n updateForm(['underwritingQuestions', question.id], (prev) => ({\n ...prev,\n locationAnswers: {\n ...prev.locationAnswers,\n [question.locationId || '']: {\n ...prev.locationAnswers[question.locationId || ''],\n [question.id]: values.filter((v) => !!v).join(':#:')\n }\n }\n }));\n\n return React.createElement(componentTypeMap[question.type], {\n // Common props\n key: question.id,\n label: question.question,\n description: question.tooltip,\n error: getError(question.id),\n\n // Props for single-value fields\n value: question.locationId\n ? form.locationAnswers[question.locationId]?.[question.id] || undefined\n : form.generalAnswers[question.id] || undefined,\n onChange: question.locationId ? updateLocationForm : updateGeneralForm,\n\n // Props for multiple-value fields\n options: question.answerOptions || [],\n values: question.locationId\n ? form.locationAnswers[question.locationId]?.[question.id]?.split(':#:') || []\n : form.generalAnswers[question.id]?.split(':#:') || [],\n onChangeMulti: question.locationId ? updateLocationFormMulti : updateGeneralFormMulti\n });\n };\n\n const filterQuestion = (question: UnderwritingQuestion) => {\n // Question should be shown if there are no parent questions.\n if (!question.hasParentQuestion) {\n return true;\n }\n\n // Otherwise, evaluate the rules to determine if the question should be shown.\n // First find all questions that have a rule that references this question.\n const parentQuestions =\n application?.underwritingQuestions.filter((q) =>\n q.dependentQuestions?.some((d) => d.dependentQuestionIds.includes(question.id))\n ) || [];\n\n return parentQuestions.every((parentQuestion) => {\n const rules =\n parentQuestion.dependentQuestions?.filter((d) =>\n d.dependentQuestionIds.includes(question.id)\n ) || [];\n\n return (\n filterQuestion(parentQuestion) &&\n rules.some((rule) => {\n // If the parent condition is a direct dependency, return try\n if (rule.type === UnderwritingQuestionDependencyType.Direct) {\n return true;\n }\n\n // check if the rule is satisfied directly\n const answerForm = question.locationId\n ? form.locationAnswers[question.locationId]\n : form.generalAnswers;\n const parentAnswer = answerForm?.[parentQuestion.id]?.split(':#:') || [];\n const validAnswers = rule.condition?.split('|') || [];\n\n if (parentAnswer && validAnswers.some((answer) => parentAnswer.includes(answer))) {\n return true;\n }\n\n // check if the rule is satisfied by condition. make this more robust by actually\n // evaluating the condition, but requires backend implementation too.\n if (\n ['<', '>', '<=', '>=', '==', '&&', '||'].some(\n (op) => rule.condition && rule.condition.indexOf(op) >= 0\n )\n ) {\n return true;\n }\n\n return false;\n })\n );\n });\n };\n\n // Handle form submission, i.e. updating the application on the backend.\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: UpdateBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application?.id,\n application: {\n underwritingAnswers: [\n ...Object.entries(form.generalAnswers)\n .filter(([, answer]) => !!answer)\n .map(([questionId, answer]) => ({\n questionId,\n answer\n })),\n ...Object.entries(form.locationAnswers).flatMap(([locationId, answers]) =>\n Object.entries(answers)\n .filter(([, answer]) => !!answer)\n .map(([questionId, answer]) => ({\n questionId,\n answer,\n locationId\n }))\n )\n ]\n }\n }\n });\n\n const validationErrors =\n res.errors\n ?.filter((e) => !!e.extensions?.validationError)\n ?.map((e) => e.extensions?.validationError as ValidationError) || [];\n\n const noValidationErrorMatched = validationErrors.every(\n (e) =>\n !errorFields.some(\n (f) => f.length === e.field.length && f.every((v, i) => v === e.field[i])\n )\n );\n\n const otherErrors = res.errors?.filter((e) => !e.extensions?.validationError) || [];\n if (otherErrors.length > 0) {\n throw new ApolloError({ graphQLErrors: otherErrors });\n }\n\n setValidationErrors(validationErrors);\n updateApplication(res.data?.updateBusinessApplication || application);\n\n if (noValidationErrorMatched) {\n history.push(`/commercial/app/${application?.id}/quote`);\n } else {\n // Set the carrier index of the first carrier that had an error\n setCarrierIndex(\n carrierQuestionGroups.findIndex(\n (c) =>\n c.generalQuestions.some((q) =>\n validationErrors.some((v) => v.field.at(-1) === q.id)\n ) ||\n c.locationQuestions.some((location) =>\n location.questions.some((q) =>\n validationErrors.some((v) => v.field.at(-1) === q.id)\n )\n )\n )\n );\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n }\n >\n {carriers.length > 1 && (\n
    \n \n
    \n )}\n
    \n {!!carrierQuestionGroups[carrierIndex]?.generalQuestions?.length && (\n
    \n General Questions\n \n {carrierQuestionGroups[carrierIndex].generalQuestions\n .filter(filterQuestion)\n .map((question) => renderQuestion(question))}\n \n
    \n )}\n {carrierQuestionGroups[carrierIndex]?.locationQuestions.map((location) => (\n
    \n Questions for location: {location.location}\n \n {location.questions\n .filter(filterQuestion)\n .map((question) => renderQuestion(question))}\n \n
    \n ))}\n {!!carrierQuestionGroups[carrierIndex]?.statements.length && (\n
    \n \n
    \n )}\n\n
    \n history.push(`/commercial/app/${application?.id}/carriers`)}\n disabled={loading}\n >\n Back to Carriers\n \n {carrierIndex > 0 && carriers.length > 1 && (\n setCarrierIndex((prev) => prev - 1)}\n disabled={loading}\n >\n Previous Page\n \n )}\n {carrierIndex < carriers.length - 1 && carriers.length > 1 && (\n setCarrierIndex((prev) => prev + 1)}\n disabled={loading}\n >\n Next Page\n \n )}\n {carrierIndex === carriers.length - 1 && (\n \n )}\n
    \n
    \n \n );\n};\n\nconst UnderwritingSkeleton = () => {\n return (\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n );\n};\n\nconst BindQuote = (props: {\n quote?: ApplicationQuoteFieldsFragment['quotes'][number];\n loading: boolean;\n error?: string;\n open: boolean;\n onClose: () => void;\n onBind: (\n paymentPlanId?: string,\n paymentMethod?: PaymentPlanPaymentMethodType\n ) => Promise;\n}) => {\n const [bindOptions, setBindOptions] = React.useState({\n paymentMethod: '',\n paymentPlanId: ''\n });\n\n React.useEffect(() => {\n setBindOptions({\n paymentMethod: '',\n paymentPlanId: ''\n });\n }, [props.quote]);\n\n const describePlan = (\n quote: ApplicationQuoteFieldsFragment['quotes'][number]['paymentPlans'][number]\n ) => {\n if (quote.installmentCount == 0) {\n return `Single payment of ${currencyFormatter.format(quote.totalAmount)} due today.`;\n }\n\n const cadance =\n quote.installmentFrequency === PaymentPlanInstallmentFrequency.Monthly\n ? 'monthly'\n : quote.installmentFrequency === PaymentPlanInstallmentFrequency.Quarterly\n ? 'quarterly'\n : 'annual';\n\n const firstInstallmentDate = quote.installmentDueAt\n ? new Date(quote.installmentDueAt).toLocaleDateString()\n : null;\n\n return `Down payment of ${currencyFormatter.format(quote.downAmount)} due today, followed by ${quote.installmentCount} ${cadance} payments of ${currencyFormatter.format(quote.installmentAmount)} starting ${firstInstallmentDate}.`;\n };\n\n const paymentPlansSorted =\n props.quote?.paymentPlans\n .filter((plan) => plan.paymentMethod === bindOptions.paymentMethod)\n .sort((a, b) => b.downAmount - a.downAmount) || [];\n\n const paymentPlans =\n paymentPlansSorted.length > 2\n ? [paymentPlansSorted.at(0)!, paymentPlansSorted.at(-1)!]\n : paymentPlansSorted;\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n props.onBind(\n !!bindOptions.paymentPlanId && bindOptions.paymentPlanId !== 'NO_PAYMENT_PLAN'\n ? bindOptions.paymentPlanId\n : undefined,\n (bindOptions.paymentMethod as PaymentPlanPaymentMethodType) || undefined\n );\n };\n\n return (\n \n \n\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n Bind Coverage\n \n
    \n \n \n Close panel\n \n \n
    \n
    \n
    \n

    \n Complete this form to finalize your coverage\n

    \n
    \n
    \n {props.quote && (\n
    \n
    \n \n {getDisplayInsuranceType(props.quote.policyType)}\n \n

    \n Thank you for choosing Oyster, in partnership with{' '}\n {getCarrierName(props.quote.carrier)}, for your{' '}\n {getDisplayInsuranceType(props.quote.policyType)} coverage. Please review\n the details below and confirm your selection.\n

    \n
    \n
    \n \n \n {currencyFormatter.format(props.quote.premiumAmount)}\n \n \n \n {currencyFormatter.format(props.quote.totalAmount)}\n \n
    \n {props.quote.type === BusinessApplicationQuoteType.Bridge && (\n \n \n \n An agent will be in touch to review payment options.\n \n \n )}\n {props.quote.type === BusinessApplicationQuoteType.BindOnline &&\n props.quote.paymentPlans.length > 0 && (\n \n \n \n {\n const paymentMethod = e.currentTarget\n .value as PaymentPlanPaymentMethodType;\n setBindOptions((prev) => ({\n ...prev,\n paymentPlanId: '',\n paymentMethod\n }));\n }}\n >\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.DirectDebit\n )\n }\n >\n Direct Debit\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.ElectronicFundTransfer\n )\n }\n >\n EFT\n \n \n p.paymentMethod ===\n PaymentPlanPaymentMethodType.CreditCard\n )\n }\n >\n Credit Card\n \n \n \n {!!paymentPlans.length && (\n \n \n \n setBindOptions((prev) => ({ ...prev, paymentPlanId: e }))\n }\n >\n {paymentPlans.map((plan) => (\n \n \n \n \n \n \n \n {plan.title}\n \n \n
    \n {describePlan(plan)}\n
    \n
    \n \n \n ))}\n \n
    \n )}\n
    \n )}\n {!!props.quote && !props.quote.paymentPlans.length && (\n \n \n \n \n setBindOptions((prev) => ({ ...prev, paymentPlanId: e }))\n }\n >\n \n \n \n \n \n \n \n Pay in full\n \n \n
    \n Single payment of{' '}\n {currencyFormatter.format(props.quote.totalAmount)} due today.\n
    \n
    \n \n \n \n
    \n
    \n )}\n
    \n {props.quote.type === BusinessApplicationQuoteType.BindOnline && (\n

    \n By clicking below and binding this policy, you agree to the terms laid out\n in{' '}\n \n the quote proposal\n {' '}\n and agree to make payments according to the selected schedule. Payment\n amounts may differ slightly in the carrier's system.\n

    \n )}\n {props.quote.type === BusinessApplicationQuoteType.Bridge && (\n

    \n By clicking below and binding this policy, you agree to the terms laid out\n in{' '}\n \n the quote proposal\n {' '}\n and agree to make the required payments for this policy. An agent will\n reach out to you to finalize the policy details and payment schedule.\n

    \n )}\n \n Agree and Bind\n \n {props.error && (\n
    {props.error}
    \n )}\n
    \n
    \n )}\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport const Quote = () => {\n const history = useHistory();\n const { applicationId, application, updateApplication, getApplication, setError } =\n React.useContext(ApplicationContext);\n\n const [open, setOpen] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n const [showProgress, setShowProgress] = React.useState(false);\n const [bindLoading, setBindLoading] = React.useState(false);\n const [bindError, setBindError] = React.useState();\n const [bindQuote, setBindQuote] =\n React.useState();\n const [submitLoading, setSubmitLoading] = React.useState(false);\n\n const onLoadLoop = async () => {\n setShowProgress(true);\n\n try {\n const res = await getApplication();\n if (res.state === BusinessApplicationState.Quoted) {\n updateApplication(res);\n return res;\n } else {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n return await onLoadLoop();\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setShowProgress(false);\n }\n\n return null;\n };\n\n const onLoad = async () => {\n // Submit the application for quoting\n setLoading(true);\n updateApplication(undefined);\n\n try {\n const [res] = await Promise.all([\n getMerchantGraphQLClient().mutate({\n mutation: QuoteBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: applicationId\n }\n }),\n new Promise((resolve) => setTimeout(resolve, 500))\n ]);\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n if (res.data?.quoteBusinessApplication?.state) {\n updateApplication(res.data.quoteBusinessApplication);\n\n if (res.data.quoteBusinessApplication.state === BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${applicationId}/complete`);\n }\n\n if (res.data.quoteBusinessApplication?.state !== BusinessApplicationState.Quoted) {\n return await onLoadLoop();\n }\n\n return res.data.quoteBusinessApplication;\n }\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setLoading(false);\n }\n\n return null;\n };\n\n // Quote display criteria:\n const selectQuote = (quotes: ApplicationQuoteFieldsFragment['quotes']) => {\n // If there are any quotes that are in the binding state, return those\n const bindingQuote = quotes.find((q) => q.state === BusinessApplicationQuoteState.Binding);\n if (bindingQuote) {\n return {\n ...bindingQuote,\n bound: true,\n isOnline: bindingQuote.type === BusinessApplicationQuoteType.BindOnline\n };\n }\n\n const bindOnlineQuotes = quotes.filter(\n (q) => q.type === BusinessApplicationQuoteType.BindOnline && q.premiumAmount > 0\n );\n const bridgeQuotes = quotes.filter(\n (q) => q.type === BusinessApplicationQuoteType.Bridge && q.premiumAmount > 0\n );\n\n // Choose the cheapest quote for each type\n const bindOnlineQuote =\n bindOnlineQuotes.length === 0\n ? null\n : bindOnlineQuotes.reduce(\n (prev, curr) => (prev.totalAmount < curr.totalAmount ? prev : curr),\n bindOnlineQuotes[0]\n );\n\n const bridgeQuote =\n bridgeQuotes.length === 0\n ? null\n : bridgeQuotes.reduce(\n (prev, curr) => (prev.totalAmount < curr.totalAmount ? prev : curr),\n bridgeQuotes[0]\n );\n\n if (!bridgeQuote && bindOnlineQuote) {\n return { ...bindOnlineQuote, isOnline: true, bound: false };\n }\n\n if (!bindOnlineQuote && bridgeQuote) {\n return { ...bridgeQuote, isOnline: false, bound: false };\n }\n\n if (!!bridgeQuote && !!bindOnlineQuote) {\n const bindOnlineQuoteAmount = bindOnlineQuote.totalAmount;\n const bridgeQuoteAmount = bridgeQuote.totalAmount;\n\n // If the BIND_ONLINE is <= 15% more expensive than the BRIDGE quote, select the BIND_ONLINE quote.\n if (bindOnlineQuoteAmount <= bridgeQuoteAmount * 1.15) {\n return { ...bindOnlineQuote, isOnline: true, bound: false };\n }\n\n return { ...bridgeQuote, isOnline: false, bound: false };\n }\n\n return null;\n };\n\n const coverageTypes =\n application?.insuranceTypes.map((t) => ({\n name: getDisplayInsuranceType(t),\n id: t,\n features: insuranceTypes.find((i) => i.id === t)?.coverages || commonCoverages,\n quote: selectQuote(application?.quotes?.filter((q) => q.policyType === t) || [])\n })) || [];\n\n const onBind = async (paymentPlanId?: string, paymentMethod?: PaymentPlanPaymentMethodType) => {\n if (!application?.id || !bindQuote?.id) {\n return;\n }\n\n setBindLoading(true);\n\n try {\n const res = await getMerchantGraphQLClient().mutate({\n mutation: BindQuoteDocument,\n errorPolicy: 'all',\n variables: {\n applicationId: application.id,\n quoteId: bindQuote.id,\n paymentPlanId,\n paymentMethod\n }\n });\n\n if (res.data?.bindQuote) {\n updateApplication(res.data.bindQuote);\n }\n\n if (res.errors?.[0]?.message) {\n setBindError(res.errors[0].message);\n } else {\n setOpen(false);\n }\n } catch (e) {\n setBindError((e as Error).message);\n } finally {\n setBindLoading(false);\n }\n };\n\n const onSubmitApplication = async () => {\n if (!application) {\n return;\n }\n\n try {\n setSubmitLoading(true);\n\n const res = await getMerchantGraphQLClient().mutate({\n mutation: SubmitBusinessApplicationDocument,\n errorPolicy: 'all',\n variables: {\n id: application.id\n }\n });\n\n if (res.data?.submitBusinessApplication) {\n updateApplication(res.data.submitBusinessApplication);\n }\n\n if (res.errors?.[0]?.message) {\n throw new ApolloError({ graphQLErrors: res.errors });\n }\n\n history.push(`/commercial/app/${application.id}/complete`);\n } catch (e) {\n setError(e as ApolloError);\n } finally {\n setSubmitLoading(false);\n }\n };\n\n return (\n \n \n {showProgress && (\n \n \n \n )}\n \n \n \n }\n >\n setOpen(false)}\n onBind={onBind}\n />\n\n {coverageTypes.some((coverage) => !!coverage.quote?.bound) && (\n
    \n
    \n
    \n \n
    \n
    \n

    \n Your bind has been recorded, but you still need to submit your application for your\n coverage to be confirmed by our team.\n

    \n {coverageTypes.some((coverage) => !coverage.quote) && (\n

    \n Since not all coverage could be found online, we'll also match you with a\n dedicated specialist to find the remaining coverage after you finish and submit\n your application.\n

    \n )}\n
    \n
    \n
    \n )}\n\n {coverageTypes.some((coverage) => !coverage.quote) &&\n !coverageTypes.some((coverage) => !!coverage.quote?.bound) && (\n
    \n
    \n
    \n \n
    \n
    \n

    \n Since not all coverage could be found online, we'll match you with a dedicated\n specialist to find the remaining coverage after you finish and submit your\n application.\n

    \n
    \n
    \n
    \n )}\n\n
    \n
    \n {coverageTypes.map((coverage) => (\n \n

    \n {coverage.quote?.carrier ? getCarrierName(coverage.quote.carrier) : 'Not available'}\n

    \n

    \n {coverage.name}\n

    \n {!!coverage.quote && (\n <>\n

    \n \n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(coverage.quote.premiumAmount)}\n \n \n /year\n \n

    \n

    \n \n +\n {new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0,\n maximumFractionDigits: 2\n }).format(coverage.quote.totalAmount - coverage.quote.premiumAmount)}{' '}\n in fees and taxes\n \n

    \n \n )}\n {!!coverage.quote && (\n \n {coverage.features.map((feature) => (\n
  • \n \n {feature}\n
  • \n ))}\n \n )}\n {!!coverage.quote?.bound && (\n \n Bind confirmed\n \n \n \n \n )}\n {!coverage.quote?.bound && !!coverage.quote?.isOnline && (\n {\n setBindQuote(coverage.quote!);\n setOpen(true);\n }}\n disabled={bindLoading || submitLoading}\n className={clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none'\n )}\n >\n Bind Now\n \n )}\n {!!coverage.quote && !coverage.quote.bound && !coverage.quote.isOnline && (\n {\n setBindQuote(coverage.quote!);\n setOpen(true);\n }}\n disabled={bindLoading || submitLoading}\n className={clsx(\n 'w-full bg-primary-500 text-white shadow-sm hover:bg-primary-50 hover:text-primary-700 hover:outline hover:outline-primary-700 cursor-pointer',\n 'font-heading transition-all',\n 'mt-6 block rounded-md px-3 py-2 text-center text-sm font-semibold leading-6 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500',\n\n 'data-[disabled]:opacity-75 data-[disabled]:cursor-not-allowed data-[disabled]:hover:bg-primary-500 data-[disabled]:hover:text-white data-[disabled]:hover:outline-none data-[disabled]:focus-visible:outline-none'\n )}\n >\n Bind with Agent\n \n )}\n {!!coverage.quote?.quoteProposalUrl && (\n \n View quote proposal\n \n )}\n {!coverage.quote && (\n
    \n

    \n We can't quote your business online, but we'll pair you with a dedicated\n insurance expert to find you coverage after you finish and submit your\n application.\n

    \n
    \n )}\n
    \n ))}\n
    \n
    \n\n
    e.preventDefault()}>\n
    \n history.push(`/commercial/app/${application?.id}/underwriting`)}\n >\n Back to Underwriting\n \n \n Finish and Submit\n \n
    \n
    \n \n );\n};\n\nconst QuoteSkeleton = () => {\n return (\n <>\n
    \n
    \n
    \n \n \n \n \n\n
      \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n\n
      \n \n \n \n
    \n \n
    \n
    \n
    \n \n );\n};\n\nconst QuoteProgress = () => {\n // Build a two-minute animation to keep the user engaged while the quote loads\n const steps = [\n { title: 'Verifying application data...', maxDuration: 2500, maxWidth: 4 },\n { title: 'Submitting application...', maxDuration: 4000, maxWidth: 11 },\n { title: 'Waiting for carriers...', maxDuration: 6000, maxWidth: 22 },\n { title: 'Checking carrier status...', maxDuration: 10000, maxWidth: 34 },\n { title: 'Gathering quotes...', maxDuration: 6000, maxWidth: 48 },\n { title: 'Gathering quotes...', maxDuration: 4000, maxWidth: 62 },\n { title: 'Gathering quotes...', maxDuration: 8000, maxWidth: 72 },\n { title: 'Gathering quotes...', maxDuration: 6000, maxWidth: 81 },\n { title: 'Gathering quotes...', maxDuration: 4000, maxWidth: 88 },\n { title: 'Gathering quotes...', maxDuration: 16000, maxWidth: 93 },\n { title: 'Finalizing...', maxDuration: 30000, maxWidth: 100 }\n ];\n\n const [stepIndex, setStepIndex] = React.useState(0);\n React.useEffect(() => {\n if (stepIndex === steps.length) {\n return;\n }\n\n const timeout = setTimeout(() => {\n setStepIndex((prev) => (prev >= steps.length - 1 ? prev : prev + 1));\n }, steps[stepIndex].maxDuration); // add jitter\n\n return () => clearTimeout(timeout);\n }, [stepIndex]);\n\n return (\n <>\n
    \n
    \n \n Getting your quotes\n \n

    \n Hang tight and we'll have your quotes ready in just a moment. Please don't navigate away\n from the page.\n

    \n
    \n {steps[stepIndex].title}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport const Complete = () => {\n const history = useHistory();\n const { application, loadApplication, setError } = React.useContext(ApplicationContext);\n const [loading, setLoading] = React.useState(false);\n\n const onLoad = async () => {\n const res = await loadApplication();\n if (!!res && res.state !== BusinessApplicationState.Submitted) {\n history.push(`/commercial/app/${res.id}`);\n }\n if (!res) {\n history.push('/commercial');\n }\n\n return res;\n };\n\n const onComplete = async () => {\n setLoading(true);\n try {\n await merchantUserSignInInit(application?.contact.email || '');\n history.push(`/signin?email=${encodeURIComponent(application?.contact.email || '')}`);\n } catch (e) {\n setError(new ApolloError({ graphQLErrors: [{ message: (e as Error).message }] }));\n } finally {\n setLoading(false);\n }\n };\n\n const bindingQuotes =\n application?.quotes.filter((q) => q.state === BusinessApplicationQuoteState.Binding) || [];\n const pendingCoverages =\n application?.insuranceTypes.filter(\n (i) => !application.quotes.some((q) => q.policyType === i)\n ) || [];\n\n return (\n }\n >\n
    \n {bindingQuotes.length > 0 && (\n
    \n
    \n \n Your quotes\n \n

    \n You've successfully submitted your application. Our team is now reviewing your\n quotes and will reach out to you shortly. Remember that you've agreed to pay for the\n below policies.\n

    \n
      \n {bindingQuotes.map((quote) => (\n
    • \n \n \n {getDisplayInsuranceType(quote.policyType)}\n \n \n Binding\n \n \n \n {currencyFormatter.format(quote.totalAmount)}\n \n
    • \n ))}\n
    \n
    \n
    \n )}\n {pendingCoverages.length > 0 && (\n
    \n
    \n \n Other coverages\n \n

    \n Since we couldn't find all the coverage you need online, we'll pair you with a\n complementary dedicated insurance specialist to find the remaining coverages for\n you.\n

    \n
      \n {pendingCoverages.map((coverage) => (\n
    • \n \n {getDisplayInsuranceType(coverage)}\n \n Not found online\n \n \n
    • \n ))}\n
    \n
    \n
    \n )}\n
    \n
    \n \n Next steps\n \n

    \n An Oyster team member will reach out to your shortly. In the meantime, we've created a\n free Oyster account where you can manage your application, policies, and access our\n other risk management tools.\n

    \n
    \n \n Continue to Dashboard\n \n
    \n
    \n
    \n
    \n \n );\n};\n\nconst CompleteSkeleton = () => {\n return (\n
    \n
    \n \n \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n \n \n \n \n\n \n
    \n
    \n );\n};\n","import { init as initApm } from '@oysterjs/core/apm';\ninitApm();\n\nimport { init as initAppConfiguration } from '@oysterjs/core/api/appConfiguration';\ninitAppConfiguration();\n\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter as Router, Switch, Route as BrowserRoute, Redirect } from 'react-router-dom';\n\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport config from '@oysterjs/core/config';\n\nimport { Dashboard } from './pages';\nimport MerchantPersonalization from './pages/personalization';\n\nimport {\n OnboardCheckfront,\n OnboardLightspeedRetailRSeries,\n OnboardShopify,\n OnboardWooCommerce\n} from './onboard';\nimport { SignIn, SignUp } from './pages/signin';\nimport { useGoogleTags } from '@oysterjs/core/analytics/googletags';\nimport { HubspotChatContextProvider } from '@oysterjs/core/hubspot';\nimport { Authenticated } from './authenticated';\nimport { CertificateApp } from './pages/certificate';\nimport { ApolloProvider } from '@apollo/client';\nimport { getMerchantGraphQLClient } from '@oysterjs/core/api/merchant';\n\nimport { Landing as CommercialLanding } from './pages/commercial/landing';\nimport * as CommercialApp from './pages/commercial/app';\nimport { ApplicationWrapper } from './pages/commercial/common';\n\nconst App = () => {\n if (config().environment === 'production') {\n useGoogleTags();\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(props) => (\n \n )}\n \n \n \n \n \n \n \n \n {(props) => }\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n {(props) => (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst container = document.getElementById('root');\nconst root = createRoot(container!);\n\nroot.render();\n"],"names":["ProductType","AdditionalMerchantProductType","PolicyType","ReferralSubChannel","DefaultFileRoles","ReferralStatus","PaymentMethodType","SalesChannelType","OnlineSalesChannelType","InStoreSalesChannelType","BusinessOperationType","BusinessInsuranceType","RentalProductType","MerchantIntegrationStatus","MerchantIntegrationType","BillingMode","RentalPolicyState","MercuryPaymentTypes","WaiverState","RentalBookingState","RentalClaimState","RentalDamageType","TransactionType","useAuth","getAuth","data","window","localStorage","getItem","auth","JSON","parse","apm","setUserContext","id","User","ID","MerchantUser","email","Email","setAuth","setItem","stringify","_setAuth","React","updateAuth","addEventListener","removeEventListener","getToken","Token","getUser","resetToken","redirect","removeItem","location","href","encodeURIComponent","getEnvironment","environment","_b","_a","getApiBaseUrl","devServiceUrl","getAdminBaseUrl","getMerchantBaseUrl","getMetricsBaseUrl","getStaticsBaseUrl","getIntegrateBaseUrl","getOysterJsBaseUrl","getDashboardBaseUrl","getGetOysterBaseUrl","getPartnersBaseUrl","getWebhooksBaseUrl","getServiceName","getServiceVersion","service","user","getSecret","secretName","devSecret","dynamicConfig","config","ErrorCode","ErrorType","WrappedError","message","opts","err","validationError","errors","getEncodedQueryString","m","params","key","value","Get","path","init","request","Post","json","Put","Delete","res","getFlagOptions","listFlags","retrieveAllFeatureFlags","appConfiguration","MainAppConfiguration","timeoutPromise","resolve","timeoutId","flagId","ff","updateFunction","updateIndex","f","appConfiguration$1","Apm","session","error","Sentry.isInitialized","Sentry.captureException","userObject","Sentry.setUser","product","itemList","item","Sentry.getReplay","subChannel","metadata","productType","featureFlags","formattedFeatureFlags","updatedMetadata","url","_c","initSession","getRandomString","len","characters","str","i","userId","Sentry.init","Sentry.browserTracingIntegration","Sentry.browserProfilingIntegration","Sentry.captureConsoleIntegration","Sentry.extraErrorDataIntegration","Sentry.httpClientIntegration","Sentry.reactRouterV5BrowserTracingIntegration","Sentry.replayIntegration","Sentry.sessionTimingIntegration","apm$1","Spinner","color","size","centerHorizontal","jsx","background","width","undefined","LoadableContainer","styled","div","props","inline","Loadable","setData","exactlyOnce","then","children","hideSpinner","getMerchantGraphQLClient","removeTypenameLink","removeTypenameFromVariables","link","from","createHttpLink","ApolloClient","InMemoryCache","createMerchant","merchantUserSignInInit","merchantUserSignInComplete","code","merchantUserSignOut","getMerchantAccount","redirectUrl","getMerchantIntegrations","updateMerchantIntegration","integration","personalizeMerchant","merchant","discardUpdateOnError","linkMerchantWithShopify","shop","integrationData","linkBIApplicationWithShopify","biApplicationID","linkMerchantWithLightspeedRetailRSeries","_","linkMerchantWithCheckfront","requestQRCodePdf","getMerchantReferrals","start","end","getMerchantTransactions","getMerchantUsers","createMerchantUser","getMerchantRentalConfiguration","updateMerchantRentalConfiguration","settings","getMerchantRentalPaymentSetup","getRentalDocuments","d","uploadRentalDocuments","files","form","file","deleteRentalDocument","getRentalWaivers","getRentalWaiver","waiverId","getRentalBooking","bookingId","getWaiverPricing","booking","waiver","integrationId","createRentalWaiver","sendEmail","updateRentalWaiver","createMerchantRentalAsset","asset","r","deleteMerchantRentalAsset","assetId","addRentalAssetSerialNumber","serialNumber","cancelBookingRenewal","getMerchantRentalAssets","getRentalBookingFiles","getRentalClaimByWaiverId","getRentalClaim","createRentalClaim","claim","updateRentalClaim","uploadClaimAttachments","claimId","fileRole","getMerchantReferralList","defaultOptions","BuildingConstructionType","FireResistive","Frame","JoistedMasonry","MasonryNonCombustible","ModifiedFireResistive","NonCombustible","BuildingOwnershipType","Home","Leased","Owned","BurglarAlarmType","BurglarCentral","BurglarLocal","BurglarNone","BurglarPoliceFire","BusinessApplicationCarrier","Amtrust","Biberk","Chubb","Cna","Coalition","Coterie","Employers","Gaig","Guard","Hiscox","Libertymutual","Markel","Nationwide","Next","Progressive","Travelers","BusinessApplicationQuoteState","Binding","Created","BusinessApplicationQuoteType","BindOnline","Bridge","Decline","Failed","Refer","BusinessApplicationState","Canceled","Quoted","Quoting","Submitted","BusinessLegalEntityType","Association","Corporation","Estate","Executor","GeneralPartnership","GovernmentEntity","Individual","JointEmployers","JointVenture","LaborUnion","LimitedLiabilityCompany","LimitedLiabilityPartnership","LimitedPartnership","MultipleStatus","NonProfitAssociation","NonProfitCorporation","SCorporation","TenantsInCommon","Trust","FileRole","ApplicationForm","Binder","Certificate","CertificateOfLiabilityInsuranceTemplate","Endorsement","Invoice","LossPolicyRelease","NoticeOfCancellation","Other","PolicyDocument","QuoteDocument","Unknown","InsuranceType","AccidentAndHealth","BusinessOwners","CommercialAuto","Cyber","DirectorsAndOfficers","EmploymentPracticesLiability","ErrorsAndOmission","GeneralLiability","JewelersBlock","Package","ProductLiability","ProfessionalLiability","Property","Rental","ShippingAndTransportation","UmbrellaOrExcess","WorkersCompensation","PastPolicyLossClaimStatus","Closed","Open","PastPolicyLossType","BodilyInjuryOther","BusinessInterruption","ComputerFraud","ContingentBusinessInterruption","CyberIncident","DigitalData","EmployeePractices","ErrorsAndOmissions","Fire","FoodSpoilage","FundTransferFraud","GeneralLiabilityProducts","GlPropertyDamage","Hail","Indemnity","InlandMarine","LiabilityMedicalPayments","MediaLiability","Medical","MedicalAndIndemnity","NetworkExtortion","PaymentCard","PersonalInjury","PrivacyAndNetworkSecurity","PropertyDamageCollapse","PropertyDamageOther","RegulatoryProceeding","SlipFallInside","SlipFallOutside","SocialEngineeringFraud","TechnologyErrorsAndOmissions","Theft","Vandalism","WaterNonWeatherRelated","Windstorm","PaymentPlanInstallmentFrequency","Monthly","None","Quarterly","PaymentPlanPaymentMethodType","CreditCard","DirectDebit","ElectronicFundTransfer","PolicyConversationMessageRole","Ai","PolicyState","Expired","Inforce","Pending","BeautyAndSupplements","Bike","Collectibles","Electronics","Fashion","FoodAndBeverage","Furniture","Jewelry","Motorcycle","OffroadVehicle","OutdoorSports","TobaccoCbdSmokeShop","UnderwritingQuestionDependencyType","Conditional","Direct","UnderwritingQuestionType","Date","Multiselectdropdown","Number","Phonenumber","Radio","Singleselectdropdown","Text","Year","CertificateDetailsFieldsFragmentDoc","gql","ApplicationFieldsFragmentDoc","ApplicationQuoteFieldsFragmentDoc","ApplicationQuotableCarrierFieldsFragmentDoc","BusinessPolicyDetailFieldsFragmentDoc","BusinessPolicyFieldsFragmentDoc","FileFieldsFragmentDoc","MerchantFieldsFragmentDoc","ActionItemFieldsFragmentDoc","RiskManagementDataFieldsFragmentDoc","PolicyConversationMessageFieldsFragmentDoc","GetCertificateDocument","useGetCertificateLazyQuery","baseOptions","options","Apollo","GenerateCertificateDocument","useGenerateCertificateMutation","GetCoverageLimitsDocument","GetBusinessApplicationDocument","CreateBusinessApplicationDocument","UpdateBusinessApplicationDocument","QuoteBusinessApplicationDocument","SubmitBusinessApplicationDocument","AddBusinessApplicationLocationDocument","UpdateBusinessApplicationLocationDocument","RemoveBusinessApplicationLocationDocument","BindQuoteDocument","GetMerchantBusinessPoliciesDocument","GetMerchantBusinessPolicyDocument","GetMerchantDocument","GetPolicyConversationDocument","useGetPolicyConversationQuery","AddPolicyConversationMessageDocument","useAddPolicyConversationMessageMutation","getDisplayInsuranceType","type","Link","forwardRef","ref","startsWith","Headless.DataInteractive","RouterLink","colors","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","zinc","neutral","white","clsx","styles","base","solid","outline","plain","light","dark","Button","className","loading","classes","TouchTarget","Headless.Button","disabled","jsxs","Fragment","PageTitle","title","badge","description","getBadgeColor","status","ChannelBadge","state","BusinessInsuranceSection","history","useHistory","policies","businessPolicies","filter","p","length","map","push","carrier","name","policyNumber","expiresAt","Intl","DateTimeFormat","dateStyle","format","ShieldCheckIcon","CertificatesSection","certificates","role","details","certificateNumber","sort","a","b","createdAt","getTime","slice","certificate","certificateHolder","DocumentIcon","ArrowRightIcon","HomePage","Slideout","Dialog","showing","onClose","DialogBackdrop","DialogPanel","DialogTitle","XMarkIcon","ErrorIllustration","img","forceMobile","ErrorContainer","ErrorDetailsContainer","ErrorDetailContainer","ErrorDetailTitle","ErrorDetailDescription","pre","ErrorDetail","ErrorCopyData","button","ErrorDetails","copied","setCopied","clipboard","writeText","errorData","setTimeout","IoCheckmark","IoClipboard","ErrorComponent","toString","transaction","getSession","pageLoadId","margin","join","ErrorDetailsV2","ErrorComponentV2","getSessionId","ErrorBoundary","constructor","getDerivedStateFromError","componentDidCatch","captureError","render","ErrorBoundaryV2","useWindowScrollPosition","scrollPosX","setScrollPosX","useState","scrollX","scrollPosY","setScrollPosY","scrollY","useEffect","onscroll","openPageInNewTab","open","openAsyncPageInNewTab","urlPromise","w","close","MerchantRentalSetup","getDescription","configuration","Details","State","registered","submitted","approved","approved_blanket","denied","Error","merchantUser","onApply","URLSearchParams","set","BusinessProfile","Phone","Domain","FirstName","LastName","merchantAddress","Address","AddressLine1","AddressLine2","City","Zone","PostalCode","filloutFormId","onContinueToRental","rentalInsuranceChannels","checkfront","getChannelLabel","getChannelDescription","getChannelImage","getChannelPath","active","pending","inactive","getRentalConfigurationStatus","ChannelCard","Card","onClick","label","image","ChannelSlideoutContent","integrationStatus","ChannelsListPage","useLocation","onClickRental","rentalConfiguration","DocumentCheckIcon","merchantIntegrations","includes","Type","Status","every","merchantIntegration","pathname","endsWith","replace","PageNavigation","useRouteMatch","concatPath","relative","routes","find","tab","e","currentTarget","NavLink","count","Switch","route","Route","exact","Object","entries","to","Redirect","Select","multiple","Headless.Select","Table","table","Fieldset","Headless.Fieldset","Legend","Headless.Legend","FieldGroup","Field","Headless.Field","Label","Headless.Label","Description","Headless.Description","ErrorMessage","monthList","ReferralItem","referral","InsuredItems","CreatedAt","Name","NumberFormat","style","currency","minimumFractionDigits","maximumFractionDigits","Price","Amount","AsyncMerchantReferrals","Promise","all","startDate","endDate","referrals","transactions","payouts","Transactions","t","credit","Referrals","marginTop","payout","toLocaleDateString","ProcessorID","Currency","getMonthsDate","today","diff","UTC","getUTCFullYear","getUTCMonth","getMonthName","date","ReferralsPage","monthOptions","index","month","setMonth","preventDefault","parseInt","opt","setMerchantPayment","getMerchantPayment","connectToPlaid","BadgeContainer","Badge","display","icon","textColor","BannerContainer","ContentContainer","IconContainer","TextContainer","ActionContainer","TitleText","DescriptionText","Banner","IoInformationCircleOutline","bannerAction","ButtonContainerComponent","center","ButtonContainer","ButtonComponent","primary","onPointerUp","leftIcon","cloneElement","InputGroup","dateTypes","Input","Headless.Input","onChange","setValue","displayValue","setDisplayValue","formatter","parsedValue","parseFloat","isNaN","NaN","Textarea","resizable","Headless.Textarea","CheckboxGroup","CheckboxField","Checkbox","Headless.Checkbox","MAPBOX_PUBLIC_KEY","secrets","mapboxPublicKey","states","naics","DateField","EmailField","PhoneNumberField","NumberField","blur","YearField","TextField","SelectField","displayText","RadioField","RadioGroup","option","MultiSelectField","__CheckboxField","values","onChangeMulti","checked","v","AddressForm","onRetrieve","address","features","properties","line1","address_line1","line2","address_line2","city","address_level2","zone","address_level1","postalCode","postcode","showSecondLine","initialValue","validationErrors","showCityStateZip","addressTitle","addressDescription","AddressAutofill","country","val","prev","TransitionGroup","CSSTransition","SummaryContainer","SummerFieldContainer","SummaryHeaderDescription","SummaryHeaderTitle","getMercuryPaymentMethod","paymentMethod","Check","check","Electronic","electronic","unknown","SummaryField","paddingTop","PayoutSummary","UserPayment","setPaymentMethod","token","setToken","formAddress","setFormAddress","setValidationError","fetchToken","useCallback","LinkToken","onSuccess","ready","usePlaidLink","onClickCheck","onUpdateLoading","PublicToken","PaymentType","onUpdatePayoutsInfo","onSave","catch","asWrappedError","getValidationError","newAddress","HeadlessCheckbox","CheckCircleIcon","Message","PayoutPage","mercuryRecipientID","PayoutsPage","PaymentMethod","setMercuryRecipientID","MercuryRecipientID","setAddress","setError","setLoading","merchantPayment","processingError","submissionFailed","finally","IntegrationsPage","setMerchantIntegrations","onUpdateIntegration","Integration","apiKey","sizes","xs","sm","md","lg","xl","Headless.Dialog","Headless.DialogBackdrop","Headless.DialogPanel","Headless.DialogTitle","DialogDescription","DialogBody","DialogActions","UserList","users","charAt","AddUserForm","formData","setFormData","handleAddUser","onAddUser","Users","TeamPage","setUsers","merchantUsers","showAddUser","setShowAddUser","ExploreRiskPage","explorablePolicies","getExplorablePolicies","selectedPolicy","setSelectedPolicy","showPolicyQuotes","setShowPolicyQuotes","policyStats","pricing","premium","day","year","policyLimits","limit","limits","cyberAggregateLimit","cyberRetentionLimit","glAggregateLimit","glMedicalPerOccurrenceLimit","glMedicalPerPersonLimit","glPerOccurrenceLimit","glPersonalAndAdvertisingInjuryLimit","glProductsAndCompletedOperationsLimit","glRentedPremisesDamageLimit","propertyBuildingLimit","propertyContentsLimit","wcPerAccidentLimit","wcPerDiseaseEmployeeLimit","wcPerDiseasePolicyLimit","extraLimits","locations","flatMap","policy","stat","insured","summary","coverageDescriptions","coverage","policyQuotes","HeadlessButton","quote","exclusionDescriptions","exclusion","XCircleIcon","PolicyChat","initialData","initialLoading","refetch","refetchInitialData","variables","policyId","sendMessage","sendMessageData","sendMessageLoading","sendMessageError","editorText","setEditorText","messages","setMessages","stagedMessage","setStagedMessage","showAttachments","setShowAttachments","policyConversation","riskManagementAddPolicyConversationMessage","handleSubmit","content","attachments","attachment","AIChatProgress","target","steps","maxDuration","maxWidth","stepIndex","setStepIndex","timeout","clearTimeout","UnstyledLink","ButtonDivComponent","ButtonLink","match","textDecoration","ButtonDiv","UnstyledButton","LinkComponent","Overlay","SlideOutContainer","wide","HeaderContainer","HeaderButtonContainer","Header","flex","alignItems","justifyContent","IoClose","ContentBox","SlideOut","overflowState","setOverflowState","document","body","overflow","stopPropagation","onBack","FormContainer","FormRowContainer","singleItem","breakMobile","FormRowHeaderContainer","FormRowHeaderDescription","FormRowHeaderTitle","FormRowError","FormRow","FormRowHeader","FormColumnContainer","FormColumnTitle","FormColumnDescription","FormColumnContents","FormColumn","useId","fontSize","formColumnStyle","FormColumnStyle","optional","fontWeight","Children","isValidElement","child","ErrorDisplay","TextInputComponent","input","TextInput","position","left","top","NumericFormat","TextAreaInputComponent","textarea","TextAreaInput","SelectInput","select","Carat","SearchableSelectOptionsContainer","SearchableSelectOptions","handleAddOption","onAdd","inputText","caseInsensitiveIndexOf","s","sub","toLowerCase","indexOf","rankedOptions","maxHeight","overflowY","onSelect","char","some","IoAdd","SearchableSelect","selectedOption","setSelectedOption","trim","onSelectOption","onAddOption","DatePickerContainer","DatePicker","DayPicker","SettingsContainer","Setting","flexDirection","rightAction","DetailsContainer","RentalSlideoutHeader","RentalPageContainer","padding","StatementTable","Statement","lineItems","adjustments","customer","assets","rentalDuration","textAlign","adjustment","amount","reduce","acc","curr","acc2","CoveragePriceAmount","span","getCurrentTime","setMinutes","setSeconds","setMilliseconds","minimumRentalDuration","AutoRenewWaiver","RentalWaiverForm","priceLoading","setPriceLoading","submitLoading","setSubmitLoading","inputChanged","setInputChanged","showDatePicker","setShowDatePicker","setRentalConfiguration","availableAssets","setAvailableAssets","setWaiver","setBooking","startTime","setStartTime","durationInDays","setDurationInDays","waiverPrice","setWaiverPrice","pricingUpdateIndex","setPricingUpdateIndex","serialNumberErrors","setSerialNumberErrors","fetchData","minDurationInDays","Configuration","autoRenewWaiver","entry","Booking","Waiver","EndTime","StartTime","Math","max","valueOf","endTime","setDate","getDate","MerchantID","Confirmed","Assets","Accessories","BookingReference","Insured","AutoRenew","RentalBookingID","Customer","rentalAssetToWaiverAsset","WaiverReferenceNumber","Premium","Base","Total","MerchantFeeAmount","OysterFeeAmount","ProcessingFeeAmount","PremiumRounding","rentalAsset","Asset","assetNames","keys","assetSerialNumbers","fromEntries","SerialNumber","onChangeBooking","block","onChangeWaiver","onAddAsset","currentBooking","currentWaiver","onRemoveAsset","clearSerialNumberError","updatedAssets","splice","setSerialNumberError","newErrors","selectSerialNumber","selectedAsset","ast","handleSelectSerialNumber","handleAddSerialNumber","onAddAccessory","assetIndex","accessory","updatedAsset","onRemoveAccessory","indexToRemove","findIndex","Value","updatedAccessories","getStartTimeOptions","padStart","updateBookingTimes","useDebounce","delay","debouncedValue","setDebouncedValue","timer","debouncedPricingUpdateIndex","updatedWaiver","onCreateOrUpdateWaiver","apiFunc","hasSerialNumberError","updateHandler","onWaiverCreated","UpdatedBooking","UpdatedWaiver","serviceBaseUrl","getoyster","toDateString","getHours","newStartHour","updatedTime","setHours","getMinutes","getSeconds","getAccessoriesQuantity","list","flexWrap","gap","AvailableAccessories","flexGrow","minWidth","marginRight","marginLeft","RentalWaiverSentPage","IoArrowForward","getStaticFileUrl","getDocumentUrl","getRentalDocumentUrl","InsuredItemContainer","InsuredItemDetails","InsuredItemTitle","InsuredItemContent","RentalDescription","formattedRentalDate","IoBicycle","itemName","accessories","InsuredDescription","IoPerson","AddressCity","AddressState","AddressZipCode","RenewalDescription","IoRefresh","showRenewalPeriod","RentalBookingDetailsPage","rentalConfig","setRentalConfig","setClaim","setFiles","onFetchData","Claim","onCancelRenewal","updatedBooking","getCompactRentedAssets","getWaiverStatus","canceled","expired","getClaimStatus","c","requires_information","logged","getFileNameForRentalFiles","Attachment","Role","signedRentalAgreement","waiverLDWDocument","toLocaleString","BookingLineItems","onCreateWaiver","onViewWaiver","onFileClaim","CheckboxContainer","ConditionalWrapper","condition","wrap","AddressInputForm","setState","businessName","streetAddress","streetAddressLine2","aptFloor","aptUnit","zipCode","fn","next","showBusinessName","serviceName","singleSecondLine","RequirementItemContainer","RequirementCheckboxContainer","RequirementContentContainer","RequirementDescription","RequirementTitle","AttachmentLozengeContainer","uploading","formatSize","round","AttachmentLozenge","cursor","IoAttachOutline","paddingRight","onRemove","paddingLeft","AttachmentContainer","enabled","dragging","AttachmentCheckboxContainer","AttachmentContentContainer","AttachmentDescription","AttachmentContent","AttachmentHeaderContainer","ChildrenContainer","getFilesFromEvent","dataTransfer","items","kind","getAsFile","AttachmentUploader","setDragging","attachRef","useRef","existingAttachmentsList","setExistingAttachmentsList","newAttachmentsList","setNewAttachmentsList","newAttachment","uploadedAttachment","addFiles","onAttachmentsAdded","onDragEnter","onDragLeave","onDragOver","dropEffect","onDrop","Array","current","click","IoEllipseOutline","IoCheckmarkCircle","Size","onAttachmentRemoved","allowDeleteExisting","newIndex","RentalClaimForm","setAttachments","filesToUpload","setFilesToUpload","incidentDate","setIncidentDate","Entry","Attachments","RentalWaiverID","ClaimNumber","DamageType","IncidentDate","IncidentCause","IncidentAddress","onChangeClaim","addedFiles","getDamageTypeOptions","currentClaim","onSubmitClaim","claimToSubmit","updatedClaim","updatedFiles","waiverClaimAttachment","onClaimSubmitted","getDisplayName","propsAsset","fire","theft","accident","PoliceReportFiled","NameOfEmergencyDepartment","ReportOrIncidentNumber","water","SourceOfWaterDamage","addr","HasOtherInsuranceCoverage","ViewRentalAssetPage","deleteSerialNumberLoading","setDeleteSerialNumberLoading","addSerialNumberLoading","setAddSerialNumberLoading","setSerialNumber","serialNumberAssets","deleteAsset","addSerialNumber","IoTrashOutline","paddingBottom","CreateRentalAssetPage","_setAsset","setAsset","field","addAsset","createdAsset","onCreate","RadioContainer","CardGallery","ul","comingSoon","CardContents","SlimCardContainer","selected","SlimCardImage","SlimCardContents","CheckmarkBox","TitleBadge","SelectableOptionCard","titleAction","IoCheckmarkSharp","paneWidth","marginBottom","PageSection","customPadding","noPadding","noBorder","centered","STRIPE_PUBLIC_KEY","stripePublicKey","stripe","loadStripe","apiVersion","tagId","GetOysterEventNames","install","scriptId","head","script","tagScript","useGoogleTags","GoogleTagAnalytics","tagEvent","convertEvent","AggregateAnalytics","useAnalytics","analytics","PaymentDisclosure","disclosure","policyType","bike","markelBike","minicoJewelry","worthAveElectronics","PaymentCollection","hasConsent","setHasConsent","useStripe","elements","useElements","chubbJewelry","event","PaymentSubmitted","confirmParams","return_url","returnUrl","setupOnly","confirmSetup","confirmPayment","PaymentElement","terms","card","defaultValues","billingDetails","defaultName","defaultEmail","hideLegal","underwriter","IoArrowBack","IoLockClosed","continueLabel","PaymentMethodInput","getPaymentIntent","clientSecret","Elements","fonts","family","weight","src","unicodeRange","appearance","theme","fontFamily","borderRadius","fontSizeBase","fontWeightNormal","colorPrimary","colorBackground","colorText","colorDanger","spacingGridRow","spacingGridColumn","rules","letterSpacing","border","boxShadow","borderColor","LabeledCheckbox","MerchantBilledInsuranceSettings","agreementAccepted","setAgreementAccepted","setup","SetupIntentClientSecret","origin","BankName","LastFour","onEnable","MerchantUnifiedWaiverFlowSettings","documents","setDocuments","getDocuments","uploadLoading","setUploadLoading","deleteLoading","setDeleteLoading","uploadDocuments","deleteDocument","LinkContainer","LinkDisplay","CopyableLink","ReactTooltip","navigator","SwitchContainer","SwitchLabel","RentalTable","MerchantRentalList","onCreateNewWaiver","onViewBooking","onCreateClaim","waivers","IoShieldCheckmarkSharp","IoShieldOutline","opacity","IoChevronForwardSharp","MerchantRentalAssetManager","setAssets","getAssetIdFromRentalUrl","pathMatch","assetGroups","fetchAssets","replacementAsset","onCreateAsset","onViewAsset","test","MerchantRentalSettings","setMerchant","setConfiguration","updateLoading","setUpdateLoading","updated","setUpdated","Merchant","onUpdate","origConfig","updatedConfig","IoBusiness","UnifiedWaiverFlowEnabled","IoAlertCircleSharp","MerchantRentalResources","referralLink","setReferralLink","qrCode","setQrCode","downloadLoading","setDownloadLoading","ReferralLink","QRCodeBase64","onDownload","binaryString","atob","DocumentZip","binaryLen","arrayBuffer","ArrayBuffer","intArray","Uint8Array","charCodeAt","blob","Blob","URL","createObjectURL","height","IoDownload","MerchantRentalStatementsPage","selectedMonth","setSelectedMonth","o","MerchantRentalStatement","calculateDuration","days","ceil","BookingLineItem","show","MerchantRentalPage","getWaiverIdFromRentalUrl","getBookingIdFromRentalUrl","showConfirmationInDashboard","FooterStandardContainer","FooterContainer","FooterLinksContainer","OysterCopyright","CustomFooter","FooterStandard","FooterMinimalContainer","FooterMinimal","PaneContainer","Pane","TwoPaneContainer","leftPaneWidth","rightPane","PageContainerDiv","PageContainer","footerStyle","FooterStyle","footerTextColor","VerticalLayoutContainer","invertedIcon","activeIconColor","VerticalLayoutItemContainer","last","VerticalLayoutIconContainer","VerticalLayoutDetailsContainer","VerticalLayout","VerticalLayoutItem","ActivityItem","IoPaperPlane","referree","boxSizing","ReferralList","fulfilled","Referee","BusinessName","UpdatedAt","Reward","getInviteLinkHost","host","split","InvitePage","PublicHandle","copyClicked","setCopyClicked","IoCopyOutline","ActionsContainer","Action","Listbox","placeholder","autoFocus","ariaLabel","Headless.Listbox","Headless.ListboxButton","Headless.ListboxSelectedOption","Headless.ListboxOptions","OysterLogoOldContainer","OysterWordMarkContainer","OysterLogoOld","scale","verticalAlign","textTransform","OysterWordMark","forceLight","Heading","level","Element","ApplicationContext","createContext","useBusinessApplicationProvider","includeQuotes","includeQuotableCarriers","application","setApplication","getApplication","query","errorPolicy","businessApplication","otherErrors","extensions","ApolloError","graphQLErrors","applicationId","updateApplication","loadApplication","ProgressBar","scrollPos","progress","scrollHeight","ApplicationWrapper","TransitionContainer","PageWrapper","useContext","loader","scroll","SwitchTransition","skeleton","getFormId","toNumber","getFilloutParameters","DBA","jewelry","electronics","ProductVerticals","Personalization","BusinessInsuranceTypes","UmbrellaExcess","BusinessInsuranceTypesOtherDesc","BusinessOperationTypes","RetailECommerce","ServiceOrRepair","Wholesale","Manufacturing","BusinessOperationTypesOtherDesc","BusinessManufactureOrWholesaleOwnBrand","BusinessRevenueBreakdownRetail","BusinessRevenueBreakdownServiceOrRepair","BusinessRevenueBreakdownWholesale","BusinessRevenueBreakdownRental","BusinessRevenueBreakdownManufacturing","BusinessRevenueBreakdownOther","BusinessTotalPayroll","BusinessNumberOfPriorLosses","GetInsurance","createElement","defer","appendChild","removeChild","prefilledParameters","InsuranceFormSubmitted","statuses","CertificatesTable","ManageBusinessInsurance","urlParams","filloutLink","graphMerchant","titleCase","DocumentPlusIcon","getPolicyBadge","part","toUpperCase","substring","unescapeSafe","DOMParser","parseFromString","documentElement","textContent","ViewBusinessPolicy","total","billingType","IoOpenOutline","ViewCertificate","partners","IoDownloadOutline","descriptionOfOperations","CreateCertificate","generateCertificate","setValidationErrors","needsAgentAction","setNeedsAgentAction","setForm","additionalInsured","additionalInsuredRelationship","additionalInsuredRelationshipDescription","notes","selectedAdditionalInsured","setSelectedAdditionalInsured","additionalInsureds","blanketAdditionalInsureds","namedAdditionalInsureds","n","updateFormMulti","fieldPartsList","update","forEach","fieldParts","updateForm","getError","onSubmit","req","onReset","ai","AdditionalInsuredListOption","ExclamationTriangleIcon","sharedClasses","Headless.ListboxOption","InsurancePage","BusinessInsuranceFilloutFormSubmitted","businessPolicy","PolicySlideoutContainer","Sentry","BrowserRoute","navigation","HomeIcon","PuzzlePieceIcon","UsersIcon","GiftIcon","AsyncMerchantHomePage","integrations","rental","Integrations","AsyncMerchantIntegrationsPage","accountRes","integrationsRes","rentalRes","ApiKey","AsyncMerchantInsurancePage","account","AsyncExploreRiskPage","AsyncTeamPage","AsyncInvitePage","DashboardContainer","sidebarOpen","setSidebarOpen","signOut","TransitionChild","PowerIcon","Bars3Icon","BellIcon","Menu","MenuButton","Dashboard","search","ApolloProvider","ProgressContainer","ProgressBarContainer","ProgressBarTrack","ProgressBarInner","ProgressStepContainer","ProgressStep","filled","percentage","toFixed","Progress","numSteps","isFinite","isArray","currentStep","step","ThrowError","Authenticated","loaded","setLoaded","PersonalizationError","OptionContainer","OptionCheckboxContainer","OptionImageContainer","OptionContentContainer","OptionDescription","OptionContent","OptionHeaderContainer","OptionHeader","OptionGroup","multi","imageUrl","titleRight","NColumnListContainer","floor","columns","LabeledRadio","MerchantPersonalizationProductInsuranceForm","updatePersonalization","onNext","SalesChannels","Online","InStore","Dealer","Shopify","WooCommerce","Lightspeed","BigCommerce","Adobe","Custom","OnlineSalesChannelName","ShopifyAdminURL","ShopifyPOS","LightspeedRSeries","LightspeedXSeries","Ascend","Edge","InStoreSalesChannelName","RentalChannelName","ProductAnnualRevenue","personalization","MerchantPersonalizationRentalInsuranceForm","BikesAndEbikes","Kayaks","Paddleboards","operation","RentalProductTypes","RentalProductTypeOtherDesc","RentalMotorizedAssetsExceedEBikeClassification","RentalMaximumAssetValue","RentalAverageAssetValue","RentalAnnualRevenue","RentalAnnualVolume","RentalPlatformName","RentalPointOfSaleName","InsuranceDetailItemContainer","li","InsuranceDetailItem","InsuranceOptionCardContainer","InsuranceOptionCard","displayItems","MerchantPersonalizationIntro","merchantEligibleForRentalInsurance","BusinessInsuranceEnabled","ProductInsuranceEnabled","RentalInsuranceEnabled","MerchantPersonalizationProductInsurancePage","MerchantPersonalizationRentalInsurancePage","MerchantPersonalizationCompletePageContainer","MerchantPersonalizationCompletePagePane","MerchantPersonalizationCompletePageImage","getChannelUrl","referral_link","qr_code","shopify","MerchantPersonalizationCompletePage","getPages","pages","hasError","component","IoFlag","IoBagOutline","IoTimerOutline","IoCheckmarkDone","MerchantPersonalization","setPages","currentPageIndex","matchPath","page","scrollTo","NextValidationError","nextPageIndex","nextPages","OnboardShopify","get","redirection","OnboardLightspeedRetailRSeries","OnboardWooCommerce","success","OnboardCheckfront","DigitsInputContainer","Digit","DigitsInput","refs","digits","setDigits","fill","initialDigits","focus","React.Fragment","j","onInputChange","onComplete","SignInContainer","SignInPane","SignInImage","SignInPage","setEmail","redirectUri","signupUri","handleLogin","SignUpPage","BusinessDBA","BusinessDomain","AccessCode","signinUri","handleSignUp","SubField","collectibles","furniture","fashion","motorcycle","offroad","food_and_beverage","beauty_and_supplements","outdoor_sports","other","SignInCompletePage","setCode","resending","setResending","resendCode","SignInCompleteWrapper","SignIn","SignUp","userIdentify","firstName","lastName","debounce","func","waitFor","args","PORTAL_ID","HubspotChatContext","HubspotChatContextProvider","chat","useHubspotChat","portalId","scriptLoaded","setScriptLoaded","manualIdentification","setManualIdentification","updateIdentification","hsConversationsSettings","identificationEmail","identificationToken","_hsq","Cookies","remove","trackPageView","identify","manual","refreshWidget","HubSpotConversations","clear","resetWidget","widget","load","loadImmediately","hsConversationsOnReady","updatedIdentification","CertificateSectionContainer","CertificateRightSection","CertificateLeftSection","CertificateEntity","entity","l","CertificatePolicy","insurer","CheckIcon","effectiveDate","expirationDate","hasWaiverOfSubrogation","holderIsAdditionalInsured","CertificateSection","coverages","MarketingBanner","producer","IoCheckmarkOutline","CertificatePolicySkeleton","CertificateSectionSkeleton","CertificateSkeleton","CertificateApp","getCertificate","ComputerDesktopIcon","LockClosedIcon","getMerchantInfo","merchantHandle","logo","aircfo","bbg","beyondsku","bookkeeper360","cfoplans","decimal","ecombalance","finta","fulfil","guidance","hawkemedia","keptpro","pacificcrestgroup","paperchase","scharfconsulting","pilot","rho","smartrr","steptwo","Landing","isSubmitting","setIsSubmitting","createApplication","useMutation","createBusinessApplication","FormData","businessVertical","filloutParams","first_name","fullName","last_name","phone","business_type","merchantInfo","feature","clipPath","Divider","soft","Combobox","setQuery","queryRegex","RegExp","minQueryLength","maxOptions","filteredOptions","HeadlessCombobox","ComboboxInput","ComboboxButton","ChevronUpDownIcon","ComboboxOptions","ComboboxOption","badgeText","LegendSkeleton","LabelSkeleton","long","extraLong","DescriptionSkeleton","TextSkeleton","InputSkeleton","short","commonCoverages","insuranceTypes","workersCompensationDisabledStates","currencyFormatter","displaySelectedLimit","insuranceType","selectedLimits","bopPerOccurrenceLimit","bopAggregateLimit","PlusDivider","Intro","availableLimits","setAvailableLimits","contact","naicsCode","insuranceEffectiveAt","toISOString","coverageState","coverageLimits","checkWorkersCompensationEligibility","onChangeLimit","selectedIndex","setLimit","fields","getLimitValue","chooseDefaultLimits","groupedLimits","errorFields","mutate","mutation","noValidationErrorMatched","updateBusinessApplication","IntroSkeleton","Business","mailingAddress","businessDba","fein","legalEntityType","annualRevenue","yearOfFounding","yearsOfManagementExperience","employeeInfo","numFullTimeEmployees","numPartTimeEmployees","totalEmployeePayroll","owners","owner","annualPayroll","dateOfBirth","jobCode","addEmptyOwner","removePreviousOwner","BusinessSkeleton","UnderwritingForm.AddressForm","CurrencyDollarIcon","TrashIcon","PlusIcon","Locations","setOpen","buildingInfo","isPrimary","foundIdx","locationIndexHasError","getDefaultLocationInfo","random","annualSales","addLocation","addLocationFromMailingAddress","discardChanges","editLocation","locationId","areaOccupiedByBusiness","buildingCoverage","burglarAlarmType","constructionType","ownershipType","personalPropertyCoverage","sprinkleredPercentage","totalArea","totalStories","yearBuilt","removeLocation","onContinue","LocationsSkeleton","BuildingOffice2Icon","ChevronDoubleRightIcon","PencilSquareIcon","Losses","hasLosses","setHasLosses","pastPolicyLosses","claimDate","claimStatus","lossDate","lossDescription","lossState","lossType","policyEffectiveDate","policyExpirationDate","totalPaidAmount","totalReservedAmount","addLoss","removeLoss","yearsAgo","setFullYear","getFullYear","LossesSkeleton","loss","CarrierSelection","selectedCarriers","onSubmitWithNoQuotes","submitBusinessApplication","rates","quotableCarriers","online","supportedPolicies","CarrierSelectionSkeleton","ShieldExclamationIcon","UnderwritingForm.CheckboxField","UnderwritingProgress","MarkdownStyleContainer","CarrierStatement","ReactMarkdown","statements","markdown","getCarrierName","Underwriting","carrierIndex","setCarrierIndex","generalAnswers","locationAnswers","underwritingAnswers","answer","questionId","underwritingQuestions","question","carriers","Set","localeCompare","carrierQuestionGroups","generalQuestions","locationQuestions","questions","underwritingStatements","renderQuestion","componentTypeMap","UnderwritingForm","updateGeneralForm","updateLocationForm","updateGeneralFormMulti","updateLocationFormMulti","tooltip","answerOptions","filterQuestion","hasParentQuestion","q","dependentQuestions","dependentQuestionIds","parentQuestion","rule","answerForm","parentAnswer","validAnswers","op","answers","at","UnderwritingSkeleton","BindQuote","bindOptions","setBindOptions","paymentPlanId","describePlan","installmentCount","totalAmount","cadance","installmentFrequency","firstInstallmentDate","installmentDueAt","downAmount","installmentAmount","paymentPlansSorted","paymentPlans","plan","onBind","premiumAmount","quoteProposalUrl","Quote","showProgress","setShowProgress","bindLoading","setBindLoading","bindError","setBindError","bindQuote","setBindQuote","onLoadLoop","onLoad","quoteBusinessApplication","selectQuote","quotes","bindingQuote","bound","isOnline","bindOnlineQuotes","bridgeQuotes","bindOnlineQuote","bridgeQuote","bindOnlineQuoteAmount","bridgeQuoteAmount","coverageTypes","quoteId","onSubmitApplication","QuoteProgress","QuoteSkeleton","InformationCircleIcon","Complete","bindingQuotes","pendingCoverages","CompleteSkeleton","initApm","initAppConfiguration","App","Router","CommercialLanding","CommercialApp.Intro","CommercialApp.Business","CommercialApp.Locations","CommercialApp.Losses","CommercialApp.CarrierSelection","CommercialApp.Underwriting","CommercialApp.Quote","CommercialApp.Complete","container","getElementById","root","createRoot"],"mappings":"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E,YACE,0HACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,4XACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,mHACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,8TACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YAAa,8EACf,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qGACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,kFACf,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gIACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wFACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,qFACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YAAa,8EACf,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,6EACf,EACA,OAAU,CACRF,MAAO,oBACPE,YAAa,gFACf,EACA,OAAU,CACRF,MAAO,cACPE,YACE,6GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,uFACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,gmBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gGACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YAAa,mFACf,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,kHACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,+HACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yGACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,2FACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,eACPE,YAAa,4EACf,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,mOACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,iLACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YAAa,kFACf,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,+VACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,6HACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,geACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,2dACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,kgBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,ybACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,ogBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,iWACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kbACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,oaACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kaACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,oiBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,8gBACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,yiBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,+aACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,8UACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,6mBACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,2bACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,kaACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,woBACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,2sBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,0nBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,ujBACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,unBACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,ynBACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+wBACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,4SACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,meACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,kPACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,oWACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,8TACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,2WACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,qZACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,obACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,kMACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,iSACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uSACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,mGACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,2XACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,2SACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,iQACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,0LACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,+gBACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,oMACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,gJACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,sFACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,mTACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qPACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+MACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,inBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gIACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,qFACJ,EACA,OAAU,CACRF,MAAO,YACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,+cACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,iPACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,uaACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,6hBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,mVACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,+kBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,2OACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,qXACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,6nBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iPACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kMACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,iYACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,yHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,yHACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,iZACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6SACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,+hBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,+xBACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,yfACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,qMACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,kYACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,sEACPE,YACE,mfACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kGACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+SACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,qLACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uFACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,yEACPE,YACE,kgBACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,wEACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,mRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,sGACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6FACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,kGACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6bACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,mIACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,uPACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+FACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,0QACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,iOACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wOACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,yvBACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,qGACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8SACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,+VACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0aACJ,EACA,OAAU,CACRF,MAAO,gFACPE,YACE,iVACJ,EACA,OAAU,CACRF,MACE,8FACFE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,8RACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,sZACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wPACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,gfACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,ueACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sUACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,yoBACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,4GACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,8HACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,iOACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,gMACJ,EACA,OAAU,CACRF,MACE,iGACFE,YACE,utBACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,+UACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,uGACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,4dACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,sUACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+dACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,2aACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,0bACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mPACJ,EACA,OAAU,CACRF,MACE,sHACFE,YACE,mPACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,yKACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,+JACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uJACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,iSACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,mdACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kQACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,2RACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,qJACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,ggBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,8hCACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,qKACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,ofACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,4bACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,mTACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,8SACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,sTACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,qSACJ,EACA,OAAU,CACRF,MACE,0GACFE,YACE,+XACJ,EACA,OAAU,CACRF,MACE,+FACFE,YACE,sMACJ,EACA,OAAU,CACRF,MACE,yHACFE,YACE,gdACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,wFACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iUACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,mmBACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,2RACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,8WACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0XACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,sHACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,iHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,oHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,oSACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,qkBACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,iXACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,sPACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qeACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,iFACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,gJACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0JACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,sbACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,4cACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,mZACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MACE,2FACFE,YACE,+RACJ,EACA,OAAU,CACRF,MAAO,qFACPE,YACE,uVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,ibACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,yeACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,yUACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,wYACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,2hBACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qdACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mIACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,kUACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,6ZACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,6WACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,uSACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+8BACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,sIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,4TACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,mHACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,8MACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,2GACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kXACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,oQACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,wRACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,iKACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,maACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,+EACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,4EACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,8PACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,+SACJ,EACA,OAAU,CACRF,MACE,2FACFE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,+EACPE,YACE,mMACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,kKACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,mMACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,8NACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,2ZACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,yPACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,4PACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,wmBACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,mVACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,yKACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0NACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,yJACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,iIACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,miBACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,yIACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,sNACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,gOACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,mNACJ,EACA,OAAU,CACRF,MACE,6FACFE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,4LACJ,EACA,OAAU,CACRF,MAAO,gEACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,4nBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8bACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,oUACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,wKACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,gRACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,kVACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8bACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,sQACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,+GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,8XACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,mOACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,2cACJ,EACA,OAAU,CACRF,MAAO,0EACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,oIACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oGACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wJACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,oJACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,sQACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gVACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,6JACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+oBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,0hBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,wjBACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,wIACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0TACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,8aACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,mXACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+PACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,sRACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,gPACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,qJACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,wVACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,0GACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,6PACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,sEACPE,YACE,oKACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,izBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,sYACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,6YACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qNACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,4IACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,qkBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,iMACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,meACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,gRACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,mPACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,2NACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6ZACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,4pBACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,uGACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,wHACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,sKACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,+MACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,oOACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,kJACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,uKACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,2OACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0VACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,sIACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,+QACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,8qBACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,qiBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,wVACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kQACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oMACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,8GACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,0PACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,4OACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,wrBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0WACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wpBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wSACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,4ZACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,yTACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,kjBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,wMACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,0eACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,uVACJ,EACA,OAAU,CACRF,MACE,yGACFE,YACE,2YACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,u0BACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,wXACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,yLACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,guBACJ,EACA,OAAU,CACRF,MAAO,yFACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,6uBACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6eACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,sOACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,kEACPE,YACE,gdACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,mWACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,4GACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,gHACJ,EACA,OAAU,CACRF,MAAO,qFACPE,YACE,msBACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sJACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,4nBACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,wcACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,4NACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,0SACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,qlBACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,8OACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8ZACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kRACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,mQACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,kSACJ,EACA,OAAU,CACRF,MAAO,qEACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,+LACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,4HACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,0UACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,kLACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,4VACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,qWACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,iDACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,wkBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,+GACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kHACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,8GACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,uPACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,gOACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,yLACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,oYACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,qmBACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,gFACPE,YACE,4QACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,kNACJ,EACA,OAAU,CACRF,MAAO,6EACPE,YACE,6mBACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,0OACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,6VACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,2QACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,wkBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,moBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,6dACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,iXACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,mSACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oaACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,glBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,oNACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,shBACJ,EACA,OAAU,CACRF,MAAO,sDACPE,YACE,2XACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,yaACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qsBACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,8lBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,iUACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,uoBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,mYACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,oEACPE,YACE,sfACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,4YACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,suBACJ,EACA,OAAU,CACRF,MAAO,qDACPE,YACE,8LACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,mgBACJ,EACA,OAAU,CACRF,MAAO,uEACPE,YACE,spBACJ,EACA,OAAU,CACRF,MACE,qHACFE,YACE,sdACJ,EACA,OAAU,CACRF,MAAO,iEACPE,YACE,+NACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,ieACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,6TACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,gMACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,0IACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iYACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qfACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,oXACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,8JACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,yNACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,unBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,0bACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,2cACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8ZACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,uXACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,40BACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,oPACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,4qBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qXACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,kwBACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,uUACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,2LACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,6lBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,0YACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,6kBACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,+IACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,4RACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,sNACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,iMACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,yeACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,iBACPE,YACE,6NACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,icACJ,EACA,OAAU,CACRF,MAAO,wDACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8IACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,oKACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,yOACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,8PACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,+RACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,oLACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,qZACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qHACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,sOACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,gKACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,oSACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,6cACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,wUACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,uQACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,sXACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,kOACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,ohBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,2VACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,oDACPE,YACE,4SACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,kTACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,gvBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,woBACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,oyBACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,4rBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,kvBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,qNACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,6LACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6KACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,qVACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,uIACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,gNACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,wJACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,2GACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,4UACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,iJACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,+cACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,2ZACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,mlBACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,8gBACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qvBACJ,EACA,OAAU,CACRF,MAAO,6DACPE,YACE,kkBACJ,EACA,OAAU,CACRF,MAAO,4EACPE,YACE,00BACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,qaACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gTACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,8eACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,4bACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,8mBACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,uiBACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,wLACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,odACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,8UACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,2KACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,uTACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,0uBACJ,EACA,OAAU,CACRF,MAAO,4CACPE,YACE,2yBACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,27BACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,2YACJ,EACA,OAAU,CACRF,MAAO,mEACPE,YACE,oVACJ,EACA,OAAU,CACRF,MAAO,2DACPE,YACE,ufACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,ykBACJ,EACA,OAAU,CACRF,MAAO,6CACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,+XACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qTACJ,EACA,OAAU,CACRF,MAAO,yDACPE,YACE,+ZACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,0QACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gjBACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,kcACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,yoBACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,0NACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,0mBACJ,EACA,OAAU,CACRF,MAAO,sBACPE,YACE,seACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sfACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,sSACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,oZACJ,EACA,OAAU,CACRF,MAAO,kCACPE,YACE,uLACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4WACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,uOACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,2EACPE,YACE,ybACJ,EACA,OAAU,CACRF,MAAO,8EACPE,YACE,8XACJ,EACA,OAAU,CACRF,MAAO,oFACPE,YACE,iaACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,saACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,2JACJ,EACA,OAAU,CACRF,MAAO,mBACPE,YACE,oTACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,qIACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,2HACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,wTACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,2IACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,kYACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,6JACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,wYACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,gXACJ,EACA,OAAU,CACRF,MAAO,UACPE,YACE,ySACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,qQACJ,EACA,OAAU,CACRF,MAAO,kBACPE,YACE,6IACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,gSACJ,EACA,OAAU,CACRF,MAAO,2CACPE,YACE,yVACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,whBACJ,EACA,OAAU,CACRF,MAAO,yBACPE,YACE,4XACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,mKACJ,EACA,OAAU,CACRF,MAAO,kDACPE,YACE,gWACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,yfACJ,EACA,OAAU,CACRF,MAAO,+DACPE,YACE,qeACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,4sBACJ,EACA,OAAU,CACRF,MAAO,WACPE,YACE,sdACJ,EACA,OAAU,CACRF,MAAO,uBACPE,YACE,gbACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,sPACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,qYACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,maACJ,EACA,OAAU,CACRF,MAAO,yCACPE,YACE,+bACJ,EACA,OAAU,CACRF,MAAO,uCACPE,YACE,8fACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,oRACJ,EACA,OAAU,CACRF,MAAO,gCACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,8DACPE,YACE,wMACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,8KACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,mLACJ,EACA,OAAU,CACRF,MAAO,aACPE,YACE,gLACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,kWACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,inBACJ,EACA,OAAU,CACRF,MACE,8GACFE,YACE,iiBACJ,EACA,OAAU,CACRF,MAAO,mDACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,6OACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,wNACJ,EACA,OAAU,CACRF,MAAO,oCACPE,YACE,wOACJ,EACA,OAAU,CACRF,MAAO,4DACPE,YACE,0cACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,mNACJ,EACA,OAAU,CACRF,MAAO,gBACPE,YACE,iTACJ,EACA,OAAU,CACRF,MAAO,cACPE,YACE,mJACJ,EACA,OAAU,CACRF,MAAO,mCACPE,YACE,wZACJ,EACA,OAAU,CACRF,MAAO,+BACPE,YACE,uMACJ,EACA,OAAU,CACRF,MAAO,qCACPE,YACE,+TACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,4KACJ,EACA,OAAU,CACRF,MAAO,0CACPE,YACE,gaACJ,EACA,OAAU,CACRF,MAAO,0DACPE,YACE,+oBACJ,EACA,OAAU,CACRF,MAAO,eACPE,YACE,qRACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,mWACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,+KACJ,EACA,OAAU,CACRF,MAAO,gDACPE,YACE,sMACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,qOACJ,EACA,OAAU,CACRF,MAAO,2BACPE,YACE,sLACJ,EACA,OAAU,CACRF,MAAO,8BACPE,YACE,6QACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,yRACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,gUACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,iNACJ,EACA,OAAU,CACRF,MAAO,wCACPE,YACE,8NACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,6qBACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,ueACJ,EACA,OAAU,CACRF,MAAO,sCACPE,YACE,qgBACJ,EACA,OAAU,CACRF,MAAO,iCACPE,YACE,4MACJ,EACA,OAAU,CACRF,MAAO,wBACPE,YACE,yWACJ,EACA,OAAU,CACRF,MAAO,6BACPE,YACE,uWACJ,EACA,OAAU,CACRF,MAAO,+CACPE,YACE,6HACJ,EACA,OAAU,CACRF,MAAO,0BACPE,YACE,0PACJ,EACA,OAAU,CACRF,MACE,kGACFE,YACE,qSACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,gYACJ,EACA,OAAU,CACRF,MAAO,oBACPE,YACE,gQACJ,EACA,OAAU,CACRF,MAAO,qBACPE,YACE,wQACJ,EACA,OAAU,CACRF,MAAO,4BACPE,YACE,+XACJ,EACA,OAAU,CACRF,MAAO,8CACPE,YACE,8QACJ,EACA,OAAU,CACRF,MAAO,uDACPE,YACE,0UACJ,EACA,OAAU,CACRF,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"}