{"version":3,"file":"index-BmJQRtAO.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","../../../../core/api/user.ts","../../../../core/api/claims.ts","../../../../ui/Spinner/index.tsx","../../../../ui/Loadable/index.tsx","../../../../ui/Page/footer.tsx","../../../../ui/Page/index.tsx","../../../../ui/ErrorBoundary/index.tsx","../../../../core/window.tsx","../../../../ui/Logo/index.tsx","../../pages/PolicyholderDashboard/navbar/desktop.tsx","../../pages/PolicyholderDashboard/navbar/mobile.tsx","../../pages/PolicyholderDashboard/navbar/index.tsx","../../../../ui/Button/index.tsx","../../../../core/stripe.tsx","../../../../ui/Table/index.tsx","../../../../ui/Badge/index.tsx","../../../../ui/Banner/index.tsx","../../../../ui/Modal/index.tsx","../../../../ui/Form/text.tsx","../../../../core/analytics/googletags.ts","../../../../core/analytics/analytics.ts","../../../../ui/Form/checkbox.tsx","../../../../ui/common.tsx","../../../../core/statics.ts","../../../../core/payment.tsx","../../../../core/api/auth.ts","../../pages/PolicyholderDashboard/account.tsx","../../../../ui/VerticalLayout/index.tsx","../../../../core/dynamicRefs.tsx","../../../../ui/Form/datepicker.tsx","../../../../ui/Form/radio.tsx","../../../../ui/Card/index.tsx","../../../../core/policy.tsx","../../pages/PolicyholderDashboard/claims/attachment.tsx","../../../../core/mapbox.tsx","../../../../ui/Form/builder.tsx","../../../../ui/Form/address.tsx","../../../../ui/Form/switch.tsx","../../pages/PolicyholderDashboard/claims/sections/index.tsx","../../pages/PolicyholderDashboard/claims/index.tsx","../../../../ui/Form/select.tsx","../../../../ui/Form/range.tsx","../../pages/PolicyholderDashboard/edit.tsx","../../../getoyster/pages/bike/collect.tsx","../../../../core/api/policy.ts","../../../../ui/Tooltip/index.tsx","../../../../ui/Attachment/lozenge.tsx","../../../../ui/Attachment/index.tsx","../../../../core/analytics/attribution.ts","../../../getoyster/pages/jewelry/collect.tsx","../../../getoyster/pages/electronics/collect.tsx","../../../getoyster/pages/product.tsx","../../../../ui/CoverageItem/index.tsx","../../../../ui/Box/index.tsx","../../../../ui/Modal/slideout.tsx","../../../../core/api/activateDashboard.ts","../../../../core/api/sdk.ts","../../../../core/debounce.ts","../../../../core/hubspot.tsx","../../../getoyster/pages/page.tsx","../../../../ui/Form/progress.tsx","../../../getoyster/pages/payment.tsx","../../../../ui/Form/option.tsx","../../../../ui/Form/dob.tsx","../../../getoyster/pages/coverage.tsx","../../../../core/url.tsx","../../../getoyster/pages/jewelry/minico/index.tsx","../../../getoyster/pages/jewelry/chubb/disclosures/disclosures.tsx","../../../getoyster/pages/jewelry/chubb/index.tsx","../../../getoyster/pages/bike/index.tsx","../../../getoyster/pages/electronics/index.tsx","../../../getoyster/pages/motor/collect.tsx","../../../getoyster/pages/motor/index.tsx","../../pages/ActivateDashboard.tsx","../../pages/PolicyholderDashboard/policy.tsx","../../../getoyster/pages/jewelry/index.tsx","../../../getoyster/pages/complete.tsx","../../pages/PolicyholderDashboard/policies.tsx","../../pages/PolicyholderDashboard/invite.tsx","../../pages/PolicyholderDashboard/index.tsx","../../../../ui/Form/digits.tsx","../../pages/SignIn.tsx","../../../../core/ga.ts","../../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 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 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","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","import { Claim, ValidationError } from '@oysterjs/types';\nimport { Delete, Get, Post, Put } from './base';\n\nexport const getClaims = () => Get<{ Claims: Claim[] }>('/user/claims');\n\nexport const getClaim = (claimId: string) => Get<{ Claim: Claim }>(`/user/claims/${claimId}`);\n\nexport const createClaim = (policyId: string, productId: string) =>\n Post<{ Claim: Claim }>('/user/claims', { PolicyID: policyId, ProductID: productId });\n\nexport const resetClaim = (claimId: string, policyId: string, productId: string) =>\n Post<{ Claim: Claim }>(`/user/claims/${claimId}/reset`, {\n PolicyID: policyId,\n ProductID: productId\n });\n\nexport const updateClaim = (claim: Claim): Promise<{ Claim: Claim; NextError?: ValidationError }> =>\n Put<{ Claim: Claim; NextError?: ValidationError }>(`/user/claims/${claim.ID}`, { Claim: claim });\n\nexport const deleteClaim = (claimId: string) => Delete(`/user/claims/${claimId}`);\n\nexport const submitClaim = (claimId: string) =>\n Post<{ Claim: Claim }>(`/user/claims/${claimId}/submit`);\n\nexport const createClaimAttachments = (claimId: string, group: string, files: File[]) => {\n const form = new FormData();\n form.set('group', group);\n files.forEach((file) => form.append('files[]', file));\n return Post<{ Claim: Claim }>(`/user/claims/${claimId}/attachments`, undefined, { body: form });\n};\n\nexport const deleteClaimAttachment = (claimId: string, attachmentId: string) =>\n Delete(`/user/claims/${claimId}/attachments/${attachmentId}`);\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 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\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","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 styled from 'styled-components';\n\nconst OysterLogoContainer = 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 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 styled from 'styled-components';\nimport { useRouteMatch, NavLink } from 'react-router-dom';\n\nimport { IoPerson } from 'react-icons/io5';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\n\nconst LeftMenuContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 40px;\n`;\n\nconst NavItem = styled.li`\n padding: 16px 0px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n font-size: 1em;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease-in-out;\n\n :hover {\n color: #0ea5e9;\n }\n\n :active {\n color: #269985;\n }\n`;\n\nconst RightMenuContainer = styled.div`\n display: flex;\n gap: 40px;\n`;\n\nexport const DesktopNavBar = () => {\n const { url } = useRouteMatch();\n\n return (\n <>\n \n \n \n \n \n \n \n \n Policies\n \n \n \n \n Claims\n \n \n \n \n Invite a Friend\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 { useRouteMatch, NavLink } from 'react-router-dom';\n\nimport { IoMenu } from 'react-icons/io5';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\n\nconst LeftMenuContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 40px;\n`;\n\nconst NavItem = styled.li`\n padding: 18px 0px;\n display: flex;\n font-size: 1.5em;\n font-weight: 500;\n cursor: pointer;\n`;\n\nconst RightMenuContainer = styled.div`\n display: flex;\n gap: 40px;\n`;\n\nconst HamburgerMenu = styled.div`\n position: absolute;\n width: 100%;\n top: 80px;\n right: 0px;\n background: white;\n border-top: 2px solid #fafafa;\n border-bottom: 2px solid #f2f2f2;\n z-index: 998;\n`;\n\nconst HamburgerMenuItemContainer = styled.div`\n padding: 20px 40px;\n box-sizing: border-box;\n width: 100%;\n font-size: 1em;\n font-weight: 500;\n\n &:hover {\n background: #fafafa;\n }\n`;\n\nconst HamburgerMenuItem = (props: { label: string; link: string; onClick: () => void }) => (\n
  • \n \n {props.label}\n \n
  • \n);\n\nexport const MobileNavBar = () => {\n const [expanded, setExpanded] = React.useState(false);\n const { url } = useRouteMatch();\n\n return (\n <>\n \n \n \n \n \n \n \n \n setExpanded((prev) => !prev)}\n onKeyPress={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setExpanded((prev) => !prev);\n return false;\n }\n return true;\n }}\n >\n \n \n \n setExpanded(false)}\n />\n setExpanded(false)}\n />\n setExpanded(false)}\n />\n setExpanded(false)}\n />\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nimport { useWindowDimensions } from '@oysterjs/core/window';\n\nimport { DesktopNavBar } from './desktop';\nimport { MobileNavBar } from './mobile';\n\nconst TopBarContainer = styled.ol`\n display: flex;\n margin: 0;\n list-style: none;\n justify-content: space-between;\n border-bottom: 2px solid #fafafa;\n box-sizing: border-box;\n padding: 0px 40px;\n\n a,\n a:visited {\n color: #333333;\n text-decoration: none;\n }\n\n a.active-tab {\n color: #0ea5e9;\n }\n`;\n\nexport const NavBar = () => (\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\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 { 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 * 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 { useHistory } from 'react-router';\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';\nimport { BusinessQuoteNotices } from '@oysterjs/types/merchant/graphql/types-and-hooks';\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 history = useHistory();\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(() => history.push(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 notices?: BusinessQuoteNotices[];\n}) => {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [acceptedNotices, setAcceptedNotices] = React.useState>(\n new Map()\n );\n const [, setStateRefresh] = React.useState(false);\n\n const stripe = useStripe();\n const elements = useElements();\n const analytics = useAnalytics();\n\n const checkUnacceptedRequiredNotice = (): BusinessQuoteNotices | undefined => {\n if (!props.notices) {\n return;\n }\n\n for (let i = 0; i < props.notices.length; i++) {\n if (props.notices[i].requireAcceptance && !acceptedNotices.get(i)) {\n return props.notices[i];\n }\n }\n\n return;\n };\n\n const handleSubmit = async () => {\n if (!stripe || !elements) {\n return;\n }\n\n const unacceptedNotice = checkUnacceptedRequiredNotice();\n if (unacceptedNotice) {\n setError(\n `Please agree to the ${unacceptedNotice.title || 'Terms & Conditions and Privacy Policy'}.`\n );\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 {props.notices &&\n props.notices.map((notice, index) => (\n {\n e.stopPropagation();\n setAcceptedNotices((prev) => prev.set(index, !prev.get(index)));\n setStateRefresh((prev) => !prev);\n }}\n >\n \n {\n setAcceptedNotices((prev) => prev.set(index, !prev.get(index)));\n setStateRefresh((prev) => !prev);\n }}\n />\n \n \n {notice.identifier !== 'tos_pp' && (\n {notice.text}\n )}\n {notice.identifier === 'tos_pp' && (\n \n I have reviewed Coterie's{' '}\n \n Terms & Conditions\n {' '}\n and{' '}\n \n Privacy Policy\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 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 notices?: BusinessQuoteNotices[];\n}> = (props) => (\n \n \n \n);\n","import { Insured, User } from '@oysterjs/types';\nimport { Post } from './base';\n\nexport const userSignUp = (data: { Insured: Insured; AccessCode: string }) =>\n Post<{ Token: string; User: User }>('/user/signup', data, { disableUnauthorizedRedirect: true });\n\nexport const userSignInInit = (email: string, redirect?: string) =>\n Post(\n '/user/signin/init',\n { Email: email, Redirect: redirect },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const userSignInComplete = (email: string, code: string) =>\n Post<{ Token: string; User: User }>(\n '/user/signin/complete',\n { Email: email, LoginCode: code },\n { disableUnauthorizedRedirect: true }\n );\n\nexport const userSignOut = () => Post('/user/signout', { disableUnauthorizedRedirect: true });\n","import * as React from 'react';\nimport * as Sentry from '@sentry/react';\nimport styled from 'styled-components';\n\nimport { IoArrowForward, IoLockClosed, IoStar, IoTrashOutline } from 'react-icons/io5';\nimport { Button, ButtonContainer, ButtonLink, UnstyledButton } from '@oysterjs/ui/Button';\nimport { getUser, resetToken } from '@oysterjs/core/auth';\nimport getStripe from '@oysterjs/core/stripe';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Table } from '@oysterjs/ui/Table';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport {\n AccountSummary,\n PaymentMethod as IPaymentMethod,\n Statement,\n UserVerification,\n VerificationStatus\n} from '@oysterjs/types';\nimport {\n createPaymentMethod,\n retrieveVerificationSession,\n deletePaymentMethod,\n getAccountStatement,\n getAccountSummary,\n makePaymentMethodDefault\n} from '@oysterjs/core/api/user';\nimport { Stripe } from '@stripe/stripe-js';\nimport { Redirect, Route as BrowserRoute, Switch, useRouteMatch } from 'react-router';\nimport { NavLink } from 'react-router-dom';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { Banner } from '@oysterjs/ui/Banner';\nimport { Modal } from '@oysterjs/ui/Modal';\nimport { PaymentMethod, PaymentMethodInput } from '@oysterjs/core/payment';\nimport { useWindowDimensions } from '@oysterjs/core/window';\nimport { ErrorDisplay } from '@oysterjs/ui/Form/text';\nimport { userSignOut } from '@oysterjs/core/api/auth';\n\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nconst PolicyStatementContainer = styled.div`\n padding: 10px 0px;\n margin: 20px 0px 0px 0px;\n border-top: 2px solid #f2f2f2;\n\n h2 {\n margin: 0 0 5px 0;\n color: #000000;\n font-weight: 500;\n font-size: 1.2em;\n }\n`;\n\nexport const PolicyStatement = (\n props: React.PropsWithChildren<{ title: string; total: number }>\n) => (\n \n {props.children}\n \n

    {props.title}

    \n

    \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.total)}\n

    \n \n
    \n);\n\nconst PolicyLineItemContainer = styled.div`\n padding: 5px 0px 5px 0px;\n box-sizing: border-box;\n`;\n\nexport const PolicyLineItem = (props: { title: string; description: string; total: number }) => (\n \n
    \n {props.title}\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.total)}\n \n
    \n
    \n {props.description}\n
    \n
    \n);\n\nexport const PolicyTotalContainer = styled.div`\n border-top: 2px solid #f2f2f2;\n border-bottom: 2px solid #f2f2f2;\n padding: 20px 0px;\n margin-top: 10px;\n margin-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nconst PolicyTotal = (props: {\n currency: string;\n subtotal: number;\n taxrate: number;\n taxtotal: number;\n total: number;\n}) => (\n \n
    \n Subtotal\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.subtotal)}\n \n
    \n
    \n \n Tax (\n {new Intl.NumberFormat('en-US', {\n style: 'percent',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.taxrate)}\n )\n \n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.taxtotal)}\n \n
    \n \n Total\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(props.total)}\n \n \n
    \n);\n\nconst PropertyList = styled.ul`\n list-style: none;\n padding: 0;\n font-size: 0.8em;\n color: #999999;\n`;\n\nconst PropertyListItem = (props: { name: string; value: string }) => (\n
  • \n {props.name}\n {props.value}\n
  • \n);\n\nconst StatementPage = (props: { statement: Statement }): JSX.Element => {\n const date = new Intl.DateTimeFormat([], { month: 'long', year: 'numeric' }).format(\n new Date(props.statement.StatementDate)\n );\n return (\n \n

    Your {date} Statement

    \n {props.statement.PolicyStatements.map((statement) => (\n \n {statement.LineItems.map((item) => (\n \n ))}\n {statement.Adjustments.map((item) => (\n \n ))}\n \n ))}\n \n \n \n \n \n \n \n
    \n );\n};\n\nconst BillingPage = (props: { account: AccountSummary }): JSX.Element => {\n const [account, setAccount] = React.useState(props.account);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n const [showAddPaymentMethod, setShowAddPaymentMethod] = React.useState(false);\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState();\n const [showMakeDefaultConfirmation, setShowMakeDefaultConfirmation] =\n React.useState();\n\n React.useEffect(() => {\n setAccount(props.account);\n }, [props.account]);\n\n return (\n <>\n {showDeleteConfirmation && (\n setShowDeleteConfirmation(undefined)}\n headerContents={

    Confirm delete

    }\n >\n

    \n Are you sure you want to delete the card ending in{' '}\n {showDeleteConfirmation.LastFour}? This cannot be undone.\n

    \n \n \n }\n onClick={() => {\n setLoading(true);\n deletePaymentMethod(showDeleteConfirmation.ID)\n .then(() => getAccountSummary())\n .then(setAccount)\n .catch((err) => setError(err.message))\n .finally(() => {\n setShowDeleteConfirmation(undefined);\n setLoading(false);\n });\n }}\n >\n Confirm\n \n \n {error && {error}}\n \n )}\n {showMakeDefaultConfirmation && (\n setShowMakeDefaultConfirmation(undefined)}\n headerContents={

    Change default card

    }\n >\n

    \n Are you sure you want make the card ending in{' '}\n {showMakeDefaultConfirmation.LastFour} the default payment card? This can be\n changed any time, as long as there is more than one card.\n

    \n \n \n }\n onClick={() => {\n setLoading(true);\n makePaymentMethodDefault(showMakeDefaultConfirmation.ID)\n .then(() => getAccountSummary())\n .then(setAccount)\n .catch((err) => setError(err.message))\n .finally(() => {\n setShowMakeDefaultConfirmation(undefined);\n setLoading(false);\n });\n }}\n >\n Confirm\n \n \n {error && {error}}\n \n )}\n {showAddPaymentMethod && (\n setShowAddPaymentMethod(false)}\n headerContents={

    Add a card

    }\n >\n createPaymentMethod()}\n />\n \n )}\n

    Payment Cards

    \n \n \n \n \n \n \n \n {(account.PaymentMethods || []).map((paymentMethod) => (\n \n \n \n \n ))}\n \n
    Card\n
    \n \n \n {!paymentMethod.Default && (\n {\n e.stopPropagation();\n setShowMakeDefaultConfirmation(paymentMethod);\n }}\n aria-label=\"Edit Payment Method\"\n >\n \n \n )}\n {!paymentMethod.Default && (\n {\n e.stopPropagation();\n setShowDeleteConfirmation(paymentMethod);\n }}\n aria-label=\"Delete Payment Method\"\n >\n \n \n )}\n {paymentMethod.Default && }\n
    \n \n \n \n

    \n NOTE: Adding a card or switching default card will only apply to future policies. Please\n contact us at{' '}\n \n support@withoyster.com\n {' '}\n if you need to change payment method of your existing policies.\n

    \n \n );\n};\n\nconst AsyncStatementPage = ({ statementId }: { statementId: string }) => (\n \n {({ Statement }) => }\n \n);\n\nconst AccountHeaderContainer = styled.div`\n width: 100%;\n height: 150px;\n display: flex;\n gap: 40px;\n`;\n\nconst ProfileImage = styled.img`\n height: 150px;\n width: 150px;\n border-radius: 50%;\n border: 2px solid #eaeaea;\n background: #fafafa;\n`;\n\nconst AccountDetailsContainer = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nconst AccountNavigationContainer = styled.ol`\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: row;\n gap: 40px;\n\n a,\n a:visited {\n color: #333333;\n text-decoration: none;\n }\n\n a.active-tab {\n color: #0ea5e9;\n }\n`;\n\nconst AccountNavigationItemContainer = styled.li`\n transition: 0.15s all ease-in-out;\n /* padding: 0px; */\n font-weight: 500;\n cursor: pointer;\n\n :hover {\n color: #0ea5e9;\n }\n\n :active {\n color: #269985;\n }\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n padding-top: 0.67em;\n\n h1 {\n width: 100%;\n }\n`;\n\nconst ProfileActionsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-end;\n min-width: 120px;\n`;\n\nconst AccountHeader = (props: {\n email: string;\n firstName: string;\n lastName: string;\n createdAt: Date;\n}) => {\n const { url } = useRouteMatch();\n const { innerWidth } = useWindowDimensions();\n const [loading, setLoading] = React.useState(false);\n\n const signOut = () => {\n setLoading(true);\n userSignOut().finally(() => {\n setLoading(false);\n resetToken();\n });\n };\n\n return (\n \n {innerWidth > 600 && (\n \n )}\n \n
    \n \n

    \n {props.firstName} {props.lastName}\n

    \n \n \n \n
    \n

    {props.email}

    \n
    \n \n
    \n
    \n );\n};\n\nconst IdentityVerification = (props: { verification?: UserVerification }) => {\n const [stripe, setStripe] = React.useState(null);\n const [verification, setVerification] = React.useState(props.verification);\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState('');\n\n React.useEffect(() => {\n setLoading(true);\n getStripe()\n .then((stripe) => setStripe(stripe))\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false));\n }, []);\n\n const render = (badge: JSX.Element, text: JSX.Element, action?: JSX.Element) => (\n <>\n

    \n Your Identity\n \n {badge}\n \n

    \n {text}\n {action}\n {error &&

    {error}

    }\n \n );\n\n const handleVerify = (secret: string) => {\n setLoading(true);\n return stripe\n ?.verifyIdentity(secret)\n .then((res) => {\n if (res.error) {\n setError(res.error.message || '');\n }\n })\n .then(() => getAccountSummary())\n .then((res) => setVerification(res.Verification))\n .finally(() => setLoading(false));\n };\n\n const onVerify = () =>\n retrieveVerificationSession().then((res) => {\n setVerification(res.VerificationSession);\n handleVerify(res.VerificationSession.Secret);\n });\n\n // not started - show verify button\n if (!verification || !verification?.Status) {\n return render(\n ,\n

    \n To complete the account setup, we need to verify your identity. Verification usually takes\n less than a few minutes and is encrypted. Oyster works with Stripe to conduct identity\n verification online. Stripe will ask for your consent before collecting your information,\n and they will only use your verification data in accordance with their privacy policy and\n the permissions you grant for the verification process.\n

    ,\n }\n icon={}\n primary\n onClick={onVerify}\n >\n Verify Identity\n \n );\n }\n\n // started but not completed - show verify button\n const started = verification?.Status === VerificationStatus.RequiresInput && !verification?.Error;\n\n // completed but verification pending - show spinner with message\n const pending = verification?.Status === VerificationStatus.Processing;\n\n // completed and denied - option to try again, refer to customer support\n const denied = verification?.Status === VerificationStatus.RequiresInput && verification?.Error;\n\n // completed and verified - show success message and redirect\n const verified = verification?.Status === VerificationStatus.Verified;\n\n const canceled = verification?.Status === VerificationStatus.Canceled;\n\n if (verified) {\n return render(\n ,\n

    Your identity has been successfully verified.

    \n );\n }\n\n if (pending) {\n return render(\n ,\n

    \n Thank you for submitting your information. Identity verification can take up to 48 hours.\n Please reach out to support@withoyster.com if\n you need help.\n

    \n );\n }\n\n if (denied) {\n return render(\n ,\n

    \n Identity verification failed. Reason: {verification?.Error} Please try again or reach out to{' '}\n support@withoyster.com and we can help resolve\n the issue.\n

    ,\n }\n icon={}\n primary\n onClick={onVerify}\n >\n Try Verification Again\n \n );\n }\n\n if (started) {\n return render(\n ,\n

    \n We still need a bit more information before we can verify your identity. Please continue by\n clicking the button below. If you need assistance, feel free to reach out to{' '}\n support@withoyster.com and we can help resolve\n the issue.\n

    ,\n }\n icon={}\n primary\n onClick={onVerify}\n >\n Continue Verification\n \n );\n }\n\n // Canceled is a weird state because only us can request cancellation of a session.\n // Users should not be able to retry until they contact us.\n if (canceled) {\n return render(\n ,\n

    \n Identity verification failed. Reason: Verification session has been canceled. Please reach\n out to support@withoyster.com and we can help\n resolve the issue.\n

    \n );\n }\n\n return null;\n};\n\nexport const VerifyIdentityBanner = (props: { accountSummary?: AccountSummary }): JSX.Element => (\n \n {(res) => {\n if (res.Verification?.Status === VerificationStatus.Verified) {\n return null;\n }\n\n let title = '',\n description = '',\n hasAction = true;\n\n if (\n !res.Verification ||\n (res.Verification?.Status === VerificationStatus.RequiresInput && !res.Verification?.Error)\n ) {\n title = 'Please verify your identity';\n description = 'Oyster needs to verify your identity before any claims can be processed.';\n }\n\n if (res.Verification?.Status === VerificationStatus.Processing) {\n title = 'Your identity is being verified';\n description = 'Oyster is currently verifying your identity. This can take up to 48 hours.';\n hasAction = false;\n }\n\n if (res.Verification?.Status === VerificationStatus.Canceled) {\n title = 'Oyster could not verify your identity';\n description =\n 'Identity verification was canceled. Check your account profile for next steps.';\n }\n\n if (\n res.Verification?.Status === VerificationStatus.RequiresInput &&\n res.Verification?.Error\n ) {\n title = 'Oyster could not verify your identity';\n description =\n 'There was an error verifying your identity: ' +\n res.Verification?.Error +\n ' Check your account profile for next steps.';\n }\n\n return (\n }>\n Continue to Profile\n \n ) : undefined\n }\n >\n );\n }}\n \n);\n\nexport const AccountPage = (props: { account: AccountSummary }): JSX.Element => {\n const { path } = useRouteMatch();\n return (\n <>\n \n \n \n \n \n \n

    Profile

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

    Billing

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

    Settings

    \n

    Nothing here yet.

    \n
    \n
    \n }\n />\n \n
    \n \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 { RefObject } from 'react';\nimport React from 'react';\n\nexport const useDynamicRefs = (): {\n getRef: (key: string) => RefObject | undefined;\n setRef: (key: string) => RefObject;\n} => {\n const [refs, setRefs] = React.useState({});\n\n const getRef = (key: string) => refs[key] as RefObject | undefined;\n const setRef = (key: string) => {\n const existingRef = getRef(key);\n if (existingRef) {\n return existingRef;\n }\n\n const ref = React.createRef();\n setRefs((prev) => ({ ...prev, [key]: ref }));\n return ref;\n };\n\n return { getRef, setRef };\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 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 width: 100px;\n height: 100%;\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: 2.4em;\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 alignitems: 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

    {props.title}

    \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 { useRouteMatch } from 'react-router';\nimport { Comparison } from '@oysterjs/ui/Table/comparison';\nimport { AccountSummary, ActivationSource, ElectronicsType } from '@oysterjs/types';\nimport {\n BikeProduct,\n Policy,\n PolicyState,\n PolicyType,\n Product,\n ProductType\n} from '@oysterjs/types';\n\nexport const getPolicyDisplayName = (policy: Policy): string => {\n switch (policy.Type) {\n case PolicyType.bike:\n return 'Bike';\n case PolicyType.markelOffroad:\n return 'Offroad';\n case PolicyType.markelMotorcycle:\n return 'Motorcycle';\n case PolicyType.markelBike:\n return 'Bike';\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return 'Jewelry';\n case PolicyType.worthAveElectronics:\n if (\n [ElectronicsType.iPhone, ElectronicsType.smartPhone].includes(\n policy.InsuredItems[0]?.Details?.Type as ElectronicsType\n )\n ) {\n return 'Phone';\n }\n return 'Electronics';\n }\n};\n\nexport const getPolicyHref = (policy: Policy, account: AccountSummary): string => {\n const { url } = useRouteMatch();\n if (\n policy.Coverage.ActivationTrigger &&\n policy.InsuredItems.some((i) => i.HasNotReceived) &&\n !!account?.PaymentMethods?.length &&\n (policy.Coverage.ActivationTrigger.Source == ActivationSource.ManuallyActivate ||\n policy.State === PolicyState.applicationSubmitted)\n ) {\n return `${url}/${policy.ID}/overview/activate/manual`;\n }\n\n switch (policy.State) {\n case PolicyState.unknown:\n return `/app/${policy.InsuredItems[0].Type}/${policy.ID}`;\n case PolicyState.offerSubmitted:\n return `${url}/${policy.ID}/overview/activate`;\n case PolicyState.applicationSubmitted:\n return `${url}/${policy.ID}`;\n default:\n return `${url}/${policy.ID}`;\n }\n};\n\nexport const getPolicyDisplayImage = (policyType: PolicyType, productType?: string): string => {\n switch (policyType) {\n case PolicyType.markelOffroad:\n return 'https://dashboard.withoyster.com/images/atv_insurance.svg';\n case PolicyType.markelMotorcycle:\n return 'https://dashboard.withoyster.com/images/motorcycle_insurance.svg';\n case PolicyType.bike:\n case PolicyType.markelBike:\n return 'https://dashboard.withoyster.com/images/bike_insurance.svg';\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return 'https://dashboard.withoyster.com/images/jewelry_insurance.svg';\n case PolicyType.worthAveElectronics:\n return productType === ProductType.phone ||\n productType === ElectronicsType.iPhone ||\n productType === ElectronicsType.smartPhone\n ? 'https://dashboard.withoyster.com/images/phone_insurance.svg'\n : 'https://dashboard.withoyster.com/images/electronics_insurance.svg';\n }\n};\n\nexport const getProductDisplayName = (type: ProductType, product?: Product): string => {\n switch (type) {\n case ProductType.offroad:\n return 'ATV';\n case ProductType.motorcycle:\n return 'Motorcycle';\n case ProductType.bike:\n if (product) {\n const bikeProduct = product.Details as BikeProduct;\n if (bikeProduct.PowerSource) {\n return 'Electric Bike';\n }\n }\n return 'Bicycle';\n case ProductType.jewelry:\n return 'Jewelry';\n case ProductType.phone:\n return 'Phone';\n case ProductType.electronics:\n // TODO: use ProductType.phone type for phone product routing (asana: https://app.asana.com/0/1200762684494204/1203949127097148/f))\n if (\n product &&\n [ElectronicsType.iPhone, ElectronicsType.smartPhone].includes(\n product.Details.Type as ElectronicsType\n )\n ) {\n return 'Phone';\n }\n return 'Electronics';\n }\n};\n\nexport const getProductMoreInfoTitle = (type: ProductType, product?: Product): string => {\n switch (type) {\n case ProductType.offroad:\n case ProductType.motorcycle:\n case ProductType.bike:\n return `Protect your ${getProductDisplayName(\n type,\n product\n )} from theft, loss, crash damage, and more.`;\n case ProductType.jewelry:\n return `Protect your ${getProductDisplayName(\n type,\n product\n )} from theft, loss, accidental damage, and more.`;\n case ProductType.phone:\n case ProductType.electronics:\n return `Protect your ${getProductDisplayName(\n type,\n product\n )} from cracked screen, theft, accidental damage, and more.`;\n }\n};\n\nexport const getProductShortCoverageIntro = (\n type: ProductType,\n _?: Product,\n isPremium?: boolean\n): string => {\n switch (type) {\n case ProductType.offroad:\n case ProductType.motorcycle:\n case ProductType.bike:\n return isPremium\n ? `Your premium policy covers theft, loss in transit, crash damage, medical payments, liabilities, and more.`\n : `Your basic policy covers theft, loss in transit, crash damage, and more.`;\n case ProductType.jewelry:\n return `Your policy covers theft, loss, accidental damage, and more.`;\n case ProductType.phone:\n case ProductType.electronics:\n return `Your policy covers cracked screen, theft, accidental damage, liquid submersion, and more.`;\n }\n};\n\nexport const getProductDisplayImage = (type: ProductType, overrideUrl?: string): string => {\n if (overrideUrl) {\n return overrideUrl;\n }\n\n return getPolicyDisplayImage(getPolicyFromProduct(type), type);\n};\n\nexport const getPolicyFromProduct = (type: ProductType): PolicyType => {\n switch (type) {\n case ProductType.offroad:\n return PolicyType.markelOffroad;\n case ProductType.motorcycle:\n return PolicyType.markelMotorcycle;\n case ProductType.bike:\n return PolicyType.markelBike;\n case ProductType.jewelry:\n return PolicyType.minicoJewelry; // default to minico for now\n case ProductType.phone:\n case ProductType.electronics:\n return PolicyType.worthAveElectronics;\n }\n};\n\nexport const getProductFromPolicy = (type: PolicyType): ProductType | undefined => {\n switch (type) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return ProductType.bike;\n case PolicyType.chubbJewelry:\n case PolicyType.minicoJewelry:\n return ProductType.jewelry;\n case PolicyType.worthAveElectronics:\n return ProductType.electronics;\n default:\n return;\n }\n};\n\nexport const getPolicyComparison = (type: PolicyType): Comparison => {\n switch (type) {\n case PolicyType.bike:\n case PolicyType.markelOffroad: // TODO: FIX THIS\n case PolicyType.markelMotorcycle: // TODO: FIX THIS\n case PolicyType.markelBike:\n return {\n headers: ['Oyster Insurance', 'Homeowners or renters insurance', 'Extended warranty'],\n sections: [\n {\n title: 'Coverage',\n items: [\n {\n name: 'Full-value coverage',\n enabled: [1, 0, 0]\n },\n {\n name: 'Theft',\n enabled: [1, 0.5, 0]\n },\n {\n name: 'Crash damage',\n enabled: [1, 0, 0]\n },\n {\n name: 'Damage or loss in transit',\n enabled: [1, 0, 0]\n },\n {\n name: 'Medical payments',\n enabled: [1, 0, 0]\n },\n {\n name: 'Liability protection',\n enabled: [1, 0.5, 0]\n },\n {\n name: 'eBike cover',\n enabled: [1, 0, 1]\n },\n {\n name: 'Worldwide coverage',\n enabled: [1, 0, 1]\n },\n {\n name: 'Racing coverage',\n enabled: [1, 0, 0]\n },\n {\n name: 'Replacement bike rental',\n enabled: [1, 0, 0]\n }\n ]\n },\n {\n title: 'Features',\n items: [\n {\n name: 'A.M. Best A rated policy',\n enabled: [1, 0.5, 0]\n },\n {\n name: 'No impact of claims on homeowner insurance',\n enabled: [1, 0, 1]\n },\n {\n name: 'Referral discounts',\n enabled: [1, 0, 0]\n }\n ]\n }\n ]\n };\n\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return {\n headers: ['Oyster Insurance', 'Homeowners or renters insurance', 'Extended warranty'],\n sections: [\n {\n title: 'Coverage',\n items: [\n {\n name: 'Full-value coverage',\n enabled: [1, 0, 0]\n },\n {\n name: 'Theft',\n enabled: [1, 0.5, 0]\n },\n {\n name: 'Loss',\n enabled: [1, 0, 0]\n },\n {\n name: 'Mysterious disappearance',\n enabled: [1, 0, 0]\n },\n {\n name: 'Accidental damage',\n enabled: [1, 0.5, 0.5]\n },\n {\n name: 'Worldwide coverage',\n enabled: [1, 1, 1]\n }\n ]\n },\n {\n title: 'Features',\n items: [\n {\n name: '$0 deductible',\n enabled: [1, 0, 0.5]\n },\n {\n name: 'A.M. Best A+ rated policy',\n enabled: [1, 0.5, 0]\n },\n {\n name: 'No impact of claims on homeowner insurance',\n enabled: [1, 0, 1]\n },\n {\n name: 'Referral discounts',\n enabled: [1, 0, 0]\n },\n {\n name: '30-day free cancellation',\n enabled: [1, 0, 0]\n }\n ]\n }\n ]\n };\n\n case PolicyType.worthAveElectronics:\n return {\n headers: ['Oyster Insurance', 'Typical Homeowners'],\n sections: [\n {\n title: 'Coverage',\n items: [\n {\n name: 'Full-value coverage',\n enabled: [1, 0]\n },\n {\n name: 'Theft',\n enabled: [1, 0.5]\n },\n {\n name: 'Loss',\n enabled: [1, 0]\n },\n {\n name: 'Accidental damage',\n enabled: [1, 0.5]\n }\n ]\n },\n {\n title: 'Features',\n items: [\n {\n name: '$0 deductible',\n enabled: [1, 0]\n },\n {\n name: 'A.M. Best A+ rated policy',\n enabled: [1, 0.5]\n },\n {\n name: 'Claims do not increase premiums',\n enabled: [1, 0]\n },\n {\n name: '30-day free cancellation',\n enabled: [1, 0]\n },\n {\n name: 'Referral discount',\n enabled: [1, 0]\n }\n ]\n }\n ]\n };\n }\n};\n\nexport const getPolicyOptionalCoverageItem = (\n itemId: string\n): { title: string; description: string } => {\n switch (itemId) {\n case 'coverage_medical_payments':\n return {\n title: 'Medical Payments',\n description:\n \"We'll cover your medical bills up to the coverage limit if you're hurt while riding your bike.\"\n };\n case 'coverage_liability_protection':\n return {\n title: 'Liability Protection',\n description:\n \"We'll protect you from being personally liable up to the coverage limit for any injury or damage you may cause while riding your bike.\"\n };\n case 'coverage_vehicle_contact_protection':\n return {\n title: 'Vehicle Contact Protection',\n description:\n \"We'll protect you from damages in case you are hit by a vehicle that doesn’t carry proper insurance to cover your losses.\"\n };\n case 'coverage_worldwide':\n return {\n title: 'Worldwide Coverage',\n description: \"We'll cover your bike wherever in the world you travel with it.\"\n };\n\n case 'coverage_extended_warranty':\n return {\n title: 'Extended Warranty',\n description:\n \"For new devices, we'll extend any existing OEM's warranty and cover mechanical failures and manufacturing defects.\"\n };\n\n case 'motor_coverage_medical_payments':\n return {\n title: 'Medical Payments',\n description:\n \"We'll cover up to $1k of medical bills if you're hurt while riding your vehicle.\"\n };\n case 'motor_coverage_comprehensive':\n return {\n title: 'Comprehensive Coverage',\n description:\n \"We'll cover loss of or damage to your vehicle as a result of events like fire, theft, vandalism, or hitting an animal, subject to the deductible.\"\n };\n case 'motor_coverage_collision':\n return {\n title: 'Collision Coverage',\n description:\n \"We'll cover damage to your vehicle as a result of a hit, crash, fall, or other collision, subject to the deductible.\"\n };\n case 'motor_coverage_roadside_assistance':\n return {\n title: 'Roadside Assistance',\n description:\n 'Get access to our nationwide roadside assistance program, including 24-hour emergency support, supply delivery, tire and battery service, locksmith, and more.'\n };\n\n default:\n return {\n title: '',\n description: ''\n };\n }\n};\n\nexport const getPremiumPolicyCoverageItems = (\n type: PolicyType\n): Array<{ title: string; description: string }> => {\n switch (type) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return [\n {\n title: 'Medical Payments',\n description:\n \"We'll cover your medical bills up to the coverage limit if you're hurt while riding your bike.\"\n },\n {\n title: 'Liability Protection',\n description:\n \"We'll protect you from being personally liable up to the coverage limit for any injury or damage you may cause while riding your bike.\"\n }\n ];\n case PolicyType.markelMotorcycle:\n return [];\n case PolicyType.markelOffroad:\n return [];\n case PolicyType.minicoJewelry:\n return [];\n case PolicyType.chubbJewelry:\n return [];\n case PolicyType.worthAveElectronics:\n return [];\n }\n};\n\nexport const getPolicyCoverageItems = (\n type: PolicyType\n): Array<{ title: string; description: string }> => {\n switch (type) {\n case PolicyType.bike:\n return [\n {\n title: 'Theft',\n description: \"Your bike is covered if it's stolen from or away from home.\"\n },\n {\n title: 'Loss',\n description: \"Your bike is covered if it's lost in transport or left behind.\"\n },\n {\n title: 'Accidental Damage',\n description: \"Your bike is covered if it's accidentally damaged.\"\n },\n {\n title: 'Emergency Travel',\n description: 'Your travel costs are covered if your bike suffers a covered loss.'\n },\n {\n title: 'Worldwide Coverage',\n description: 'Your bike is covered while traveling anywhere in the world.'\n },\n {\n title: 'Spare Parts and Apparel',\n description: 'Spare parts and cycle apparel are also covered from theft and damage.'\n }\n ];\n\n case PolicyType.markelBike:\n return [\n {\n title: 'Bikes and eBikes',\n description: 'Bikes and eBikes (class 1, 2, and 3) are fully covered on this policy.'\n },\n {\n title: 'Full Value Coverage',\n description: 'Your bike is covered for its full replacement value.'\n },\n {\n title: 'Theft',\n description: 'Your bike is covered if it is stolen from or away from home.'\n },\n {\n title: 'Damage or Loss in Transit',\n description: 'Your bike is covered if it is lost or damaged in transit by third parties.'\n },\n {\n title: 'Crash Damage',\n description: 'Your bike is covered if it is damaged in an accident or crash.'\n },\n {\n title: 'Spare Parts and Apparel',\n description: 'Spare parts and cycle apparel are also covered from theft and damage.'\n },\n {\n title: 'Racing Coverage',\n description: 'Your coverages also apply when competing in a race or event.'\n }\n ];\n\n case PolicyType.markelOffroad:\n case PolicyType.markelMotorcycle:\n return [\n {\n title: 'Passenger Liability',\n description:\n \"You're covered if you're required to pay for injuries to passengers up to a limit.\"\n },\n {\n title: 'Uninsured Motorist Injury',\n description:\n \"You're covered if an unininsured motorist is at-fault in an accident up to a limit.\"\n },\n {\n title: 'Property Damage',\n description: \"You're covered if your ATV causes property damage for up to $5k.\"\n },\n {\n title: 'Pedestrian Injury',\n description: \"You're covered if you hit or injure a pedestrian for up to $50k.\"\n },\n {\n title: 'Bodily Injury',\n description: \"You're covered if you cause bodily injury to another person up to a limit.\"\n }\n ];\n\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return [\n {\n title: 'Full Value Coverage',\n description: 'Your jewelry is covered for its full-value repair or replacement value.'\n },\n {\n title: 'Theft',\n description: \"Your jewelry is covered if it's stolen from or away from home.\"\n },\n {\n title: 'Loss and Disappearance',\n description: \"Your jewelry is covered if it's lost and you cannot find it.\"\n },\n {\n title: 'Accidental Damage',\n description: \"Your jewelry is covered if it's damaged, cracked, or it snags.\"\n },\n {\n title: 'Natural Disaster',\n description: 'Your jewelry is covered in events like fire, earthquake, and floods.'\n },\n {\n title: 'Worldwide Coverage',\n description: 'Your jewelry is covered while traveling anywhere in the world.'\n }\n ];\n\n case PolicyType.worthAveElectronics:\n return [\n {\n title: 'Full Value Coverage',\n description: 'Your device is covered for the full replacement value.'\n },\n {\n title: 'Cracked Screens',\n description: 'Your device is covered if your screen is cracked partially or entirely.'\n },\n {\n title: 'Theft',\n description: 'Your device is covered if it is stolen from your home or outside of home.'\n },\n {\n title: 'Accidental Damage',\n description: \"Your device is covered if you've dropped or damaged it accidentally.\"\n },\n {\n title: 'Liquid Submersion',\n description:\n 'Your device is covered if it malfunctions due to spills or liquid submersion.'\n },\n {\n title: 'Natural Disaster',\n description: 'Your device is covered from fire, flood, earthquake, lightning, and more.'\n },\n {\n title: 'Used and Refurbished',\n description: 'Your device is covered even if it was purchased as used or refurbished.'\n },\n {\n title: 'Worldwide Coverage',\n description: 'Your device is covered while traveling anywhere in the world.'\n }\n ];\n }\n};\n\nexport const getPolicyCoverageItemsLongDescription = (\n type: PolicyType\n): Array<{ title: string; description: string }> => {\n switch (type) {\n case PolicyType.markelBike:\n return [\n {\n title: 'Bikes and eBikes',\n description: 'Bikes and eBikes (class 1, 2, and 3) are fully covered on this policy.'\n },\n {\n title: 'Full Value Coverage',\n description: 'Your bike is covered for its full replacement value.'\n },\n {\n title: 'Theft',\n description:\n 'Your bike is covered if it is stolen from or away from home. If away from home, it needs to be secured to an immovable object with an appropriate lock.'\n },\n {\n title: 'Damage or Loss in Transit',\n description: 'Your bike is covered if it is lost or damaged in transit by third parties.'\n },\n {\n title: 'Crash Damage',\n description: 'Your bike is covered if it is damaged in an accident or crash.'\n },\n {\n title: 'Spare Parts and Apparel',\n description:\n 'Spare parts and cycle apparel are covered up to $500 each per claim and $1,000 in any policy period. This coverage is for actual cash value and not replacement value.'\n },\n {\n title: 'Racing Coverage',\n description:\n 'Your coverages also apply when competing in a race or event. There is also additional cover of up to $250 for renting a temporary substitute bike if your bike is stolen or damaged while at the event, plus coverage for any non-refundable pre-paid event entry fees up to $500.'\n }\n ];\n\n default:\n return getPolicyCoverageItems(type);\n }\n};\n\nexport const getAdditionalPolicyCoverageItems = (\n type: PolicyType\n): Array<{ title: string; description: string }> => {\n switch (type) {\n case PolicyType.markelBike:\n return [\n getPolicyOptionalCoverageItem('coverage_medical_payments'),\n getPolicyOptionalCoverageItem('coverage_liability_protection'),\n getPolicyOptionalCoverageItem('coverage_worldwide'),\n getPolicyOptionalCoverageItem('coverage_vehicle_contact_protection')\n ];\n\n case PolicyType.markelOffroad:\n return [\n getPolicyOptionalCoverageItem('motor_coverage_medical_payments'),\n getPolicyOptionalCoverageItem('motor_coverage_comprehensive'),\n getPolicyOptionalCoverageItem('motor_coverage_collision')\n ];\n\n case PolicyType.markelMotorcycle:\n return [\n getPolicyOptionalCoverageItem('motor_coverage_medical_payments'),\n getPolicyOptionalCoverageItem('motor_coverage_comprehensive'),\n getPolicyOptionalCoverageItem('motor_coverage_collision'),\n getPolicyOptionalCoverageItem('motor_coverage_roadside_assistance')\n ];\n }\n return [];\n};\n","import styled from 'styled-components';\n\nimport { IoAttachOutline, IoClose } from 'react-icons/io5';\n\nconst AttachmentContainer = 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 Attachment = (props: {\n name: string;\n url?: string;\n size?: number;\n uploading?: boolean;\n onRemove?: () => void;\n}): JSX.Element => (\n e.stopPropagation()}\n >\n \n {props.name}\n {props.size && (\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","import config from './config';\n\nexport const MAPBOX_PUBLIC_KEY = () => config().secrets.mapboxPublicKey || '';\n\nexport const getLocationSuggestions = (\n address: string\n): Promise<{ address: string; coordinates: [number, number] }[]> =>\n // TODO: add proximity to user zip code\n fetch(\n `https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURI(\n address\n )}.json?access_token=${MAPBOX_PUBLIC_KEY()}&autocomplete=true&country=us&types=locality,neighborhood,address,poi`\n ).then((res) =>\n res.json().then((data) => {\n if (res.status === 200 && data) {\n // parse data\n return data.features.map((f) => ({ address: f.place_name, coordinates: f.center }));\n }\n if (data) {\n throw new Error(JSON.stringify(data));\n }\n throw new Error('ugh?');\n })\n );\n\nexport const getMapURL = (\n longitude: number,\n latitude: number,\n opts?: { zoomLevel?: number; height?: number; width?: number }\n): string =>\n `https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/pin-l+0EA5E9(${longitude},${latitude})/${longitude},${latitude},${\n opts?.zoomLevel || 12\n },0/${opts?.width || 400}x${opts?.height || 280}@2x?access_token=${MAPBOX_PUBLIC_KEY()}`;\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';\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';\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';\n\nimport { DatePicker } from '@oysterjs/ui/Form/datepicker';\n\nimport {\n IoAirplane,\n IoBandage,\n IoBonfire,\n IoCheckmarkCircle,\n IoCheckmarkSharp,\n IoCloseSharp,\n IoCog,\n IoEllipseOutline,\n IoFlame,\n IoFlash,\n IoHammer,\n IoHome,\n IoLayers,\n IoLocation,\n IoMedkit,\n IoRainy,\n IoSad,\n IoShield,\n IoWater\n} from 'react-icons/io5';\n\nimport { createClaimAttachments, deleteClaimAttachment } from '@oysterjs/core/api/claims';\nimport { CardGallery, SelectableOptionCard } from '@oysterjs/ui/Card';\nimport { TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { RequirementItem } from '@oysterjs/ui/common';\nimport { getProductDisplayName } from '@oysterjs/core/policy';\nimport {\n Claim,\n ClaimAttachment,\n ClaimSection,\n ClaimSectionItem,\n ClaimType,\n ConfirmItem,\n LocationItem,\n Product,\n SelectItem,\n TextItem,\n UploadItem,\n ValidationError\n} from '@oysterjs/types';\n\nimport { Attachment } from '../attachment';\nimport { ClaimSectionItemFunction } from './section';\nimport { AddressInput } from '@oysterjs/ui/Form/address';\nimport { Switch } from '@oysterjs/ui/Form/switch';\nimport { useId } from 'react-id-generator';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\n\nexport const ErrorDisplay = styled.div`\n font-size: 0.8em;\n margin-top: 5px;\n color: #d1344b;\n`;\n\nexport const ProductSection = (props: {\n products: Product[];\n loading?: boolean;\n selectedProductId?: string;\n validationError?: ValidationError;\n onContinue: (product: Product) => void;\n}) => {\n const [selectedProductId, setSelectedProductId] = React.useState(props.selectedProductId);\n\n React.useEffect(() => {\n setSelectedProductId(props.selectedProductId);\n }, [props.selectedProductId]);\n\n if (props.products.length === 0) {\n return

    You don't have any items you can file a claim for.

    ;\n }\n\n return (\n \n {props.products.map((product) => (\n {\n setSelectedProductId(product.ID);\n props.onContinue(product);\n }}\n image={}\n />\n ))}\n {props.validationError && {props.validationError.Message}}\n \n );\n};\n\nexport const getFieldKey = (...fields: string[]): string => fields.join('.').replace(/\\.+$/g, '');\n\nexport const getData = (claim: Claim, ...fields: string[]): T => {\n const key = getFieldKey(...fields);\n if (claim[key]) {\n return claim[key];\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n return claim.Data[key] as T;\n};\n\nconst getClaimIcon = (claimType: string) =>\n ({\n // claim type icons\n [ClaimType.theft]: ,\n [ClaimType.damage]: ,\n [ClaimType.injury]: ,\n [ClaimType.liability]: ,\n [ClaimType.other]: ,\n [ClaimType.electricalBreakdown]: ,\n [ClaimType.mechanicalBreakdown]: ,\n [ClaimType.naturalDisaster]: ,\n [ClaimType.waterDamage]: ,\n // damage type icons\n CrackedScreen: ,\n SpillOrLiquid: ,\n SomethingElse: ,\n Fire: ,\n Flood: ,\n Lightning: ,\n Wind: ,\n\n // theft type icons\n TheftFromHome: ,\n TheftAwayFromHome: ,\n LostInTransport: ,\n\n // boolean icons\n Yes: ,\n No: \n })[claimType] || <>;\n\nexport const SelectSection: ClaimSectionItemFunction = {\n autoContinue: true,\n getData: (claim) => [claim.Types.length > 0],\n component: (props) => {\n const sectionItem = props.sectionItem.Item as SelectItem;\n const [selected, setSelected] = React.useState(\n getData(props.claim, props.section.Field, props.sectionItem.SubField) || []\n );\n\n React.useEffect(() => {\n setSelected(getData(props.claim, props.section.Field, props.sectionItem.SubField) || []);\n }, [props.claim, props.section, props.sectionItem]);\n\n return (\n \n {sectionItem.AllowedValues.map((type) => (\n {\n setSelected([type.Value]);\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField),\n type.Value\n );\n }}\n image={getClaimIcon(type.Icon)}\n />\n ))}\n \n );\n }\n};\n\nexport const CheckboxSection: ClaimSectionItemFunction = {\n getData: () => [],\n component: (props) => {\n const [selected, setSelected] = React.useState(\n getData(props.claim, props.section.Field, props.sectionItem.SubField) || ''\n );\n\n React.useEffect(() => {\n setSelected(getData(props.claim, props.section.Field, props.sectionItem.SubField) || '');\n }, [props.claim, props.section, props.sectionItem]);\n\n return (\n {\n setSelected(selected ? '' : '1');\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField),\n selected ? '' : '1'\n );\n }}\n />\n );\n }\n};\n\nexport const TextSection: ClaimSectionItemFunction = {\n getData: (claim, section, sectionItem) =>\n (sectionItem.Item as TextItem).Required\n ? [getData(claim, section.Field, sectionItem.SubField)]\n : [],\n onContinue: (claim, section, sectionItem, setData) => {\n if (\n !(sectionItem.Item as TextItem).Required &&\n !getData(claim, section.Field, sectionItem.SubField)\n ) {\n setData(getFieldKey(section.Field, sectionItem.SubField), '');\n }\n },\n component: (props) => {\n const [id] = useId();\n const [text, setText] = React.useState(\n getData(props.claim, props.section.Field, props.sectionItem.SubField) || ''\n );\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n React.useEffect(() => {\n setText(getData(props.claim, props.section.Field, props.sectionItem.SubField) || '');\n }, [props.claim, props.section, props.sectionItem]);\n\n return (\n
    \n \n {\n setValidationError(undefined);\n setText(e.currentTarget.value);\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField),\n e.currentTarget.value\n );\n }}\n disabled={props.loading}\n />\n
    \n );\n }\n};\n\nexport const DateSection: ClaimSectionItemFunction = {\n getData: (claim, section, sectionItem) => [\n new Date(getData(claim, section.Field, sectionItem.SubField) || '').valueOf() > 0\n ],\n component: (props) => {\n const [date, setDate] = React.useState(\n new Date(getData(props.claim, props.section.Field, props.sectionItem.SubField) || '')\n );\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n React.useEffect(() => {\n setDate(\n new Date(getData(props.claim, props.section.Field, props.sectionItem.SubField) || '')\n );\n }, [props.claim, props.section, props.sectionItem]);\n\n return (\n <>\n {\n setValidationError(undefined);\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField),\n date.toISOString()\n );\n }}\n selected={date}\n disabled={(day) => {\n const today = new Date(new Date().setHours(0, 0, 0, 0));\n return day.getTime() >= today.setDate(today.getDate() + 1);\n }}\n />\n {validationError && {validationError?.Message}}\n \n );\n }\n};\n\nconst getLocationSectionState = (\n claim: Claim,\n section: ClaimSection,\n sectionItem: ClaimSectionItem\n): [string, number, number] => [\n getData(\n claim,\n section.Field,\n sectionItem.SubField,\n (sectionItem.Item as LocationItem).AddressField\n ),\n parseFloat(\n getData(\n claim,\n section.Field,\n sectionItem.SubField,\n (sectionItem.Item as LocationItem).LongitudeField\n ) || '0'\n ),\n parseFloat(\n getData(\n claim,\n section.Field,\n sectionItem.SubField,\n (sectionItem.Item as LocationItem).LatitudeField\n ) || '0'\n )\n];\n\nexport const LocationSection: ClaimSectionItemFunction = {\n getData: getLocationSectionState,\n component: (props) => {\n const [id] = useId();\n\n const sectionItem = props.sectionItem.Item as LocationItem;\n const [state, setState] = React.useState<[string, number, number]>(\n getLocationSectionState(props.claim, props.section, props.sectionItem)\n );\n\n React.useEffect(() => {\n setState(getLocationSectionState(props.claim, props.section, props.sectionItem));\n }, [props.claim, props.section, props.sectionItem]);\n\n const setData = (address: string, longitude: number, latitude: number) => {\n setState([address, longitude, latitude]);\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField, sectionItem.AddressField),\n address\n );\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField, sectionItem.LongitudeField),\n longitude.toString()\n );\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField, sectionItem.LatitudeField),\n latitude.toString()\n );\n };\n\n return (\n <>\n \n \n \n );\n }\n};\n\nexport const LongTextSection: ClaimSectionItemFunction = {\n getData: (claim, section, sectionItem) => [getData(claim, section.Field, sectionItem.SubField)],\n component: (props) => {\n const [id] = useId();\n const [text, setText] = React.useState(\n getData(props.claim, props.section.Field, props.sectionItem.SubField)\n );\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n React.useEffect(() => {\n setText(getData(props.claim, props.section.Field, props.sectionItem.SubField));\n }, [props.claim, props.section, props.sectionItem]);\n\n return (\n
    \n \n {\n setValidationError(undefined);\n setText(e.currentTarget.value);\n props.setData(\n getFieldKey(props.section.Field, props.sectionItem.SubField),\n e.currentTarget.value\n );\n }}\n disabled={props.loading}\n />\n
    \n );\n }\n};\n\nconst UploadGroupContainer = 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 2px #0ea5e9' : '0 0 0 0px #C8C8C8'};\n border: ${(props) =>\n props.enabled || props.error ? '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\n * {\n pointer-events: none;\n }\n`;\n\nconst UploadGroupCheckboxContainer = styled.div`\n width: 30px;\n`;\n\nconst UploadGroupContentContainer = styled.div`\n width: calc(100% - 30px);\n`;\n\nconst UploadGroupDescription = styled.div`\n color: #999999;\n font-size: 0.9em;\n margin-top: 5px;\n`;\n\nconst UploadGroupContent = 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 UploadGroupHeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-weight: 500;\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 const UploadSection: ClaimSectionItemFunction = {\n getData: () => [],\n component: (props) => {\n const sectionItem = props.sectionItem.Item as UploadItem;\n const [loading, setLoading] = React.useState(false);\n const [dragging, setDragging] = React.useState(false);\n\n const attachRef = React.useRef(null);\n const [claimAttachments, setClaimAttachments] = React.useState(\n props.claim.Attachments[getFieldKey(props.section.Field, props.sectionItem.SubField)] || []\n );\n const [fileList, setFileList] = React.useState([]);\n\n const [validationErrors, setValidationErrors] = React.useState([]);\n\n React.useEffect(() => {\n setValidationErrors(\n props.validationError?.SubField === props.sectionItem.SubField\n ? [props.validationError]\n : []\n );\n }, [props.validationError]);\n\n const completed = !loading && fileList.length === 0 && claimAttachments.length > 0;\n\n const uploadFiles = (files: File[]) => {\n if (files.length === 0) {\n setLoading(false);\n return Promise.resolve();\n }\n\n return createClaimAttachments(props.claim.ID, props.sectionItem.SubField, [files[0]])\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n setValidationErrors((prev) => [...prev, err.getValidationError()]);\n } else {\n setValidationErrors((prev) => [\n ...prev,\n { Field: '', SubField: '', Message: err.message }\n ]);\n }\n })\n .then(() =>\n props\n .updateClaim()\n .then((claim) =>\n setClaimAttachments(\n claim.Attachments[getFieldKey(props.section.Field, props.sectionItem.SubField)] ||\n []\n )\n )\n )\n .then(() =>\n setFileList((prev) => {\n const newList = prev.filter((f) => f.name !== files[0].name);\n return newList;\n })\n )\n .then(() => uploadFiles(files.slice(1)));\n };\n\n const addFiles = (files: File[]) => {\n setValidationErrors([]);\n setFileList((prev) => [...prev, ...files]);\n setLoading(true);\n uploadFiles(files);\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 0}\n onDragEnter={onDragEnter}\n onDragLeave={onDragLeave}\n onDragOver={onDragOver}\n onDrop={onDrop}\n onClick={() => attachRef?.current?.click()}\n >\n \n {!loading && !completed && (\n \n )}\n {!loading && completed && (\n \n )}\n {loading && }\n \n \n {sectionItem.Name}\n {sectionItem.Description}\n {fileList.length + claimAttachments.length > 0 && (\n \n {claimAttachments.map((f) => (\n {\n setLoading(true);\n deleteClaimAttachment(props.claim.ID, f.ID)\n .then(() =>\n props\n .updateClaim()\n .then((claim) =>\n setClaimAttachments(\n claim.Attachments[\n getFieldKey(props.section.Field, props.sectionItem.SubField)\n ] || []\n )\n )\n )\n .then(() => setLoading(false));\n }}\n />\n ))}\n {fileList.map((f) => (\n \n ))}\n \n )}\n {validationErrors.map((err) => (\n {err.Message}\n ))}\n \n \n \n );\n }\n};\n\nexport const ConfirmSection: ClaimSectionItemFunction = {\n submit: true,\n getData: () => [],\n component: (props) => {\n const sectionItem = props.sectionItem.Item as ConfirmItem;\n const [validationError, setValidationError] = React.useState(props.validationError);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n return (\n <>\n {sectionItem.Confirmation.map((item) => (\n \n ))}\n {validationError && {validationError?.Message}}\n \n );\n }\n};\n","import * as React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport {\n IoArrowForward,\n IoCalendarClear,\n IoCloudUpload,\n IoDocumentText,\n IoFlag,\n IoLocation,\n IoPencil,\n IoTrailSign,\n IoTrashOutline\n} from 'react-icons/io5';\n\nimport {\n createClaim,\n deleteClaim,\n getClaim,\n getClaims,\n resetClaim,\n submitClaim,\n updateClaim\n} from '@oysterjs/core/api/claims';\nimport { Button, ButtonContainer, ButtonLink, UnstyledButton } from '@oysterjs/ui/Button';\nimport { PageSection, TwoPaneContainer } from '@oysterjs/ui/Page';\nimport { Table } from '@oysterjs/ui/Table';\nimport { VerticalLayout, VerticalLayoutItem } from '@oysterjs/ui/VerticalLayout';\nimport { useDynamicRefs } from '@oysterjs/core/dynamicRefs';\nimport { useWindowDimensions, useWindowScrollPosition } from '@oysterjs/core/window';\nimport {\n Claim,\n ClaimSection,\n ClaimSectionItemType,\n ClaimState,\n ClaimType,\n LocationItem,\n LongTextItem,\n Policy,\n PolicyState,\n SelectItem,\n UploadItem,\n ValidationError,\n VerificationStatus\n} from '@oysterjs/types';\n\nimport {\n CheckboxSection,\n ConfirmSection,\n DateSection,\n ErrorDisplay,\n getData,\n getFieldKey,\n LocationSection,\n LongTextSection,\n ProductSection,\n SelectSection,\n TextSection,\n UploadSection\n} from './sections';\nimport { Attachment } from './attachment';\nimport { getMapURL } from '@oysterjs/core/mapbox';\nimport { ClaimSectionItemFunction } from './sections/section';\nimport { Modal } from '@oysterjs/ui/Modal';\nimport { Badge } from '@oysterjs/ui/Badge/index';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport { VerifyIdentityBanner } from '../account';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { getAccountSummary } from '@oysterjs/core/api/user';\n\nconst HeaderContainer = styled.div`\n display: flex;\n\n h1 {\n width: 100%;\n }\n`;\n\nconst ClaimActionsContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-end;\n min-width: 150px;\n`;\n\nconst getClaimBadge = (state: ClaimState): JSX.Element => {\n switch (state) {\n case ClaimState.collectingInformation:\n case ClaimState.unknown:\n return ;\n case ClaimState.awaitingProcessing:\n return ;\n case ClaimState.denied:\n return ;\n case ClaimState.settled:\n return ;\n default:\n return ;\n }\n};\n\nconst relativeTimeString = (start: Date, end: Date): string => {\n const formatter = new Intl.RelativeTimeFormat('en', { style: 'narrow' });\n const units = [\n { div: 1000, unit: 'seconds' },\n { div: 60, unit: 'minutes' },\n { div: 60, unit: 'hours' },\n { div: 24, unit: 'days' },\n { div: 30, unit: 'months' },\n { div: 12, unit: 'years' },\n { div: 1000, unit: '' }\n ];\n\n // start with time difference in milliseconds\n let diff = start.getTime() - end.getTime();\n\n // iteratively divide by the divisor of each unit while there\n // is a whole next unit\n for (let i = 0; i < units.length; i++) {\n diff /= units[i].div;\n if (Math.abs(diff) < units[i + 1].div) {\n // We need the RelativeTimeFormatUnit type to make this typecheck\n // but that type definition isn't available (hence the any, hence\n // the eslint disable).\n // eslint-disable-next-line\n return formatter.format(Math.floor(diff), units[i].unit as any);\n }\n }\n\n return 'a long time ago';\n};\n\nconst ClaimsTable = (props: { claims: Claim[] }) => {\n const [claims, setClaims] = React.useState(props.claims);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n React.useEffect(() => {\n setClaims(props.claims);\n }, [props.claims]);\n\n const [showDeleteClaimConfirmation, setShowDeleteClaimConfirmation] = React.useState('');\n const history = useHistory();\n\n return (\n <>\n {showDeleteClaimConfirmation && (\n setShowDeleteClaimConfirmation('')}\n headerContents={

    Confirm delete

    }\n >\n

    \n Are you sure you want to delete this claim? This cannot be undone.\n

    \n \n \n }\n loading={loading}\n onClick={() => {\n setLoading(true);\n deleteClaim(showDeleteClaimConfirmation)\n .then(getClaims)\n .then(({ Claims }) => setClaims(Claims))\n .then(() => setShowDeleteClaimConfirmation(''))\n .catch((err) => setError(err.message))\n .finally(() => setLoading(false));\n }}\n >\n Confirm\n \n \n {error && {error}}\n \n )}\n \n \n \n \n \n \n \n \n \n {claims.map((claim) => (\n history.push(`/claims/${claim.ID}`)}\n style={{ cursor: 'pointer' }}\n >\n \n \n \n \n \n ))}\n \n
    Insured ItemStatusLast Updated\n
    \n
    {claim.Product?.Name}
    \n
    {claim.Types?.join(', ') || 'Unknown'}
    \n
    \n {getClaimBadge(claim.State)}\n \n {relativeTimeString(new Date(claim.UpdatedAt), new Date())}\n \n
    \n {claim.State === ClaimState.collectingInformation && (\n {\n setShowDeleteClaimConfirmation(claim.ID);\n e.stopPropagation();\n }}\n aria-label=\"Delete Claim\"\n >\n \n \n )}\n {\n history.push(`/claims/${claim.ID}`);\n e.stopPropagation();\n }}\n aria-label=\"View or Edit Claim\"\n >\n \n \n
    \n
    \n \n );\n};\n\nexport const ResumeClaimsPage = (props: { claims: Claim[] }): JSX.Element => {\n const history = useHistory();\n const startClaim = () => history.push(`/claims/start`);\n\n const claimsPhrase = props.claims.length === 1 ? 'a claim' : 'some claims';\n return (\n \n \n

    Resume a claim?

    \n \n \n \n
    \n

    \n It looks like you already have {claimsPhrase} open. Would you like to resume or close one of\n those instead? You can still create a new claim if this claim is for an different insured\n item.\n

    \n \n
    \n );\n};\n\nexport const ClaimsPage = (props: { claims: Claim[]; policies: Policy[] }): JSX.Element => {\n const policies = props.policies.filter((p) => p.State === PolicyState.policyInforce);\n\n return (\n \n \n {(res) => {\n const hasNoClaims = (props.claims?.length || 0) === 0;\n const requireVerification = res.Verification?.Status !== VerificationStatus.Verified;\n const verificationPending = res.Verification?.Status === VerificationStatus.Processing;\n\n const shouldDisableClaimCTA = policies.length === 0 || verificationPending;\n let startClaimCTALabel = 'Start a claim';\n if (verificationPending) {\n startClaimCTALabel = 'Identity verification in progress';\n } else if (requireVerification) {\n startClaimCTALabel = 'Verify your identity to start a claim';\n }\n\n const getClaimURL = (): string => {\n if (requireVerification) {\n return '/account/profile';\n }\n\n if (hasNoClaims) {\n return '/claims/start';\n } else {\n // Check if there is an existing claim\n if (\n props.claims.find(\n (c) => c.State != ClaimState.denied && c.State != ClaimState.settled\n )\n ) {\n return '/claims/resume';\n } else {\n return '/claims/start';\n }\n }\n };\n\n return (\n <>\n \n \n

    Your Claims

    \n {(props.claims?.length || 0) > 0 && (\n \n 0 && !shouldDisableClaimCTA ? (\n \n ) : undefined\n }\n href={getClaimURL()}\n >\n {policies.length > 0 ? startClaimCTALabel : 'No active policies'}\n \n \n )}\n
    \n {hasNoClaims && (\n
    \n
    \n \n

    You don't have any claims.

    \n \n 0 && !shouldDisableClaimCTA ? (\n \n ) : undefined\n }\n href={getClaimURL()}\n >\n {policies.length > 0 ? startClaimCTALabel : 'No active policies'}\n \n \n
    \n
    \n )}\n {(props.claims?.length || 0) > 0 && }\n \n );\n }}\n
    \n
    \n );\n};\n\nconst ClaimSectionOuter = (\n props: React.PropsWithChildren<{\n active: boolean;\n icon: JSX.Element;\n title: string;\n description?: string;\n }>\n) => (\n \n

    {props.title}

    \n {props.description &&

    {props.description}

    }\n {props.children}\n \n);\n\nconst ClaimSectionItem = (\n props: React.PropsWithChildren<{\n subTitle?: string;\n description?: string;\n }>\n) => (\n
    \n {props.subTitle && (\n

    \n {props.subTitle}\n

    \n )}\n {props.description && (\n

    {props.description}

    \n )}\n {props.children}\n
    \n);\n\ninterface ClaimPageProps {\n claim?: Claim;\n policies: Policy[];\n}\n\nexport const ClaimPage = (props: ClaimPageProps): JSX.Element => {\n const { scrollPosY } = useWindowScrollPosition();\n const { innerHeight } = useWindowDimensions();\n const history = useHistory();\n\n // loading indicates that a request is in progress. all elements will respond\n // to this state by preventing data entry.\n const [loading, setLoading] = React.useState(false);\n\n // claim stores the current claim object, starting with the initial claim. this\n // is updated after each section is completed.\n const [claim, setClaim] = React.useState(props.claim);\n\n // validationError stores any validation error that may have occured, while editing\n // an in-progress claim or at claim submission. Claim sections will receive this\n // if the `Field` property matches the section's ID.\n const [validationError, setValidationError] = React.useState();\n\n // dynamic refs hook let us dynamically create and retrieve references to the\n // dom, without knowing in advance how many refs we need. this is particularly\n // useful here because we render claim sections based on the claim object, which\n // can vary, and then use the refs to scroll between sections.\n const { getRef, setRef } = useDynamicRefs();\n\n // sections stores each claim section that is displayed on the page. this is updated\n // any time the claim object changes.\n const [sections, setSections] = React.useState<{ key: string; section: JSX.Element }[]>([]);\n\n // sectionContinued indicates the key of the section that the user last completed\n // and clicked \"continue\" (or equivalent option) on. This is then used to scroll to\n // the next section.\n const [sectionContinued, setSectionContinued] = React.useState('');\n\n // computes the key of the section `offset` away from the section given by\n // `section`. It will return the empty string if that section does not exist.\n const sectionAtOffset = (section: string, offset: number): string => {\n const sectionIndex = sections.findIndex((s) => s.key === section);\n const nextSectionKey = sections[sectionIndex + offset]?.key;\n return nextSectionKey || '';\n };\n\n // determines if a given section is active or not\n const isInactive = (sectionKey: string) => {\n const bottom = scrollPosY + innerHeight;\n\n const sectionIndex = sections.findIndex((s) => s.key === sectionKey);\n const elem = getRef(sectionKey)?.current?.offsetTop || 0;\n\n const nextSectionKey = sections[sectionIndex + 1]?.key;\n const nextElem = getRef(nextSectionKey)?.current?.offsetTop || bottom;\n\n if (sectionIndex <= 0) {\n return elem < scrollPosY;\n }\n\n if (elem < scrollPosY && nextElem < bottom) {\n return true;\n }\n\n return !isInactive(sections[sectionIndex - 1].key);\n };\n\n // sets update the local claim object with the given field and data, and then\n // performs a remote update if specified.\n const setData = (section: ClaimSection, field: string, value: string, updateClaim: boolean) => {\n if (field === 'Types') {\n setClaim((prev) => {\n const newClaim = {\n ...(prev as Claim),\n Types: value.split(',') as ClaimType[]\n };\n\n if (updateClaim) {\n doUpdateClaim(section.ID, newClaim);\n }\n\n return newClaim;\n });\n } else {\n setClaim((prev) => {\n const newClaim = {\n ...(prev as Claim),\n [field]: value,\n Data: {\n ...(prev?.Data || {}),\n [field]: value\n }\n };\n\n if (updateClaim) {\n doUpdateClaim(section.ID, newClaim);\n }\n\n return newClaim;\n });\n }\n };\n\n // updates the given claim and sets the section that was just completed, if successful\n const doUpdateClaim = (sectionKey: string, claim: Claim) => {\n setLoading(true);\n return updateClaim(claim)\n .then((data) => {\n // don't set an error if the sections have changed\n const currentSections = claim.Sections.flatMap((s) => s.Items.map((i) => i.SubField));\n const newSections = data.Claim.Sections.flatMap((s) => s.Items.map((i) => i.SubField));\n const equal =\n currentSections.length === newSections.length &&\n newSections.reduce((prev, curr, i) => prev && curr === currentSections[i], true);\n\n if (!equal || data.NextError?.Field !== sectionKey) {\n setValidationError(undefined);\n setSectionContinued(sectionKey);\n } else {\n const prevSection = sectionAtOffset(sectionKey, -1);\n setValidationError(data.NextError);\n if (prevSection) {\n setSectionContinued(prevSection);\n }\n }\n\n setClaim(data.Claim);\n })\n .catch((err) => {\n setSectionContinued(sectionKey);\n setValidationError({\n Field: sectionKey,\n SubField: '',\n Message: err.message || err.toString()\n });\n })\n .finally(() => setLoading(false));\n };\n\n // submits the claim\n const doSubmit = (section: ClaimSection) => {\n setLoading(true);\n submitClaim(claim?.ID || '')\n .then(({ Claim }) => {\n setValidationError(undefined);\n setClaim(Claim);\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n const sectionKey = sectionAtOffset(err.metadata().Field, -1);\n setValidationError(err.getValidationError());\n if (sectionKey) {\n setSectionContinued(sectionKey);\n }\n } else {\n setValidationError({\n Field: section.Field,\n SubField: '',\n Message: err.message\n });\n }\n })\n .finally(() => setLoading(false));\n };\n\n // creates or resets a claim, depending on the current claim state.\n const createOrResetClaim = (product) => {\n const policyId =\n props.policies.find((p) => !!p.InsuredItems.find((pr) => pr.ID === product.ID))?.ID || '';\n const productId = product.ID || '';\n setLoading(true);\n\n if (claim) {\n resetClaim(claim.ID, policyId, productId)\n .then(({ Claim }) => setClaim(Claim))\n .then(() => setSectionContinued('start'))\n .then(() => setValidationError(undefined))\n .catch((err) =>\n setValidationError({\n Field: 'start',\n Message: err.message\n })\n )\n .finally(() => setLoading(false));\n } else {\n createClaim(policyId, productId)\n .then(({ Claim }) => {\n history.replace('/claims/' + Claim.ID);\n setClaim(Claim);\n })\n .then(() => setSectionContinued('start'))\n .then(() => setValidationError(undefined))\n .catch((err) =>\n setValidationError({\n Field: 'start',\n Message: err.message\n })\n )\n .finally(() => setLoading(false));\n }\n };\n\n // creates a section based on a claim section description, creating all input\n // elements inside.\n const createSection = (section: ClaimSection) => {\n if (!claim) {\n return {\n key: section.ID,\n section: <>\n };\n }\n\n const sectionIcons = {\n [ClaimSectionItemType.select]: ,\n [ClaimSectionItemType.date]: ,\n [ClaimSectionItemType.location]: ,\n [ClaimSectionItemType.longText]: ,\n [ClaimSectionItemType.upload]: ,\n [ClaimSectionItemType.confirm]: \n };\n\n const sectionTypeMap: Record = {\n [ClaimSectionItemType.checkbox]: CheckboxSection,\n [ClaimSectionItemType.select]: SelectSection,\n [ClaimSectionItemType.text]: TextSection,\n [ClaimSectionItemType.date]: DateSection,\n [ClaimSectionItemType.location]: LocationSection,\n [ClaimSectionItemType.longText]: LongTextSection,\n [ClaimSectionItemType.upload]: UploadSection,\n [ClaimSectionItemType.confirm]: ConfirmSection\n };\n\n const sectionItems = section.Items.map((sectionItem) => ({\n sectionItem,\n data: sectionTypeMap[sectionItem.Type]\n }));\n\n const needsContinueButton = sectionItems.findIndex((item) => !item.data.autoContinue) >= 0;\n const needsSubmitButton = sectionItems.findIndex((item) => !!item.data.submit) >= 0;\n\n return {\n key: section.ID,\n section: (\n
    \n }\n title={section.Title}\n description={section.Description}\n >\n {sectionItems.map((item) => (\n \n {React.createElement(item.data.component, {\n claim,\n section,\n sectionItem: item.sectionItem,\n loading,\n setData: (field: string, value: string) =>\n setData(section, field, value, !!item.data.autoContinue),\n validationError:\n validationError?.Field === section.Field &&\n validationError?.SubField === item.sectionItem.SubField &&\n item.sectionItem.SubField\n ? validationError\n : undefined,\n updateClaim: () => getClaim(claim.ID || '').then((d) => d.Claim)\n })}\n \n ))}\n {validationError?.Field === section.Field && !validationError?.SubField && (\n {validationError?.Message}\n )}\n {needsContinueButton && !needsSubmitButton && (\n
    \n \n }\n disabled={\n sectionItems.findIndex(\n (item) =>\n item.data\n .getData(claim, section, item.sectionItem)\n .findIndex((v) => !v) >= 0\n ) >= 0\n }\n loading={loading}\n onClick={() =>\n doUpdateClaim(\n section.ID,\n sectionItems.reduce(\n (prev, curr) => {\n let next = { ...prev };\n curr.data.onContinue?.(\n claim,\n section,\n curr.sectionItem,\n (field: string, value: string) => {\n next = {\n ...next,\n [field]: value,\n Data: {\n ...(next.Data || {}),\n [field]: value\n }\n };\n }\n );\n return next;\n },\n { ...claim }\n )\n )\n }\n >\n Continue\n \n \n
    \n )}\n {needsSubmitButton && (\n
    \n \n }\n loading={loading}\n onClick={() => doSubmit(section)}\n >\n Submit Claim\n \n \n
    \n )}\n \n
    \n )\n };\n };\n\n // scrolls to the next section if a section was continued on and there is a next section\n React.useEffect(() => {\n setTimeout(() => {\n if (!sectionContinued) {\n return;\n }\n\n const nextSectionKey = sectionAtOffset(sectionContinued, 1);\n if (getRef(nextSectionKey)?.current?.offsetTop) {\n window.scrollTo({\n top: (getRef(nextSectionKey)?.current?.offsetTop || 0) - 120,\n behavior: 'smooth'\n });\n }\n\n setSectionContinued('');\n }, 10);\n }, [JSON.stringify([sectionContinued, validationError, ...sections.map((s) => s.key)])]);\n\n // creates the sections to render every time a meaningful update happens to the claim state\n React.useEffect(() => {\n setSections([\n {\n key: 'start',\n section: (\n
    \n }\n title=\"Start a claim\"\n description=\"Insurance is for protection and peace of mind, and the claim filing process should reflect that. To get started, select the insured item you want to file a claim for.\"\n >\n policy.State === PolicyState.policyInforce)\n .flatMap((policy) => policy.InsuredItems.filter((item) => !item.Pending))}\n selectedProductId={claim?.Product?.ID}\n loading={loading}\n onContinue={createOrResetClaim}\n validationError={validationError?.Field === 'start' ? validationError : undefined}\n />\n \n
    \n )\n },\n ...(claim?.Sections || []).map(createSection)\n ]);\n }, [\n JSON.stringify([claim, loading, validationError, ...sections.map((s) => isInactive(s.key))])\n ]);\n\n // short circuit the rest of this component if the claim was updated and now is\n // in a non-editable state\n if (claim && claim.State !== ClaimState.collectingInformation) {\n return ;\n }\n\n return (\n \n
    \n {sections.map((s) => s.section)}\n
    \n
    \n );\n};\n\nconst PropertyList = styled.ul`\n list-style: none;\n padding: 10px 0px;\n border-top: 2px solid #f2f2f2;\n font-size: 0.8em;\n color: #999999;\n`;\n\nconst PropertyListItem = (props: { name: string; value: string }) => (\n
  • \n {props.name}\n {props.value}\n
  • \n);\n\nconst ViewClaimPage = (props: { claim: Claim }) => {\n return (\n \n \n

    Claim Summary

    \n\n
    \n
    \n

    Insured Product

    \n

    {props.claim.Product.Name}

    \n
    \n\n {props.claim.Sections.flatMap((section) =>\n section.Items.map((item) => {\n switch (item.Type) {\n case ClaimSectionItemType.select:\n return (\n
    \n

    {item.SubTitle || section.Title}

    \n

    \n {(section.Field === 'Types'\n ? props.claim.Types\n : [getData(props.claim, section.Field, item.SubField) || '']\n )\n ?.map(\n (t) =>\n (item.Item as SelectItem).AllowedValues.find(\n (tt) => tt.Value === t\n )?.Title || ''\n )\n .join(', ')}\n

    \n
    \n );\n\n case ClaimSectionItemType.text:\n return (\n
    \n

    {item.SubTitle || section.Title}

    \n

    \n {getData(props.claim, section.Field, item.SubField)}\n

    \n
    \n );\n\n case ClaimSectionItemType.date:\n return (\n
    \n

    {item.SubTitle || section.Title}

    \n

    \n {new Date(props.claim.IncidentDate).toLocaleDateString()}\n

    \n
    \n );\n\n case ClaimSectionItemType.location:\n return (\n
    \n

    {item.SubTitle || section.Title}

    \n

    \n {\n props.claim.Data[\n getFieldKey(\n section.Field,\n item.SubField,\n (item.Item as LocationItem).AddressField\n )\n ]\n }\n

    \n \n
    \n );\n\n case ClaimSectionItemType.longText:\n return (\n
    \n

    {item.SubTitle || section.Title}

    \n {props.claim.Data[\n getFieldKey(\n section.Field,\n item.SubField,\n (item.Item as LongTextItem).Field\n )\n ]\n .trim()\n .split('\\n')\n .map((paragraph) => (\n

    \n {paragraph}\n

    \n ))}\n
    \n );\n\n case ClaimSectionItemType.upload:\n if (!props.claim.Attachments[getFieldKey(section.Field, item.SubField)]) {\n return null;\n }\n return (\n
    \n

    {(item.Item as UploadItem).Name}

    \n \n {props.claim.Attachments[getFieldKey(section.Field, item.SubField)].map(\n (f) => (\n \n )\n )}\n
    \n
    \n );\n }\n })\n )}\n\n \n \n \n \n \n \n \n }\n >\n

    Your claim

    \n {getClaimBadge(props.claim.State)}\n

    \n Your claim has been successfully submitted! You'll receive a response from the insurance\n carrier as soon as your claim is being processed. Please reach out to our team at\n support@withoyster.com if you have any questions in the meantime.\n

    \n \n \n
    \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 * as React from 'react';\nimport styled from 'styled-components';\n\nconst SliderContainer = styled.div`\n width: 100%;\n max-width: 500px;\n height: 20px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 40px 0px 50px 0px;\n position: relative;\n\n .min-label {\n position: absolute;\n top: -24px;\n left: 0px;\n font-weight: 500;\n }\n\n .max-label {\n position: absolute;\n top: -24px;\n right: 0px;\n font-weight: 500;\n }\n\n .slider-label {\n position: absolute;\n bottom: -38px;\n left: 50%;\n padding: 5px 10px;\n background: #efefef;\n border-radius: 8px;\n border: 1px solid #e2e2e2;\n }\n`;\n\nconst RangeInput = styled.input`\n appearance: none;\n box-sizing: border-box;\n margin-right: 15px;\n width: 100%;\n height: 7px;\n background: rgba(200, 200, 200, 0.6);\n border-radius: 5px;\n /* background-image: linear-gradient(to right, #0EA5E9, #00a6c7); */\n background-image: linear-gradient(to right, #0ea5e9, #0ea5e9);\n background-repeat: no-repeat;\n\n ::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 20px;\n width: 20px;\n border-radius: 50%;\n background: #f2f2f2;\n cursor: ew-resize;\n box-shadow: 0 0 2px 0 #555;\n }\n\n ::-webkit-slider-thumb:active {\n background: #ffffff;\n }\n\n ::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n box-shadow: none;\n border: none;\n background: transparent;\n }\n`;\n\nexport const Slider = ({\n min,\n max,\n initialValue,\n interval,\n formatter\n}: {\n min: number;\n max: number;\n initialValue: number;\n interval?: number;\n formatter?: (val: number) => string;\n}): JSX.Element => {\n const [value, setValue] = React.useState(\n (interval || 1) * Math.floor(initialValue / (interval || 1))\n );\n const labelRef = React.useRef(null);\n const pos = ((value - min) * 100) / (max - min);\n\n React.useEffect(() => {\n if (labelRef.current) {\n const offset = labelRef.current.offsetWidth / 2;\n labelRef.current.style.left = `calc(${pos}% - ${offset}px)`;\n }\n });\n\n const format = (val: number) => (formatter ? formatter(val) : val.toString());\n\n return (\n \n setValue(parseInt(e.currentTarget.value))}\n style={{ backgroundSize: `${pos}% 100%` }}\n >\n
    \n {format(value)}\n
    \n
    {format(min)}
    \n
    {format(max)}
    \n
    \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { IoArrowForward } from 'react-icons/io5';\n\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { Slider } from '@oysterjs/ui/Form/range';\nimport { Switch } from '@oysterjs/ui/Form/switch';\n\nconst CoverageSectionContainer = styled.div`\n padding: 0px 0px 5px 0px;\n`;\n\nconst CoverageSectionTitleContainer = styled.div`\n h3 {\n margin: 0;\n padding: 0;\n font-weight: 500;\n }\n\n p {\n color: #999999;\n font-size: 0.9em;\n padding: 0;\n margin: 5px 0px 0px 0px;\n }\n`;\n\nconst CoverageSection = (\n props: React.PropsWithChildren<{ title: string; description?: string }>\n) => (\n \n \n

    {props.title}

    \n

    {props.description}

    \n
    \n {props.children}\n
    \n);\n\nconst EndorsementsPanelContainer = styled.div<{ small?: boolean }>`\n width: ${(props) => (props.small ? '40%' : '54%')};\n max-width: ${(props) => (props.small ? '360px' : '500px')};\n`;\n\nconst EndorsementsPanel = (props: React.PropsWithChildren<{ title: string; small?: boolean }>) => (\n \n

    {props.title}

    \n {props.children}\n
    \n);\n\nconst Endorsements = styled.div`\n display: flex;\n margin: 20px 0px;\n gap: 0px 6.5%;\n`;\n\nconst PurchaseSection = styled.div`\n padding: 0px 0px 20px 0px;\n`;\n\nexport const EditPolicyPage = (): JSX.Element => {\n return (\n <>\n \n

    Edit your bike policy

    \n

    \n Life happens, we get it! Oyster policies are flexible and easy-to-change, so that they can\n be adjusted according to your changing needs. Modify any aspect of your policy and get an\n instant price adjustment. If you're not sure what kind of coverage you need, our AI\n Coverage Assistant can help!\n

    \n \n \n \n\n \n \n \n \n new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0\n }).format(val)\n }\n />\n \n\n \n \n new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0\n }).format(val)\n }\n />\n \n\n \n \n new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0\n }).format(val)\n }\n />\n \n\n \n \n new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 0\n }).format(val)\n }\n />\n \n \n\n \n \n \n \n\n \n \n \n\n

    Options

    \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 getV = () => Math.round(Math.random() * 50) + Math.round(Math.random() * 4) / 4;\n","import * as React from 'react';\n\nimport { PageSection } from '@oysterjs/ui/Page';\nimport {\n BikePowerSource,\n BikeProduct,\n Product,\n ProductType,\n ValidationError\n} from '@oysterjs/types';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\n\nexport interface BikeFormData {\n ZipCode?: string;\n Price: string;\n TotalInsuredValue?: string;\n HasNotReceived?: boolean;\n Details: BikeProduct;\n}\n\ninterface CollectBikeInfoProps {\n loading?: boolean;\n validationError?: ValidationError;\n formData: BikeFormData;\n setData: (field: string, fn: (data: BikeFormData) => BikeFormData) => void;\n onContinue: (product: Product) => void;\n onAdd?: (event: { canceled?: boolean; addAnother?: boolean; add?: Product }) => void;\n isAdding?: boolean;\n isEditing?: boolean;\n}\n\nexport const CollectBikeInfo = (props: CollectBikeInfoProps) => {\n const [validationError, setValidationError] = React.useState();\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [JSON.stringify(props.validationError)]);\n\n const setData = (field: string, fn: (data: BikeFormData) => BikeFormData) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n props.setData(field, fn);\n };\n\n const validate = (formData: BikeFormData) => {\n if (!formData.Details.Make) {\n return {\n Field: 'Make',\n Message: 'Please enter a manufacturer.'\n };\n }\n if (!formData.Details.Model) {\n return {\n Field: 'Model',\n Message: 'Please enter a model.'\n };\n }\n if (!/^20\\d\\d$/.test(formData.Details?.ModelYear?.toString() || '')) {\n return {\n Field: 'ModelYear',\n Message: 'Please enter a valid model year.'\n };\n }\n if (!formData.Details.Type) {\n return {\n Field: 'Type',\n Message: 'Please select a bike type.'\n };\n }\n if (!formData.Details.FrameType) {\n return {\n Field: 'FrameType',\n Message: 'Please select a frame material.'\n };\n }\n if (isNaN(parseFloat(formData.Price))) {\n return {\n Field: 'Price',\n Message: 'Please enter a valid price.'\n };\n }\n if (formData.TotalInsuredValue && isNaN(parseFloat(formData.TotalInsuredValue))) {\n return {\n Field: 'TotalInsuredValue',\n Message: 'Please enter a valid amount.'\n };\n }\n if (\n formData.TotalInsuredValue &&\n parseFloat(formData.TotalInsuredValue) < parseFloat(formData.Price)\n ) {\n return {\n Field: 'TotalInsuredValue',\n Message: 'If specified, this must be more than the bike price.'\n };\n }\n if (\n !formData.Details?.PurchaseYear ||\n !/^20\\d\\d$/.test(formData.Details.PurchaseYear.toString())\n ) {\n return {\n Field: 'PurchaseYear',\n Message: 'Please enter a valid purchase year.'\n };\n }\n if (\n formData.Details.PurchaseYear &&\n parseInt(formData.Details.PurchaseYear.toString()) > new Date().getFullYear()\n ) {\n return {\n Field: 'PurchaseYear',\n Message: 'The purchase year cannot be in the future.'\n };\n }\n return null;\n };\n\n const onAddAnother = (\n e: React.FormEvent | React.MouseEvent\n ) => onNext(e, (product) => props.onAdd?.({ addAnother: true, add: product }));\n\n const onAddSingle = (\n e: React.FormEvent | React.MouseEvent\n ) => onNext(e, (product) => props.onAdd?.({ addAnother: false, add: product }));\n\n const onSubmit = (\n e: React.FormEvent | React.MouseEvent\n ) => onNext(e, props.onContinue);\n\n const onNext = (\n e: React.FormEvent | React.MouseEvent,\n callback?: (product: Product) => void\n ) => {\n e.preventDefault();\n\n const err = validate(props.formData);\n if (err) {\n setValidationError(err);\n return;\n }\n\n callback?.({\n Type: ProductType.bike,\n SKU: '',\n Name: `${props.formData.Details.Make} ${props.formData.Details.Model}`,\n Description: '',\n ImageURL: '',\n Quantity: 1,\n Price: {\n Amount: parseFloat(props.formData.Price.replace(/[^.0-9]/, '')),\n Currency: 'usd'\n },\n HasNotReceived: props.formData.HasNotReceived,\n Details: {\n ...props.formData.Details,\n TotalInsuredValue: {\n Amount: parseFloat(props.formData.TotalInsuredValue?.replace(/[^.0-9]/, '') || '0'),\n Currency: 'usd'\n }\n }\n });\n };\n\n return (\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Make', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Make: value }\n }));\n }}\n value={props.formData.Details.Make}\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('Model', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Model: value }\n }));\n }}\n value={props.formData.Details.Model}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('ModelYear', (prev) => ({\n ...prev,\n Details: { ...prev.Details, ModelYear: value }\n }));\n }}\n value={props.formData.Details.ModelYear}\n inputMode=\"numeric\"\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('FrameSerialNumber', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n IsPendingSerialNumber: value === '',\n FrameSerialNumber: value\n }\n }));\n }}\n value={props.formData.Details.FrameSerialNumber}\n />\n \n \n \n \n {\n e.stopPropagation();\n setData('HasNotReceived', (prev) => ({\n ...prev,\n HasNotReceived: !prev.HasNotReceived\n }));\n }}\n >\n \n {\n setData('HasNotReceived', (prev) => ({\n ...prev,\n HasNotReceived: !prev.HasNotReceived\n }));\n }}\n />\n \n \n I have not received my bike.\n \n You can still submit your application now and activate your policy after you've\n received your bike.\n \n \n \n \n \n \n \n \n \n setData('Type', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Type: value }\n }))\n }\n value={props.formData.Details.Type}\n />\n \n \n \n setData('FrameType', (prev) => ({\n ...prev,\n Details: { ...prev.Details, FrameType: value }\n }))\n }\n value={props.formData.Details.FrameType}\n />\n \n \n \n \n {\n e.stopPropagation();\n setData('PowerSource', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n PowerSource: !prev.Details.PowerSource\n ? BikePowerSource.pedalAssist20MPH\n : BikePowerSource.none\n }\n }));\n }}\n >\n \n \n setData('PowerSource', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n PowerSource: !prev.Details.PowerSource\n ? BikePowerSource.pedalAssist20MPH\n : BikePowerSource.none\n }\n }))\n }\n />\n \n \n This is an electric or pedal-assisted bike.\n \n \n \n \n {props.formData.Details.PowerSource && (\n <>\n \n \n \n setData('PowerSource', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n PowerSource: value\n }\n }))\n }\n />\n \n \n \n {\n e.stopPropagation();\n setData('CanUnlock', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n CanUnlock: !prev.Details.CanUnlock ? true : false\n }\n }));\n }}\n >\n \n \n setData('CanUnlock', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n CanUnlock: !prev.Details.CanUnlock ? true : false\n }\n }))\n }\n />\n \n \n \n This eBike can be unlocked to speeds higher than 28 mph.\n \n \n \n \n \n )}\n \n \n \n {\n const value = e.currentTarget.value;\n setData('Price', (prev) => ({ ...prev, Price: value }));\n }}\n value={props.formData.Price}\n inputMode=\"decimal\"\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('TotalInsuredValue', (prev) => ({ ...prev, TotalInsuredValue: value }));\n }}\n value={\n props.formData.TotalInsuredValue || props.formData.Details.TotalInsuredValue?.Amount\n }\n inputMode=\"decimal\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('PurchaseYear', (prev) => ({\n ...prev,\n Details: { ...prev.Details, PurchaseYear: value }\n }));\n }}\n value={props.formData.Details.PurchaseYear}\n inputMode=\"numeric\"\n />\n \n \n \n \n {\n e.stopPropagation();\n setData('IsSecondHandPurchase', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n IsSecondHandPurchase: !prev.Details.IsSecondHandPurchase\n }\n }));\n }}\n >\n \n \n setData('IsSecondHandPurchase', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n IsSecondHandPurchase: !prev.Details.IsSecondHandPurchase\n }\n }))\n }\n />\n \n \n This bike is purchased second hand.\n \n \n \n \n \n \n {props.isAdding && (\n \n )}\n {props.onAdd && !props.isAdding && (\n \n )}\n }\n primary\n loading={props.loading}\n onClick={props.isAdding ? onAddSingle : onSubmit}\n >\n {props.isEditing ? 'Save' : props.isAdding ? 'Add this bike' : 'Continue'}\n \n \n \n \n );\n};\n","import { Policy, Price, Product } from '@oysterjs/types';\nimport { Delete, Post } from './base';\n\nexport const addEndorsement = (policyId: string, product: Product) =>\n Post<{ Policy: Policy }>(`/user/policies/${policyId}/endorsement`, { InsuredItem: product });\n\nexport const getEndorsementPremium = (policyId: string, product: Product) =>\n Post<{ CurrentPrice: Price; PendingPrice: Price; EndorsementPrice: Price }>(\n `/user/policies/${policyId}/endorsement/premium`,\n {\n InsuredItem: product\n }\n );\n\nexport const cancelEndorsement = (policyId: string, productId: string) =>\n Delete<{ Policy: Policy }>(`/user/policies/${policyId}/endorsement/${productId}`);\n","import * as React from 'react';\nimport { IoInformationCircleOutline } from 'react-icons/io5';\nimport styled from 'styled-components';\n\nconst TooltipContainer = styled.div<{ backgroundColor?: string }>`\n background: ${(props) => props.backgroundColor || '#f5f5f5'};\n padding: 20px 20px;\n border-radius: 8px;\n box-sizing: border-box;\n width: 100%;\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 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: #666666;\n`;\n\ninterface TooltipProps {\n title?: string;\n backgroundColor?: string;\n}\n\nexport const Tooltip: React.FunctionComponent> = (\n props\n): JSX.Element => (\n \n \n \n \n \n \n {props.title && {props.title}}\n {props.children}\n \n \n \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 { useCookies, Cookies } from 'react-cookie';\nimport {\n PolicyReferralChannelInfo,\n ReferralChannelType,\n ReferralLinkIntegration\n} from '@oysterjs/types';\nimport apm from '../apm';\n\nconst DEPRECATED_ATTRIBUTION_COOKIE = '_oysterc';\nconst ATTRIBUTION_COOKIE = 'oyster_attribution';\nconst TRACKING_COOKIE = 'oyster_direct';\nconst COOKIE_TYPE = 'type';\n\nexport enum CookieParameters {\n AttributionType = 'type',\n MerchantIntegrationId = 'merchant_integration_id',\n UtmSource = 'utm_source',\n UtmCampaign = 'utm_campaign',\n UtmMedium = 'utm_medium',\n UtmTerm = 'utm_term',\n GoogleId = 'gclid',\n FacebookId = 'fbclid',\n PageHistory = '_oh'\n}\n\nenum AttributionCookieType {\n Merchant = 'merchant',\n Marketing = 'marketing',\n Direct = 'direct'\n}\n\nconst getPageHistory = (params: URLSearchParams): string[] => {\n try {\n return JSON.parse(params.get(CookieParameters.PageHistory) || '[]');\n } catch (e) {\n apm().captureError(e);\n return [];\n }\n};\n\nconst getParametersString = (params: URLSearchParams): string => {\n const paramsCopy = new URLSearchParams(params);\n paramsCopy.delete(CookieParameters.PageHistory);\n return paramsCopy.toString();\n};\n\nexport const isMerchantReferral = (): boolean =>\n getCookieData().has(CookieParameters.MerchantIntegrationId);\n\nexport const useReferralChannel = (): PolicyReferralChannelInfo | undefined => {\n useCookies();\n const params = getCookieData();\n\n // Extract params if exists\n if (params) {\n let type = params.get(COOKIE_TYPE);\n if (!type) {\n // If type doesn't exist, we try to infer based on other existing parameters\n if (params.has(CookieParameters.MerchantIntegrationId)) {\n type = AttributionCookieType.Merchant;\n } else if (\n params.has(CookieParameters.UtmSource) &&\n params.has(CookieParameters.UtmCampaign)\n ) {\n type = AttributionCookieType.Marketing;\n } else if (params.has(CookieParameters.GoogleId) || params.has(CookieParameters.FacebookId)) {\n type = AttributionCookieType.Marketing;\n }\n }\n\n const ReferralSubChannel = apm().getReferralSubChannel();\n switch (type) {\n case AttributionCookieType.Merchant:\n return {\n ReferralChannel: ReferralChannelType.ReferralChannelMerchant,\n ReferralSubChannel,\n Settings: {\n MerchantID: '',\n IntegrationID: params.get(CookieParameters.MerchantIntegrationId) || ''\n }\n };\n case AttributionCookieType.Marketing: {\n let source = params.get(CookieParameters.UtmSource);\n let campaign = params.get(CookieParameters.UtmCampaign);\n if (!source) {\n if (params.has(CookieParameters.GoogleId)) {\n source = 'google';\n campaign = params.get(CookieParameters.GoogleId);\n } else if (params.has(CookieParameters.FacebookId)) {\n source = 'facebook';\n campaign = params.get(CookieParameters.FacebookId);\n }\n }\n\n return {\n ReferralChannel: ReferralChannelType.ReferralChannelMarketingCampaign,\n ReferralSubChannel,\n Settings: {\n Source: source || '',\n Campaign: campaign || '',\n Medium: params.get(CookieParameters.UtmMedium) || '',\n Term: params.get(CookieParameters.UtmTerm) || '',\n PageHistory: getPageHistory(params)\n }\n };\n }\n default:\n return {\n ReferralChannel: ReferralChannelType.ReferralChannelDirect,\n ReferralSubChannel,\n Settings: {\n Parameters: getParametersString(params),\n PageHistory: getPageHistory(params)\n }\n };\n }\n }\n\n return undefined;\n};\n\nexport const setMerchantAttribution = (integration: ReferralLinkIntegration) => {\n const cookies = new Cookies();\n const params = new URLSearchParams({\n [CookieParameters.AttributionType]: AttributionCookieType.Merchant,\n [CookieParameters.MerchantIntegrationId]: integration.IntegrationID\n });\n cookies.set(ATTRIBUTION_COOKIE, params.toString(), { path: '/' });\n};\n\nconst getCookieData = (): URLSearchParams => {\n const cookies = new Cookies();\n return [\n cookies.get(DEPRECATED_ATTRIBUTION_COOKIE) || '',\n cookies.get(TRACKING_COOKIE) || '',\n cookies.get(ATTRIBUTION_COOKIE) || ''\n ]\n .map((v) => new URLSearchParams(v))\n .reduce((prev, curr) => {\n curr.forEach((v, k) => prev.set(k, v));\n return prev;\n }, new URLSearchParams());\n};\n","import * as React from 'react';\n\nimport { JewelryProduct, Product, ValidationError, ProductType } from '@oysterjs/types';\nimport { TextInput, TextAreaInput } from '@oysterjs/ui/Form/text';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Button } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { FormColumn, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { FormContainer } from '@oysterjs/ui/Form/builder';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { Tooltip } from '@oysterjs/ui/Tooltip';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\nimport { isMerchantReferral } from '@oysterjs/core/analytics/attribution';\nimport styled from 'styled-components';\n\n// Any value above this requires a purchase receipt.\n// \"0\" means all items require a purchase receipt.\n// See https://app.asana.com/0/1200762684494204/1204432446629813\nconst JEWELRY_VALUE_RECEIPT_REQUIRED = 0;\n\nconst TooltipContent = styled.div`\n ul li {\n margin-bottom: 5px;\n font-size: 1.1em;\n }\n`;\n\nexport interface JewelryFormData {\n ZipCode?: string;\n Name?: string;\n Description?: string;\n Price: string;\n Details: JewelryProduct;\n}\n\nconst isReceiptRequired = (price: number): boolean => {\n return price >= JEWELRY_VALUE_RECEIPT_REQUIRED && !isMerchantReferral();\n};\n\nexport const CollectJewelryInfo: React.FunctionComponent<{\n loading?: boolean;\n validationError?: ValidationError;\n formData: JewelryFormData;\n setData: (field: string, fn: (data: JewelryFormData) => JewelryFormData) => void;\n onContinue: (product: Product) => void;\n}> = (props) => {\n const [validationError, setValidationError] = React.useState();\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [JSON.stringify(props.validationError)]);\n\n const setData = (field: string, fn: (data: JewelryFormData) => JewelryFormData) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n props.setData(field, fn);\n };\n\n const validate = (formData: JewelryFormData): ValidationError | null => {\n if (!formData.Name) {\n return {\n Field: 'Name',\n Message: 'Please enter a name.'\n };\n }\n if (!formData.Description) {\n return {\n Field: 'Description',\n Message: 'Please enter a description.'\n };\n }\n if (!/^\\$?[0-9]+(?:\\.[0-9]+)?$/.test(formData.Price)) {\n return {\n Field: 'Price',\n Message: 'Please enter a valid price.'\n };\n }\n\n const price = parseFloat(formData.Price.replace(/[^.0-9]/, ''));\n const fileLength =\n (formData.Details?.AppraisalFileIDs?.length || 0) +\n (formData.Details?._AppraisalFiles?.length || 0);\n if (isReceiptRequired(price) && fileLength === 0) {\n return {\n Field: 'Attachment',\n Message:\n 'Please provide purchase receipt(s), invoice(s) or appraisal document(s) for this jewelry.'\n };\n }\n return null;\n };\n\n return (\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Name', (prev) => ({ ...prev, Name: value }));\n }}\n value={props.formData.Name}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Description', (prev) => ({ ...prev, Description: value }));\n }}\n value={props.formData.Description}\n style={{ resize: 'none', width: '100%' }}\n rows={5}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Price', (prev) => ({ ...prev, Price: value }));\n }}\n value={props.formData.Price}\n inputMode=\"decimal\"\n />\n \n \n {isReceiptRequired(Number(props.formData.Price)) && (\n \n ({\n ID: fileId,\n Name: `Attachment #${index + 1}`,\n Type: '',\n Size: 0\n })) || []\n }\n title=\"Supporting Documents\"\n description={`To help us speed up the processing time of your policy, please upload the purchase receipt and/or appraisal documents for this jewelry.`}\n multiple={false}\n allowDeleteExisting={false}\n onAttachmentRemoved={(index, _, file) => {\n if (file) {\n if (index >= 0) {\n setData('Attachment', (prev) => {\n const updatedFiles = prev.Details._AppraisalFiles;\n updatedFiles?.splice(index, 1);\n\n return {\n ...prev,\n Details: {\n ...prev.Details,\n _AppraisalFiles: updatedFiles\n }\n };\n });\n }\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }}\n onAttachmentsAdded={(files) => {\n setData('Attachment', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n _AppraisalFiles: files\n }\n }));\n return Promise.resolve();\n }}\n validationError={\n validationError?.Field === 'Attachment' && validationError?.Message\n ? validationError\n : undefined\n }\n >\n \n \n
      \n
    • \n Ensure the name and address on your uploaded documents match the name and\n address you input for this application.\n
    • \n
    • Provide documents that are clearly legible.
    • \n
    • Provide documents from the last 3 years.
    • \n
    • The maximum total file size allowed is 20 MB.
    • \n
    \n

    \n For appraisal documents:\n

    \n
      \n
    • Handwritten appraisals are not recommended.
    • \n
    • Include the appraiser's signature, name and qualifications.
    • \n
    \n
    \n
    \n \n
    \n )}\n \n \n \n {\n e.stopPropagation();\n setData('IsNewPurchase', (prev) => ({\n ...prev,\n Details: { ...prev.Details, IsNewPurchase: !prev.Details.IsNewPurchase }\n }));\n }}\n >\n \n \n setData('IsNewPurchase', (prev) => ({\n ...prev,\n Details: { ...prev.Details, IsNewPurchase: !prev.Details.IsNewPurchase }\n }))\n }\n />\n \n \n Is this jewelry a new purchase?\n \n Check this box if the jewelry was newly purchased.\n \n \n \n \n \n \n \n {\n e.stopPropagation();\n setData('InSafe', (prev) => ({\n ...prev,\n Details: { ...prev.Details, InSafe: !prev.Details.InSafe }\n }));\n }}\n >\n \n \n setData('InSafe', (prev) => ({\n ...prev,\n Details: { ...prev.Details, InSafe: !prev.Details.InSafe }\n }))\n }\n />\n \n \n Is this jewelry going to be stored in a safe?\n \n Check this box if the jewelry is going to be stored inside a safe.\n \n \n \n \n \n \n }\n primary\n loading={props.loading}\n onClick={(e) => {\n e.preventDefault();\n\n const err = validate(props.formData);\n if (err) {\n setValidationError(err);\n return;\n }\n\n props.onContinue({\n Type: ProductType.jewelry,\n SKU: '',\n Name: props.formData.Name || '',\n Description: props.formData.Description || '',\n ImageURL: '',\n Quantity: 1,\n Price: {\n Amount: parseFloat(props.formData.Price.replace(/[^.0-9]/, '')),\n Currency: 'usd'\n },\n Details: props.formData.Details\n });\n }}\n >\n Continue\n \n \n
    \n );\n};\n","import * as React from 'react';\n\nimport {\n ValidationError,\n Product,\n ElectronicsProduct,\n ProductType,\n ElectronicsType\n} from '@oysterjs/types';\nimport { FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { FormColumn } from '@oysterjs/ui/Form/builder';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { Button } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { AttachmentUploader } from '@oysterjs/ui/Attachment';\n\nexport interface ElectronicsFormData {\n ProductType: ProductType;\n ZipCode?: string;\n Price: string;\n Details: ElectronicsProduct;\n}\n\nexport const CollectElectronicsInfo = (props: {\n loading?: boolean;\n validationError?: ValidationError;\n skipReceiptUpload?: boolean;\n formData: ElectronicsFormData;\n setData: (field: string, fn: (data: ElectronicsFormData) => ElectronicsFormData) => void;\n onContinue: (product: Product) => void;\n}) => {\n const [validationError, setValidationError] = React.useState();\n\n const productTypeDisplayName =\n props.formData.ProductType === ProductType.phone ? 'phone' : 'item';\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [JSON.stringify(props.validationError)]);\n\n const setData = (field: string, fn: (data: ElectronicsFormData) => ElectronicsFormData) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n props.setData(field, fn);\n };\n\n const validate = (formData: ElectronicsFormData) => {\n if (!formData.Details.Type && props.formData.ProductType === ProductType.electronics) {\n return {\n Field: 'Type',\n Message: 'Please choose a product type.'\n };\n }\n if (!formData.Details.Manufacturer) {\n return {\n Field: 'Manufacturer',\n Message: 'Please choose a brand.'\n };\n }\n if (!formData.Details.Model) {\n return {\n Field: 'Model',\n Message: 'Please enter a model.'\n };\n }\n if (!formData.Details.SerialNumber) {\n return {\n Field: 'SerialNumber',\n Message: 'Please enter a valid serial number.'\n };\n }\n if (!/^\\$?[0-9]+(?:\\.[0-9]+)?$/.test(formData.Price)) {\n return {\n Field: 'Price',\n Message: 'Please enter a valid price.'\n };\n }\n const fileLength =\n (formData.Details?.PurchaseReceiptFileIDs?.length || 0) +\n (formData.Details?._PurchaseReceiptFiles?.length || 0);\n if (!props.skipReceiptUpload && fileLength === 0) {\n return {\n Field: 'Attachment',\n Message: 'Please provide purchase receipts(s) for this phone.'\n };\n }\n return null;\n };\n\n return (\n \n \n \n {props.formData.ProductType === ProductType.electronics && (\n \n \n setData('Type', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Type: value }\n }))\n }\n value={props.formData.Details.Type}\n />\n \n )}\n \n \n setData('Manufacturer', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Manufacturer: value }\n }))\n }\n value={props.formData.Details.Manufacturer}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Model', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Model: value }\n }));\n }}\n value={props.formData.Details.Model}\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('SerialNumber', (prev) => ({\n ...prev,\n Details: { ...prev.Details, SerialNumber: value }\n }));\n }}\n error={validationError?.Field === 'SerialNumber' && validationError?.Message}\n value={props.formData.Details.SerialNumber}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Price', (prev) => ({ ...prev, Price: value }));\n }}\n value={props.formData.Price}\n />\n \n \n {!props.skipReceiptUpload && (\n \n ({\n ID: fileId,\n Name: `Attachment #${index + 1}`,\n Type: '',\n Size: 0\n })) || []\n }\n title={'Purchase Receipt'}\n description={`To help us speed up the processing time of your policy, please upload the purchase receipt for this ${productTypeDisplayName}. Limit of 20 MB total size.`}\n multiple={false}\n allowDeleteExisting={false}\n onAttachmentRemoved={(index, _, file) => {\n if (file) {\n if (index >= 0) {\n setData('Attachment', (prev) => {\n const updatedFiles = prev.Details._PurchaseReceiptFiles;\n updatedFiles?.splice(index, 1);\n\n return {\n ...prev,\n Details: {\n ...prev.Details,\n _PurchaseReceiptFiles: updatedFiles\n }\n };\n });\n }\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }}\n onAttachmentsAdded={(files) => {\n setData('Attachment', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n _PurchaseReceiptFiles: files\n }\n }));\n return Promise.resolve();\n }}\n validationError={\n validationError?.Field === 'Attachment' && validationError?.Message\n ? validationError\n : undefined\n }\n />\n \n )}\n \n }\n primary\n loading={props.loading}\n onClick={(e) => {\n e.preventDefault();\n\n const err = validate(props.formData);\n if (err) {\n setValidationError(err);\n return;\n }\n\n props.onContinue({\n Type: ProductType.electronics,\n SKU: '',\n Name: `${\n props.formData.Details.Manufacturer === 'Other'\n ? ''\n : props.formData.Details.Manufacturer\n } ${props.formData.Details.Model}`.trim(),\n Description: '',\n ImageURL:\n props.formData.ProductType === ProductType.phone\n ? 'https://dashboard.withoyster.com/images/phone_insurance.svg'\n : '',\n Quantity: 1,\n Price: {\n Amount: parseFloat(props.formData.Price.replace(/[^.0-9]/, '')),\n Currency: 'usd'\n },\n Details: {\n Type: (() => {\n if (props.formData.ProductType === ProductType.phone) {\n if (props.formData.Details.Manufacturer === 'Apple') {\n return ElectronicsType.iPhone;\n }\n return ElectronicsType.smartPhone;\n } else {\n if (\n props.formData.Details.Manufacturer === 'Apple' &&\n props.formData.ProductType === ProductType.electronics &&\n props.formData.Details.Type === ElectronicsType.tablet\n ) {\n return ElectronicsType.iPad;\n }\n }\n return props.formData.Details.Type;\n })(),\n Manufacturer: props.formData.Details.Manufacturer,\n Model: props.formData.Details.Model,\n SerialNumber: props.formData.Details.SerialNumber,\n PurchaseReceiptFileIDs: props.formData.Details.PurchaseReceiptFileIDs,\n _PurchaseReceiptFiles: props.formData.Details._PurchaseReceiptFiles\n }\n });\n }}\n >\n Continue\n \n \n \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { BikeProduct, Policy, Product, ProductType, ValidationError } from '@oysterjs/types';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport {\n IoCheckmarkCircle,\n IoChevronDown,\n IoChevronForward,\n IoArrowForward,\n IoPencil,\n IoDuplicate,\n IoTrash\n} from 'react-icons/io5';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\n\ninterface ProductInfoPageProps {\n title?: string;\n description?: string;\n initialFormData: T;\n component: React.FunctionComponent<{\n loading?: boolean;\n validationError?: ValidationError;\n formData: T;\n setData: (field: string, fn: (data: T) => T) => void;\n onContinue: (product: Product) => void;\n }>;\n hasError: (validationError: ValidationError) => boolean;\n onSubmit: (\n product: Product\n ) => Promise<{ Policy: Policy; NextValidationError?: ValidationError }>;\n onContinue: (policy?: Policy) => void;\n}\n\nexport const ProductInfoPage = (props: ProductInfoPageProps): JSX.Element => {\n const [validationError, setValidationError] = React.useState();\n const [formData, setFormData] = React.useState(props.initialFormData);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n\n React.useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const onContinue = (product: Product) => {\n setLoading(true);\n setTimeout(\n () =>\n props\n .onSubmit(product)\n .then(({ Policy, NextValidationError }) => {\n if (NextValidationError) {\n if (props.hasError(NextValidationError)) {\n setValidationError(NextValidationError);\n return;\n }\n }\n props.onContinue(Policy);\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type?.() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setError(e);\n }\n })\n .finally(() => setLoading(false)),\n 500\n );\n };\n\n React.useEffect(() => {\n if (error) {\n throw error;\n }\n }, [error]);\n\n React.useEffect(() => {\n if (props.initialFormData) {\n setFormData(props.initialFormData);\n }\n }, [JSON.stringify(props.initialFormData)]);\n\n const setData = (field: string, fn: (prev: T) => T) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n setFormData(fn);\n };\n\n return props.title && props.description ? (\n \n

    {props.title}

    \n

    {props.description}

    \n {React.createElement(props.component, {\n formData,\n setData,\n onContinue,\n loading,\n validationError\n })}\n
    \n ) : (\n React.createElement(props.component, {\n formData,\n setData,\n onContinue,\n loading,\n validationError\n })\n );\n};\n\ninterface MultiProductInfoPageProps {\n title: string | JSX.Element;\n description: string | JSX.Element;\n formDataConstructor: (product?: Product) => T;\n products: Product[];\n component: React.FunctionComponent<{\n loading?: boolean;\n validationError?: ValidationError;\n formData: T;\n setData: (field: string, fn: (data: T) => T) => void;\n onContinue: (product: Product) => void;\n onAdd?: (event: { canceled?: boolean; addAnother?: boolean; add?: Product }) => void;\n isAdding?: boolean;\n isEditing?: boolean;\n }>;\n hasError: (validationError: ValidationError) => boolean;\n onSubmit: (\n products: Product[]\n ) => Promise<{ Policy: Policy; NextValidationError?: ValidationError }>;\n onContinue: (policy?: Policy) => void;\n}\n\nexport const MultiProductInfoPage = (props: MultiProductInfoPageProps): JSX.Element => {\n const [validationError, setValidationError] = React.useState();\n const [formData, setFormData] = React.useState(\n props.formDataConstructor(props.products.length === 1 ? props.products[0] : undefined)\n );\n const [savedProducts, setSavedProducts] = React.useState(\n props.products.length === 1 ? [] : props.products\n );\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const [formExpanded, setFormExpanded] = React.useState(savedProducts.length === 0);\n const [editingProduct, setEditingProduct] = React.useState();\n\n React.useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n const onContinue = (products: Product[], addOnly?: boolean, collapse?: boolean) => {\n setLoading(true);\n setTimeout(\n () =>\n props\n .onSubmit(products)\n .then(({ Policy, NextValidationError }) => {\n if (NextValidationError) {\n if (props.hasError(NextValidationError)) {\n setValidationError(NextValidationError);\n setSavedProducts(Policy.InsuredItems.slice(0, -1));\n setFormData(\n props.formDataConstructor(Policy.InsuredItems[Policy.InsuredItems.length - 1])\n );\n setFormExpanded(true);\n return;\n }\n }\n\n window.scrollTo({ top: 0 });\n setValidationError(undefined);\n setSavedProducts(Policy.InsuredItems);\n setFormData(props.formDataConstructor());\n\n if (collapse) {\n setFormExpanded(false);\n setEditingProduct(undefined);\n }\n if (!addOnly) {\n props.onContinue(Policy);\n }\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type?.() === ErrorType.validationError) {\n setValidationError(err.getValidationError());\n } else {\n setError(e);\n }\n })\n .finally(() => setLoading(false)),\n 500\n );\n };\n\n React.useEffect(() => {\n if (error) {\n throw error;\n }\n }, [error]);\n\n React.useEffect(() => {\n if (props.products.length === 0) {\n setFormExpanded(true);\n }\n }, [props.products.length]);\n\n React.useEffect(() => {\n if (savedProducts.length === 0) {\n setFormExpanded(true);\n }\n }, [savedProducts.length]);\n\n const setData = (field: string, fn: (prev: T) => T) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n setFormData(fn);\n };\n\n return (\n <>\n \n

    {props.title}

    \n

    {props.description}

    \n {savedProducts.length > 0 && (\n \n {savedProducts.map((product, i) => (\n {\n if (editingProduct !== i) {\n setFormData(props.formDataConstructor(product));\n setEditingProduct(i);\n setFormExpanded(true);\n } else {\n setFormData(props.formDataConstructor());\n setEditingProduct(undefined);\n setFormExpanded(false);\n }\n }}\n onDuplicate={() => {\n setFormData(props.formDataConstructor(product));\n setEditingProduct(undefined);\n setFormExpanded(true);\n }}\n onRemove={() => {\n if (editingProduct === i) {\n setFormData(props.formDataConstructor());\n setEditingProduct(undefined);\n setFormExpanded(false);\n }\n setSavedProducts((prev) => prev.filter((_, idx) => idx !== i));\n }}\n />\n ))}\n \n )}\n
    \n setFormExpanded((prev) => !prev)}\n expanded={formExpanded}\n disabledExpansion={savedProducts.length === 0 || editingProduct !== undefined}\n >\n {React.createElement(props.component, {\n formData: formData,\n setData,\n onContinue: (product) => onContinue([...savedProducts, product]),\n onAdd: (opts) => {\n if (opts.add) {\n if (editingProduct === undefined) {\n onContinue([...savedProducts, opts.add], true, !opts.addAnother);\n } else {\n onContinue(\n [\n ...savedProducts.slice(0, editingProduct),\n opts.add,\n ...savedProducts.slice(editingProduct + 1)\n ],\n true,\n true\n );\n }\n }\n if (opts.canceled) {\n setFormData(props.formDataConstructor());\n setEditingProduct(undefined);\n setFormExpanded(false);\n }\n },\n isAdding: formExpanded && savedProducts.length > 0,\n isEditing: editingProduct !== undefined,\n loading,\n validationError\n })}\n \n \n {!formExpanded && (\n \n }\n primary\n loading={loading}\n onClick={() => onContinue(savedProducts)}\n >\n Continue\n \n \n )}\n \n \n );\n};\n\nconst ExpandableTitle = styled.div<{ expanded?: boolean; expandable?: boolean }>`\n display: flex;\n gap: 12px;\n align-items: center;\n padding: 16px 24px;\n border-radius: ${(props) => (!props.expanded ? '10px' : '0')};\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n background: #f2f2f2;\n cursor: ${(props) => (props.expandable ? 'pointer' : 'default')};\n\n &:hover {\n background: ${(props) => (props.expandable ? '#eaeaea' : '#f2f2f2')};\n }\n\n h2 {\n font-weight: 500;\n color: #000000 !important;\n margin: 0;\n font-size: 1.3em;\n }\n\n svg {\n font-size: 1.3em;\n }\n`;\n\nconst Expandable = (\n props: React.PropsWithChildren<{\n title: string;\n expanded?: boolean;\n disabledExpansion?: boolean;\n onExpand: () => void;\n }>\n) => (\n \n {\n if (!props.disabledExpansion) {\n props.onExpand();\n }\n }}\n expanded={props.expanded}\n expandable={!props.disabledExpansion}\n >\n {props.expanded ? : }\n

    {props.title}

    \n \n {props.expanded && (\n
    \n {props.children}\n
    \n )}\n
    \n);\n\nconst SavedProductListContainer = styled.ul`\n margin: 0;\n padding: 20px 0px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nconst SavedProductContainer = styled.li`\n width: 100%;\n list-style: none;\n box-sizing: border-box;\n border: 2px solid #0ea5e9;\n border-radius: 10px;\n overflow: hidden;\n`;\n\nconst SavedProductInfoContainer = styled.div`\n padding: 20px;\n display: flex;\n gap: 8px;\n`;\n\nconst SavedProductCheckmarkContainer = styled.div`\n font-size: 1.2em;\n color: #0ea5e9;\n`;\n\nconst SavedProductDetailsContainer = styled.div`\n flex: 1 0 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nconst SavedProductName = styled.div`\n font-size: 1.1em;\n font-weight: 500;\n`;\n\nconst SavedProductDetail = styled.div`\n font-size: 0.9em;\n color: #666666;\n`;\n\nconst SavedProductPriceContainer = styled.div`\n font-size: 1.1em;\n font-weight: 500;\n`;\n\nconst ActionsContainer = styled.div`\n width: 100%;\n display: flex;\n`;\n\nconst ActionContainer = styled.div<{ active?: boolean }>`\n flex: 1 0 0;\n padding: 12px 0px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n\n font-weight: 500;\n font-size: 0.9em;\n color: ${(props) => (props.active ? 'white' : '#666666')};\n background: ${(props) => (props.active ? '#0EA5E9' : 'transparent')};\n\n transition: all 0.1s ease-in-out;\n\n border-top: 1px solid #eaeaea;\n border-right: 1px solid #eaeaea;\n\n cursor: pointer;\n\n &:last-child {\n border-right: 0;\n }\n\n &:hover {\n background: ${(props) => (props.active ? '0EA5E9' : '#f2f2f2')};\n }\n\n @media (max-width: 450px) {\n font-size: 1em;\n\n .action-title {\n display: none;\n }\n }\n`;\n\nconst getDetail = (product: Product): string | null => {\n switch (product.Type) {\n case ProductType.bike: {\n const details = product.Details as BikeProduct;\n return details?.FrameSerialNumber || 'Serial number pending';\n }\n default:\n return null;\n }\n};\n\nconst getInsuredValue = (product: Product): number => {\n switch (product.Type) {\n case ProductType.bike: {\n const details = product.Details as BikeProduct;\n if (details.TotalInsuredValue?.Amount) {\n return details.TotalInsuredValue?.Amount;\n }\n return product.Price.Amount;\n }\n\n default:\n return product.Price.Amount;\n }\n};\n\nconst SavedProduct = (props: {\n product: Product;\n isEditing?: boolean;\n onEdit: () => void;\n onDuplicate: () => void;\n onRemove: () => void;\n}) => (\n \n \n \n \n \n \n {props.product.Name}\n {getDetail(props.product)}\n \n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.product.Price.Currency || 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(getInsuredValue(props.product))}\n \n \n \n } title=\"Edit\" onClick={props.onEdit} active={props.isEditing} />\n } title=\"Duplicate\" onClick={props.onDuplicate} />\n } title=\"Remove\" onClick={props.onRemove} />\n \n \n);\n\nconst Action = (props: {\n icon: JSX.Element;\n title: string;\n onClick: () => void;\n active?: boolean;\n}) => (\n \n {props.icon}\n
    {props.title}
    \n
    \n);\n","import * as React from 'react';\n\nimport styled from 'styled-components';\nimport { IoCheckmarkSharp } from 'react-icons/io5';\n\nconst CoverageItemContainer = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n max-width: calc(50% - 5px);\n\n @media (max-width: 520px) {\n max-width: 100%;\n }\n`;\n\nconst CoverageItemCheckboxContainer = styled.div`\n padding-right: 5px;\n`;\n\nconst CoverageItemDetailsContainer = styled.div`\n flex-direction: column;\n`;\n\nconst CoverageItemTitle = styled.div`\n font-weight: 600;\n padding-bottom: 5px;\n`;\n\nconst CoverageItemDescription = styled.div`\n color: #999999;\n font-size: 0.8em;\n`;\n\nconst CoverageItemCheckbox = styled.div`\n padding-right: 5px;\n color: #0ea5e9;\n font-size: 1.5em;\n`;\n\nexport const CoverageItem: React.FunctionComponent<\n React.PropsWithChildren<{\n title: string;\n description: string;\n icon?: JSX.Element;\n iconColor?: string;\n }>\n> = (props) => (\n \n \n \n {props.icon || }\n \n \n \n {props.title}\n \n {props.description}\n \n \n \n);\n\nconst CoveragePageSectionContainer = styled.div`\n padding: 18px 0px;\n flex: 1 1 0;\n`;\n\nconst CoveragePageSectionTitle = styled.div<{ textColor?: string }>`\n padding: 0px 0px 18px 0px;\n width: 100%;\n\n span {\n font-weight: 600;\n font-size: 0.8em;\n color: ${(props) => props.textColor || '#999999'};\n text-transform: uppercase;\n display: flex;\n align-items: center;\n width: 100%;\n gap: 0.5em;\n\n &::after {\n content: '';\n background-color: ${(props) => props.textColor || '#999999'};\n flex-grow: 1;\n height: 1px;\n }\n }\n`;\n\nconst CoveragePageSectionContent = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 24px 10px;\n`;\n\nexport const CoveragePageSection: React.FunctionComponent<\n React.PropsWithChildren<{ title?: string; color?: string }>\n> = (props) => (\n \n {props.title && (\n \n {props.title}\n \n )}\n {props.children}\n \n);\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nexport const BoxContainer = styled.ul`\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n list-style: none;\n margin: 20px 0px;\n padding: 0px;\n gap: 40px;\n`;\n\nexport const Box = styled.li`\n padding: 30px;\n border: 1px solid #f2f2f2;\n border-radius: 10px;\n background: #fafafa;\n margin: 0;\n\n max-width: calc(33% - 20px);\n flex: 1 0 calc(33% - 30px);\n box-sizing: border-box;\n\n &.endorsement-price {\n max-width: calc(50% - 20px);\n }\n\n &.insured-item-box-item {\n width: 280px;\n }\n\n &.policy-box-item {\n width: 280px;\n display: flex;\n flex-direction: column;\n }\n\n &.coverage-box-item {\n max-width: 500px;\n width: 66%;\n flex: 1 0 calc(50% - 20px);\n }\n\n @media (max-width: 800px) {\n &.coverage-box-item {\n max-width: 100%;\n flex: 1 0 100%;\n }\n }\n\n @media (max-width: 600px) {\n max-width: 100%;\n flex: 1 0 100%;\n\n &.insured-item-box-item {\n max-width: 340px;\n }\n\n &.policy-box-item {\n max-width: 340px;\n }\n }\n\n @media (max-width: 360px) {\n &.insured-item-box-item {\n width: 100%;\n }\n\n &.policy-box-item {\n width: 100%;\n }\n }\n`;\n\nexport const BoxBadgeHeader = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n padding-bottom: 20px;\n`;\n\nexport const BoxItemImage = styled.img`\n width: 100%;\n height: 180px;\n box-sizing: border-box;\n background: transparent;\n object-fit: contain;\n border-radius: 6px;\n margin-bottom: 20px;\n`;\n\nexport const AlternateBoxTitle = styled.div`\n font-size: 1.4em;\n font-weight: 500;\n`;\n\nconst BoxTitle = styled.div`\n font-size: 1em;\n font-weight: 500;\n padding: 0px 20px;\n box-sizing: border-box;\n color: #666666;\n text-align: center;\n width: 100%;\n`;\n\nconst BoxContents = styled.div`\n padding: 20px 10px 0px 10px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 20px;\n`;\n\nconst BoxDescription = styled.div`\n text-align: center;\n width: 100%;\n font-size: 0.8em;\n`;\n\nexport const LeftAlignBoxContents = styled.div`\n padding: 10px 0px 0px 0px;\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: start;\n justify-content: space-between;\n height: 100%;\n`;\n\nexport const BoxItem = (\n props: React.PropsWithChildren<{\n title: string;\n description?: string | JSX.Element;\n className?: string;\n }>\n) => (\n \n {props.title}\n \n {props.children}\n {props.description && {props.description}}\n \n \n);\n","import * as React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { IoClose } from 'react-icons/io5';\nimport styled from 'styled-components';\n\nconst Overlay = styled.div`\n position: fixed;\n display: flex;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n background: rgba(250, 250, 250, 0.8);\n z-index: 999;\n\n &.slideout-enter {\n opacity: 0;\n }\n &.slideout-enter-active {\n opacity: 1;\n transition: 0.3s opacity ease;\n }\n &.slideout-exit {\n opacity: 1;\n }\n &.slideout-exit-active {\n opacity: 0;\n transition: 0.3s opacity ease;\n }\n\n @media (min-width: 660px) {\n &.slideout-enter .slideout-container {\n right: -60px;\n }\n &.slideout-enter-active .slideout-container {\n right: 0px;\n transition: 0.3s right ease;\n }\n &.slideout-exit .slideout-container {\n right: 0px;\n }\n &.slideout-exit-active .slideout-container {\n right: -60px;\n transition: 0.3s right ease;\n }\n }\n\n @media (max-width: 660px) {\n &.slideout-enter .slideout-container {\n top: 100%;\n }\n &.slideout-enter-active .slideout-container {\n top: 0px;\n transition: 0.3s top ease;\n }\n &.slideout-exit .slideout-container {\n top: 0px;\n }\n &.slideout-exit-active .slideout-container {\n top: 100%;\n transition: 0.3s top ease;\n }\n }\n`;\n\nconst SlideOutContainer = styled.div<{ wide?: boolean }>`\n background: white;\n box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.1);\n position: absolute;\n top: 0;\n right: 0;\n width: ${(props) => (props.wide ? '1000px' : '660px')};\n height: 100%;\n box-sizing: border-box;\n\n @media (max-width: 660px) {\n top: 0;\n left: 0;\n width: 100%;\n }\n`;\n\nconst HeaderContainer = styled.div`\n height: 60px;\n width: 100%;\n border-bottom: 1px solid #f2f2f2;\n padding: 0px 20px;\n box-sizing: border-box;\n font-weight: 500;\n\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nconst HeaderButtonContainer = styled.div`\n height: 30px;\n width: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n color: #666666;\n transition: all 0.1s ease-in-out;\n\n &.clickable:hover {\n cursor: pointer;\n background-color: #666666;\n color: white;\n }\n`;\n\nconst Header = (props: { title: string; onBack?: () => void; onClose?: () => void }) => (\n \n \n
    {props.title}
    \n \n \n \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 { Policy, Price, ValidationError } from '@oysterjs/types';\nimport { Get, getEncodedQueryString, Post, Put } from './base';\n\nexport interface ActivateResponse {\n Policy: Policy;\n NextValidationError?: ValidationError;\n}\n\nexport const getPolicyToActivate = (policyId: string): Promise =>\n Get<{ Policy: Policy }>(`/user/policies/${policyId}`);\n\nexport const updatePolicyActivation = (policyId: string, policy: Policy) =>\n Put(`/user/policies/${policyId}`, { Policy: policy });\n\nexport const confirmActivationPolicy = (\n policyId: string,\n overrideManualActivationTrigger?: boolean\n) =>\n Post<{ Policy: Policy }>(\n `/user/policies/${policyId}/activate?${getEncodedQueryString({\n overrideManualActivationTrigger: overrideManualActivationTrigger\n })}`\n );\n\nexport const getUserActivationPolicyPremium = (policyID: string) =>\n Get<{ Premium: Price }>(`/user/policies/${policyID}/premium`);\n\nexport const validateUserActivationPolicy = (\n policyId: string,\n updatedPolicy?: Policy\n): Promise =>\n Post<{ Policy: Policy }>(`/user/policies/${policyId}/partnerValidation`, {\n Policy: updatedPolicy\n }).then((d) => d.Policy);\n","import {\n AttachmentFile,\n Insured,\n Merchant,\n MerchantIntegration,\n Policy,\n PolicyReferralChannelInfo,\n Price,\n Product,\n ReferralSubChannel as ReferralSubChannel,\n ValidationError\n} from '@oysterjs/types';\nimport { Delete, Get, getEncodedQueryString, Post, Put } from './base';\nimport { userCreatePolicy } from './user';\nimport config from '@oysterjs/core/config';\nimport { userCompletePolicy, userGetPaymentSession } from './user';\n\nexport const sdkGetIntegrationConfig = () =>\n Get<{ Integration: MerchantIntegration; Merchant: Merchant }>(\n `/sdk/integration/${config().merchant?.integrationId || ''}`,\n {\n headers: { 'X-Merchant-API-Key': config().merchant?.apiKey || '' }\n }\n ).then((res) => res);\n\nexport const sdkGetPolicy = (policyId: string) =>\n Get<{ Policy: Policy }>(`/sdk/policy/${policyId}`, {\n headers: { 'X-Merchant-API-Key': config().merchant?.apiKey || '' }\n }).then((d) => d.Policy);\n\nexport interface CreatePolicyOptions {\n merchantApiKey?: string;\n integrationID?: string;\n insured?: Insured;\n allowValidationErrors?: boolean;\n referralChannel?: PolicyReferralChannelInfo;\n referralSubChannel?: ReferralSubChannel;\n}\n\nexport const sdkCreateQuote = (\n products: Product[],\n opts?: CreatePolicyOptions\n): Promise<{ Policy?: Policy }> =>\n Post(\n `/sdk/quote?${getEncodedQueryString({\n AllowValidationErrors: opts?.allowValidationErrors\n })}`,\n {\n Products: products,\n Insured: opts?.insured,\n ReferralChannelInfo: opts?.referralChannel,\n ReferralSubChannel: opts?.referralSubChannel\n },\n {\n headers: {\n 'X-Merchant-API-Key': opts?.merchantApiKey || config().merchant?.apiKey || '',\n 'X-Merchant-Integration-ID': opts?.integrationID || config().merchant?.integrationId || ''\n }\n }\n );\n\nexport const sdkCreatePolicy = (\n products: Product[],\n opts?: CreatePolicyOptions\n): Promise<{ Policy: Policy }> => {\n switch (config().serviceName) {\n case 'oysterjs':\n case 'getoyster':\n return Post<{ Policy: Policy }>(\n `/sdk/policy?${getEncodedQueryString({\n AllowValidationErrors: opts?.allowValidationErrors\n })}`,\n {\n Products: products,\n Insured: opts?.insured,\n ReferralChannelInfo: opts?.referralChannel,\n ReferralSubChannel: opts?.referralSubChannel\n },\n {\n headers: {\n 'X-Merchant-API-Key': opts?.merchantApiKey || config().merchant?.apiKey || '',\n 'X-Merchant-Integration-ID':\n opts?.integrationID || config().merchant?.integrationId || ''\n }\n }\n );\n\n case 'dashboard':\n return userCreatePolicy(products, opts);\n\n default:\n throw new Error(`Invalid service name for policy creation: ${config().serviceName}`);\n }\n};\n\nexport const sdkUpdatePolicy = (policy: Policy, isD2CFlow?: boolean) =>\n Put<{ Policy: Policy; NextValidationError?: ValidationError }>(\n `/sdk/policy/${policy.ID}`,\n { Policy: policy, IsD2CFlow: !!isD2CFlow },\n {\n headers: { 'X-Merchant-API-Key': config().merchant?.apiKey || '' }\n }\n );\n\nexport const sdkGetPolicyPremium = (policyId: string) =>\n Get<{ Premium: Price; Underwriter?: string }>(`/sdk/policy/${policyId}/premium`);\n\nexport const sdkValidatePolicy = (policyId: string): Promise =>\n Post<{ Policy: Policy }>(`/sdk/policy/${policyId}/partnerValidation`).then((d) => d.Policy);\n\nexport const sdkConfirmPolicy = (policyId: string, insured?: Insured): Promise =>\n Post<{ Policy: Policy }>(\n `/sdk/policy/${policyId}/confirm`,\n {\n Insured: insured\n },\n {\n headers: { 'X-Merchant-API-Key': config().merchant?.apiKey || '' }\n }\n ).then((d) => d.Policy);\n\nexport const sdkGetPaymentSession = (policyId: string): Promise => {\n switch (config().serviceName) {\n case 'oysterjs':\n case 'getoyster':\n return Post<{ StripeClientSecret: string }>(`/sdk/policy/${policyId}/payment`).then((d) => {\n return d.StripeClientSecret;\n });\n\n case 'dashboard':\n return userGetPaymentSession(policyId);\n\n default:\n throw new Error(`Invalid service name for payment session: ${config().serviceName}`);\n }\n};\n\nexport const sdkCompletePolicy = (policyId: string) => {\n switch (config().serviceName) {\n case 'oysterjs':\n case 'getoyster':\n return Post<{ Policy: Policy; Redirect?: string }>(\n `/sdk/policy/${policyId}/complete`,\n undefined,\n {\n headers: {\n 'X-Merchant-API-Key': config().merchant?.apiKey || ''\n }\n }\n );\n\n case 'dashboard':\n return userCompletePolicy(policyId);\n\n default:\n throw new Error(`Invalid service name for policy completion: ${config().serviceName}`);\n }\n};\n\nexport const sdkGetPolicyFilesMetadata = (policyId: string) => {\n return Get<{ Metadata: AttachmentFile[] }>(`/sdk/policy/${policyId}/files/metadata`).then(\n (d) => d.Metadata || []\n );\n};\n\nexport const sdkCreateTemporaryAttachments = (\n fileRole: string,\n files: File[],\n existingFileIDs?: string[]\n) => {\n const form = new FormData();\n files.forEach((file) => form.append('files[]', file));\n form.append('FileRole', fileRole);\n if (existingFileIDs) {\n form.append('ExistingFileIDs', JSON.stringify(existingFileIDs));\n }\n return Post<{ Metadata: AttachmentFile[] }>(`/sdk/attachments`, undefined, { body: form }).then(\n (d) => d.Metadata || []\n );\n};\n\nexport const sdkDeletePolicyAttachment = (policyId: string, fileID: string) => {\n return Delete<{ Metadata: AttachmentFile[] }>(\n `/user/policy/${policyId}/attachment/${fileID}`,\n undefined\n ).then((d) => d.Metadata || []);\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 { useLocation } from 'react-router';\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 // Listen for path changes to reset the identification when the user navigates\n // between pages.\n const location = useLocation();\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';\n\nimport { matchPath, RouteComponentProps, useHistory } from 'react-router';\nimport { sdkGetPolicy, sdkUpdatePolicy } from '@oysterjs/core/api/sdk';\nimport { getAccountSummary } from '@oysterjs/core/api/user';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { getToken } from '@oysterjs/core/auth';\nimport config from '@oysterjs/core/config';\nimport { ErrorCode, ErrorType, WrappedError } from '@oysterjs/core/errors';\nimport { HubspotChatContext } from '@oysterjs/core/hubspot';\nimport { Policy, PolicyType, ValidationError } from '@oysterjs/types';\n\nexport interface Page {\n path: string;\n render: (props: RouteComponentProps<{ [key: string]: string | undefined }>) => JSX.Element;\n hasError: (validationError: ValidationError) => boolean;\n icon: JSX.Element;\n}\n\nexport interface PageProps {\n policy: Policy;\n onNext: () => Promise;\n onBack: ((e) => unknown) | null;\n onUpdate: (policy: Policy, forceUpdate?: boolean) => Promise;\n validationError?: ValidationError;\n loading: boolean;\n}\n\nexport const GetPolicyWrapper = (props: {\n policyId?: string;\n children: (data: Policy) => JSX.Element | null;\n}): JSX.Element => {\n const history = useHistory();\n const promise = sdkGetPolicy(props.policyId || '').catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.preconditionFailed && err.code() === ErrorCode.alreadySubmitted) {\n history.push(`/policy/${props.policyId}/complete`);\n }\n return null;\n });\n\n return {(data) => data && props.children(data)};\n};\n\nexport const ExistingUserWrapper = (props: { children: (e) => JSX.Element }): JSX.Element => {\n if (config().serviceName !== 'dashboard' || getToken() == null) {\n return props.children(null);\n }\n\n const [promise] = React.useState(getAccountSummary());\n\n // React.useEffect(() => {\n // const onFocus = () => setPromise(getAccountSummary());\n // window.addEventListener('focus', onFocus);\n // return () => window.removeEventListener('focus', onFocus);\n // }, []);\n\n return {(account) => props.children(account)};\n};\n\nexport const PageWrapper = (props: {\n policy: Policy;\n pages: Page[];\n component: React.FunctionComponent>;\n}) => {\n const history = useHistory();\n const hubspot = React.useContext(HubspotChatContext);\n\n const [loading, setLoading] = React.useState(false);\n const [policy, setPolicy] = React.useState(props.policy);\n const [validationError, setValidationError] = React.useState();\n const productType = history.location.pathname.split('/')[2];\n\n const currentPageIndex = props.pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path.replace('$PRODUCT_TYPE', productType),\n exact: true\n })\n );\n const onUpdate = async (policy: Policy, forceUpdate?: boolean) => {\n if (forceUpdate) {\n setLoading(true);\n try {\n const { Policy } = await sdkUpdatePolicy(policy);\n if (Policy) {\n setPolicy(Policy);\n }\n return Policy;\n } catch {\n // TODO: render error\n return policy;\n } finally {\n setLoading(false);\n }\n }\n setPolicy(policy);\n return policy;\n };\n\n const onBack = (e) => {\n e.preventDefault();\n if (currentPageIndex > 0) {\n history.push(\n props.pages[currentPageIndex - 1].path\n .replace(':id', policy.ID)\n .replace('$PRODUCT_TYPE', productType)\n );\n }\n };\n\n const onNext = async () => {\n setLoading(true);\n try {\n const { Policy, NextValidationError } = await sdkUpdatePolicy(policy, true);\n if (NextValidationError) {\n setValidationError(NextValidationError);\n let nextPageIndex = props.pages.findIndex((page) => page.hasError(NextValidationError));\n if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n nextPageIndex = currentPageIndex + 1;\n }\n if (nextPageIndex !== currentPageIndex && nextPageIndex < props.pages.length) {\n history.push(\n props.pages[nextPageIndex].path\n .replace(':id', policy.ID)\n .replace('$PRODUCT_TYPE', productType)\n );\n }\n } else {\n setValidationError(undefined);\n if (currentPageIndex < props.pages.length - 1) {\n history.push(\n props.pages[currentPageIndex + 1].path\n .replace(':id', policy.ID)\n .replace('$PRODUCT_TYPE', productType)\n );\n }\n }\n if (Policy) {\n setPolicy(Policy);\n hubspot?.identify(\n policy?.Underwriting?.Insured?.Email,\n policy?.Underwriting?.Insured?.FirstName,\n policy?.Underwriting?.Insured?.LastName\n );\n }\n return true;\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n // Send the user to a page that renders the right error\n // based on err.Type and optionally err.Field\n if (err.type() === ErrorType.underwritingError) {\n // Show the user an error indicating we can't offer them insurance.\n window.localStorage.setItem(err.type(), JSON.stringify(err));\n switch (props.policy.Type) {\n case PolicyType.chubbJewelry:\n history.push(`/app/${props.policy.InsuredItems[0].Type}/v2/ineligible`);\n break;\n default:\n history.push(`/app/${props.policy.InsuredItems[0].Type}/ineligible`);\n }\n }\n\n if (err.type() === ErrorType.validationError) {\n // Show the user the error in err.Message and highlight the\n // field corresponding to err.Field.\n setValidationError(err.getValidationError());\n // find page to go to if any\n let nextPageIndex = props.pages.findIndex((page) =>\n page.hasError(err.getValidationError())\n );\n if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n nextPageIndex = currentPageIndex + 1;\n }\n if (nextPageIndex !== currentPageIndex && nextPageIndex < props.pages.length) {\n history.push(\n props.pages[nextPageIndex].path\n .replace(':id', policy.ID)\n .replace('$PRODUCT_TYPE', productType)\n );\n }\n }\n } finally {\n setLoading(false);\n }\n\n return false;\n };\n\n // Initial page load manual identification\n React.useEffect(() => {\n hubspot?.identify(\n policy?.Underwriting?.Insured?.Email,\n policy?.Underwriting?.Insured?.FirstName,\n policy?.Underwriting?.Insured?.LastName\n );\n }, [hubspot]);\n\n // React.useEffect(() => {\n // sdkUpdatePolicy(policy, true).catch((err) => {\n // if (err.Type === 'validation_error') {\n // // Show the user the error in err.Message and highlight the\n // // field corresponding to err.Field.\n // setValidationError(err);\n\n // // find page to go to if any\n // let nextPageIndex = pages.findIndex((page) => page.hasError(err));\n // if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n // nextPageIndex = currentPageIndex + 1;\n // }\n // if (nextPageIndex !== currentPageIndex && nextPageIndex < pages.length) {\n // history.push(pages[nextPageIndex].path.replace(':id', policy.ID));\n // }\n // }\n // });\n // }, [currentPageIndex]);\n\n return React.createElement(props.component, {\n loading,\n policy,\n validationError,\n onNext,\n onBack,\n onUpdate\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 { PageSection } from '@oysterjs/ui/Page';\n\nimport { PageProps } from './page';\nimport { AccountSummary, ActivationSource, ActivationTrigger } from '@oysterjs/types';\nimport { PaymentMethodInput, ShowDefaultPayment } from '@oysterjs/core/payment';\n\nexport const getPaymentPageText = (activationTrigger?: ActivationTrigger) => {\n if (!activationTrigger) {\n return (\n

    \n You're almost ready to go. Finish the process by confirming your payment method. You will\n see an authorization on your card, but won't be charged until our team reviews your\n application and activates your coverage.\n

    \n );\n }\n switch (activationTrigger.Source) {\n case ActivationSource.ManuallyActivate:\n return (\n

    \n You're almost ready to go. Finish the process by confirming your payment method. You will\n see an authorization on your card, but won't be charged until you activate your policy on\n your dashboard.\n

    \n );\n case ActivationSource.SetStartDate:\n return (\n

    \n You're almost ready to go. Finish the process by confirming your payment method. You will\n see an authorization on your card, but won't be charged until your selected start date:{' '}\n {activationTrigger.StartDate} or when you manually activate your policy on your\n dashboard.\n

    \n );\n case ActivationSource.TrackingNumber:\n return (\n

    \n You're almost ready to go. Finish the process by confirming your payment method. You will\n see an authorization on your card, but won't be charged until your item has been delivered\n (Tracking number: {activationTrigger.TrackingNumber}) or when you manually activate\n your policy on your dashboard.\n

    \n );\n default:\n return (\n

    \n You're almost ready to go. Finish the process by confirming your payment method. You will\n see an authorization on your card, but won't be charged until our team reviews your\n application and activates your coverage.\n

    \n );\n }\n};\n\nexport const getPaymentPage = (\n getPaymentIntent: () => Promise,\n returnUrl: string,\n account?: AccountSummary\n) => {\n const defaultPayment = account?.PaymentMethods?.find((paymentMethod) => paymentMethod.Default);\n\n return (props: PageProps) => (\n \n

    Complete your purchase

    \n {getPaymentPageText(props.policy.Coverage.ActivationTrigger)}\n {!defaultPayment && (\n \n )}\n {defaultPayment && (\n \n )}\n
    \n );\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 React from 'react';\nimport { ErrorDisplay, TextInput } from './text';\nimport { useId } from 'react-id-generator';\n\ninterface DateOfBirthInputProps {\n onChange: (day: string, month: string, year: string, dateObject: Date) => void;\n initialValue?: [string, string, string];\n error?: string | null | false;\n}\n\nexport const DateOfBirthInput: React.FunctionComponent<\n React.PropsWithChildren\n> = (props) => {\n const dayRef = React.useRef(null);\n const monthRef = React.useRef(null);\n const yearRef = React.useRef(null);\n\n const nextRefMap = { month: dayRef, day: yearRef };\n const prevRefMap = { day: monthRef, year: dayRef };\n\n const [formData, setFormData] = React.useState({\n day: props.initialValue?.[0] || '',\n month: props.initialValue?.[1] || '',\n year: props.initialValue?.[2] || '',\n fieldToFocus: ''\n });\n\n React.useEffect(() => {\n if (formData.fieldToFocus) {\n nextRefMap[formData.fieldToFocus]?.current?.focus();\n setFormData({ ...formData, fieldToFocus: '' });\n }\n }, [formData]);\n\n const setData = (field: string, value: string) => {\n setFormData((prev) => {\n // We need to internally validate the value and do proper focus handling.\n // Right now we don't care about transferring excess values to the next input,\n // for example, user clicks on month and input '128', we'll only focus on the year field and\n // sanitize to '12' and we'll drop the '8' input.\n let sanitizedValue = value;\n switch (field) {\n case 'day':\n sanitizedValue = value.substring(0, 2);\n break;\n case 'month':\n sanitizedValue = value.substring(0, 2);\n break;\n case 'year':\n sanitizedValue = value.substring(0, 4);\n break;\n }\n\n // Update state and focus\n const newFormData = {\n ...prev,\n [field]: sanitizedValue,\n fieldToFocus: value.length > prev[field].length && sanitizedValue.length >= 2 ? field : ''\n };\n\n // Adds date object representation for the picker\n const dateObject = new Date(\n Date.UTC(\n Number(newFormData.year),\n Number(newFormData.month) - 1,\n Number(newFormData.day),\n 0,\n 0,\n 0,\n 0\n )\n );\n props.onChange(newFormData.day, newFormData.month, newFormData.year, dateObject);\n return newFormData;\n });\n };\n\n // Handles keyboard press, here we do backspace handling and also limit input to only numeric\n const handleKeyDown = (e: React.KeyboardEvent, field: string) => {\n if (!/[0-9]|Backspace|Tab|Delete|Arrow[Left|Right|Up|Down]/.test(e.key)) {\n e.preventDefault();\n }\n\n if (e.key === 'Backspace' || e.key === 'Delete') {\n if (formData[field] === '') {\n prevRefMap[field]?.current?.focus();\n }\n }\n };\n\n // Prepend leading 0s for single digit date and month\n const handleBlur = (e: React.FocusEvent, field: string) => {\n const inputValue = e.target.value;\n if (field !== 'year' && inputValue.length === 1) {\n setData(field, ('00' + inputValue).slice(-2));\n }\n };\n\n const [mmId, ddId, yyyyId] = useId(3);\n\n return (\n
    \n
    \n \n setData('month', e.currentTarget.value)}\n onKeyDown={(e) => handleKeyDown(e, 'month')}\n onBlur={(e) => handleBlur(e, 'month')}\n ref={monthRef}\n />\n \n setData('day', e.currentTarget.value)}\n onKeyDown={(e) => handleKeyDown(e, 'day')}\n onBlur={(e) => handleBlur(e, 'day')}\n ref={dayRef}\n />\n \n setData('year', e.currentTarget.value)}\n onKeyDown={(e) => handleKeyDown(e, 'year')}\n onBlur={(e) => handleBlur(e, 'year')} // Only here for consistency, does nothing at the moment\n ref={yearRef}\n />\n
    \n {props.error && {props.error}}\n
    \n );\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { CoveragePageSection, CoverageItem } from '@oysterjs/ui/CoverageItem';\nimport { PageProps } from './page';\nimport {\n ActivationSource,\n ActivationTrigger,\n BooleanOption,\n Cadence,\n DiscreteOption,\n Option,\n OptionType,\n Policy,\n PolicyType,\n Price\n} from '@oysterjs/types';\nimport { Select, UnstyledSelect } from '@oysterjs/ui/Form/select';\nimport { OptionGroup } from '@oysterjs/ui/Form/option';\nimport { Button, ButtonContainer } from '@oysterjs/ui/Button';\nimport { IoArrowBack, IoArrowForward } from 'react-icons/io5';\nimport { getSamplePolicyUrl } from '@oysterjs/core/statics';\nimport { getPolicyCoverageItems, getPolicyOptionalCoverageItem } from '@oysterjs/core/policy';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { GetOysterEventNames } from '@oysterjs/core/analytics/googletags';\nimport { useHistory } from 'react-router';\nimport { ErrorType } from '@oysterjs/core/errors';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { FormColumn, FormRow } from '@oysterjs/ui/Form/builder';\nimport { DateOfBirthInput } from '@oysterjs/ui/Form/dob';\n\nexport const getCoveragePage =\n (\n title: string,\n description: string,\n getPremium: (updatedPolicy?: Policy) => Promise,\n showLoading?: boolean,\n subDescription?: string,\n atomicPriceUpdate?: boolean\n ) =>\n (props: React.PropsWithChildren) => (\n \n );\n\nconst PolicyOptionBox = styled.div`\n padding-left: 30px;\n display: flex;\n flex-direction: column;\n`;\n\nconst CoveragePriceAmount = styled.span`\n font-weight: 600;\n font-size: 2em;\n vertical-align: baseline;\n`;\n\nconst CoveragePriceCadence = styled.span`\n text-transform: uppercase;\n display: block;\n font-size: 0.9em;\n`;\n\nexport const CoveragePrice = (props: {\n price: Price;\n cadence: Cadence;\n displayCadence?: Cadence;\n loading?: boolean;\n extraFooter?: string;\n}) => {\n const annualPrice =\n props.cadence === Cadence.month ? props.price.Amount * 12 : props.price.Amount;\n const displayCadence = props.displayCadence || Cadence.year;\n const displayPrice = displayCadence == Cadence.year ? annualPrice : annualPrice / 12;\n const showBilledAnnually = displayCadence === Cadence.month;\n\n return (\n
    \n \n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.price.Currency,\n minimumFractionDigits: Number.isInteger(displayPrice) ? 0 : 2,\n maximumFractionDigits: 2\n }).format(displayPrice)}\n \n /{displayCadence}\n \n \n
    \n \n {showBilledAnnually && (\n
    \n Billed annually at{' '}\n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.price.Currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }).format(props.price.Amount)}\n /{props.cadence}\n {props.extraFooter ? '. ' + props.extraFooter : ''}\n
    \n )}\n {!showBilledAnnually && props.extraFooter && (\n
    {props.extraFooter}
    \n )}\n \n );\n};\n\nexport const PolicyCoveragePage = (\n props: PageProps & {\n title?: string;\n description?: string | JSX.Element;\n subDescription?: string;\n addButtonText?: string;\n priceDisplayCadence?: Cadence;\n showLoading?: boolean;\n isWidget?: boolean;\n atomicPriceUpdate?: boolean;\n getPremium: (updatedPolicy?: Policy) => Promise;\n }\n) => {\n const [loading, setLoading] = React.useState(false);\n const [price, setPrice] = React.useState();\n const [underwriter, setUnderwriter] = React.useState('');\n const [inputChanged, setInputChanged] = React.useState(false);\n const analytics = useAnalytics();\n const history = useHistory();\n const showAltText =\n props.policy.Type == PolicyType.chubbJewelry &&\n props.policy.InsuredItems.reduce((partialSum, item) => partialSum + item.Price.Amount, 0) >\n 200000;\n\n const [year, month, day] = (props.policy.Coverage.ActivationTrigger?.StartDate || '')\n .split('-')\n .map((v) => v || '');\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n const onUpdate = (updatedPolicy: Policy, forceUpdate?: boolean) =>\n props.atomicPriceUpdate\n ? props.onUpdate(updatedPolicy, false)\n : props.onUpdate(updatedPolicy, forceUpdate);\n\n const loadPrice = async (updatedPolicy?: Policy) =>\n props\n .getPremium(updatedPolicy)\n .then((res) => {\n analytics.event(GetOysterEventNames.ReviewCoverage, {\n policy_id: props.policy.ID,\n policy_type: props.policy.Type,\n value: res.Price?.Amount.toString() || '0.0',\n currency: res.Price?.Currency || 'USD',\n transaction_id: props.policy.ID\n });\n setPrice(res.Price);\n setUnderwriter(res.Underwriting.Underwriter || '');\n })\n .catch((error) => {\n if (error.type() == ErrorType.underwritingError) {\n switch (props.policy.Type) {\n case PolicyType.chubbJewelry:\n history.push(`/app/${props.policy.InsuredItems[0].Type}/v2/ineligible`);\n break;\n default:\n history.push(`/app/${props.policy.InsuredItems[0].Type}/ineligible`);\n }\n }\n })\n .finally(() => setLoading(false));\n\n // There's an underlying issue that causes this component to mount and\n // unmount repeatedly, so this patch prevents us from spawning very\n // expensive requests to the backend by waiting 1 second before sending\n // the request, and canceling the wait if the component unmounts.\n React.useEffect(() => {\n setLoading(true);\n const timeout = setTimeout(() => loadPrice().finally(() => setLoading(false)), 1000);\n return () => clearTimeout(timeout);\n }, []);\n\n const onUpdateCoverageItem = (item: Option) => {\n if (loading) {\n return;\n }\n setLoading(true);\n onUpdate(\n {\n ...props.policy,\n Coverage: {\n ...props.policy.Coverage,\n Options: props.policy.Coverage.Options.map((existingItem) =>\n existingItem.ID === item.ID ? item : existingItem\n )\n }\n },\n true\n )\n .then(loadPrice)\n .finally(() => setLoading(false));\n };\n\n const onUpdateDeductible = (deductible: string) => {\n if (loading) {\n return;\n }\n setLoading(true);\n onUpdate(\n {\n ...props.policy,\n Coverage: {\n ...props.policy.Coverage,\n Deductible: {\n ...props.policy.Coverage.Deductible,\n Value: deductible\n }\n }\n },\n true\n )\n .then(loadPrice)\n .finally(() => setLoading(false));\n };\n\n const onUpdateActivationTrigger = (trigger?: ActivationTrigger) => {\n setInputChanged(true);\n onUpdate(\n {\n ...props.policy,\n Coverage: {\n ...props.policy.Coverage,\n ActivationTrigger:\n !trigger && !props.policy.Coverage.ActivationTrigger\n ? {\n Source: ActivationSource.SetStartDate\n }\n : trigger\n }\n },\n false\n );\n };\n\n const handleToggle = (item: Option) => {\n onUpdateCoverageItem({\n ...item,\n Enabled: !item.Enabled\n });\n };\n\n const onUpdateCoverage = (item: Option) => {\n onUpdateCoverageItem({\n ...item,\n Option: item.Option\n });\n };\n\n const renderDescription = (item: Option) => {\n switch (item.Type) {\n case OptionType.boolean: {\n const opt = item.Option as BooleanOption;\n if (opt.ValueLabel) {\n return 'up to ' + (item.Option as BooleanOption).ValueLabel;\n }\n return undefined;\n }\n case OptionType.discrete: {\n const opt = item.Option as DiscreteOption;\n if (item.Enabled) {\n return (\n ({\n value: v\n }))}\n disabled={loading}\n onChange={(newValue) =>\n onUpdateCoverage({\n ...item,\n Option: {\n ...opt,\n Value: newValue\n }\n })\n }\n />\n );\n }\n return undefined;\n }\n default:\n return undefined;\n }\n };\n\n const coveragePage = (\n <>\n

    {props.title}

    \n {props.description && (\n

    \n {props.description}{' '}\n \n See policy summary\n \n .\n

    \n )}\n {props.subDescription &&

    {props.subDescription}

    }\n \n {getPolicyCoverageItems(props.policy.Type).map((item) => (\n \n ))}\n \n {props.policy.Coverage.Options?.length > 0 && (\n \n ({\n ...getPolicyOptionalCoverageItem(item.ID),\n enabled: item.Enabled,\n disabled: item.Required || loading,\n titleRight: renderDescription(item),\n onSelect: () => handleToggle(item)\n }))}\n />\n \n )}\n {props.policy.InsuredItems.some((i) => i.HasNotReceived) && (\n \n {\n e.stopPropagation();\n onUpdateActivationTrigger();\n }}\n >\n \n onUpdateActivationTrigger()}\n />\n \n \n Start coverage later\n \n Check this box to submit your application now but start your coverage at a later\n time. If this box is not checked, your coverage will be effective when your\n policy is approved.\n \n \n \n \n )}\n {props.policy.Coverage.ActivationTrigger && (\n \n \n \n {\n onUpdateActivationTrigger({\n Source: value\n });\n }}\n value={props.policy.Coverage.ActivationTrigger?.Source}\n />\n \n \n {props.policy.Coverage.ActivationTrigger.Source ==\n ActivationSource.TrackingNumber && (\n {\n onUpdateActivationTrigger({\n Source: ActivationSource.TrackingNumber,\n TrackingNumber: e.currentTarget.value\n });\n }}\n />\n )}\n {props.policy.Coverage.ActivationTrigger.Source == ActivationSource.SetStartDate && (\n {\n onUpdateActivationTrigger({\n Source: ActivationSource.SetStartDate,\n StartDate: year + '-' + month + '-' + day\n });\n }}\n initialValue={\n props.policy.Coverage.ActivationTrigger?.StartDate &&\n new Date(props.policy.Coverage.ActivationTrigger?.StartDate).getTime() > 0\n ? [day, month, year]\n : undefined\n }\n error={\n !inputChanged &&\n props.validationError?.SubField === 'StartDate' &&\n props.validationError?.Message\n }\n />\n )}\n \n \n {props.policy.Coverage.ActivationTrigger.Source == ActivationSource.TrackingNumber && (\n \n We will track your package and automatically activate your policy once your package\n has arrived.\n \n )}\n {props.policy.Coverage.ActivationTrigger.Source == ActivationSource.SetStartDate && (\n \n We will automatically start your policy on the date you select.\n \n )}\n {props.policy.Coverage.ActivationTrigger.Source == ActivationSource.ManuallyActivate && (\n \n You will be able to manually activate your policy on your dashboard at any time.\n \n )}\n \n )}\n
    \n \n {!price && loading && }\n {price && (\n
    \n \n {props.policy.Type === PolicyType.chubbJewelry && underwriter != '' && (\n
    \n {'Insurance Underwritten By: ' +\n `${underwriter == 'FEDERAL' ? 'Federal Insurance Co' : underwriter}`}\n
    \n )}\n {props.policy.Type === PolicyType.bike && (\n
    \n Insurance described is offered by Oyster Insurance Agency, LLC (California license\n no. 6006158). Insurance is underwritten and provided by Markel Group Inc.\n
    \n )}\n {showAltText && (\n
    \n There are credits you may qualify for to improve this price.If you'd like to learn\n more, continuing does not commit you to finalizing your insurance purchase.\n
    \n )}\n
    \n )}\n
    \n \n
    \n ({\n value: v\n }))}\n onChange={(newValue) => onUpdateDeductible(newValue)}\n />\n {props.policy.Type != PolicyType.chubbJewelry && (\n
    \n This is the maximum amount you'll pay out-of-pocket in the event of a claim.\n
    \n )}\n
    \n
    \n
    \n
    \n \n {props.onBack && (\n \n )}\n }\n onClick={props.onNext}\n loading={props.loading}\n disabled={props.loading || loading}\n primary\n >\n {props.addButtonText || 'Add policy to cart'}\n \n \n
    \n
    \n \n );\n\n return (\n <>\n {!price && loading && props.showLoading && (\n \n

    Verifying your details

    \n

    This may take a few seconds, please do not refresh or navigate away from this page.

    \n \n \n \n
    \n \n )}\n {(price || !props.showLoading) && !props.isWidget && (\n {coveragePage}\n )}\n {(price || !props.showLoading) && props.isWidget && <>{coveragePage}}\n \n );\n};\n","import * as React from 'react';\nimport { useHistory } from 'react-router';\nimport apm from './apm';\n\ninterface UrlData {\n integrationID?: string;\n appData?: T;\n}\n\nexport const useUrlData = (): UrlData => {\n const history = useHistory();\n\n const getData = () => {\n const params = new URLSearchParams(history.location.search);\n\n try {\n const data = JSON.parse(\n window.atob(decodeURIComponent(params.get('d') || encodeURIComponent(window.btoa('{}'))))\n );\n const newData = {\n integrationID: data.I,\n appData: data.D\n };\n\n return newData;\n } catch (err) {\n apm().captureError(err);\n }\n };\n\n const [data, setData] = React.useState>(getData() || {});\n React.useEffect(() => setData(getData() || {}), [history.location]);\n\n return data;\n};\n\nexport const createUrlDataComponent = (d: UrlData): string => {\n return (\n 'd=' +\n encodeURIComponent(\n window.btoa(\n JSON.stringify({\n I: d.integrationID,\n D: d.appData\n })\n )\n )\n );\n};\n","import * as React from 'react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory,\n matchPath\n} from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { Progress } from '@oysterjs/ui/Form/progress';\n\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n ValidationError,\n JewelryCriteria,\n JewelryUnderwritingFlag,\n JewelryStorageLocationFlag,\n Product,\n JewelryProductValidationKeys,\n AttachmentFile,\n DefaultFileRoles,\n PolicyType\n} from '@oysterjs/types';\nimport { TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport {\n IoArrowForward,\n IoBagCheckOutline,\n IoPricetagsOutline,\n IoDocumentTextOutline,\n IoHomeOutline,\n IoPersonOutline,\n IoArrowBack,\n IoAddOutline,\n IoCloseOutline\n} from 'react-icons/io5';\nimport {\n sdkCreatePolicy,\n sdkCreateTemporaryAttachments,\n sdkGetPaymentSession,\n sdkUpdatePolicy,\n sdkValidatePolicy\n} from '@oysterjs/core/api/sdk';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Radio } from '@oysterjs/ui/Form/radio';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { ExistingUserWrapper, GetPolicyWrapper, Page, PageProps, PageWrapper } from '../../page';\nimport { getPaymentPage } from '../../payment';\nimport { getCoveragePage } from '../../coverage';\nimport { JewelryProduct, Policy } from '@oysterjs/types';\nimport { useUrlData } from '@oysterjs/core/url';\nimport apm from '@oysterjs/core/apm';\nimport { CollectJewelryInfo, JewelryFormData } from '../collect';\nimport { ProductInfoPage } from '../../product';\nimport { DateOfBirthInput } from '@oysterjs/ui/Form/dob';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\n\nconst CollectJewelryInfoPage: React.FunctionComponent<\n React.PropsWithChildren<{ policy?: Policy }>\n> = (props) => {\n const urlData = useUrlData();\n const history = useHistory();\n const referralChannel = useReferralChannel();\n\n const onSubmit = (product: Product) => {\n const uploadAttachmentHandler = () => {\n const details = product.Details as JewelryProduct;\n const newFiles = details._AppraisalFiles;\n if (newFiles && newFiles.length > 0) {\n return sdkCreateTemporaryAttachments(\n DefaultFileRoles.purchaseReceipt,\n newFiles,\n details.AppraisalFileIDs\n );\n }\n return Promise.resolve(new Array());\n };\n\n return uploadAttachmentHandler().then((filesMetadata) => {\n const updatedDetails = {\n ...product.Details,\n _AppraisalFiles: undefined,\n AppraisalFileIDs: filesMetadata\n .map((metadata) => metadata.ID)\n .concat((product.Details as JewelryProduct).AppraisalFileIDs || [])\n };\n\n if (props.policy) {\n return sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: [\n {\n ...product,\n Details: updatedDetails\n }\n ]\n },\n true\n );\n }\n return sdkCreatePolicy(\n [\n {\n ...product,\n Details: updatedDetails\n }\n ],\n {\n integrationID: urlData.integrationID,\n referralChannel\n }\n );\n });\n };\n\n const onContinue = (policy?: Policy) => {\n if (!props.policy) {\n history.replace(`/app/jewelry/${policy?.ID}`);\n } else if (\n props.policy.Type == PolicyType.chubbJewelry ||\n policy?.Type == PolicyType.chubbJewelry\n ) {\n history.push(`/app/jewelry/v2/${props.policy?.ID || policy?.ID}/criteria`);\n } else {\n history.push(`/app/jewelry/${props.policy?.ID || policy?.ID}/location`);\n }\n };\n\n const price = props.policy?.InsuredItems?.[0].Price?.Amount;\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as JewelryProduct;\n }\n\n const initialFormData = props.policy\n ? {\n Price: price?.toString() || '',\n Name: props.policy.InsuredItems[0].Name,\n Description: props.policy.InsuredItems[0].Description,\n Details: props.policy.InsuredItems[0].Details as JewelryProduct\n }\n : urlData?.appData\n ? urlData.appData\n : { Price: '', Details: {} as JewelryProduct };\n\n return (\n \n );\n};\n\nexport const CriteriaPage: React.FunctionComponent> = (\n props\n) => (\n \n

    A bit about you

    \n

    Tell us a little bit about yourself.

    \n \n
    \n);\n\nconst JewelryCriteriaPage: React.FunctionComponent> = (\n props\n) => {\n const [validationError, setValidationError] = React.useState();\n const [inputChanged, setInputChanged] = React.useState(false);\n const criteria = props.policy.Underwriting.Criteria as JewelryCriteria;\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeInsured = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n [k]: v\n }\n }\n });\n };\n\n const onChangePriorLoss = (lossIdentifier: string, k: string, v: T) => {\n setInputChanged(true);\n const target = criteria.PriorLosses.find(\n (priorLoss) => priorLoss.lossIdentifier === lossIdentifier\n );\n\n if (target) {\n const index = criteria.PriorLosses.indexOf(target);\n const updatedLoss = {\n ...target,\n [k]: v\n };\n const updatedLosses = new Array(...criteria.PriorLosses);\n updatedLosses[index] = updatedLoss;\n\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n PriorLosses: updatedLosses\n }\n }\n });\n }\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('FirstName', value);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('LastName', value);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Email', value);\n }}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Phone', value);\n }}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Occupation', value);\n }}\n />\n \n \n \n {\n e.stopPropagation();\n onChange('HasAdditionalInsured', !criteria.HasAdditionalInsured);\n }}\n >\n \n {\n onChange('HasAdditionalInsured', !criteria.HasAdditionalInsured);\n }}\n />\n \n \n Add another person to this policy\n \n This ensures that coverage extends to this person in the event of a loss. For example,\n if this is a wedding or engagement ring, you'd likely want to add your spouse or the\n ring-wearer if that person is not you.\n \n \n \n \n {criteria.HasAdditionalInsured && (\n <>\n \n \n \n {\n const value = e.currentTarget.value;\n onChange('AdditionalInsuredFirstName', value);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange('AdditionalInsuredLastName', value);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n )}\n \n {\n e.stopPropagation();\n onChange('IsCurrentlyInsured', !criteria.IsCurrentlyInsured);\n }}\n >\n \n {\n onChange('IsCurrentlyInsured', !criteria.IsCurrentlyInsured);\n }}\n />\n \n \n Jewelry is currently insured\n \n Check this box if this jewelry item is already insured.\n \n \n \n \n {criteria.IsCurrentlyInsured && (\n <>\n \n \n {\n const value = e.currentTarget.value;\n onChange('CurrentInsurerName', value);\n }}\n />\n \n \n \n )}\n \n {criteria.PriorLosses.length > 0 &&\n criteria.PriorLosses.map((priorLoss, index) => {\n const dateOfLoss = new Date(priorLoss.dateOfLoss);\n const hasDateOfLoss = dateOfLoss.getTime() > 0;\n const key = priorLoss.lossIdentifier;\n const validationField = 'PriorLosses' + index;\n\n return (\n \n \n \n {\n onChangePriorLoss(priorLoss.lossIdentifier, 'dateOfLoss', dateObject);\n }}\n initialValue={\n hasDateOfLoss\n ? [\n dateOfLoss.getUTCDate().toString(),\n (dateOfLoss.getUTCMonth() + 1).toString(),\n dateOfLoss.getUTCFullYear().toString()\n ]\n : undefined\n }\n error={\n !inputChanged &&\n validationError?.Field === validationField &&\n validationError?.SubField === 'DateOfLoss'\n ? validationError?.Message\n : undefined\n }\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangePriorLoss(priorLoss.lossIdentifier, 'lossAmount', Number(value));\n }}\n value={priorLoss.lossAmount}\n inputMode=\"decimal\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangePriorLoss(priorLoss.lossIdentifier, 'description', value);\n }}\n style={{ resize: 'none', maxWidth: '100%' }}\n rows={4}\n />\n \n \n }\n onClick={(e) => {\n e.preventDefault();\n onChange('PriorLosses', [\n ...criteria.PriorLosses.filter(\n (s) => s.lossIdentifier !== priorLoss.lossIdentifier\n )\n ]);\n }}\n >\n Remove this loss\n \n
    \n );\n })}\n {criteria.PriorLosses.length < 20 && (\n
    \n }\n onClick={(e) => {\n e.preventDefault();\n onChange('PriorLosses', [\n ...criteria.PriorLosses,\n { lossIdentifier: 'loss_' + new Date().getTime().toString() } // Generate temporary ID\n ]);\n }}\n >\n Add a loss\n \n
    \n )}\n \n \n
    \n {[\n {\n value: JewelryUnderwritingFlag.default,\n name: 'Past default',\n description:\n 'Has your jewelry insurance previously been canceled, declined, refused, or non-renewed in the past 5 years?'\n },\n {\n value: JewelryUnderwritingFlag.exhibition,\n name: 'Exhibition',\n description: 'Do you show or loan any of your jewelry at any exhibitions or events?'\n },\n {\n value: JewelryUnderwritingFlag.bankruptcy,\n name: 'Bankruptcy',\n description: 'Have you filed for bankruptcy in the past 5 years?'\n },\n {\n value: JewelryUnderwritingFlag.judgment,\n name: 'Past judgments',\n description:\n 'Have you been subject to any liens, judgments or repossessions in the past 5 years?'\n },\n {\n value: JewelryUnderwritingFlag.conviction,\n name: 'Prior convictions',\n description: 'Have you ever been convicted of a crime, including misdemeanors?'\n }\n ].map((option) => (\n {\n e.stopPropagation();\n const s = new Set(criteria.UnderwritingFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('UnderwritingFlags', [...s]);\n }}\n key={option.value}\n >\n \n {\n const s = new Set(criteria.UnderwritingFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('UnderwritingFlags', [...s]);\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n \n {criteria.UnderwritingFlags.length > 0 && (\n <>\n \n \n \n {\n const value = e.currentTarget.value;\n onChange('UnderwritingJustification', value);\n }}\n style={{ resize: 'none', maxWidth: '100%' }}\n rows={4}\n />\n \n \n \n )}\n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nexport const LocationPage: React.FunctionComponent> = (\n props\n) => (\n \n

    Jewelry storage

    \n

    Tell us a little bit about where and how you'll store this jewelry.

    \n \n
    \n);\n\nconst JewelryLocationPage = (props: PageProps) => {\n const [inputChanged, setInputChanged] = React.useState(false);\n const criteria = props.policy.Underwriting.Criteria as JewelryCriteria;\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeMulti = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n const onChangeMultiInsured = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n {\n onChangeMulti([\n ['StorageStreetAddress', address.streetAddress],\n ['StorageAptFloor', address.aptFloor],\n ['StorageAptUnit', address.aptUnit],\n ['StorageCity', address.city],\n ['StorageState', address.state],\n ['StorageZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: criteria.StorageStreetAddress,\n aptFloor: criteria.StorageAptFloor,\n aptUnit: criteria.StorageAptUnit,\n city: criteria.StorageCity,\n state: criteria.StorageState,\n zipCode: criteria.StorageZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.Field === 'StorageStreetAddress' &&\n props.validationError?.Message,\n aptFloor:\n !inputChanged &&\n props.validationError?.Field === 'StorageAptFloor' &&\n props.validationError?.Message,\n aptUnit:\n !inputChanged &&\n props.validationError?.Field === 'StorageAptUnit' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.Field === 'StorageCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.Field === 'StorageState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.Field === 'StorageZipCode' &&\n props.validationError?.Message\n }}\n />\n \n {\n e.stopPropagation();\n onChange('StorageIsResidential', !criteria.StorageIsResidential);\n }}\n >\n \n {\n onChange('StorageIsResidential', !criteria.StorageIsResidential);\n }}\n />\n \n \n This is also my residential address\n \n Check this box if you also live at this address.\n \n \n \n \n {!criteria.StorageIsResidential && (\n <>\n \n {\n onChangeMultiInsured([\n ['AddressLine1', address.streetAddress],\n ['AddressLine2', address.aptFloor],\n ['AddressCity', address.city],\n ['AddressState', address.state],\n ['AddressZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: props.policy.Underwriting.Insured.AddressLine1,\n streetAddressLine2: props.policy.Underwriting.Insured.AddressLine2,\n city: props.policy.Underwriting.Insured.AddressCity,\n state: props.policy.Underwriting.Insured.AddressState,\n zipCode: props.policy.Underwriting.Insured.AddressZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.SubField === 'AddressCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.SubField === 'AddressState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.SubField === 'AddressZipCode' &&\n props.validationError?.Message\n }}\n />\n \n )}\n \n \n
    \n {[\n {\n value: 'Frame',\n name: 'Wood Frame',\n description:\n 'Wood, wood veneer, stucco, brick, veneer, or half stucco/half brick exterior'\n },\n {\n value: 'Masonry',\n name: 'Brick veneer, Masonry, or Fire Resistive',\n description:\n 'Concrete, concrete tilt up, cinder block, all brick, all stone, or all metal/steel walls'\n },\n {\n value: 'Other',\n name: 'Other',\n description: 'Some other construction material'\n }\n ].map((option) => (\n {\n e.stopPropagation();\n onChange('ConstructionType', option.value);\n }}\n key={option.value}\n >\n \n {\n onChange('ConstructionType', option.value);\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('ConstructionYear', value);\n }}\n style={{ maxWidth: '100px' }}\n error={\n !inputChanged &&\n props.validationError?.Field === 'ConstructionYear' &&\n props.validationError?.Message\n }\n inputMode=\"numeric\"\n />\n \n \n \n \n
    \n {[\n {\n value: JewelryStorageLocationFlag.has_doorman,\n name: '24-hour doorman',\n description: 'Your apartment or condo building has a doorman present 24/7.',\n hidden: criteria.StorageAptFloor === '' && criteria.StorageAptUnit === ''\n },\n {\n value: JewelryStorageLocationFlag.deadbolts,\n name: 'Deadbolt locks',\n description: (\n <>\n Double check that there are deadbolt locks on all exterior doors.{' '}\n No deadbolt locks may result in a longer application process.\n \n )\n },\n {\n value: JewelryStorageLocationFlag.central_station_fire,\n name: 'Station-monitored fire alarm',\n description: 'This location has a fire alarm that is monitored by a fire station.'\n },\n {\n value: JewelryStorageLocationFlag.burglar_alarm,\n name: 'Burglar alarm',\n description: 'This location has a burglar alarm.'\n },\n {\n value: JewelryStorageLocationFlag.central_station_burglar_alarm,\n name: 'Professionally monitored',\n description:\n 'The burglar alarm at this location is monitored by a professional service.',\n hidden: !criteria.StorageLocationFlags.includes(\n JewelryStorageLocationFlag.burglar_alarm\n ),\n indented: true\n },\n {\n value: JewelryStorageLocationFlag.near_fire_hydrant,\n name: 'Nearby fire hydrant',\n description: 'This location is within 1,000 feet of a fire hydrant.'\n },\n {\n value: JewelryStorageLocationFlag.below_ground,\n name: 'Storage below ground',\n description: 'The jewelry will be stored below-ground at this location.'\n },\n {\n value: JewelryStorageLocationFlag.off_the_ground,\n name: 'Jewelry is at least 12 inches above the floor',\n description: 'The below-ground jewelry is stored at least 12 inches above the floor.',\n hidden: !criteria.StorageLocationFlags.includes(\n JewelryStorageLocationFlag.below_ground\n ),\n indented: true\n },\n {\n value: JewelryStorageLocationFlag.flood_zone,\n name: 'NFIP flood zone',\n description:\n 'This location is in a flood zone as designated by the National Flood Insurance Program.'\n }\n ]\n .filter((option) => !option.hidden)\n .map((option) => (\n {\n e.stopPropagation();\n const s = new Set(criteria.StorageLocationFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('StorageLocationFlags', [...s]);\n }}\n key={option.value}\n >\n \n {\n const s = new Set(criteria.StorageLocationFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('StorageLocationFlags', [...s]);\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n \n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/jewelry/:id?',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n JewelryProductValidationKeys.indexOf(validationError.Field as keyof JewelryProduct) > -1 ||\n validationError.Field === 'Attachment',\n icon: \n },\n {\n path: '/app/jewelry/:id/location',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n !!['Storage', 'Construction'].find((prefix) => validationError.Field.startsWith(prefix)) ||\n !!validationError?.SubField?.startsWith('Address'),\n icon: \n },\n {\n path: '/app/jewelry/:id/criteria',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'ZipCode',\n 'UnderwritingFlags',\n 'UnderwritingJustification',\n 'AdditionalInsuredFirstName',\n 'AdditionalInsuredLastName',\n 'CurrentInsurerName',\n 'Attachment'\n ].includes(validationError.Field) ||\n !!['FirstName', 'LastName', 'Phone', 'Occupation', 'Email'].find(\n (subfield) => validationError.SubField === subfield\n ),\n icon: \n },\n {\n path: '/app/jewelry/:id/coverage',\n render: (props) => (\n \n {(policy) => (\n sdkValidatePolicy(policy.ID)\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n },\n {\n path: '/app/jewelry/:id/payment',\n render: (props) => (\n \n {(account) => (\n \n {(policy) => (\n \n account ? userGetPaymentSession(policy.ID) : sdkGetPaymentSession(policy.ID),\n window.location.origin + `/policy/${policy.ID}/complete?flow=jewelry`,\n account\n )}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n const history = useHistory();\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: 'jewelry',\n page_index: current,\n route: pages[current]?.path,\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n \n \n \n \n \n {current >= 0 && (\n \n \n i < current ? (\n {\n const match = /\\/(pol_.+)\\//.exec(history.location.pathname);\n if (match && match[1]) {\n return pages[i].path.replace(':id', match[1]);\n }\n return pages[i].path;\n })()}\n >\n {page.icon}\n \n ) : (\n page.icon\n )\n )}\n currentStep={current}\n />\n \n )}\n \n (\n \n

    Sorry!

    \n

    \n {JSON.parse(window.localStorage.getItem('underwriting_error') || '{}').Message ||\n null}\n

    \n
    \n \"\"\n
    \n
    \n )}\n >\n } />\n {pages.map((page) => (\n \n ))}\n \n
    \n
    \n
    \n );\n};\n","export const FraudDisclosuresByState = {\n AL: {\n text: 'Any person who knowingly presents a false or fraudulent claim for payment of a loss or benefit or who knowingly presents false information in an application for insurance is guilty of a crime and may be subject to restitution, fines, or confinement in prison, or any combination thereof.'\n },\n AK: {\n text: 'A person who knowingly and with intent to injure, defraud, or deceive an insurance company files a claim containing false, incomplete, or misleading information may be prosecuted under state law.'\n },\n AS: {\n text: ''\n },\n AZ: {\n text: 'For your protection Arizona law requires the following statement to appear on this form. Any person who knowingly presents a false or fraudulent claim for payment of a loss is subject to criminal and civil penalties.'\n },\n AR: {\n text: 'Any person who knowingly presents a false or fraudulent claim for payment of a loss or benefit or knowingly presents false information in an application for insurance is guilty of a crime and may be subject to fines and confinement in prison.'\n },\n CA: {\n text: 'For your protection California law requires the following to appear on this form. Any person who knowingly presents false or fraudulent information to obtain or amend insurance coverage or to make a claim for the payment of a loss is guilty of a crime and may be subject to fines and confinement in state prison.'\n },\n CO: {\n text: 'It is unlawful to knowingly provide false, incomplete, or misleading facts or information to an insurance company for the purpose of defrauding or attempting to defraud the company.  Penalties may include imprisonment, fines, denial of insurance, and civil damages.  Any insurance company or agent of an insurance company who knowingly provides false, incomplete, or misleading facts or information to a policyholder or claimant for the purpose of defrauding or attempting to defraud the policyholder or claimant with regard to a settlement or award payable from insurance proceeds shall be reported to the Colorado division of insurance within the department of regulatory agencies.'\n },\n CT: {\n text: ''\n },\n DE: {\n text: 'Any person who knowingly, and with intent to injure, defraud or deceive any insurer, files a statement of claim containing any false, incomplete or misleading information is guilty of a felony.'\n },\n DC: {\n text: 'WARNING: It is a crime to provide false or misleading information to an insurer for the purpose of defrauding the insurer or any other person. Penalties include imprisonment and/or fines. In addition, an insurer may deny insurance benefits if false information materially related to a claim was provided by the applicant.'\n },\n FM: {\n text: ''\n },\n FL: {\n text: 'Any person who knowingly and with intent to injure, defraud, or deceive any insurer files a statement of claim or an application containing any false, incomplete, or misleading information is guilty of a felony of the third degree.'\n },\n GA: {\n text: ''\n },\n GU: {\n text: ''\n },\n HI: {\n text: ''\n },\n ID: {\n text: 'Any person who knowingly, and with intent to defraud or deceive any insurance company, files a statement of claim containing any false, incomplete, or misleading information is guilty of a felony. The lack of such a statement shall not constitute a defense against prosecution under this section.'\n },\n IL: {\n text: ''\n },\n IN: {\n text: 'A person who knowingly and with intent to defraud an insurer files a statement of claim containing any false, incomplete, or misleading information commits a felony.'\n },\n IA: {\n text: ''\n },\n KS: {\n text: ''\n },\n KY: {\n text: '1. Any person who knowingly and with intent to defraud any insurance company or other person files an application for insurance containing any materially false information or conceals, for the purpose of misleading, information concerning any fact material thereto commits a fraudulent insurance act, which is a crime. 2. Any person who knowingly and with intent to defraud any insurance company or other person files a statement of claim containing any materially false information or conceals, for the purpose of misleading, information concerning any fact material thereto commits a fraudulent insurance act, which is a crime.'\n },\n LA: {\n text: 'Any person who knowingly presents a false or fraudulent claim for payment of a loss or benefit or knowingly presents false information in an application for insurance is guilty of a crime and may be subject to fines and confinement in prison.'\n },\n ME: {\n text: 'It is a crime to knowingly provide false, incomplete or misleading information to an insurance company for the purpose of defrauding the company. Penalties may include imprisonment, fines or a denial of insurance benefits.'\n },\n MH: {\n text: ''\n },\n MD: {\n text: 'Any person who knowingly or willfully presents a false or fraudulent claim for payment of a loss or benefit or who knowingly or willfully presents false information in an application for insurance is guilty of a crime and may be subject to fines and confinement in prison.'\n },\n MA: {\n text: ''\n },\n MI: {\n text: ''\n },\n MN: {\n text: 'A person who files a claim with intent to defraud or helps commit a fraud against an insurer is guilty of a crime.'\n },\n MS: {\n text: ''\n },\n MO: {\n text: ''\n },\n MT: {\n text: ''\n },\n NE: {\n text: ''\n },\n NV: {\n text: ''\n },\n NH: {\n text: 'Any person who, with a purpose to injure, defraud, or deceive any insurance company, files a statement of claim containing any false, incomplete, or misleading information is subject to prosecution and punishment for insurance fraud, as provided in RSA 638:20.'\n },\n NJ: {\n text: 'Any person who includes any false or misleading information on an application for an insurance policy is subject to criminal and civil penalties.'\n },\n NM: {\n text: 'ANY PERSON WHO KNOWINGLY PRESENTS A FALSE OR FRAUDULENT CLAIM FOR PAYMENT OF A LOSS OR BENEFIT OR KNOWINGLY PRESENTS FALSE INFORMATION IN AN APPLICATION FOR INSURANCE IS GUILTY OF A CRIME AND MAY BE SUBJECT TO CIVIL FINES AND CRIMINAL PENALTIES.'\n },\n NY: {\n text: 'Any person who knowingly and with intent to defraud any insurance company or other person files an application for insurance or statement of claim containing any materially false information, or conceals for the purpose of misleading, information concerning any fact material thereto, commits a fraudulent insurance act, which is a crime, and shall also be subject to a civil penalty not to exceed five thousand dollars and the stated value of the claim for each such violation'\n },\n NC: {\n text: ''\n },\n ND: {\n text: ''\n },\n MP: {\n text: ''\n },\n OH: {\n text: 'Any person who, with intent to defraud or knowing that he is facilitating a fraud against an insurer, submits an application or files a claim containing a false or deceptive statement is guilty of insurance fraud.'\n },\n OK: {\n text: 'WARNING: Any person who knowingly, and with intent to injure, defraud or deceive any insurer, makes any claim for the proceeds of an insurance policy containing any false, incomplete or misleading information is guilty of a felony.'\n },\n OR: {\n text: ''\n },\n PW: {\n text: ''\n },\n PA: {\n text: 'Any person who knowingly and with intent to defraud any insurance company or other person files an application for insurance or statement of claim containing any materially false information or conceals for the purpose of misleading, information concerning any fact material thereto commits a fraudulent insurance act, which is a crime and subjects such person to criminal and civil penalties.'\n },\n PR: {\n text: ''\n },\n RI: {\n text: 'Any person who knowingly presents a false or fraudulent claim for payment of a loss or benefit or knowingly presents false information in an application for insurance is guilty of a crime and may be subject to fines and confinement in prison.'\n },\n SC: {\n text: ''\n },\n SD: {\n text: ''\n },\n TN: {\n text: 'It is a crime to knowingly provide false, incomplete or misleading information to an insurance company for the purpose of defrauding the company. Penalties include imprisonment, fines and denial of insurance benefits.'\n },\n TX: {\n text: 'Any person who knowingly and with intent to defraud any insurance company or other person files an application for insurance or statement of claim containing any materially false information or conceals for the purpose of misleading, information concerning any fact material thereto, commits a fraudulent insurance act.'\n },\n UT: {\n text: ''\n },\n VT: {\n text: ''\n },\n VI: {\n text: ''\n },\n VA: {\n text: 'It is a crime to knowingly provide false, incomplete or misleading information to an insurance company for the purpose of defrauding the company. Penalties include imprisonment, fines and denial of insurance benefits'\n },\n WA: {\n text: 'It is a crime to knowingly provide false, incomplete, or misleading information to an insurance company for the purpose of defrauding the company. Penalties include imprisonment, fines, and denial of insurance benefits.'\n },\n WV: {\n text: 'Any person who knowingly presents a false or fraudulent claim for payment of a loss or benefit or knowingly presents false information in an application for insurance is guilty of a crime and may be subject to fines and confinement in prison'\n },\n WI: {\n text: ''\n },\n WY: {\n text: ''\n }\n};\n","import * as React from 'react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory,\n matchPath\n} from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { Progress } from '@oysterjs/ui/Form/progress';\n\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n ValidationError,\n Product,\n JewelryProductValidationKeys,\n AttachmentFile,\n DefaultFileRoles,\n ChubbJewelryCriteria,\n PolicyType\n} from '@oysterjs/types';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport { ErrorDisplay, TextAreaInput, TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport {\n IoArrowForward,\n IoBagCheckOutline,\n IoPricetagsOutline,\n IoDocumentTextOutline,\n IoHomeOutline,\n IoPersonOutline,\n IoArrowBack,\n IoAddOutline,\n IoCloseOutline\n} from 'react-icons/io5';\nimport {\n sdkCreatePolicy,\n sdkCreateTemporaryAttachments,\n sdkGetPaymentSession,\n sdkUpdatePolicy,\n sdkValidatePolicy\n} from '@oysterjs/core/api/sdk';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { ExistingUserWrapper, GetPolicyWrapper, Page, PageProps, PageWrapper } from '../../page';\nimport { getPaymentPage } from '../../payment';\nimport { getCoveragePage } from '../../coverage';\nimport { JewelryProduct, Policy } from '@oysterjs/types';\nimport { useUrlData } from '@oysterjs/core/url';\nimport apm from '@oysterjs/core/apm';\nimport { CollectJewelryInfo, JewelryFormData } from './../collect';\nimport { ProductInfoPage } from '../../product';\nimport { DateOfBirthInput } from '@oysterjs/ui/Form/dob';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { Switch as ToggleSwitch } from '@oysterjs/ui/Form/switch';\nimport { FraudDisclosuresByState } from './disclosures/disclosures';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\n\nfunction requiresAUI(policy: Policy, occupationDetail?: string): boolean {\n switch (policy.Underwriting.Insured.Occupation) {\n case 'Arts/Entertainment/Media':\n if (\n occupationDetail &&\n [\n 'Actor/Actress',\n 'Art Dealer',\n 'Broadcaster/Reporter',\n 'Director – TV/Film/Stage',\n 'Editor',\n 'Fashion Designer',\n 'Journalist',\n 'Model',\n 'Musician',\n 'News Media',\n 'Publisher',\n 'Radio (Director,Producer,Personailty)',\n 'TV/Film/Stage',\n 'Writer'\n ].includes(occupationDetail)\n ) {\n return true;\n }\n break;\n case 'Clergy':\n if (occupationDetail && ['Evangelist'].includes(occupationDetail)) {\n return true;\n }\n break;\n case 'Government':\n if (occupationDetail && ['Diplomat', 'Politician', 'Royalty'].includes(occupationDetail)) {\n return true;\n }\n break;\n case 'Military':\n if (occupationDetail && ['Joint Chiefs of Staff'].includes(occupationDetail)) {\n return true;\n }\n break;\n case 'Retired':\n if (occupationDetail && ['Arts/Entertainment/Media', 'Sports'].includes(occupationDetail)) {\n return true;\n }\n break;\n case 'Sports':\n if (\n occupationDetail &&\n ['Broadcaster/Journalist', 'Manager/Promoter', 'Owner', 'Professional Athlete'].includes(\n occupationDetail\n )\n ) {\n return true;\n }\n break;\n case 'Personal Care/Services':\n if (occupationDetail && ['Celebrity Consultant'].includes(occupationDetail)) {\n return true;\n }\n break;\n case 'Not Currently Employed':\n if (\n occupationDetail &&\n ['Arts/Entertainment/Media', 'Sports', 'Volunteer'].includes(occupationDetail)\n ) {\n return true;\n }\n break;\n default:\n break;\n }\n\n const totalValue = policy.InsuredItems.reduce(\n (partialValue, item) => partialValue + item.Price.Amount,\n 0\n );\n if (totalValue > 200000) return true;\n return false;\n}\n\nfunction getOccupationDetailOpts(\n occupation: string\n): { displayValue: string; value: string }[] | void {\n switch (occupation) {\n case 'Arts/Entertainment/Media':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Actor/Actress', value: 'Actor/Actress' },\n { displayValue: 'Agent', value: 'Agent' },\n { displayValue: 'Art Dealer', value: 'Art Dealer' },\n { displayValue: 'Broadcaster/Reporter', value: 'Broadcaster/Reporter' },\n { displayValue: 'Business Owner', value: 'Business Owner' },\n { displayValue: 'Curator', value: 'Curator' },\n { displayValue: 'Director - TV/Film/Stage', value: 'Director - TV/Film/Stage' },\n { displayValue: 'Editor', value: 'Editor' },\n { displayValue: 'Fashion Designer', value: 'Fashion Designer' },\n { displayValue: 'Journalist', value: 'Journalist' },\n { displayValue: 'Manager', value: 'Manager' },\n { displayValue: 'Model', value: 'Model' },\n { displayValue: 'Musician', value: 'Musician' },\n { displayValue: 'News Media', value: 'News Media' },\n { displayValue: 'Photographer', value: 'Photographer' },\n { displayValue: 'Publisher', value: 'Publisher' },\n {\n displayValue: 'Radio (Director, Producer, Personality)',\n value: 'Radio (Director, Producer, Personality)'\n },\n { displayValue: 'TV/Film/Stage', value: 'TV/Film/Stage' },\n { displayValue: 'Writer', value: 'Writer' },\n { displayValue: 'Other', value: 'Other' }\n ];\n case 'Retired':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Arts/Entertainment/Media', value: 'Arts/Entertainment/Media' },\n { displayValue: 'Automotive', value: 'Automotive' },\n\n { displayValue: 'Education', value: 'Education' },\n { displayValue: 'Engineering', value: 'Engineering' },\n { displayValue: 'Finance/Insurance', value: 'Finance/Insurance' },\n { displayValue: 'Food/Hotel', value: 'Food/Hotel' },\n { displayValue: 'Government', value: 'Government' },\n { displayValue: 'Info/Communication Tech', value: 'Info/Communication Tech' },\n { displayValue: 'Legal', value: 'Legal' },\n { displayValue: 'Manufacturing', value: 'Manufacturing' },\n { displayValue: 'Medical/Health', value: 'Medical/Health' },\n { displayValue: 'Police/Fire/Security', value: 'Police/Fire/Security' },\n { displayValue: 'Real Estate/Maintenance', value: 'Real Estate/Maintenance' },\n { displayValue: 'Sales/Advertising/Retail', value: 'Sales/Advertising/Retail' },\n { displayValue: 'Sports', value: 'Sports' },\n { displayValue: 'Other', value: 'Other' }\n ];\n case 'Personal Care/Services':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Celebrity Consultant', value: 'Celebrity Consultant' },\n { displayValue: 'Executive', value: 'Executive' },\n { displayValue: 'Hair Stylist/Barber', value: 'Hair Stylist/Barber' },\n { displayValue: 'Landscaper/Gardener', value: 'Landscaper/Gardener' },\n { displayValue: 'Manager', value: 'Manager' },\n { displayValue: 'Other', value: 'Other' },\n { displayValue: 'Property Manager', value: 'Property Manager' },\n { displayValue: 'Trainer', value: 'Trainer' }\n ];\n case 'Not Currently Employed':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Arts/Entertainment/Media', value: 'Arts/Entertainment/Media' },\n { displayValue: 'Automotive', value: 'Automotive' },\n { displayValue: 'Education', value: 'Education' },\n { displayValue: 'Engineering', value: 'Engineering' },\n { displayValue: 'Finance/Insurance', value: 'Finance/Insurance' },\n { displayValue: 'Food/Hotel', value: 'Food/Hotel' },\n { displayValue: 'Government', value: 'Government' },\n { displayValue: 'Info/Communication Tech', value: 'Info/Communication Tech' },\n { displayValue: 'Legal', value: 'Legal' },\n { displayValue: 'Manufacturing', value: 'Manufacturing' },\n { displayValue: 'Medical/Health/Pharma', value: 'Medical/Health/Pharma' },\n { displayValue: 'Other', value: 'Other' },\n { displayValue: 'Police/Fire/Security', value: 'Police/Fire/Security' },\n { displayValue: 'Real Estate/Maintenance', value: 'Real Estate/Maintenance' },\n { displayValue: 'Sales/Advertising/Retail', value: 'Sales/Advertising/Retail' },\n { displayValue: 'Sports', value: 'Sports' },\n { displayValue: 'Volunteer', value: 'Volunteer' }\n ];\n case 'Military':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Air Force', value: 'Air Force' },\n { displayValue: 'Army', value: 'Army' },\n { displayValue: 'Coast Guard', value: 'Coast Guard' },\n { displayValue: 'Joint Chiefs of Staff', value: 'Joint Chiefs of Staff' },\n { displayValue: 'Marine', value: 'Marine' },\n { displayValue: 'Navy', value: 'Navy' }\n ];\n case 'Clergy':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Cleric', value: 'Cleric' },\n { displayValue: 'Deacon', value: 'Deacon' },\n { displayValue: 'Evangelist', value: 'Evangelist' },\n { displayValue: 'Minister', value: 'Minister' },\n { displayValue: 'Missionary', value: 'Missionary' },\n { displayValue: 'Priest', value: 'Priest' },\n { displayValue: 'Rabbi', value: 'Rabbi' },\n { displayValue: 'Other', value: 'Other' }\n ];\n case 'Government':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Administrator', value: 'Administrator' },\n { displayValue: 'Clerk', value: 'Clerk' },\n { displayValue: 'Consultant/Advisor', value: 'Consultant/Advisor' },\n { displayValue: 'Diplomat', value: 'Diplomat' },\n { displayValue: 'Judge', value: 'Judge' },\n { displayValue: 'Lobbyist', value: 'Lobbyist' },\n { displayValue: 'Manager', value: 'Manager' },\n {\n displayValue: 'Official (County, State, Federal)',\n value: 'Official (County, State, Federal)'\n },\n { displayValue: 'Other', value: 'Other' },\n { displayValue: 'Park/Forest Ranger', value: 'Park/Forest Ranger' },\n { displayValue: 'Politician', value: 'Politician' },\n { displayValue: 'Royalty', value: 'Royalty' },\n { displayValue: 'Translator', value: 'Translator' }\n ];\n case 'Sports':\n return [\n { displayValue: '', value: '' },\n { displayValue: 'Agent', value: 'Agent' },\n { displayValue: 'Analyst/Programmer', value: 'Analyst/Programmer' },\n { displayValue: 'Broadcaster/Journalist', value: 'Broadcaster/Journalist' },\n { displayValue: 'Executive', value: 'Executive' },\n { displayValue: 'Manager/Promoter', value: 'Manager/Promoter' },\n { displayValue: 'Other', value: 'Other' },\n { displayValue: 'Owner', value: 'Owner' },\n {\n displayValue: 'Professional Athlete',\n value: 'Professional Athlete'\n },\n { displayValue: 'Sales', value: 'Sales' },\n { displayValue: 'Trainer/Instructor', value: 'Trainer/Instructor' }\n ];\n default:\n return;\n }\n}\n\nfunction showOccupationDetails(occupation: string): boolean {\n switch (occupation) {\n case 'Arts/Entertainment/Media':\n case 'Retired':\n case 'Personal Care/Services':\n case 'Not Currently Employed':\n case 'Military':\n case 'Clergy':\n case 'Government':\n case 'Sports':\n return true;\n default:\n return false;\n }\n}\n\nconst CollectJewelryInfoPage: React.FunctionComponent<\n React.PropsWithChildren<{ policy?: Policy }>\n> = (props) => {\n const urlData = useUrlData();\n const history = useHistory();\n const referralChannel = useReferralChannel();\n\n const onSubmit = (product: Product) => {\n const uploadAttachmentHandler = () => {\n const details = product.Details as JewelryProduct;\n const newFiles = details._AppraisalFiles;\n if (newFiles && newFiles.length > 0) {\n return sdkCreateTemporaryAttachments(\n DefaultFileRoles.purchaseReceipt,\n newFiles,\n details.AppraisalFileIDs\n );\n }\n return Promise.resolve(new Array());\n };\n\n return uploadAttachmentHandler().then((filesMetadata) => {\n const updatedDetails = {\n ...product.Details,\n _AppraisalFiles: undefined,\n AppraisalFileIDs: filesMetadata\n .map((metadata) => metadata.ID)\n .concat((product.Details as JewelryProduct).AppraisalFileIDs || [])\n };\n\n if (props.policy) {\n return sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: [\n {\n ...product,\n Details: updatedDetails\n }\n ]\n },\n true\n );\n }\n return sdkCreatePolicy(\n [\n {\n ...product,\n Details: updatedDetails\n }\n ],\n {\n integrationID: urlData.integrationID,\n referralChannel\n }\n );\n });\n };\n\n const onContinue = (policy?: Policy) => {\n if (!props.policy) {\n history.replace(`/app/jewelry/${policy?.ID}`);\n } else if (\n props.policy.Type == PolicyType.minicoJewelry ||\n policy?.Type == PolicyType.minicoJewelry\n ) {\n history.push(`/app/jewelry/${props.policy?.ID || policy?.ID}/location`);\n } else {\n history.push(`/app/jewelry/v2/${props.policy?.ID || policy?.ID}/criteria`);\n }\n };\n\n const price = props.policy?.InsuredItems?.[0].Price?.Amount;\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as JewelryProduct;\n }\n\n const initialFormData = props.policy\n ? {\n Price: price?.toString() || '',\n Name: props.policy.InsuredItems[0].Name,\n Description: props.policy.InsuredItems[0].Description,\n Details: props.policy.InsuredItems[0].Details as JewelryProduct\n }\n : urlData?.appData\n ? urlData.appData\n : { Price: '', Details: {} as JewelryProduct };\n\n return (\n \n );\n};\n\nexport const CriteriaPage: React.FunctionComponent> = (\n props\n) => (\n \n

    A bit about you

    \n

    Tell us a little bit about yourself.

    \n \n
    \n);\n\nconst JewelryCriteriaPage: React.FunctionComponent> = (\n props\n) => {\n const [validationError, setValidationError] = React.useState();\n const [inputChanged, setInputChanged] = React.useState(false);\n const criteria = props.policy.Underwriting.Criteria as ChubbJewelryCriteria;\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeInsured = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n [k]: v\n }\n }\n });\n };\n\n const onChangeInsuredDateOfBirth = (day: string, month: string, year: string) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n DateOfBirth: {\n Day: day,\n Month: month,\n Year: year\n }\n }\n }\n });\n };\n\n const onChangePriorLoss = (lossIdentifier: string, k: string, v: T) => {\n setInputChanged(true);\n const target = criteria.PriorLosses.find(\n (priorLoss) => priorLoss.lossIdentifier === lossIdentifier\n );\n\n if (target) {\n const index = criteria.PriorLosses.indexOf(target);\n const updatedLoss = {\n ...target,\n [k]: v\n };\n const updatedLosses = new Array(...criteria.PriorLosses);\n updatedLosses[index] = updatedLoss;\n\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n PriorLosses: updatedLosses\n }\n }\n });\n }\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('FirstName', value);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('LastName', value);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Email', value);\n }}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Phone', value);\n }}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n \n \n \n \n {\n onChangeInsured('Occupation', value);\n }}\n error={\n !inputChanged &&\n validationError?.SubField === 'Occupation' &&\n validationError?.Message\n }\n value={props.policy.Underwriting.Insured.Occupation}\n />\n \n \n {showOccupationDetails(props.policy.Underwriting.Insured.Occupation || '') && (\n \n \n {\n onChange('OccupationDetails', value);\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'OccupationDetails' &&\n validationError?.Message\n }\n value={criteria.OccupationDetails}\n />\n \n \n )}\n {props.policy.Underwriting.Insured.Occupation == 'Other' && (\n \n \n {\n const value = e.currentTarget.value;\n onChange('OtherOccupationDetails', value);\n }}\n autoComplete=\"occupation-details\"\n />\n \n \n )}\n \n {\n e.stopPropagation();\n onChange('HasAdditionalInsured', !criteria.HasAdditionalInsured);\n }}\n >\n \n {\n onChange('HasAdditionalInsured', !criteria.HasAdditionalInsured);\n }}\n />\n \n \n Add another person to this policy\n \n This ensures that coverage extends to this person in the event of a loss. For example,\n if this is a wedding or engagement ring, you'd likely want to add your spouse or the\n ring-wearer if that person is not you.\n \n \n \n \n {criteria.HasAdditionalInsured && (\n <>\n \n \n \n {\n const value = e.currentTarget.value;\n onChange('AdditionalInsuredFirstName', value);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange('AdditionalInsuredLastName', value);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n \n \n onChange('AdditionalInsuredDateOfBirth', {\n Day: day,\n Month: month,\n Year: year\n })\n }\n />\n \n \n {\n onChange('AdditionalInsuredOccupation', value);\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'AdditionalInsuredOccupation' &&\n validationError?.Message\n }\n value={criteria.AdditionalInsuredOccupation}\n />\n \n {showOccupationDetails(criteria.AdditionalInsuredOccupation) && (\n \n {\n onChange('AdditionalInsuredOccupationDetails', value);\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'AdditionalInsuredOccupationDetails' &&\n validationError?.Message\n }\n value={criteria.AdditionalInsuredOccupationDetails}\n />\n \n )}\n \n \n )}\n {requiresAUI(props.policy, criteria.OccupationDetails) && (\n <>\n \n \n \n {\n onChange('InsuredTravel', value);\n }}\n error={\n !inputChanged &&\n validationError?.Field === 'InsuredTravel' &&\n validationError?.Message\n }\n value={criteria.InsuredTravel}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('AverageJewelryValueOnTravel', parseFloat(value.replace(/[^.0-9]/, '')));\n }}\n value={criteria.AverageJewelryValueOnTravel || ''}\n inputMode=\"decimal\"\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('JewelrySafeguardOnTravel', value);\n }}\n value={criteria.JewelrySafeguardOnTravel}\n style={{ resize: 'none', width: '100%' }}\n rows={5}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('JewelrySafeguardAtHomeInsuredOnTravel', value);\n }}\n value={criteria.JewelrySafeguardAtHomeInsuredOnTravel}\n style={{ resize: 'none', width: '100%' }}\n rows={5}\n />\n \n \n \n )}\n \n {criteria.PriorLosses.length > 0 &&\n criteria.PriorLosses.map((priorLoss, index) => {\n const dateOfLoss = new Date(priorLoss.dateOfLoss);\n const hasDateOfLoss = dateOfLoss.getTime() > 0;\n\n const paidDate = new Date(priorLoss.lossPaidDate);\n const hasPaidDate = paidDate.getTime() > 0;\n\n const key = priorLoss.lossIdentifier;\n const validationField = 'PriorLosses' + index;\n\n return (\n \n \n \n {\n onChangePriorLoss(\n priorLoss.lossIdentifier,\n 'dateOfLoss',\n year + '-' + month + '-' + day\n );\n }}\n initialValue={\n hasDateOfLoss\n ? [\n dateOfLoss.getUTCDate().toString(),\n (dateOfLoss.getUTCMonth() + 1).toString(),\n dateOfLoss.getUTCFullYear().toString()\n ]\n : undefined\n }\n error={\n !inputChanged &&\n validationError?.Field === validationField &&\n validationError?.SubField === 'DateOfLoss'\n ? validationError?.Message\n : undefined\n }\n />\n \n \n {\n onChangePriorLoss(priorLoss.lossIdentifier, 'lossType', value);\n }}\n error={\n !inputChanged &&\n validationError?.SubField === 'LossType' &&\n validationError?.Message\n }\n value={priorLoss.lossType}\n />\n \n \n \n \n {\n onChangePriorLoss(\n priorLoss.lossIdentifier,\n 'lossPaidDate',\n year + '-' + month + '-' + day\n );\n }}\n initialValue={\n hasPaidDate\n ? [\n paidDate.getUTCDate().toString(),\n (paidDate.getUTCMonth() + 1).toString(),\n paidDate.getUTCFullYear().toString()\n ]\n : undefined\n }\n error={\n !inputChanged &&\n validationError?.Field === validationField &&\n validationError?.SubField === 'LossPaidDate'\n ? validationError?.Message\n : undefined\n }\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangePriorLoss(\n priorLoss.lossIdentifier,\n 'lossPaidAmount',\n parseFloat(value.replace(/[^.0-9]/, ''))\n );\n }}\n value={priorLoss.lossPaidAmount || ''}\n inputMode=\"decimal\"\n />\n \n \n \n \n {\n onChangePriorLoss(priorLoss.lossIdentifier, 'causeOfLossCode', value);\n }}\n error={\n !inputChanged &&\n validationError?.SubField === 'CauseOfLossCode' &&\n validationError?.Message\n }\n value={priorLoss.causeOfLossCode}\n />\n \n \n {\n onChangePriorLoss(priorLoss.lossIdentifier, 'lossStatus', value);\n }}\n error={\n !inputChanged &&\n validationError?.SubField === 'LossStatus' &&\n validationError?.Message\n }\n value={priorLoss.lossStatus}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangePriorLoss(priorLoss.lossIdentifier, 'causeOfLossDescription', value);\n }}\n style={{ resize: 'none', maxWidth: '100%' }}\n rows={4}\n />\n \n \n \n {\n e.stopPropagation();\n onChangePriorLoss(\n priorLoss.lossIdentifier,\n 'lossCatastrophe',\n !priorLoss.lossCatastrophe\n );\n }}\n >\n \n {\n onChangePriorLoss(\n priorLoss.lossIdentifier,\n 'lossCatastrophe',\n !priorLoss.lossCatastrophe\n );\n }}\n />\n \n \n This loss was due to a catastrophe.\n \n Check this box if this is a catastrphic loss i.e. lost due to a natural\n disaster.\n \n \n \n \n }\n onClick={(e) => {\n e.preventDefault();\n onChange('PriorLosses', [\n ...criteria.PriorLosses.filter(\n (s) => s.lossIdentifier !== priorLoss.lossIdentifier\n )\n ]);\n }}\n >\n Remove this loss\n \n
    \n );\n })}\n {criteria.PriorLosses.length < 20 && (\n
    \n }\n onClick={(e) => {\n e.preventDefault();\n onChange('PriorLosses', [\n ...criteria.PriorLosses,\n { lossIdentifier: 'loss_' + new Date().getTime().toString() } // Generate temporary ID\n ]);\n }}\n >\n Add a loss\n \n
    \n )}\n
    \n

    \n If you are a California Resident, please read our{' '}\n \n Notice at Collection\n \n .\n

    \n
    \n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nexport const LocationPage: React.FunctionComponent> = (\n props\n) => (\n \n

    Jewelry storage

    \n

    Tell us a little bit about where and how you'll store this jewelry.

    \n \n
    \n);\n\nconst JewelryLocationPage = (props: PageProps) => {\n const [inputChanged, setInputChanged] = React.useState(false);\n const [fraudDisclosure, setFraudDisclosure] = React.useState();\n const criteria = props.policy.Underwriting.Criteria as ChubbJewelryCriteria;\n const [state, setState] = React.useState(criteria.StorageAddress?.stateOrProvinceName);\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n React.useEffect(() => {\n const text = FraudDisclosuresByState[state?.toUpperCase()]?.text;\n if (text) {\n setFraudDisclosure(text);\n }\n }, [state]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeMultiStorageAddress = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n StorageAddress: {\n ...criteria.StorageAddress,\n ...Object.fromEntries(vals)\n }\n }\n }\n });\n };\n\n const onChangeMultiInsured = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n {\n onChangeMultiStorageAddress([\n ['Line1', address.streetAddress || ''],\n ['Line2', address.streetAddressLine2 || ''],\n ['City', address.city || ''],\n ['StateOrProvinceName', address.state || ''],\n ['PostalCode', address.zipCode || '']\n ]);\n setState(address.state || '');\n }}\n initialValue={{\n streetAddress: criteria.StorageAddress?.line1 || '',\n streetAddressLine2: criteria.StorageAddress?.line2 || '',\n city: criteria.StorageAddress?.city || '',\n state: criteria.StorageAddress?.stateOrProvinceName || '',\n zipCode: criteria.StorageAddress?.postalCode || ''\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.SubField === 'Line1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'Line2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.SubField === 'City' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.SubField === 'StateOrProvinceName' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.SubField === 'PostalCode' &&\n props.validationError?.Message\n }}\n />\n \n {\n e.stopPropagation();\n onChange('StorageIsResidential', !criteria.StorageIsResidential);\n }}\n >\n \n {\n onChange('StorageIsResidential', !criteria.StorageIsResidential);\n }}\n />\n \n \n This is also my residential address\n \n Check this box if you also live at this address.\n \n \n \n \n {!criteria.StorageIsResidential && (\n <>\n \n {\n onChangeMultiInsured([\n ['AddressLine1', address.streetAddress],\n ['AddressLine2', address.aptFloor],\n ['AddressCity', address.city],\n ['AddressState', address.state],\n ['AddressZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: props.policy.Underwriting.Insured.AddressLine1,\n streetAddressLine2: props.policy.Underwriting.Insured.AddressLine2,\n city: props.policy.Underwriting.Insured.AddressCity,\n state: props.policy.Underwriting.Insured.AddressState,\n zipCode: props.policy.Underwriting.Insured.AddressZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.SubField === 'AddressCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.SubField === 'AddressState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.SubField === 'AddressZipCode' &&\n props.validationError?.Message\n }}\n />\n \n )}\n \n \n \n onChange('ConstructionType', value)}\n error={\n !inputChanged &&\n props.validationError?.Field === 'ConstructionType' &&\n props.validationError?.Message\n }\n value={\n (props.policy.Underwriting.Criteria as ChubbJewelryCriteria).ConstructionType || ''\n }\n />\n \n \n \n \n \n onChange('ResidenceType', value)}\n error={\n !inputChanged &&\n props.validationError?.Field === 'ResidenceType' &&\n props.validationError?.Message\n }\n value={(props.policy.Underwriting.Criteria as ChubbJewelryCriteria).ResidenceType || ''}\n />\n \n \n {requiresAUI(props.policy) && (\n <>\n \n \n {\n onChange('HasInHouseEmployees', !criteria.HasInHouseEmployees);\n }}\n />\n \n {criteria.HasInHouseEmployees && (\n \n \n {\n const value = e.currentTarget.value;\n onChange('InHouseEmployees', value);\n }}\n value={criteria.InHouseEmployees}\n style={{ resize: 'none', width: '100%' }}\n rows={5}\n />\n \n \n )}\n \n )}\n \n \n \n {\n e.stopPropagation();\n onChange(\n 'IsStoredInClimateControlledStorage',\n !criteria.IsStoredInClimateControlledStorage\n );\n }}\n >\n \n \n onChange(\n 'IsStoredInClimateControlledStorage',\n !criteria.IsStoredInClimateControlledStorage\n )\n }\n />\n \n \n Item is stored in climate controlled storage.\n \n \n \n \n \n \n {\n e.stopPropagation();\n onChange('IsCoveredItemsElevated', !criteria.IsCoveredItemsElevated);\n }}\n >\n \n \n onChange('IsCoveredItemsElevated', !criteria.IsCoveredItemsElevated)\n }\n />\n \n \n Items are elevated.\n \n \n \n \n {requiresAUI(props.policy) &&\n [\n {\n criteria: criteria.CentralStationFireAlarm,\n field: 'CentralStationFireAlarm',\n title: 'Central station firm alarm',\n description: 'This location has a central station fire alarm.'\n },\n {\n criteria: criteria.SignalContinuity,\n field: 'SignalContinuity',\n title: '24 hour signal continuity',\n description:\n 'This location has 24 hour signal continuity protection for central station, direct fire and burglar alarm systems, which activates the alarm when interrupted, is installed in a residence location.'\n },\n {\n criteria: criteria.TwentyFourHourSecurity,\n field: 'TwentyFourHourSecurity',\n title: '24 hour security',\n description:\n 'Security protection for the entire external perimeter of a home consisting of one or more of the following - Closed circuit TV cameras monitored 24 hours a day, detection system, external to the residence which is motion activated and monitored 24 hours per day, 24 hour on site security guard.'\n },\n {\n criteria: criteria.FullTimeCaretaker,\n field: 'FullTimeCaretaker',\n title: 'Full time caretaker',\n description: 'A full time caretaker lives at the residence location year round.'\n },\n {\n criteria: criteria.GatedCommunity,\n field: 'GatedCommunity',\n title: 'Gated community',\n description: 'This residence location is located in a gated community.'\n },\n {\n criteria: criteria.GatedCommunityPatrol,\n field: 'GatedCommunityPatrol',\n title: 'Gated community patrol service',\n description:\n \"This residence location in a gated community has a fire and burglar alarm that when activated, alerts the community's 24-hour patrol service to dispatch a guard to a residence location.\"\n },\n {\n criteria: criteria.FiftyPercentJewelryKeptInVault,\n field: 'FiftyPercentJewelryKeptInVault',\n title: 'Bank vault',\n description: 'Do you regularly use a bank vault for at least 50% of your jewelry?'\n },\n {\n criteria: criteria.SafeAtHome,\n field: 'SafeAtHome',\n title: 'Safe at home',\n description: 'A home safe is installed at residence location.'\n }\n ].map((option) => (\n \n \n {\n e.stopPropagation();\n onChange(option.field, !option.criteria);\n }}\n >\n \n onChange(option.field, !option.criteria)}\n />\n \n \n {option.title}\n {option.description}\n \n \n \n \n ))}\n
    \n

    Consumer Disclosure Statement

    \n

    \n Please read and agree to the following\n

    \n

    \n To provide an accurate quote, we will obtain information about you and any household\n member from consumer reporting agencies and other third parties where permitted by law. In\n connection with this application for insurance, we will review your credit report or use a\n credit-based insurance score on the information contained in your credit report (in\n applicable states), driving and claim histories and other consumer reports. We will use\n this information to undewrite and/or rate your policy.\n

    \n
    \n {fraudDisclosure && (\n
    \n

    Fraud Disclosures

    \n

    {fraudDisclosure}

    \n
    \n )}\n {\n e.stopPropagation();\n onChange('AcceptConsumerDisclosure', !criteria.AcceptConsumerDisclosure);\n }}\n >\n \n {\n onChange('AcceptConsumerDisclosure', !criteria.AcceptConsumerDisclosure);\n }}\n />\n \n \n \n I acknowledge that I've read and agreed to the Consumer Disclosure Statement\n \n \n \n {props.validationError?.Field == 'AcceptConsumerDisclosure' &&\n !criteria.AcceptConsumerDisclosure && (\n \n {props.validationError?.Message}\n \n )}\n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/jewelry/:id?',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n JewelryProductValidationKeys.indexOf(validationError.Field as keyof JewelryProduct) > -1,\n icon: \n },\n {\n path: '/app/jewelry/v2/:id/criteria',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'ZipCode',\n 'OccupationDetails',\n 'OtherOccupationDetails',\n 'AdditionalInsuredFirstName',\n 'AdditionalInsuredLastName',\n 'AdditionalInsuredOccupation',\n 'AdditionalInsuredOccupationDetails',\n 'InsuredTravel',\n 'AverageJewelryValueOnTravel',\n 'JewelrySafeguardOnTravel',\n 'JewelrySafeguardAtHomeInsuredOnTravel'\n ].includes(validationError.Field) ||\n !![\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Occupation',\n 'Email',\n 'DateOfBirth',\n 'DateOfLoss',\n 'LossType',\n 'LossPaidDate',\n 'LossPaidAmount',\n 'CauseOfLossCode',\n 'CauseOfLossDescription',\n 'LossStatus'\n ].find((subfield) => validationError.SubField === subfield),\n icon: \n },\n {\n path: '/app/jewelry/v2/:id/location',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n !![\n 'Storage',\n 'ConstructionType',\n 'Residence',\n 'InHouseEmployees',\n 'AcceptConsumerDisclosure'\n ].find((prefix) => validationError.Field.startsWith(prefix)) ||\n !!validationError?.SubField?.startsWith('Address'),\n icon: \n },\n {\n path: '/app/jewelry/v2/:id/coverage',\n render: (props) => (\n \n {(policy) => (\n sdkValidatePolicy(policy.ID),\n true,\n 'Jewelry Insurance provided as part of a Valuable Articles Policy underwritten by Chubb.'\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n },\n {\n path: '/app/jewelry/v2/:id/payment',\n render: (props) => (\n \n {(account) => (\n \n {(policy) => (\n \n account ? userGetPaymentSession(policy.ID) : sdkGetPaymentSession(policy.ID),\n window.location.origin + `/policy/${policy.ID}/complete?flow=jewelry`,\n account\n )}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n const history = useHistory();\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: 'jewelry',\n page_index: current,\n route: pages[current]?.path,\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n \n \n \n \n \n {current >= 0 && (\n \n \n i < current ? (\n {\n const match = /\\/(pol_.+)\\//.exec(history.location.pathname);\n if (match && match[1]) {\n return pages[i].path.replace(':id', match[1]);\n }\n return pages[i].path;\n })()}\n >\n {page.icon}\n \n ) : (\n page.icon\n )\n )}\n currentStep={current}\n />\n \n )}\n \n (\n \n

    Sorry!

    \n

    \n Thank you for your interest. Unfortunately your property is not eligible for\n coverage under our program.\n

    \n
    \n \"\"\n
    \n
    \n )}\n >\n {pages.map((page) => (\n \n ))}\n \n
    \n
    \n
    \n );\n};\n","import * as React from 'react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory,\n matchPath\n} from 'react-router-dom';\n\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { Progress } from '@oysterjs/ui/Form/progress';\n\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n BikeUsageType,\n MarkelBikeCriteria,\n ValidationError,\n Policy,\n BikeProduct,\n Product,\n BikeProductValidationKeys,\n PolicyType\n} from '@oysterjs/types';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport {\n IoArrowBack,\n IoArrowForward,\n IoBagCheckOutline,\n IoBicycleOutline,\n IoDocumentTextOutline,\n IoPersonOutline\n} from 'react-icons/io5';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport {\n sdkCreatePolicy,\n sdkGetPaymentSession,\n sdkUpdatePolicy,\n sdkValidatePolicy\n} from '@oysterjs/core/api/sdk';\nimport { ExistingUserWrapper, GetPolicyWrapper, Page, PageProps, PageWrapper } from '../page';\nimport { getPaymentPage } from '../payment';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { DateOfBirthInput } from '@oysterjs/ui/Form/dob';\nimport { getCoveragePage } from '../coverage';\nimport { useUrlData } from '@oysterjs/core/url';\nimport { BikeFormData, CollectBikeInfo } from './collect';\nimport apm from '@oysterjs/core/apm';\nimport { MultiProductInfoPage } from '../product';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\nimport { SubmissionDisclosure } from '@oysterjs/core/payment';\n\nconst CollectBikeInfoPage = (props: React.PropsWithChildren<{ policy?: Policy }>) => {\n const urlData = useUrlData();\n const history = useHistory();\n const referralChannel = useReferralChannel();\n\n const onSubmit = async (products: Product[]) => {\n let res: { Policy: Policy; NextValidationError?: ValidationError } | null = null;\n try {\n if (props.policy) {\n res = await sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: products\n },\n true\n );\n } else {\n res = await sdkCreatePolicy(products, {\n integrationID: urlData.integrationID,\n referralChannel\n });\n }\n } finally {\n if (res?.Policy) {\n window.history.replaceState(null, '', `/app/bike/${res.Policy.ID}`);\n }\n }\n\n return res;\n };\n\n const onContinue = (policy?: Policy) => {\n if (!props.policy) {\n history.replace(`/app/bike/${policy?.ID}`);\n }\n history.push(`/app/bike/${props.policy?.ID || policy?.ID}/criteria`);\n };\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as BikeProduct;\n }\n\n const formDataConstructor = (product?: Product) => ({\n Price: product?.Price?.Amount?.toString() || '',\n HasNotReceived: product?.HasNotReceived || false,\n Details: {\n Type: (product?.Details as BikeProduct)?.Type || '',\n FrameType: (product?.Details as BikeProduct)?.FrameType || '',\n PowerSource: (product?.Details as BikeProduct)?.PowerSource || '',\n CanUnlock: (product?.Details as BikeProduct)?.CanUnlock || false,\n IsPendingSerialNumber: (product?.Details as BikeProduct)?.IsPendingSerialNumber || false,\n ModelYear: (product?.Details as BikeProduct)?.ModelYear || '',\n PurchaseYear: (product?.Details as BikeProduct)?.PurchaseYear || '',\n Make: (product?.Details as BikeProduct)?.Make || '',\n Model: (product?.Details as BikeProduct)?.Model || '',\n FrameSerialNumber: (product?.Details as BikeProduct)?.FrameSerialNumber || '',\n IsSecondHandPurchase: (product?.Details as BikeProduct)?.IsSecondHandPurchase || false,\n TotalInsuredValue: (product?.Details as BikeProduct)?.TotalInsuredValue || {\n Amount: '',\n Currency: 'usd'\n }\n } as unknown as BikeProduct\n });\n\n const products = props.policy?.InsuredItems?.length\n ? props.policy.InsuredItems\n : urlData?.appData\n ? [{ Price: { Amount: urlData.appData.Price }, Details: urlData.appData.Details }]\n : [];\n\n return (\n \n Tell us about the bikes you'd like to insure. You can get up to a 15% discount for\n insuring multiple bikes.\n \n }\n formDataConstructor={formDataConstructor}\n products={products as Product[]}\n hasError={pages[0].hasError}\n onSubmit={onSubmit}\n onContinue={onContinue}\n component={CollectBikeInfo}\n />\n );\n};\n\nexport const CriteriaPage = (props: React.PropsWithChildren) => (\n \n

    A bit about you

    \n

    Tell us a little bit about yourself and how you use your bike.

    \n \n
    \n);\n\nconst BikeCriteriaPage = (props: React.PropsWithChildren) => {\n const [inputChanged, setInputChanged] = React.useState(false);\n const criteria = props.policy.Underwriting.Criteria as MarkelBikeCriteria;\n const [state, setState] = React.useState(props.policy.Underwriting.Insured.AddressState || '');\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeMultiCriteria = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...props.policy.Underwriting.Criteria,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n const onChangeMultiInsured = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n const onChangeInsuredDateOfBirth = (day: string, month: string, year: string) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n DateOfBirth: {\n Day: day,\n Month: month,\n Year: year\n }\n }\n }\n });\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['FirstName', value]]);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['LastName', value]]);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['Email', value]]);\n }}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['Phone', value]]);\n }}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n \n onChangeMultiInsured([['Gender', value]])}\n />\n \n \n \n \n \n \n {\n onChangeMultiInsured([\n ['AddressLine1', address.streetAddress],\n ['AddressLine2', address.streetAddressLine2],\n ['AddressCity', address.city],\n ['AddressState', address.state],\n ['AddressZipCode', address.zipCode]\n ]);\n setState(address.state || '');\n }}\n initialValue={{\n streetAddress: props.policy.Underwriting.Insured.AddressLine1,\n streetAddressLine2: props.policy.Underwriting.Insured.AddressLine2,\n city: props.policy.Underwriting.Insured.AddressCity,\n state: props.policy.Underwriting.Insured.AddressState,\n zipCode: props.policy.Underwriting.Insured.AddressZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.SubField === 'AddressCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.SubField === 'AddressState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.SubField === 'AddressZipCode' &&\n props.validationError?.Message\n }}\n />\n \n {\n e.stopPropagation();\n onChange('ResidentialIsStorage', !criteria.ResidentialIsStorage);\n }}\n >\n \n {\n onChange('ResidentialIsStorage', !criteria.ResidentialIsStorage);\n }}\n />\n \n \n This is also the bike storage address\n \n Check this box if the bike is also stored in this address.\n \n \n \n \n {!criteria.ResidentialIsStorage && (\n <>\n \n {\n onChangeMultiCriteria([\n ['StorageAddressLine1', address.streetAddress],\n ['StorageAddressLine2', address.streetAddressLine2],\n ['StorageCity', address.city],\n ['StorageState', address.state],\n ['StorageZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: criteria.StorageAddressLine1,\n streetAddressLine2: criteria.StorageAddressLine2,\n city: criteria.StorageCity,\n state: criteria.StorageState,\n zipCode: criteria.StorageZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.Field === 'StorageAddressLine1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'StorageAddressLine2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.Field === 'StorageCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.Field === 'StorageState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.Field === 'StorageZipCode' &&\n props.validationError?.Message\n }}\n />\n \n )}\n {(state.replace(/ /g, '').toUpperCase() === 'NY' ||\n state.replace(/ /g, '').toUpperCase() === 'NEWYORK') && (\n <>\n \n \n {\n onChange('YearsOfExperience', value);\n }}\n />\n \n \n )}\n \n \n
    \n {[\n {\n value: BikeUsageType.casual,\n name: 'Casually',\n description: 'You use your bike for recreation.'\n },\n {\n value: BikeUsageType.fitness,\n name: 'Fitness',\n description: 'You use your bike for fitness or exercise.'\n },\n {\n value: BikeUsageType.commute,\n name: 'Commute',\n description: 'You use your bike to commute for work or school.'\n },\n {\n value: BikeUsageType.competition,\n name: 'Competition',\n description: 'You use your bike to train or compete in sporting events.'\n }\n ].map((option) => (\n {\n e.stopPropagation();\n const s = new Set(criteria.UsageTypes);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('UsageTypes', [...s]);\n }}\n >\n \n {\n const s = new Set(criteria.UsageTypes);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('UsageTypes', [...s]);\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/bike/:id?',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n BikeProductValidationKeys.indexOf(validationError.Field as keyof BikeProduct) > -1,\n icon: \n },\n {\n path: '/app/bike/:id/criteria',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'StorageAddressLine1',\n 'StorageCity',\n 'StorageState',\n 'StorageZipCode',\n 'YearsOfExperience',\n 'UsageTypes'\n ].includes(validationError.Field) ||\n !![\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Email',\n 'DateOfBirth',\n 'Gender',\n 'AddressLine1',\n 'AddressLine2',\n 'AddressCity',\n 'AddressState',\n 'AddressZipCode'\n ].find((subfield) => validationError.SubField === subfield),\n icon: \n },\n {\n path: '/app/bike/:id/coverage',\n render: (props) => (\n \n {(policy) => (\n sdkValidatePolicy(policy.ID)\n )}\n />\n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n !!['Source', 'TrackingNumber', 'StartDate'].find(\n (subfield) => validationError.SubField == subfield\n ),\n icon: \n },\n {\n path: '/app/bike/:id/payment',\n render: (props) => (\n \n {(account) => (\n \n {(policy) => (\n \n account ? userGetPaymentSession(policy.ID) : sdkGetPaymentSession(policy.ID),\n window.location.origin + `/policy/${policy.ID}/complete?flow=bike`,\n account\n )}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n const history = useHistory();\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: 'bike',\n page_index: current,\n route: pages[current]?.path,\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n \n \n \n \n \n {current >= 0 && (\n \n \n i < current ? (\n {\n const match = /\\/(pol_.+)\\//.exec(history.location.pathname);\n if (match && match[1]) {\n return pages[i].path.replace(':id', match[1]);\n }\n return pages[i].path;\n })()}\n >\n {page.icon}\n \n ) : (\n page.icon\n )\n )}\n currentStep={current}\n />\n \n )}\n \n (\n \n

    Sorry!

    \n

    \n {JSON.parse(window.localStorage.getItem('underwriting_error') || '{}').message ||\n 'Thank you for your interest. Unfortunately your property is not eligible for coverage under our program.'}\n

    \n
    \n \"\"\n
    \n
    \n )}\n >\n } />\n {pages.map((page) => (\n \n ))}\n \n
    \n
    \n
    \n );\n};\n","import * as React from 'react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory,\n matchPath\n} from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { Progress } from '@oysterjs/ui/Form/progress';\n\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n ValidationError,\n Policy,\n ElectronicsProduct,\n ElectronicsProductValidationKeys,\n Product,\n DefaultFileRoles,\n AttachmentFile,\n ProductType\n} from '@oysterjs/types';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport {\n IoArrowForward,\n IoBagCheckOutline,\n IoPricetagsOutline,\n IoDocumentTextOutline,\n IoPersonOutline,\n IoArrowBack\n} from 'react-icons/io5';\nimport {\n sdkCreatePolicy,\n sdkCreateTemporaryAttachments,\n sdkGetPaymentSession,\n sdkUpdatePolicy,\n sdkValidatePolicy\n} from '@oysterjs/core/api/sdk';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { ExistingUserWrapper, GetPolicyWrapper, Page, PageProps, PageWrapper } from '../page';\nimport { getPaymentPage } from '../payment';\nimport { getCoveragePage } from '../coverage';\nimport { useUrlData } from '@oysterjs/core/url';\nimport apm from '@oysterjs/core/apm';\nimport { CollectElectronicsInfo, ElectronicsFormData } from './collect';\nimport { ProductInfoPage } from '../product';\nimport { getProductDisplayName } from '@oysterjs/core/policy';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\n\nconst CollectElectronicsInfoPage = (props: React.PropsWithChildren<{ policy?: Policy }>) => {\n const history = useHistory();\n const urlData = useUrlData();\n const referralChannel = useReferralChannel();\n\n const productType = history.location.pathname.split('/')[2] as ProductType;\n const productDisplayName = getProductDisplayName(productType);\n\n const onSubmit = (product: Product) => {\n const uploadAttachmentHandler = () => {\n const details = product.Details as ElectronicsProduct;\n const newFiles = details._PurchaseReceiptFiles;\n if (newFiles && newFiles.length > 0) {\n return sdkCreateTemporaryAttachments(\n DefaultFileRoles.purchaseReceipt,\n newFiles,\n details.PurchaseReceiptFileIDs\n );\n }\n return Promise.resolve(new Array());\n };\n\n return uploadAttachmentHandler().then((filesMetadata) => {\n const updatedDetails = {\n ...product.Details,\n _PurchaseReceiptFiles: undefined,\n PurchaseReceiptFileIDs: filesMetadata\n .map((metadata) => metadata.ID)\n .concat((product.Details as ElectronicsProduct).PurchaseReceiptFileIDs || [])\n };\n\n if (props.policy) {\n return sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: [\n {\n ...product,\n Details: updatedDetails\n }\n ]\n },\n true\n );\n }\n return sdkCreatePolicy(\n [\n {\n ...product,\n Details: updatedDetails\n }\n ],\n {\n integrationID: urlData.integrationID,\n referralChannel\n }\n );\n });\n };\n\n const onContinue = (policy?: Policy) => {\n if (!props.policy) {\n history.replace(`/app/${productType}/${policy?.ID}`);\n }\n history.push(`/app/${productType}/${props.policy?.ID || policy?.ID}/criteria`);\n };\n\n const price = props.policy?.InsuredItems?.[0].Price?.Amount;\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as ElectronicsProduct;\n }\n\n const initialFormData = props.policy\n ? {\n ProductType: productType,\n Price: price?.toString() || '',\n Details: (props.policy.InsuredItems[0].Details || {}) as ElectronicsProduct\n }\n : urlData?.appData\n ? urlData.appData\n : { ProductType: productType, Price: '', Details: {} as ElectronicsProduct };\n\n return (\n \n );\n};\n\nexport const CriteriaPage = (props: React.PropsWithChildren) => (\n \n

    A bit about you

    \n

    Tell us a little bit about yourself.

    \n \n
    \n);\n\nconst ElectronicsCriteriaPage = (props: React.PropsWithChildren) => {\n const [inputChanged, setInputChanged] = React.useState(false);\n const [validationError, setValidationError] = React.useState();\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [props.validationError]);\n\n const onChangeInsured = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n [k]: v\n }\n }\n });\n };\n\n const onChangeMultiInsured = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('FirstName', value);\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('LastName', value);\n }}\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Email', value);\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeInsured('Phone', value);\n }}\n />\n \n \n \n {\n onChangeMultiInsured([\n ['AddressLine1', address.streetAddress],\n ['AddressLine2', address.streetAddressLine2],\n ['AddressCity', address.city],\n ['AddressState', address.state],\n ['AddressZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: props.policy.Underwriting.Insured.AddressLine1,\n streetAddressLine2: props.policy.Underwriting.Insured.AddressLine2,\n city: props.policy.Underwriting.Insured.AddressCity,\n state: props.policy.Underwriting.Insured.AddressState,\n zipCode: props.policy.Underwriting.Insured.AddressZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n validationError?.SubField === 'AddressLine1' &&\n validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n validationError?.SubField === 'AddressLine2' &&\n validationError?.Message,\n city:\n !inputChanged &&\n validationError?.SubField === 'AddressCity' &&\n validationError?.Message,\n state:\n !inputChanged &&\n validationError?.SubField === 'AddressState' &&\n validationError?.Message,\n zipCode:\n !inputChanged &&\n validationError?.SubField === 'AddressZipCode' &&\n validationError?.Message\n }}\n />\n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/$PRODUCT_TYPE/:id?',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n ElectronicsProductValidationKeys.indexOf(validationError.Field as keyof ElectronicsProduct) >\n -1 || validationError.Field === 'Attachment',\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/criteria',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: () => true,\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/coverage',\n render: (props) => (\n \n {(policy) => (\n sdkValidatePolicy(policy.ID)\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/payment',\n render: (props) => (\n \n {(account) => (\n \n {(policy) => (\n \n account ? userGetPaymentSession(policy.ID) : sdkGetPaymentSession(policy.ID),\n window.location.origin + `/policy/${policy.ID}/complete?flow=phone`,\n account\n )}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n const history = useHistory();\n const productType = history.location.pathname.split('/')[2] as ProductType;\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path.replace('$PRODUCT_TYPE', productType),\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: productType,\n page_index: current,\n route: pages[current]?.path.replace('$PRODUCT_TYPE', productType),\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n \n \n \n \n \n {current >= 0 && (\n \n \n i < current ? (\n {\n const match = /\\/(pol_.+)\\//.exec(history.location.pathname);\n if (match && match[1]) {\n return pages[i].path\n .replace(':id', match[1])\n .replace('$PRODUCT_TYPE', productType);\n }\n return pages[i].path;\n })()}\n >\n {page.icon}\n \n ) : (\n page.icon\n )\n )}\n currentStep={current}\n />\n \n )}\n \n (\n \n

    Sorry!

    \n

    \n {JSON.parse(window.localStorage.getItem('underwriting_error') || '{}').Message ||\n null}\n

    \n
    \n \"\"\n
    \n
    \n )}\n >\n } />\n {pages.map((page) => (\n \n ))}\n \n
    \n
    \n
    \n );\n};\n","import * as React from 'react';\n\nimport { PageSection } from '@oysterjs/ui/Page';\nimport { MotorProduct, Product, ProductType, ValidationError } from '@oysterjs/types';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { Button } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { Select } from '@oysterjs/ui/Form/select';\n\nexport interface MotorFormData {\n ProductType: ProductType;\n\n SKU?: string;\n Name?: string;\n Description?: string;\n ImageURL?: string;\n\n Price: string;\n\n ZipCode?: string;\n AccessoryValue?: string;\n Details: MotorProduct;\n}\n\nexport const CollectMotorInfo: React.FunctionComponent<{\n loading?: boolean;\n validationError?: ValidationError;\n formData: MotorFormData;\n setData: (field: string, fn: (data: MotorFormData) => MotorFormData) => void;\n onContinue: (product: Product) => void;\n}> = (props) => {\n const [validationError, setValidationError] = React.useState();\n\n React.useEffect(() => {\n setValidationError(props.validationError);\n }, [JSON.stringify(props.validationError)]);\n\n const setData = (field: string, fn: (data: MotorFormData) => MotorFormData) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n props.setData(field, fn);\n };\n\n const validate = (formData: MotorFormData) => {\n if (!/^20\\d\\d$/.test(formData.Details.ModelYear)) {\n return {\n Field: 'ModelYear',\n Message: 'Please enter a valid model year.'\n };\n }\n if (!formData.Details.Make) {\n return {\n Field: 'Make',\n Message: 'Please enter a manufacturer.'\n };\n }\n if (!formData.Details.Model) {\n return {\n Field: 'Model',\n Message: 'Please enter a model.'\n };\n }\n if (!formData.Details.Type) {\n return {\n Field: 'Type',\n Message: 'Please select an ATV type.'\n };\n }\n if (isNaN(parseFloat(formData.Details.CCSize))) {\n return {\n Field: 'CCSize',\n Message: 'Please enter a valid engine CC.'\n };\n }\n if (!formData.Details.VIN) {\n return {\n Field: 'VIN',\n Message: \"Please enter the ATV's VIN.\"\n };\n }\n if (!/^\\$?[0-9]+(?:\\.[0-9]+)?$/.test(formData.Price)) {\n return {\n Field: 'Price',\n Message: 'Please enter a valid amount.'\n };\n }\n if (formData.AccessoryValue && !/^\\$?[0-9]+(?:\\.[0-9]+)?$/.test(formData.AccessoryValue)) {\n return {\n Field: 'AccessoryValue',\n Message: 'Please enter a valid amount.'\n };\n }\n\n return null;\n };\n\n return (\n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('ModelYear', (prev) => ({\n ...prev,\n Details: { ...prev.Details, ModelYear: value }\n }));\n }}\n value={props.formData.Details.ModelYear}\n inputMode=\"numeric\"\n />\n \n\n \n {\n const value = e.currentTarget.value;\n setData('Make', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Make: value }\n }));\n }}\n value={props.formData.Details.Make}\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('Model', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Model: value }\n }));\n }}\n value={props.formData.Details.Model}\n />\n \n \n \n \n \n setData('Type', (prev) => ({\n ...prev,\n Details: { ...prev.Details, Type: value }\n }))\n }\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('CCSize', (prev) => ({\n ...prev,\n Details: { ...prev.Details, CCSize: value }\n }));\n }}\n value={props.formData.Details.CCSize}\n inputMode=\"numeric\"\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('VIN', (prev) => ({\n ...prev,\n Details: { ...prev.Details, VIN: value }\n }));\n }}\n value={props.formData.Details.VIN}\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n setData('Price', (prev) => ({\n ...prev,\n Price: value\n }));\n }}\n value={props.formData.Price}\n inputMode=\"decimal\"\n />\n \n \n {\n const value = e.currentTarget.value;\n setData('AccessoryValue', (prev) => ({\n ...prev,\n AccessoryValue: value\n }));\n }}\n value={props.formData.AccessoryValue}\n inputMode=\"decimal\"\n />\n \n \n \n \n
    \n {(\n [\n {\n field: 'HasElectronicAlarm',\n name: 'Anti-theft device',\n description: 'This vehicle has a permanently installed anti-theft electronic alarm.'\n },\n {\n field: 'HasTrackingSystem',\n name: 'Tracking device',\n description:\n 'This vehicle has an permanently installed anti-theft tracking system (e.g. GPS).'\n },\n {\n field: 'HasLienHolder',\n name: 'Title lien holder',\n description: 'A lien holder has rights to the title of this vehicle.'\n },\n {\n field: 'IsPerformanceEnhanced',\n name: 'Performance enhanced',\n description:\n 'This vehicle has performance enhancements, like a turbo kit, nitrous oxide kit, etc.'\n },\n {\n field: 'IsStructurallyModified',\n name: 'Structurally modified',\n description:\n 'This vehicle has structural modifications or a frame altered from its original manufacturer specifications.'\n }\n ] as { field: keyof MotorProduct; name: string; description: string }[]\n ).map((option) => (\n {\n e.stopPropagation();\n setData('', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n [option.field]: !props.formData.Details[option.field]\n }\n }));\n }}\n >\n \n {\n setData('', (prev) => ({\n ...prev,\n Details: {\n ...prev.Details,\n [option.field]: !props.formData.Details[option.field]\n }\n }));\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n
    \n \n }\n primary\n loading={props.loading}\n onClick={(e) => {\n e.preventDefault();\n\n const err = validate(props.formData);\n if (err) {\n setValidationError(err);\n return;\n }\n\n props.onContinue({\n Type: props.formData.ProductType,\n SKU: props.formData.SKU || '',\n Name: `${props.formData.Details.Make} ${props.formData.Details.Model}`,\n Description: props.formData.Description || '',\n ImageURL: props.formData.ImageURL || '',\n Quantity: 1,\n Price: {\n Amount: parseFloat(props.formData.Price),\n Currency: 'usd'\n },\n Details: {\n ...props.formData.Details,\n AccessoryValue: {\n Amount: parseFloat(props.formData.AccessoryValue?.replace(/[^0-9]/, '') || '0'),\n Currency: 'usd'\n },\n EstimatedAnnualMileage: '0'\n }\n });\n }}\n >\n Continue\n \n \n
    \n );\n};\n","import * as React from 'react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory,\n matchPath\n} from 'react-router-dom';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { Progress } from '@oysterjs/ui/Form/progress';\n\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport {\n MarkelMotorCriteria,\n MarkelPersonalCharacteristicFlag,\n MotorProductValidationKeys,\n Product,\n ProductType,\n ValidationError\n} from '@oysterjs/types';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { Button, ButtonContainer, LinkComponent } from '@oysterjs/ui/Button';\nimport {\n IoArrowBack,\n IoArrowForward,\n IoBagCheckOutline,\n IoBicycleOutline,\n IoDocumentTextOutline,\n IoPersonOutline\n} from 'react-icons/io5';\nimport { Select } from '@oysterjs/ui/Form/select';\nimport {\n sdkCreatePolicy,\n sdkGetPaymentSession,\n sdkUpdatePolicy,\n sdkValidatePolicy\n} from '@oysterjs/core/api/sdk';\nimport { ExistingUserWrapper, GetPolicyWrapper, Page, PageProps, PageWrapper } from '../page';\nimport { getPaymentPage } from '../payment';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { AddressInputForm } from '@oysterjs/ui/Form/address';\nimport {\n RequirementCheckboxContainer,\n RequirementContentContainer,\n RequirementDescription,\n RequirementItemContainer,\n RequirementTitle\n} from '@oysterjs/ui/common';\nimport { Checkbox } from '@oysterjs/ui/Form/checkbox';\nimport { DateOfBirthInput } from '@oysterjs/ui/Form/dob';\nimport { getCoveragePage } from '../coverage';\nimport { useUrlData } from '@oysterjs/core/url';\nimport { MotorFormData, CollectMotorInfo } from './collect';\nimport apm from '@oysterjs/core/apm';\nimport { Policy, MotorProduct } from '@oysterjs/types';\nimport { ProductInfoPage } from '../product';\nimport { getProductDisplayName } from '@oysterjs/core/policy';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\n\nconst CollectOffroadInfoPage: React.FunctionComponent<\n React.PropsWithChildren<{ policy?: Policy }>\n> = (props) => {\n const urlData = useUrlData();\n const history = useHistory();\n const referralChannel = useReferralChannel();\n\n const productType = history.location.pathname.split('/')[2] as ProductType;\n const productDisplayName = getProductDisplayName(productType);\n\n const onSubmit = (product: Product) => {\n if (props.policy) {\n return sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: [product]\n },\n true\n );\n }\n return sdkCreatePolicy([product], { integrationID: urlData.integrationID, referralChannel });\n };\n\n const onContinue = (policy?: Policy) => {\n if (!props.policy) {\n history.replace(`/app/${productType}/${policy?.ID}`);\n }\n history.push(`/app/${productType}/${props.policy?.ID || policy?.ID}/criteria`);\n };\n\n const price = props.policy?.InsuredItems?.[0].Price?.Amount;\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as MotorProduct;\n }\n\n const initialFormData = props.policy\n ? {\n ProductType: productType,\n Price: price?.toString() || '',\n Details: (props.policy.InsuredItems[0].Details || {}) as MotorProduct\n }\n : urlData?.appData\n ? urlData.appData\n : { ProductType: productType, Price: '', Details: {} as MotorProduct };\n\n return (\n \n );\n};\n\nexport const CriteriaPage: React.FunctionComponent> = (\n props\n) => (\n \n

    A bit about you

    \n

    Tell us a little bit about yourself and how you use your vehicle.

    \n \n
    \n);\n\nconst OffroadCriteriaPage: React.FunctionComponent> = (\n props\n) => {\n const [inputChanged, setInputChanged] = React.useState(false);\n const criteria = props.policy.Underwriting.Criteria as MarkelMotorCriteria;\n const product = props.policy.InsuredItems[0].Details as MotorProduct;\n\n React.useEffect(() => {\n if (!props.loading) {\n setInputChanged(false);\n }\n }, [props.loading]);\n\n const onChange = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Criteria: {\n ...criteria,\n [k]: v\n }\n }\n });\n };\n\n const onChangeProduct = (k: string, v: T) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n InsuredItems: props.policy.InsuredItems.map((item) => ({\n ...item,\n Details: {\n ...item.Details,\n [k]: v\n }\n }))\n });\n };\n\n const onChangeMultiInsured = (vals: [string, T][]) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n ...Object.fromEntries(vals)\n }\n }\n });\n };\n\n const onChangeInsuredDateOfBirth = (day: string, month: string, year: string) => {\n setInputChanged(true);\n props.onUpdate({\n ...props.policy,\n Underwriting: {\n ...props.policy.Underwriting,\n Insured: {\n ...props.policy.Underwriting.Insured,\n DateOfBirth: {\n Day: day,\n Month: month,\n Year: year\n }\n }\n }\n });\n };\n\n return (\n {\n e.preventDefault();\n props.onNext();\n }}\n >\n \n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['FirstName', value]]);\n }}\n autoComplete=\"given-name\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['LastName', value]]);\n }}\n autoComplete=\"family-name\"\n />\n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['Email', value]]);\n }}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChangeMultiInsured([['Phone', value]]);\n }}\n inputMode=\"tel\"\n autoComplete=\"tel\"\n />\n \n \n \n \n onChangeMultiInsured([['Gender', value]])}\n />\n \n \n onChangeMultiInsured([['MaritalStatus', value]])}\n />\n \n \n \n \n \n \n \n \n {\n onChangeMultiInsured([\n ['AddressLine1', address.streetAddress],\n ['AddressLine2', address.streetAddressLine2],\n ['AddressCity', address.city],\n ['AddressState', address.state],\n ['AddressZipCode', address.zipCode]\n ]);\n }}\n initialValue={{\n streetAddress: props.policy.Underwriting.Insured.AddressLine1,\n streetAddressLine2: props.policy.Underwriting.Insured.AddressLine2,\n city: props.policy.Underwriting.Insured.AddressCity,\n state: props.policy.Underwriting.Insured.AddressState,\n zipCode: props.policy.Underwriting.Insured.AddressZipCode\n }}\n validationError={{\n streetAddress:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine1' &&\n props.validationError?.Message,\n streetAddressLine2:\n !inputChanged &&\n props.validationError?.SubField === 'AddressLine2' &&\n props.validationError?.Message,\n city:\n !inputChanged &&\n props.validationError?.SubField === 'AddressCity' &&\n props.validationError?.Message,\n state:\n !inputChanged &&\n props.validationError?.SubField === 'AddressState' &&\n props.validationError?.Message,\n zipCode:\n !inputChanged &&\n props.validationError?.SubField === 'AddressZipCode' &&\n props.validationError?.Message\n }}\n />\n \n \n \n {\n const value = e.currentTarget.value;\n onChange('YearsOfExperience', value);\n }}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChangeProduct('EstimatedAnnualMileage', value);\n }}\n inputMode=\"numeric\"\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('MinorViolations', value);\n }}\n inputMode=\"numeric\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange('MajorViolations', value);\n }}\n inputMode=\"numeric\"\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange('AtFaultAccidents', value);\n }}\n inputMode=\"numeric\"\n />\n \n \n \n \n \n {\n const value = e.currentTarget.value;\n onChange('DriversLicenseState', value);\n }}\n />\n \n \n {\n const value = e.currentTarget.value;\n onChange('DriversLicenseNumber', value);\n }}\n />\n \n \n \n \n \n
    \n {[\n {\n value: MarkelPersonalCharacteristicFlag.taken_safety_course,\n name: 'I have taken an ATV safety course.',\n description: 'You have taken a basic, accredited ATV safety course.',\n hidden: false,\n indented: false\n },\n {\n value: MarkelPersonalCharacteristicFlag.motorcycle_endorsed,\n name: \"My driver's license has a motorcycle endorsement.\",\n description:\n \"Your driver's license has an added note or credential legally allowing you to ride a motorcycle on public roads.\",\n hidden: false,\n indented: false\n },\n {\n value: MarkelPersonalCharacteristicFlag.homeowner,\n name: 'I am a homeowner.',\n description: 'You are a homeowner or a titled owner on a home your spouse owns.',\n hidden: false,\n indented: false\n }\n ]\n .filter((option) => !option.hidden)\n .map((option) => (\n {\n e.stopPropagation();\n const s = new Set(criteria.PersonalCharacteristicFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('PersonalCharacteristicFlags', [...s]);\n }}\n key={option.value}\n >\n \n {\n const s = new Set(criteria.PersonalCharacteristicFlags);\n if (s.has(option.value)) {\n s.delete(option.value);\n } else {\n s.add(option.value);\n }\n onChange('PersonalCharacteristicFlags', [...s]);\n }}\n />\n \n \n {option.name}\n {option.description}\n \n \n ))}\n
    \n
    \n \n \n \n {props.onBack && (\n \n )}\n {\n e.preventDefault();\n props.onNext();\n }}\n icon={}\n primary\n >\n Continue\n \n \n \n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/$PRODUCT_TYPE/:id',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: (validationError: ValidationError) =>\n MotorProductValidationKeys.indexOf(validationError.Field as keyof MotorProduct) > -1,\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/criteria',\n render: (props) => (\n \n {(policy) => }\n \n ),\n hasError: () => true,\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/coverage',\n render: (props) => (\n \n {(policy) => (\n sdkValidatePolicy(policy.ID)\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n },\n {\n path: '/app/$PRODUCT_TYPE/:id/payment',\n render: (props) => (\n \n {(account) => (\n \n {(policy) => (\n \n account ? userGetPaymentSession(policy.ID) : sdkGetPaymentSession(policy.ID),\n window.location.origin + `/policy/${policy.ID}/complete?flow=atv`,\n account\n )}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n const history = useHistory();\n const productType = history.location.pathname.split('/')[2] as ProductType;\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path.replace('$PRODUCT_TYPE', productType),\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: productType,\n page_index: current,\n route: pages[current]?.path.replace('$PRODUCT_TYPE', productType),\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n \n \n \n \n \n {current >= 0 && (\n \n \n i < current ? (\n {\n const match = /\\/(pol_.+)\\//.exec(history.location.pathname);\n if (match && match[1]) {\n return pages[i].path\n .replace(':id', match[1])\n .replace('$PRODUCT_TYPE', productType);\n }\n return pages[i].path;\n })()}\n >\n {page.icon}\n \n ) : (\n page.icon\n )\n )}\n currentStep={current}\n />\n \n )}\n \n (\n \n

    Sorry!

    \n

    \n {JSON.parse(window.localStorage.getItem('underwriting_error') || '{}').Message ||\n null}\n

    \n
    \n \"\"\n
    \n
    \n )}\n >\n } />\n {pages.map((page) => (\n \n ))}\n \n
    \n
    \n
    \n );\n};\n","import * as React from 'react';\nimport { matchPath, useHistory } from 'react-router-dom';\n\nimport { Button, ButtonContainer, ButtonLink } from '@oysterjs/ui/Button';\nimport {\n getPolicyToActivate,\n updatePolicyActivation,\n confirmActivationPolicy,\n validateUserActivationPolicy\n} from '@oysterjs/core/api/activateDashboard';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { getUser } from '@oysterjs/core/auth';\nimport {\n IoArrowForward,\n IoBagCheckOutline,\n IoBicycleOutline,\n IoCheckmarkDoneOutline,\n IoClipboardOutline,\n IoDocumentTextOutline,\n IoHomeOutline,\n IoPersonOutline,\n IoPhonePortraitOutline\n} from 'react-icons/io5';\nimport { PageSection } from '@oysterjs/ui/Page';\nimport {\n Insured,\n Policy,\n PolicyType,\n Product,\n ReferralChannelType,\n ValidationError\n} from '@oysterjs/types';\nimport { Page, PageProps, ExistingUserWrapper } from '@oysterjs/getoyster/pages/page';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport {\n CriteriaPage as MinicoJewelryCriteriaPage,\n LocationPage as MinicoLocationPage\n} from '@oysterjs/getoyster/pages/jewelry/minico';\nimport {\n CriteriaPage as ChubbJewelryCriteriaPage,\n LocationPage as ChubbLocationPage\n} from '@oysterjs/getoyster/pages/jewelry/chubb';\nimport { CriteriaPage as BikeCriteriaPage } from '@oysterjs/getoyster/pages/bike';\nimport { CriteriaPage as ElectronicsCriteriaPage } from '@oysterjs/getoyster/pages/electronics';\nimport { CriteriaPage as ATVCriteriaPage } from '@oysterjs/getoyster/pages/motor';\nimport { getPaymentPage } from '@oysterjs/getoyster/pages/payment';\nimport { getCoveragePage } from '@oysterjs/getoyster/pages/coverage';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { GetOysterEventNames } from '@oysterjs/core/analytics/googletags';\nimport { ErrorType, WrappedError, ErrorCode } from '@oysterjs/core/errors';\nimport { ProductInfoPage } from '@oysterjs/getoyster/pages/product';\nimport { BikeFormData, CollectBikeInfo } from '@oysterjs/getoyster/pages/bike/collect';\nimport { userGetPaymentSession } from '@oysterjs/core/api/user';\nimport {\n CollectElectronicsInfo,\n ElectronicsFormData\n} from '@oysterjs/getoyster/pages/electronics/collect';\n\nconst ActivationPage = (props: {\n token: string;\n policy: Policy;\n insured: Insured;\n onActivate: (policy: Policy) => void;\n overrideManualActivationTrigger?: boolean;\n}): JSX.Element => {\n const [policy, setPolicy] = React.useState(props.policy);\n const [loading, setLoading] = React.useState(true);\n\n const [error, setError] = React.useState('');\n const [submissionError, setSubmissionError] = React.useState({\n Message: '',\n RequestID: ''\n });\n const analytics = useAnalytics();\n\n React.useEffect(() => {\n confirmActivationPolicy(props.token, props.overrideManualActivationTrigger)\n .then(({ Policy }) => {\n analytics.event(GetOysterEventNames.ApplicationSubmitted, {\n policy_id: Policy.ID,\n policy_type: Policy.Type,\n value: Policy.Price?.Amount?.toString() || '0.0',\n currency: Policy.Price?.Currency || 'USD',\n transaction_id: Policy.ID,\n referral_channel:\n Policy.ReferralChannelInfo?.ReferralChannel ||\n ReferralChannelType.ReferralChannelDirect,\n ...Policy.ReferralChannelInfo?.Settings\n });\n setPolicy(Policy);\n })\n .catch((e) => {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.processingError && err.code() === ErrorCode.submissionFailed) {\n setSubmissionError({\n Message: err.message,\n RequestID: err.metadata().RequestID\n });\n } else {\n setError(err.message);\n }\n })\n .finally(() => setLoading(false));\n }, []);\n\n React.useEffect(() => {\n setPolicy(props.policy);\n }, [props.policy]);\n\n return (\n <>\n {loading && (\n <>\n \n

    Welcome, {props.insured.FirstName}!

    \n

    \n Thanks for choosing the {props.policy.Name}. We're glad you're joining us! Just one\n moment as we complete your registration...\n

    \n \n \n \n
    \n \n )}\n {!loading && !error && !submissionError.Message && (\n <>\n \n

    Welcome, {props.insured.FirstName}!

    \n

    \n Congratulations! Your registration is complete and your information has been\n confirmed. We'll send you a final confirmation when your coverage becomes active.\n

    \n
    \n \n \n }\n primary\n onClick={() => props.onActivate(policy)}\n href={`/policies/${props.policy.ID}/overview`}\n >\n Continue to Dashboard\n \n \n \n \n )}\n {!loading && error && (\n <>\n \n

    Oops!

    \n

    \n There was an error activating your coverage. Please reach out to{' '}\n support@withoyster.com and we'll help\n resolve the issue.\n

    \n
    \n \n {error &&

    {error}

    }\n
    \n \n )}\n {!loading && submissionError.Message && (\n <>\n \n

    Oops!

    \n

    \n There was an error activating your coverage. Please reach out to{' '}\n support@withoyster.com and we'll help\n resolve the issue.\n

    \n
    \n \n {submissionError.Message && (\n

    {submissionError.Message}

    \n )}\n {submissionError.RequestID && (\n

    \n

    \n                  Transaction Reference ID: {submissionError.RequestID}\n                
    \n

    \n )}\n
    \n \n )}\n \n );\n};\n\nconst PageWrapper = (props: {\n policyId: string;\n policy: Policy;\n page: React.FunctionComponent>;\n pages: Array;\n}) => {\n const history = useHistory();\n const [loading, setLoading] = React.useState(false);\n const [policy, setPolicy] = React.useState(props.policy);\n const [validationError, setValidationError] = React.useState();\n\n const currentPageIndex = props.pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n const onUpdate = async (policy: Policy, forceUpdate?: boolean) => {\n if (!forceUpdate) {\n setPolicy(policy);\n return policy;\n }\n\n try {\n const res = await updatePolicyActivation(props.policyId, policy);\n setPolicy(res.Policy);\n return res.Policy;\n } catch (err) {\n // ignore errors here\n setPolicy(policy);\n return policy;\n }\n };\n\n const onBack = () => {\n if (currentPageIndex > 0) {\n history.push(props.pages[currentPageIndex - 1].path.replace(':id', props.policyId));\n }\n };\n\n const onNext = async () => {\n setLoading(true);\n try {\n const res = await updatePolicyActivation(props.policyId, policy);\n setValidationError(undefined);\n if (res && res.Policy) {\n setPolicy(res.Policy);\n }\n if (res.NextValidationError) {\n throw WrappedError.fromValidationError(res.NextValidationError);\n }\n if (currentPageIndex < props.pages.length - 1) {\n history.push(props.pages[currentPageIndex + 1].path.replace(':id', props.policyId));\n }\n return true;\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (err.type() === ErrorType.validationError) {\n // Show the user the error in err.Message and highlight the\n // field corresponding to err.Field.\n setValidationError(err.getValidationError());\n\n // find page to go to if any\n let nextPageIndex = props.pages.findIndex((page) =>\n page.hasError(err.getValidationError())\n );\n if (nextPageIndex === -1 || nextPageIndex - currentPageIndex > 1) {\n nextPageIndex = currentPageIndex + 1;\n }\n if (nextPageIndex !== currentPageIndex && nextPageIndex < props.pages.length) {\n history.push(props.pages[nextPageIndex].path.replace(':id', props.policyId));\n }\n }\n } finally {\n setLoading(false);\n }\n\n return false;\n };\n\n return React.createElement(props.page, {\n loading,\n policy,\n validationError,\n onNext,\n onBack,\n onUpdate\n });\n};\n\nconst CollectPagePage = (\n props: React.PropsWithChildren<{\n policy: Policy;\n pages: Array;\n component: (\n initialFormData: T,\n onSubmit: (\n product: Product\n ) => Promise<{ Policy: Policy; NextValidationError?: ValidationError }>,\n onContinue: () => void\n ) => JSX.Element;\n }>\n) => {\n const history = useHistory();\n const [policy, setPolicy] = React.useState(props.policy);\n\n const currentPageIndex = props.pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n const mergeProduct = (a: Product, b: Product) => ({\n ID: b.ID,\n Type: b.Type,\n SKU: b.SKU,\n Name: a.Name || b.Name,\n Description: a.Description || b.Description,\n ImageURL: b.ImageURL,\n Quantity: b.Quantity,\n Price: a.Price || b.Price,\n Pending: b.Pending,\n Details: a.Details || b.Details,\n HasNotReceived: a.HasNotReceived || b.HasNotReceived\n });\n\n const onSubmit = async (product: Product) => {\n const res = await updatePolicyActivation(props.policy.ID, {\n ...policy,\n InsuredItems: [mergeProduct(product, policy.InsuredItems[0]), ...policy.InsuredItems.slice(1)]\n });\n if (res && res.Policy) {\n setPolicy(res.Policy);\n }\n\n return res;\n };\n\n const onContinue = async () => {\n if (currentPageIndex < props.pages.length - 1) {\n history.push(props.pages[currentPageIndex + 1].path.replace(':id', props.policy.ID));\n }\n };\n\n const initialFormData: unknown = {\n Price: props.policy?.InsuredItems?.[0].Price?.Amount?.toString() || '',\n Details: props.policy.InsuredItems[0].Details || {},\n HasNotReceived: props.policy.InsuredItems[0].HasNotReceived\n };\n\n return props.component(initialFormData as T, onSubmit, onContinue);\n};\n\nexport const getPages = (\n routePrefix: string,\n policyId: string,\n policyType: PolicyType,\n onActivate: (policy: Policy) => void\n): Page[] => {\n const pages: Page[] = [];\n pages.push({\n path: routePrefix + '/activate',\n render: () => (\n \n {(data) => (\n (\n <>\n \n

    Final steps

    \n

    \n Thanks for choosing Oyster! You're almost done — we just need to collect a\n few more pieces of information.\n

    \n
    \n \n \n \n \n )}\n pages={pages}\n />\n )}\n
    \n ),\n hasError: () => false,\n icon: \n });\n\n switch (policyType) {\n case PolicyType.minicoJewelry:\n pages.push(\n {\n path: routePrefix + '/activate/location',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n !!['Storage', 'Construction'].find((prefix) =>\n validationError.Field.startsWith(prefix)\n ) || !!validationError.SubField?.startsWith('Address'),\n icon: \n },\n {\n path: routePrefix + '/activate/criteria',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'ZipCode',\n 'UnderwritingFlags',\n 'UnderwritingJustification',\n 'AdditionalInsuredFirstName',\n 'AdditionalInsuredLastName',\n 'CurrentInsurerName'\n ].includes(validationError.Field) ||\n !!['FirstName', 'LastName', 'Phone', 'Occupation', 'Email'].find(\n (subfield) => validationError.SubField === subfield\n ),\n icon: \n }\n );\n break;\n case PolicyType.chubbJewelry:\n pages.push(\n {\n path: routePrefix + '/activate/criteria',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'ZipCode',\n 'OccupationDetails',\n 'AdditionalInsuredFirstName',\n 'AdditionalInsuredLastName',\n 'AdditionalInsuredOccupation',\n 'AdditionalInsuredOccupationDetails',\n 'InsuredTravel',\n 'AverageJewelryValueOnTravel',\n 'JewelrySafeguardOnTravel',\n 'JewelrySafeguardAtHomeInsuredOnTravel'\n ].includes(validationError.Field) ||\n !![\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Occupation',\n 'Email',\n 'DateOfBirth',\n 'DateOfLoss',\n 'LossType',\n 'LossPaidDate',\n 'LossPaidAmount',\n 'CauseOfLossCode',\n 'CauseOfLossDescription',\n 'LossStatus'\n ].find((subfield) => validationError.SubField === subfield),\n icon: \n },\n {\n path: routePrefix + '/activate/location',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n !!['Storage', 'ConstructionType', 'Residence', 'InHouseEmployees'].find((prefix) =>\n validationError.Field.startsWith(prefix)\n ) || !!validationError?.SubField?.startsWith('Address'),\n icon: \n }\n );\n break;\n case PolicyType.markelMotorcycle:\n case PolicyType.markelOffroad:\n pages.push({\n path: routePrefix + '/activate/criteria',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: () => true,\n icon: \n });\n break;\n\n case PolicyType.bike:\n case PolicyType.markelBike:\n pages.push({\n path: routePrefix + '/activate/product',\n render: () => (\n \n {(data) => (\n (\n false}\n onSubmit={onSubmit}\n onContinue={onContinue}\n component={CollectBikeInfo}\n />\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n });\n\n pages.push({\n path: routePrefix + '/activate/criteria',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n validationError.Field.startsWith('PriorLosses') ||\n [\n 'StorageAddressLine1',\n 'StorageCity',\n 'StorageState',\n 'StorageZipCode',\n 'YearsOfExperience',\n 'UsageTypes'\n ].includes(validationError.Field) ||\n !![\n 'FirstName',\n 'LastName',\n 'Phone',\n 'Email',\n 'DateOfBirth',\n 'Gender',\n 'AddressLine1',\n 'AddressLine2',\n 'AddressCity',\n 'AddressState',\n 'AddressZipCode'\n ].find((subfield) => validationError.SubField === subfield),\n icon: \n });\n\n break;\n\n case PolicyType.worthAveElectronics:\n pages.push({\n path: routePrefix + '/activate/product',\n render: () => (\n \n {(data) => (\n (\n false}\n onSubmit={onSubmit}\n onContinue={onContinue}\n component={(props) => }\n />\n )}\n />\n )}\n \n ),\n hasError: () => false,\n icon: \n });\n\n pages.push({\n path: routePrefix + '/activate/criteria',\n render: () => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: () => true,\n icon: \n });\n\n break;\n }\n\n pages.push({\n path: routePrefix + '/activate/coverage',\n render: () => (\n \n {(data) => (\n validateUserActivationPolicy(policyId, updatedPolicy),\n policyType == PolicyType.chubbJewelry,\n undefined,\n true\n )}\n pages={pages}\n />\n )}\n \n ),\n hasError: (validationError: ValidationError) =>\n !!['Source', 'TrackingNumber', 'StartDate'].find(\n (subfield) => validationError.SubField == subfield\n ),\n icon: \n });\n\n pages.push({\n path: routePrefix + '/activate/payment',\n render: () => (\n \n {(account) => (\n \n {(data) => (\n userGetPaymentSession(policyId),\n window.location.origin + `/policies/${policyId}/overview/activate/confirm`,\n account\n )}\n pages={pages}\n />\n )}\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n });\n\n pages.push({\n path: routePrefix + '/activate/confirm',\n render: (props) => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: (validationError: ValidationError) => validationError.Field === 'Insured',\n icon: \n });\n return pages;\n};\n\n// manual activation pages\nexport const getManualActivationPages = (\n routePrefix: string,\n policyId: string,\n onActivate: (policy: Policy) => void\n): Page[] => {\n const pages: Page[] = [];\n pages.push({\n path: routePrefix + '/activate/manual',\n render: () => (\n \n {(data) => (\n (\n <>\n \n

    Activate your policy

    \n

    \n Thank you for choosing Oyster! Click the \"Activate\" button to perform final\n checks on your policy and submit it to our team for review.\n

    \n

    If final checks pass, your coverage should be active within 1 business day.

    \n
    \n \n \n \n \n )}\n pages={pages}\n />\n )}\n
    \n ),\n hasError: () => false,\n icon: <>\n });\n\n pages.push({\n path: routePrefix + '/activate/done',\n render: (props) => (\n \n {(data) => (\n \n )}\n \n ),\n hasError: () => false,\n icon: <>\n });\n\n return pages;\n};\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport {\n IoAdd,\n IoAlertCircleSharp,\n IoArrowBack,\n IoArrowForward,\n IoBan,\n IoCheckmarkSharp,\n IoClose,\n IoCloudOffline,\n IoDownload,\n IoHelp,\n IoHourglass,\n IoPencilSharp,\n IoShieldCheckmark,\n IoTime\n} from 'react-icons/io5';\n\nimport { Button, ButtonContainer, ButtonLink } from '@oysterjs/ui/Button';\nimport { PageSection, TwoPaneContainer } from '@oysterjs/ui/Page';\nimport {\n getPolicyCoverageItemsLongDescription,\n getPolicyDisplayName,\n getPolicyOptionalCoverageItem,\n getProductDisplayImage,\n getProductDisplayName\n} from '@oysterjs/core/policy';\nimport {\n BikeProduct,\n BooleanOption,\n Policy,\n Product,\n ProductType,\n PolicyState,\n PolicyType,\n ElectronicsProduct,\n ElectronicsType,\n Price,\n BikePowerSource,\n ActivationTrigger,\n ActivationSource,\n AccountSummary\n} from '@oysterjs/types';\nimport { CollectBikeInfo } from '@oysterjs/getoyster/pages/bike/collect';\nimport {\n addEndorsement,\n cancelEndorsement,\n getEndorsementPremium\n} from '@oysterjs/core/api/policy';\nimport { CollectJewelryInfo } from '@oysterjs/getoyster/pages/jewelry/collect';\nimport { CollectElectronicsInfo } from '@oysterjs/getoyster/pages/electronics/collect';\nimport { ProductInfoPage } from '@oysterjs/getoyster/pages/product';\nimport { JewelryProduct, MotorProduct } from '@oysterjs/types';\nimport {\n matchPath,\n Redirect,\n Route as BrowserRoute,\n Switch,\n useHistory,\n useRouteMatch\n} from 'react-router';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport { NavLink } from 'react-router-dom';\nimport { CoverageItem } from '@oysterjs/ui/CoverageItem';\nimport { getPolicyDocumentUrl } from '@oysterjs/core/statics';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport {\n AlternateBoxTitle,\n Box,\n BoxBadgeHeader,\n BoxContainer,\n BoxItem,\n BoxItemImage\n} from '@oysterjs/ui/Box';\nimport { SlideOut } from '@oysterjs/ui/Modal/slideout';\nimport { getPages, getManualActivationPages } from '../ActivateDashboard';\nimport { Progress } from '@oysterjs/ui/Form/progress';\nimport { Switch as FormSwitch } from '@oysterjs/ui/Form/switch';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { PolicyLineItem, PolicyStatement } from './account';\nimport { updatePolicyActivation } from '@oysterjs/core/api/activateDashboard';\nimport { WrappedError } from '@oysterjs/core/errors';\nimport { FormColumn, FormContainer, FormRow, FormRowHeader } from '@oysterjs/ui/Form/builder';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { BikeSerialNumberBanner } from './policies';\nimport { Banner } from '@oysterjs/ui/Banner';\n\nexport const getPolicyStatus = (\n policy: Policy,\n account: AccountSummary\n): {\n noDocument?: boolean;\n backgroundColor: string;\n badgeColor: string;\n badge: JSX.Element;\n description: JSX.Element;\n premiumText: JSX.Element;\n stateText: string;\n buttonText?: string;\n} => {\n switch (policy.State) {\n case PolicyState.unknown:\n return {\n noDocument: true,\n backgroundColor: '#e6e6e6',\n badgeColor: 'rgba(0, 0, 0, 0.5)',\n badge: ,\n description: (\n <>\n Your application was started but not completed.\n \n ),\n premiumText: <>Your premium will be determined after you submit your application.,\n stateText: 'In Progress',\n buttonText: 'Continue Application'\n };\n\n case PolicyState.offerSubmitted:\n if (\n policy.Coverage.ActivationTrigger &&\n policy.Coverage.ActivationTrigger.Source == ActivationSource.ManuallyActivate &&\n policy.InsuredItems.some((i) => i.HasNotReceived) &&\n !!account?.PaymentMethods?.length\n ) {\n return {\n noDocument: true,\n backgroundColor: 'rgba(252, 227, 193)',\n badgeColor: 'rgba(214, 131, 0)',\n badge: ,\n description: (\n <>\n Your application has been submitted, but it has not been activated.\n \n ),\n premiumText: <>Your payment will be processed when your policy activates.,\n stateText: 'Pending Activation',\n buttonText: 'Activate Policy'\n };\n }\n return {\n noDocument: true,\n backgroundColor: 'rgba(252, 227, 193)',\n badgeColor: 'rgba(214, 131, 0)',\n badge: ,\n description: (\n <>\n We need more information to process your policy.\n \n ),\n premiumText: <>Your payment will be processed when your policy activates.,\n stateText: 'Pending Submission',\n buttonText: 'Finish Application'\n };\n\n case PolicyState.applicationSubmitted:\n case PolicyState.policyBinding:\n if (policy.Coverage.ActivationTrigger && policy.InsuredItems.some((i) => i.HasNotReceived)) {\n return {\n noDocument: true,\n backgroundColor: 'rgba(252, 227, 193)',\n badgeColor: 'rgba(214, 131, 0)',\n badge: ,\n description: (\n <>\n Your application has been submitted, but it has not been activated.\n \n ),\n premiumText: <>Your payment will be processed when your policy activates.,\n stateText: 'Pending Activation',\n buttonText: 'Activate Policy'\n };\n }\n return {\n noDocument: true,\n backgroundColor: 'rgba(178,243,252,0.4)',\n badgeColor: 'rgb(16,98,110,0.4)',\n badge: ,\n description: (\n <>\n Your policy is being processed. Our team is reviewing your information.\n \n ),\n premiumText: <>Your payment will be processed when your policy activates.,\n stateText: 'Processing',\n buttonText: 'View Policy'\n };\n\n case PolicyState.policyInforce:\n return {\n backgroundColor: 'rgba(189, 234, 205)',\n badgeColor: 'rgba(57, 145, 88)',\n badge: ,\n description: (\n <>\n Your policy is active and your items are protected.\n \n ),\n premiumText: (\n <>\n Your policy is effective until {new Date(policy.ExpiresAt).toLocaleDateString()}.\n \n ),\n stateText: 'Active',\n buttonText: 'View Policy'\n };\n\n case PolicyState.policyCanceled:\n return {\n backgroundColor: 'rgb(255, 193, 185)',\n badgeColor: 'rgb(201, 67, 48)',\n badge: ,\n description: (\n <>\n Your policy has been canceled. Contact support for more information.\n \n ),\n premiumText: <>You won't be charged anymore.,\n stateText: 'Canceled',\n buttonText: 'View Policy'\n };\n\n case PolicyState.policyExpired:\n return {\n backgroundColor: '#e6e6e6',\n badgeColor: 'rgba(0, 0, 0, 0.5)',\n badge: ,\n description: (\n <>\n Your policy has expired. Contact support for more information.\n \n ),\n premiumText: <>You won't be charged anymore.,\n stateText: 'Expired',\n buttonText: 'View Policy'\n };\n\n default:\n return {\n backgroundColor: '#e6e6e6',\n badgeColor: 'rgba(0, 0, 0, 0.5)',\n badge: ,\n description: <>There's an issue with your policy. Contact support for more information.,\n premiumText: <>You won't be charged anymore.,\n stateText: 'Unknown',\n buttonText: 'View Policy'\n };\n }\n};\n\nconst getProductDetails = (product: Product) => {\n switch (product.Type) {\n case ProductType.motorcycle:\n case ProductType.offroad: {\n const motorProduct = product.Details as MotorProduct;\n return [\n {\n title: 'Total Value',\n detail: new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: product.Price.Currency,\n minimumFractionDigits: 0\n }).format(product.Price.Amount)\n },\n { title: 'VIN', detail: motorProduct.VIN },\n { title: 'Type', detail: motorProduct.Type },\n { title: 'Make', detail: motorProduct.Make },\n { title: 'Model', detail: motorProduct.Model },\n { title: 'CC', detail: motorProduct.CCSize }\n ];\n }\n\n case ProductType.bike: {\n const bikeProduct = product.Details as BikeProduct;\n const renderClass = (): string | undefined => {\n return {\n [BikePowerSource.pedalAssist20MPH]: 'Class I',\n [BikePowerSource.throttleAssist20MPH]: 'Class II',\n [BikePowerSource.pedalAssist28MPH]: 'Class III'\n }[bikeProduct.PowerSource || ''];\n };\n return [\n {\n title: 'Insured Value',\n detail: new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: product.Price.Currency,\n minimumFractionDigits: 0\n }).format(Math.max(bikeProduct.TotalInsuredValue?.Amount || 0, product.Price.Amount || 0))\n },\n { title: 'Serial Number', detail: bikeProduct.FrameSerialNumber || 'N/A' },\n { title: 'Model Year', detail: bikeProduct.ModelYear },\n { title: 'E-bike Class', detail: renderClass() }\n ].filter((v) => !!v.detail);\n }\n\n case ProductType.jewelry: {\n return [\n {\n title: 'Value',\n detail: new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: product.Price.Currency,\n minimumFractionDigits: 0\n }).format(product.Price.Amount)\n }\n ].filter((v) => !!v.detail);\n }\n\n case ProductType.phone: {\n const phoneProduct = product.Details as ElectronicsProduct;\n\n return [\n { title: 'Identification', detail: phoneProduct.SerialNumber || product.SKU },\n {\n title: 'Value',\n detail: new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: product.Price.Currency,\n minimumFractionDigits: 0\n }).format(product.Price.Amount)\n },\n { title: 'Phone Type', detail: phoneProduct.Type }\n ];\n }\n\n // TODO: refactor to use the ProductType.phone case for phone product (ticket: https://app.asana.com/0/1200762684494204/1203949127097148/f)\n case ProductType.electronics: {\n const electronicsProduct = product.Details as ElectronicsProduct;\n const typeTitle = [ElectronicsType.iPhone, ElectronicsType.smartPhone].includes(\n electronicsProduct.Type as ElectronicsType\n )\n ? 'Phone Type'\n : 'Electronics Type';\n\n return [\n { title: 'Identification', detail: electronicsProduct.SerialNumber || product.SKU },\n {\n title: 'Value',\n detail: new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: product.Price.Currency,\n minimumFractionDigits: 0\n }).format(product.Price.Amount)\n },\n { title: typeTitle, detail: electronicsProduct.Type }\n ];\n }\n }\n};\n\nexport const PolicyStatusBadge = styled.div`\n border-radius: 50%;\n padding: 24px;\n background: rgba(230, 230, 230, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst PolicyDocument = styled.a`\n display: block;\n border: 1px solid rgba(33, 160, 253, 0.2);\n background: rgba(33, 160, 253, 0.2);\n color: rgba(0, 110, 191, 0.75);\n border-radius: 50%;\n width: 72px;\n height: 72px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.6em;\n cursor: pointer;\n transition: 0.15s all ease-in-out;\n text-decoration: none;\n\n &:hover {\n border: 1px solid rgba(33, 160, 253, 0.33);\n background: rgba(33, 160, 253, 0.33);\n color: rgba(0, 110, 191, 0.83);\n }\n\n &:active {\n border: 1px solid rgba(33, 160, 253, 0.5);\n background: rgba(33, 160, 253, 0.5);\n color: rgba(0, 110, 191, 1);\n }\n\n &:visited {\n color: rgba(0, 110, 191, 0.75);\n }\n`;\n\nconst PolicyDocumentNotAvailable = styled.div`\n border: 1px dashed #d2d2d2;\n background: #eaeaea;\n color: rgba(0, 0, 0, 0.2);\n border-radius: 50%;\n width: 70px;\n height: 70px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.6em;\n`;\n\nconst PolicyPremium = (props: { price?: Price }) => (\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: props.price?.Currency || 'usd',\n minimumFractionDigits: Number.isInteger(props.price?.Amount) ? 0 : 2,\n maximumFractionDigits: 2\n }).format(props.price?.Amount || 0)}\n \n);\n\nconst PolicyActivation = (props: { policy: Policy; onActivate: (policy: Policy) => void }) => {\n const history = useHistory();\n const { url, path } = useRouteMatch();\n\n const [activation, setActivation] = React.useState(false);\n const goBack = () => history.replace(url.split('/').slice(0, -1).join('/') + '/overview');\n\n const pages = getPages(path, props.policy.ID, props.policy.Type, props.onActivate);\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n React.useEffect(() => {\n setActivation(window.location.pathname.indexOf('/activate') >= 0);\n }, [window.location.pathname]);\n\n return (\n \n \n {current >= 0 && pages.length > 2 && (\n \n page.icon)} currentStep={current} />\n \n )}\n \n {pages.map((page) => (\n \n ))}\n \n \n \n );\n};\n\nconst getPolicyDescription = (activationTrigger: ActivationTrigger) => {\n switch (activationTrigger.Source) {\n case ActivationSource.ManuallyActivate:\n return 'Your policy is pending activation. Please manually activate your policy.';\n case ActivationSource.SetStartDate:\n if (!activationTrigger.StartDate) {\n return 'Your policy is pending activation. Please manually activate your policy.';\n } else {\n const startDate = new Date(activationTrigger.StartDate);\n return `Your policy is set to activate automatically on ${Intl.DateTimeFormat('en-US', {\n dateStyle: 'full'\n }).format(startDate)}. You can also manually activate it anytime.`;\n }\n case ActivationSource.TrackingNumber:\n return `Your policy is set to activate automatically when your package is delivered. The tracking number is ${activationTrigger.TrackingNumber}. You can also manually activate it anytime.`;\n }\n};\n\nconst StartPolicy = (props: { policy: Policy; onActivate: (policy: Policy) => void }) => {\n const history = useHistory();\n const { url, path } = useRouteMatch();\n\n const [activation, setActivation] = React.useState(false);\n const goBack = () => history.replace(url.split('/').slice(0, -1).join('/') + '/overview');\n\n const pages = getManualActivationPages(path, props.policy.ID, props.onActivate);\n\n React.useEffect(() => {\n setActivation(window.location.pathname.indexOf('/activate') >= 0);\n }, [window.location.pathname]);\n\n return (\n \n \n \n {pages.map((page) => (\n \n ))}\n \n \n \n );\n};\n\nconst PolicyOverview = (props: { policy: Policy; account: AccountSummary }): JSX.Element => {\n const [policy, setPolicy] = React.useState(props.policy);\n const [additionalText, setAdditionalText] = React.useState(<>);\n const status = getPolicyStatus(policy, props.account);\n\n React.useEffect(() => {\n setPolicy(policy);\n }, [props.policy]);\n\n React.useEffect(() => {\n if (props.policy.InsuredItems.some((insuredItem) => insuredItem.Pending)) {\n getEndorsementPremium(props.policy.ID, props.policy.InsuredItems[0]).then(\n ({ PendingPrice }) => {\n const pendingText =\n PendingPrice.Amount != policy.Price?.Amount ? (\n <>\n Your premium may change to{' '}\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: PendingPrice?.Currency || 'usd',\n minimumFractionDigits: Number.isInteger(PendingPrice?.Amount) ? 0 : 2,\n maximumFractionDigits: 2\n }).format(PendingPrice.Amount)}\n {' '}\n if all endorsements are approved.\n \n ) : (\n <>\n );\n setAdditionalText(pendingText);\n }\n );\n }\n }, [props.policy]);\n\n return (\n <>\n {policy.State === PolicyState.offerSubmitted &&\n (!policy.Coverage.ActivationTrigger ||\n policy.Coverage.ActivationTrigger.Source != ActivationSource.ManuallyActivate ||\n props.account.PaymentMethods == null) ? (\n \n ) : (\n policy.Coverage.ActivationTrigger &&\n policy.InsuredItems.some((i) => i.HasNotReceived) && (\n <>\n }\n >\n Activate Policy\n \n }\n >\n \n \n )\n )}\n \n \n \n {status.badge}\n \n \n \n {status.premiumText}\n {additionalText}\n \n }\n >\n \n \n \n {status.noDocument ? (\n \n {' '}\n \n ) : (\n \n \n \n )}\n \n \n \n );\n};\n\nconst SerialNumberInput = (props: {\n policy: Policy;\n onPolicyUpdated: (updatedPolicy: Policy) => void;\n}) => {\n const history = useHistory();\n const { url } = useRouteMatch();\n\n const [itemID, setItemID] = React.useState('');\n const [serialNumber, setSerialNumber] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState();\n const goBack = () => history.replace(url.split('/').slice(0, -3).join('/') + `/items`);\n\n React.useEffect(() => {\n const matches = window.location.pathname.match('.+\\\\/items\\\\/(.+)\\\\/serialnumber') || [];\n // For valid URL structure, there should be 2 matches\n if (matches.length >= 2) {\n // Get the first group match (index 0 is whole match)\n const matchedItemID = matches[1];\n setItemID(matchedItemID);\n\n // Set initial serial number field\n const item = props.policy.InsuredItems.find((p) => p.ID === matchedItemID);\n if (!item) {\n setItemID('');\n throw new Error(`Item cannot be found in policy.`);\n } else {\n setSerialNumber((item.Details as BikeProduct).FrameSerialNumber);\n }\n }\n }, [window.location.pathname]);\n\n const product = () => {\n return props.policy.InsuredItems.find((p) => p.ID === itemID);\n };\n\n const onSubmit = async () => {\n const items = props.policy.InsuredItems;\n const indexToUpdate = items.findIndex((p) => p.ID === itemID);\n if (indexToUpdate > -1) {\n (items[indexToUpdate].Details as BikeProduct).FrameSerialNumber = serialNumber;\n }\n\n const updatedPolicy = {\n ...props.policy,\n InsuredItems: items\n };\n\n setLoading(true);\n setError(undefined);\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 updatePolicyActivation(props.policy.ID, updatedPolicy);\n // Update policy state if updated from backend\n if (res.Policy) {\n props.onPolicyUpdated(res.Policy);\n }\n goBack();\n } catch (e) {\n // If there was an error, revert to the original policy\n const err = WrappedError.asWrappedError(e);\n props.onPolicyUpdated(props.policy);\n setError(err);\n } finally {\n // In any case, set the loading flag to false\n setLoading(false);\n }\n };\n\n return (\n \n \n \n \n {\n const value = e.currentTarget.value;\n setSerialNumber(value);\n }}\n error={\n error\n ? `We encountered an issue updating the serial number: ${error.message}`\n : undefined\n }\n value={serialNumber}\n />\n \n \n \n \n }\n primary\n disabled={!serialNumber}\n loading={loading}\n onClick={onSubmit}\n >\n Confirm\n \n \n \n \n );\n};\n\nconst InsuredItemSubTitle = styled.div`\n font-size: 1em;\n color: #666666;\n`;\n\nconst InsuredItemProperties = styled.ul`\n list-style: none;\n padding: 20px 0px 0px 0px;\n display: flex;\n flex-wrap: wrap;\n gap: 24px;\n`;\n\nconst InsuredItemPropertyItem = styled.li`\n flex: 1 0 calc(50% - 20px);\n`;\n\nconst InsuredItemBadge = (props: { pending?: boolean }) => {\n const backgroundColor = props.pending ? 'rgba(252, 227, 193)' : 'rgba(189, 234, 205)';\n const badge = props.pending ? (\n \n ) : (\n \n );\n const text = props.pending ? 'Pending' : 'Protected';\n\n return ;\n};\n\nconst InsuredItemProperty = (props: { title: string; detail?: string }) => (\n \n
    {props.title}
    \n
    {props.detail}
    \n
    \n);\n\nconst InsuredItem = (props: {\n item: Product;\n policyType: PolicyType;\n onCancelEndorsement: () => void;\n onAddSerialNumber: () => void;\n}) => {\n const requireSerialNumber = (): boolean => {\n if (props.policyType === PolicyType.bike || props.policyType === PolicyType.markelBike) {\n const bikeProduct = props.item.Details as BikeProduct;\n return !!bikeProduct.IsPendingSerialNumber || !bikeProduct.FrameSerialNumber;\n } else {\n return false;\n }\n };\n\n return (\n \n \n \n {props.item.Pending && (\n }\n onClick={props.onCancelEndorsement}\n >\n Cancel\n \n )}\n \n {requireSerialNumber() && (\n }\n onClick={props.onAddSerialNumber}\n >\n Add serial number\n \n )}\n \n {props.item.Name}\n \n {getProductDisplayName(props.item.Type, props.item)}\n \n \n {getProductDetails(props.item).map((detail) => (\n \n ))}\n \n \n );\n};\n\nconst PolicyCoveredItems = (props: {\n policy: Policy;\n onPolicyUpdate: (updatedPolicy: Policy) => void;\n}): JSX.Element => {\n const [policy, _setPolicy] = React.useState(props.policy);\n const [currentPrice, setCurrentPrice] = React.useState(props.policy.Price);\n const [pendingPrice, setPendingPrice] = React.useState(props.policy.Price);\n const [endorsementPrice, setEndorsementPrice] = React.useState(props.policy.Price);\n const [showEndorsementFlow, setShowEndorsementFlow] = React.useState(false);\n const [showNewPremium, setShowNewPremium] = React.useState(false);\n const [showSerialNumberEditor, setShowSerialNumberEditor] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [product, setProduct] = React.useState({} as Product);\n const history = useHistory();\n const { url } = useRouteMatch();\n\n const setPolicy = (updatedPolicy: Policy) => {\n _setPolicy(updatedPolicy);\n props.onPolicyUpdate(policy);\n };\n\n const onCancelEndorsement = (itemId: string) => {\n cancelEndorsement(policy.ID, itemId).then(({ Policy }) => setPolicy(Policy));\n };\n\n // Serial number editor logic\n React.useEffect(() => {\n const matches = window.location.pathname.match('.+\\\\/items\\\\/(.+)\\\\/serialnumber') || [];\n const isActive = matches?.length > 0;\n setShowSerialNumberEditor(isActive);\n }, [window.location.pathname]);\n\n const closeSerialNumberSlideOut = () =>\n history.replace(url.split('/').slice(0, -3).join('/') + `/items`);\n\n const onAddSerialNumber = (_: Policy, itemId: string) => {\n history.push(url.split('/').slice(0, -1).join('/') + `/items/${itemId}/serialnumber`);\n };\n\n /* show the right form for a product given the policy type */\n const getPolicyForm = () => {\n switch (policy.Type) {\n case PolicyType.bike:\n case PolicyType.markelBike:\n return (\n true}\n onContinue={() => {\n setShowNewPremium(true);\n setShowEndorsementFlow(false);\n }}\n />\n );\n\n case PolicyType.minicoJewelry:\n case PolicyType.chubbJewelry:\n return (\n true}\n onContinue={() => {\n setShowNewPremium(true);\n setShowEndorsementFlow(false);\n }}\n />\n );\n\n case PolicyType.worthAveElectronics:\n return (\n true}\n onContinue={() => {\n setShowNewPremium(true);\n setShowEndorsementFlow(false);\n }}\n />\n );\n }\n };\n\n React.useEffect(() => {\n setPolicy(policy);\n }, [policy]);\n\n const onSubmit = (product) =>\n getEndorsementPremium(policy.ID, product).then(\n ({ CurrentPrice, PendingPrice, EndorsementPrice }) => {\n setPendingPrice(PendingPrice);\n setCurrentPrice(CurrentPrice);\n setEndorsementPrice(EndorsementPrice);\n setProduct(product);\n return { Policy: policy };\n }\n );\n\n return (\n <>\n {\n setShowEndorsementFlow(false);\n setShowNewPremium(false);\n setProduct({} as Product);\n }}\n onBack={() => {\n setShowEndorsementFlow(false);\n setShowNewPremium(false);\n setProduct({} as Product);\n }}\n title=\"Add a new item to your policy\"\n >\n \n \n {showEndorsementFlow && getPolicyForm()}\n {showNewPremium && (\n
    \n <>\n You're about to add a {product.Name} with a total insured value of{' '}\n \n {new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'usd',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n }).format(product.Price.Amount)}\n {' '}\n to your policy. If you add this item, your policy premium will change to the new\n amount below. Our team may reach out to you if further information is required.\n \n \n \n {pendingPrice?.Amount &&\n currentPrice?.Amount &&\n pendingPrice.Amount - currentPrice.Amount > 0 && (\n \n )}\n {endorsementPrice?.Amount && (pendingPrice?.Amount || currentPrice?.Amount) && (\n \n )}\n \n \n }\n onClick={() => {\n setShowEndorsementFlow(true);\n setShowNewPremium(false);\n }}\n >\n Back\n \n {\n e.preventDefault();\n setLoading(true);\n addEndorsement(policy.ID, product).then(({ Policy }) => {\n setPolicy(Policy);\n setLoading(false);\n setShowNewPremium(false);\n setProduct({} as Product);\n });\n }}\n >\n Add Item\n \n \n
    \n )}\n
    \n
    \n \n\n \n \n \n \n \n\n \n {policy.InsuredItems.map((item) => (\n onCancelEndorsement(item.ID || '')}\n onAddSerialNumber={() => onAddSerialNumber(policy, item.ID || '')}\n />\n ))}\n \n {policy.Type != PolicyType.chubbJewelry && (\n \n \n \n )}\n \n );\n};\n\nconst CoveragePageContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px 10px;\n\n .coverage-page-section-coverage-item--container {\n max-width: 100%;\n }\n`;\n\nconst PolicyDetails = (props: { policy: Policy }): JSX.Element => {\n const [policy, setPolicy] = React.useState(props.policy);\n const totalItems = [\n ...getPolicyCoverageItemsLongDescription(policy.Type).map((item) => (\n \n )),\n ...policy.Coverage.Options.filter((item) => item.Enabled).map((item) => (\n \n ))\n ];\n\n React.useEffect(() => {\n setPolicy(policy);\n }, [policy]);\n\n return (\n \n \n {totalItems}\n \n \n );\n};\n\nconst Setting = (props: React.PropsWithChildren<{ title: string; description: string }>) => (\n
    \n
    \n

    {props.title}

    \n

    \n {props.description}\n

    \n
    \n
    {props.children}
    \n
    \n);\n\nconst PolicySettings = (props: { policy: Policy }) => {\n const [policy, setPolicy] = React.useState(props.policy);\n const [loading, setLoading] = React.useState(false);\n const [updated, setUpdated] = React.useState(false);\n const [error, setError] = React.useState();\n\n React.useEffect(() => {\n setPolicy(props.policy);\n }, [props.policy]);\n\n const onUpdate = async (updatedPolicy: Policy) => {\n // Store the original policy so we can revert to it in case of an error\n const origPolicy = { ...policy };\n\n // Set the loading flag and tentatively update the policy with the\n // desired changes.\n setLoading(true);\n setUpdated(false);\n setError(undefined);\n setPolicy(updatedPolicy);\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 updatePolicyActivation(policy.ID, updatedPolicy);\n setPolicy(res.Policy);\n setUpdated(true);\n } catch (e) {\n // If there was an error, revert to the original policy\n const err = WrappedError.asWrappedError(e);\n setPolicy(origPolicy);\n setError(err.message);\n } finally {\n // In any case, set the loading flag to false\n setLoading(false);\n }\n };\n\n return (\n }>\n

    Policy Renewal

    \n \n onUpdate({ ...policy, DisableAutoRenew: !policy.DisableAutoRenew })}\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\nconst PolicyNavigationContainer = styled.ul`\n list-style: none;\n display: flex;\n margin: 0;\n padding: 0 0 0 0;\n flex-direction: row;\n gap: 24px;\n width: 100%;\n box-shadow: 0 1px 0 0 #f6f6f6;\n`;\n\nconst PolicyNavigationItemContainer = styled.li`\n display: block;\n text-align: center;\n\n a,\n a:visited {\n display: block;\n height: 100%;\n padding: 0px 0px 10px 0px;\n box-sizing: border-box;\n font-size: 0.9em;\n color: #666666;\n text-decoration: none;\n }\n\n a.active {\n color: #0ea5e9;\n font-weight: bold;\n box-shadow: 0 2px 0 0 #0ea5e9;\n }\n`;\n\nexport const PolicyPage = (props: { policy: Policy; account: AccountSummary }) => {\n const { url, path } = useRouteMatch();\n const [policy, setPolicy] = React.useState(props.policy);\n\n React.useEffect(() => {\n setPolicy(props.policy);\n }, [props.policy]);\n\n return (\n \n \n

    {getPolicyDisplayName(policy)} Insurance

    \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 * as React from 'react';\nimport { IoPricetagOutline } from 'react-icons/io5';\n\nimport { Switch, matchPath, Route as BrowserRoute, useHistory, useRouteMatch } from 'react-router';\nimport * as Sentry from '@sentry/react';\nconst Route = Sentry.withSentryRouting(BrowserRoute);\nimport {\n sdkCreatePolicy,\n sdkCreateTemporaryAttachments,\n sdkUpdatePolicy\n} from '@oysterjs/core/api/sdk';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { useReferralChannel } from '@oysterjs/core/analytics/attribution';\nimport apm from '@oysterjs/core/apm';\nimport { useUrlData } from '@oysterjs/core/url';\nimport {\n AttachmentFile,\n DefaultFileRoles,\n JewelryProduct,\n JewelryProductValidationKeys,\n Policy,\n PolicyType,\n Product,\n ValidationError\n} from '@oysterjs/types';\nimport { GetPolicyWrapper, Page } from '../page';\nimport { ProductInfoPage } from '../product';\nimport { CollectJewelryInfo, JewelryFormData } from './collect';\nimport ChubbInsuranceApp from './chubb/index';\nimport MinicoInsuranceApp from './minico/index';\n\nconst CollectJewelryInfoPage: React.FunctionComponent<\n React.PropsWithChildren<{ policy?: Policy }>\n> = (props) => {\n const urlData = useUrlData();\n const history = useHistory();\n const referralChannel = useReferralChannel();\n\n const onSubmit = (product: Product) => {\n const uploadAttachmentHandler = () => {\n const details = product.Details as JewelryProduct;\n const newFiles = details._AppraisalFiles;\n if (newFiles && newFiles.length > 0) {\n return sdkCreateTemporaryAttachments(\n DefaultFileRoles.purchaseReceipt,\n newFiles,\n details.AppraisalFileIDs\n );\n }\n return Promise.resolve(new Array());\n };\n\n return uploadAttachmentHandler().then((filesMetadata) => {\n const updatedDetails = {\n ...product.Details,\n _AppraisalFiles: undefined,\n AppraisalFileIDs: filesMetadata\n .map((metadata) => metadata.ID)\n .concat((product.Details as JewelryProduct).AppraisalFileIDs || [])\n };\n\n if (props.policy) {\n return sdkUpdatePolicy(\n {\n ...props.policy,\n InsuredItems: [\n {\n ...product,\n Details: updatedDetails\n }\n ]\n },\n true\n );\n }\n return sdkCreatePolicy(\n [\n {\n ...product,\n Details: updatedDetails\n }\n ],\n {\n integrationID: urlData.integrationID,\n referralChannel\n }\n );\n });\n };\n\n const onContinue = async (policy?: Policy) => {\n const currentPolicy = policy || props.policy;\n if (currentPolicy && currentPolicy.Type == PolicyType.chubbJewelry) {\n history.push(`/app/jewelry/v2/${currentPolicy.ID}/criteria`);\n } else if (currentPolicy && currentPolicy.Type == PolicyType.minicoJewelry) {\n history.push(`/app/jewelry/${currentPolicy.ID}/location`);\n } else {\n history.replace(`/app/jewelry/${currentPolicy?.ID}`);\n }\n };\n\n const price = props.policy?.InsuredItems?.[0].Price?.Amount;\n\n if (urlData?.appData && !urlData.appData.Details) {\n urlData.appData.Details = {} as JewelryProduct;\n }\n\n const initialFormData = props.policy\n ? {\n Price: price?.toString() || '',\n Name: props.policy.InsuredItems[0].Name,\n Description: props.policy.InsuredItems[0].Description,\n Details: props.policy.InsuredItems[0].Details as JewelryProduct\n }\n : urlData?.appData\n ? urlData.appData\n : { Price: '', Details: {} as JewelryProduct };\n\n return (\n \n );\n};\n\nconst pages: Array = [\n {\n path: '/app/jewelry/:id?',\n render: (props) => (\n \n \n \n \n \n {(policy) => }\n \n \n ),\n hasError: (validationError: ValidationError) =>\n JewelryProductValidationKeys.indexOf(validationError.Field as keyof JewelryProduct) > -1 ||\n validationError.Field === 'Attachment',\n icon: \n }\n];\n\nexport default (): JSX.Element => {\n // Side effect to trigger re-renders when the page changes\n useRouteMatch();\n\n const current = pages.findIndex((page) =>\n matchPath(window.location.pathname, {\n path: page.path,\n exact: true\n })\n );\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_page_change', {\n flow_type: 'jewelry',\n page_index: current,\n route: pages[current]?.path,\n path: window.location.pathname,\n query: window.location.search\n });\n }, [current]);\n\n return (\n <>\n \n {current >= 0 && }\n \n (\n \n \n \n \n \n

    Sorry!

    \n

    \n {JSON.parse(window.localStorage.getItem('underwriting_error') || '{}')\n .Message || null}\n

    \n
    \n \"\"\n
    \n
    \n
    \n )}\n >\n\n (\n \n \n \n \n \n \n )}\n />\n {pages.map((page) => (\n \n ))}\n \n \n \n \n \n \n
    \n
    \n \n );\n};\n","import * as React from 'react';\nimport { sdkCompletePolicy } from '@oysterjs/core/api/sdk';\n\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport apm from '@oysterjs/core/apm';\nimport { Policy, ReferralChannelType } from '@oysterjs/types';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { GetOysterEventNames } from '@oysterjs/core/analytics/googletags';\nimport { WrappedError, ErrorType, ErrorCode } from '@oysterjs/core/errors';\nimport { ButtonLink } from '@oysterjs/ui/Button';\nimport { IoArrowForward } from 'react-icons/io5';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\n\nconst PolicyCompletePage = (props: { policyId: string }): JSX.Element => {\n const [alreadyActivated, setAlreadyActivated] = React.useState(false);\n const [policy, setPolicy] = React.useState();\n const [error, setError] = React.useState('');\n const [dashboardRedirect, setDashboardRedirect] = React.useState();\n const [showAltText, setShowAltText] = React.useState(false);\n\n const analytics = useAnalytics();\n\n const handleActivate = async () => {\n try {\n const { Policy, Redirect } = await sdkCompletePolicy(props.policyId);\n // If user is already in the same domain, we only need to\n // push to the policy details route\n if (Redirect) {\n const redirectionUrl = new window.URL(Redirect);\n const locationUrl = new window.URL(window.location.toString());\n if (redirectionUrl.host === locationUrl.host) {\n setDashboardRedirect(`/policies/${Policy.ID}/overview`);\n } else {\n setDashboardRedirect(Redirect);\n }\n }\n setPolicy(Policy);\n setShowAltText(\n policy?.Coverage.ActivationTrigger != null &&\n policy.InsuredItems.some((i) => i.HasNotReceived)\n );\n\n analytics.event(GetOysterEventNames.ApplicationSubmitted, {\n policy_id: Policy.ID,\n policy_type: Policy.Type,\n referral_channel:\n Policy.ReferralChannelInfo?.ReferralChannel || ReferralChannelType.ReferralChannelDirect,\n ...Policy.ReferralChannelInfo?.Settings\n });\n } catch (e) {\n const err = WrappedError.asWrappedError(e);\n if (\n err.type() === ErrorType.preconditionFailed &&\n err.code() === ErrorCode.alreadySubmitted\n ) {\n setShowAltText(\n policy?.Coverage.ActivationTrigger != null &&\n policy.InsuredItems.some((i) => i.HasNotReceived)\n );\n setAlreadyActivated(true);\n return;\n }\n setError(err.message);\n }\n };\n\n React.useEffect(() => {\n handleActivate();\n }, [props.policyId]);\n\n React.useEffect(() => {\n apm().sendEvent('oyster.d2c.flow_complete', {\n flow_type: new URLSearchParams(window.location.search).get('flow'),\n policy_id: props.policyId\n });\n }, [props.policyId]);\n\n return (\n <>\n {!alreadyActivated && !policy && !error && (\n <>\n \n

    Just a moment...

    \n

    \n Thank you for choosing Oyster. We're glad you're joining us! Just one moment as we\n process your information...\n

    \n
    \n \n \n \n\n \n {error &&

    {error}

    }\n
    \n \n )}\n {(alreadyActivated || policy) && !showAltText && (\n <>\n \n

    You're all set!

    \n

    \n We're processing your application. We'll notify you via email once your coverage is\n activated.\n

    \n

    Thank you for choosing Oyster!

    \n \"\"\n
    \n {dashboardRedirect && (\n \n } primary href={dashboardRedirect}>\n Continue to Dashboard\n \n \n )}\n \n )}\n {(alreadyActivated || policy) && showAltText && (\n <>\n \n

    You're all set!

    \n

    \n If you entered a start date or tracking number, we will automatically activate your\n policy for you or you can manually activate it anytime. If you selected to manually\n activate, please activate your policy on your Oyster dashboard once the item has\n arrived.\n

    \n

    Thank you for choosing Oyster!

    \n \"\"\n
    \n {dashboardRedirect && (\n \n } primary href={dashboardRedirect}>\n Continue to Dashboard\n \n \n )}\n \n )}\n {error && (\n <>\n \n

    Oops!

    \n

    \n There was an error submitting your information. Please reach out to{' '}\n support@withoyster.com and we'll help\n resolve the issue.\n

    \n
    \n \n {error &&

    {error}

    }\n
    \n \n )}\n \n
    \n \n \n );\n};\n\nexport default (props: { policyId: string }): JSX.Element => (\n \n \n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport * as Sentry from '@sentry/react';\nimport { Route as BrowserRoute, useRouteMatch, useHistory } from 'react-router-dom';\n\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { PageSection } from '@oysterjs/ui/Page';\n\nimport {\n Policy,\n ElectronicsType,\n ProductType,\n PolicyType,\n Product,\n BikeProduct,\n PolicyState,\n AccountSummary\n} from '@oysterjs/types';\nimport { getPolicyDisplayImage, getPolicyDisplayName, getPolicyHref } from '@oysterjs/core/policy';\nimport { Badge } from '@oysterjs/ui/Badge';\nimport { IoArrowForward } from 'react-icons/io5';\nimport { getPolicyStatus } from './policy';\nimport { ButtonLink, Button } from '@oysterjs/ui/Button';\nimport BikeInsuranceApp from '@oysterjs/getoyster/pages/bike';\nimport JewelryInsuranceApp from '@oysterjs/getoyster/pages/jewelry';\nimport PhoneInsuranceApp from '@oysterjs/getoyster/pages/electronics';\nimport ElectronicsInsuranceApp from '@oysterjs/getoyster/pages/electronics';\nimport MotorInsuranceApp from '@oysterjs/getoyster/pages/motor';\nimport CompletePage from '@oysterjs/getoyster/pages/complete';\nimport {\n Box,\n BoxBadgeHeader,\n BoxItemImage,\n AlternateBoxTitle,\n LeftAlignBoxContents,\n BoxContainer\n} from '@oysterjs/ui/Box';\nimport { ComingSoon } from '@oysterjs/ui/Card';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { SlideOut } from '@oysterjs/ui/Modal/slideout';\nimport { Banner } from '@oysterjs/ui/Banner';\n\nconst policyList = [\n {\n types: ['minico_jewelry', 'chubb_jewelry', 'jewelry'],\n href: '/app/jewelry',\n title: 'Jewelry Insurance',\n description: 'For your rings, watches, bracelets, earrings, and more.',\n image: '/images/jewelry_insurance.svg'\n },\n {\n types: ['markel_bike', 'bike'],\n href: '/app/bike',\n title: 'Bike Insurance',\n description: 'For your bikes, eBikes, and scooters.',\n image: '/images/bike_insurance.svg'\n },\n {\n types: ['markel_offroad'],\n href: '/app/offroad_vehicle',\n title: 'ATV Insurance',\n description: 'For your ATVs, UTVs, and snowmobiles.',\n image: '/images/atv_insurance.svg',\n hideD2C: true\n },\n {\n types: ['markel_motorcycle'],\n href: '/app/motorcycle',\n title: 'Motorcycle Insurance',\n description: 'For your motorcycles.',\n image: '/images/motorcycle_insurance.svg',\n hideD2C: true\n },\n {\n types: ['worth_ave_electronics', 'phone'],\n href: '/app/phone',\n title: 'Phone Insurance',\n description: 'For your iPhone or other mobile phone.',\n image: '/images/phone_insurance.svg'\n },\n {\n types: ['worth_ave_electronics', 'electronics'],\n title: 'Electronics Insurance',\n href: '/app/electronics',\n description: 'For your laptops, cameras, tablets, and more.',\n image: '/images/electronics_insurance.svg'\n },\n {\n types: ['collectibles'],\n title: 'Collectibles Insurance',\n description: 'For your fine art, rare collectibles, and more.',\n image: '/images/collectibles_insurance.svg'\n }\n // {\n // type: 'accessories',\n // title: 'Accessory Insurance',\n // description: 'For your clothing, handbags, and wearables.',\n // image: '/images/accessories_insurance.svg'\n // },\n // {\n // type: 'sports',\n // title: 'Sports Insurance',\n // description: 'For your golf clubs, fishing poles, and equipment.',\n // image: '/images/sports_insurance.svg'\n // },\n // {\n // type: 'instruments',\n // title: 'Instrument Insurance',\n // description: 'For your pianos, guitars, saxophones, and more.',\n // image: '/images/instruments_insurance.svg'\n // }\n];\n\nconst getPolicyBadge = (policy: Policy, account: AccountSummary): JSX.Element => {\n const status = getPolicyStatus(policy, account);\n return ;\n};\n\nconst getProductTypeFromPolicy = (policy: Policy): string => {\n return policy.InsuredItems[0]?.Details?.Type;\n};\n\nexport const PoliciesPage = ({\n policies,\n account\n}: {\n policies: Policy[];\n account: AccountSummary;\n}): JSX.Element => {\n const { url } = useRouteMatch();\n const history = useHistory();\n\n const noAppPolicies = policyList\n .filter(\n (p) =>\n !policies?.find((pp) => {\n // filter electronics policy type\n if (p.types.includes(PolicyType.worthAveElectronics)) {\n // hide electronics policy if purchased\n if (\n p.types.includes(ProductType.electronics) &&\n [\n ElectronicsType.laptop,\n ElectronicsType.iPad,\n ElectronicsType.smallElectronics,\n ElectronicsType.gamingSystem,\n ElectronicsType.eReaderKindle,\n ElectronicsType.tablet\n ].includes(pp.InsuredItems[0]?.Details?.Type as ElectronicsType)\n ) {\n return true;\n }\n // hide phone policy if purchased\n else if (\n p.types.includes(ProductType.phone) &&\n [ElectronicsType.iPhone, ElectronicsType.smartPhone].includes(\n pp.InsuredItems[0]?.Details?.Type as ElectronicsType\n )\n ) {\n return true;\n }\n return false;\n }\n\n return p.types.includes(pp.Type);\n })\n )\n .filter((p) => !p.hideD2C);\n\n const applyPolicies = noAppPolicies.filter((p) => !!p.href);\n const comingSoonPolicies = noAppPolicies.filter((p) => !p.href);\n\n const [showPolicyAppModal, setShowPolicyAppModal] = React.useState(false);\n\n React.useEffect(() => {\n setShowPolicyAppModal(!url.match('/policies'));\n }, [url]);\n\n return (\n <>\n {\n setShowPolicyAppModal(false);\n history.push('/policies');\n }}\n onBack={() => {\n setShowPolicyAppModal(false);\n history.push('/policies');\n }}\n title=\"Add a new Policy\"\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

    Your Policies

    \n {policies.length === 0 && (\n
    \n \n

    You don't have any policies yet. Get one below!

    \n
    \n )}\n {policies.length > 0 && (\n \n {policies.map((policy) => (\n \n {getPolicyBadge(policy, account)}\n \n {getPolicyDisplayName(policy) + ' Insurance'}\n
    \n \n
    \n {getPolicyStatus(policy, account).description}\n
    \n }\n >\n {getPolicyStatus(policy, account).buttonText}\n \n
    \n
    \n
    \n ))}\n
    \n )}\n
    \n {applyPolicies.length > 0 && (\n \n

    Get New Policies

    \n \n {applyPolicies.map(\n (p) =>\n p.href && (\n \n \n {p.title}\n
    \n \n
    {p.description}
    \n {\n setShowPolicyAppModal(true);\n history.push(p.href);\n e.stopPropagation();\n }}\n icon={}\n >\n Apply\n \n
    \n
    \n
    \n )\n )}\n
    \n
    \n )}\n {comingSoonPolicies.length > 0 && (\n \n

    Coming Soon

    \n \n {comingSoonPolicies.map(\n (p) =>\n !p.href && (\n \n \n {p.title}\n
    \n \n
    {p.description}
    \n \n
    \n
    \n
    \n )\n )}\n
    \n
    \n )}\n \n );\n};\n\nexport const BikeSerialNumberBanner = (props: { policies?: Policy[] }): JSX.Element => {\n const isPolicySubmittedOrActive = (policy: Policy): boolean => {\n return (\n policy.State === PolicyState.applicationSubmitted ||\n policy.State === PolicyState.policyBinding ||\n policy.State === PolicyState.policyInforce\n );\n };\n\n const getSerialNumberLink = (policy: Policy, product: Product): string => {\n return `/policies/${policy.ID}/items/${product.ID}/serialnumber`;\n };\n\n const [pendingLinks, setPendingLinks] = React.useState([]);\n React.useEffect(() => {\n let pending: string[] = [];\n props.policies?.forEach((policy) => {\n if (\n isPolicySubmittedOrActive(policy) &&\n (policy.Type == PolicyType.bike || policy.Type == PolicyType.markelBike)\n ) {\n pending = [\n ...pending,\n ...policy.InsuredItems.filter(\n (item) =>\n item.Type === ProductType.bike && !(item.Details as BikeProduct).FrameSerialNumber\n ).map((item) => getSerialNumberLink(policy, item))\n ];\n }\n });\n\n setPendingLinks(pending);\n }, [props.policies]);\n\n return (\n <>\n {pendingLinks.length > 0 && (\n }>\n Provide Serial Number\n \n }\n >\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 { PageSection, TwoPaneContainer } from '@oysterjs/ui/Page';\nimport { getUser } from '@oysterjs/core/auth';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { getReferralList } from '@oysterjs/core/api/user';\nimport { VerticalLayout, VerticalLayoutItem } from '@oysterjs/ui/VerticalLayout';\nimport config from '@oysterjs/core/config';\nimport { ReferralStatus, User } from '@oysterjs/types';\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 switch (config().environment) {\n case 'production':\n return 'https://withoyster.com/invite';\n case 'staging':\n return 'https://withoyster.com/invite-staging';\n case 'dev':\n case 'local':\n return 'https://withoyster.com/invite-local';\n }\n};\n\nexport const InvitePage = (): JSX.Element => {\n const handle = getUser()?.PublicHandle;\n const link = `${getInviteLinkHost()}/${handle}`;\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

    Invite a Friend

    \n

    \n Refer a friend to Oyster and you'll both receive a $20 Amazon gift card after they sign up\n and purchase their first policy.\n

    \n \n\n

    Share your link

    \n

    \n You can earn up to $100 in gift card credits per calendar year.\n

    \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};\n","import * as Sentry from '@sentry/react';\nimport {\n Switch,\n Route as BrowserRoute,\n Redirect,\n useRouteMatch,\n useHistory\n} from 'react-router-dom';\n\nconst Route = Sentry.withSentryRouting(BrowserRoute);\n\nimport { getAccountSummary, getPolicies, getPolicy } from '@oysterjs/core/api/user';\nimport { getClaim, getClaims } from '@oysterjs/core/api/claims';\nimport { Loadable } from '@oysterjs/ui/Loadable';\nimport { PageContainer } from '@oysterjs/ui/Page';\nimport { ClaimState } from '@oysterjs/types';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\n\nimport { NavBar } from './navbar';\n\nimport { AccountPage } from './account';\nimport { ClaimPage, ClaimsPage, ResumeClaimsPage } from './claims';\nimport { EditPolicyPage } from './edit';\nimport { PoliciesPage } from './policies';\nimport { PolicyPage } from './policy';\nimport { InvitePage } from './invite';\n\nconst AsyncPoliciesPage = () => (\n \n {([policies, account]) => }\n \n);\n\nconst AsyncClaimsPage = () => (\n \n {([d, p]) => }\n \n);\n\nconst AsyncPolicyPage = ({ policyId }: { policyId: string }) => (\n \n {([policy, account]) => }\n \n);\n\nconst AsyncEditPolicyPage = ({ policyId }: { policyId: string }) => (\n {() => }\n);\n\nconst AsyncClaimPage = ({ claimId }: { claimId?: string }) => (\n \n {([d, p]) => }\n \n);\n\nconst AsyncAccountPage = () => (\n \n {(account) => }\n \n);\n\nconst AsyncResumeClaimPage = () => {\n const history = useHistory();\n return (\n \n {(d) => {\n const notFinished = d.Claims.filter(\n (c) => c.State != ClaimState.denied && c.State != ClaimState.settled\n );\n if (notFinished.length === 0) {\n history.push('/claims/start');\n return null;\n }\n\n return ;\n }}\n \n );\n};\n\nexport default (): JSX.Element => {\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 \n \n \n \n \n \n \n \n \n \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 '@oysterjs/ui/Button';\nimport { userSignInComplete, userSignInInit, userSignUp } from '@oysterjs/core/api/auth';\nimport { useAuth } from '@oysterjs/core/auth';\nimport { OysterLogo } from '@oysterjs/ui/Logo';\nimport { PageContainer, PageSection } from '@oysterjs/ui/Page';\nimport { DigitsInput } from '@oysterjs/ui/Form/digits';\nimport { TextInput } from '@oysterjs/ui/Form/text';\nimport { ValidationError } from '@oysterjs/types';\nimport { FormColumn, FormContainer } from '@oysterjs/ui/Form/builder';\nimport { FormRow } from '@oysterjs/ui/Form/builder';\nimport { useAnalytics } from '@oysterjs/core/analytics/analytics';\nimport { Spinner } from '@oysterjs/ui/Spinner';\nimport { confirmAccount, getAccountSummary } from '@oysterjs/core/api/user';\nimport ErrorBoundary from '@oysterjs/ui/ErrorBoundary';\nimport { ErrorType, WrappedError } from '@oysterjs/core/errors';\n\nconst SignInContainer = styled.div`\n width: 100%;\n display: flex;\n margin: 40px 0px;\n gap: 20px;\n\n @media (max-width: 700px) {\n flex-direction: column;\n align-items: center;\n gap: 40px;\n }\n`;\n\nconst SignInPane = styled.div`\n width: 50%;\n max-width: 360px;\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 handleLogin = () => {\n setLoading(true);\n setTimeout(\n () =>\n userSignInInit(email)\n .then(() =>\n history.push(\n `/signin?email=${encodeURIComponent(email)}${\n props.redirect ? `&redirect=${encodeURIComponent(props.redirect)}` : ''\n }`\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

    Sign In

    \n \n Don't have an account yet? 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 {error &&

    {error}

    }\n
    \n\n \n
    \n
    \n );\n};\n\nconst SignUpPage = (props: { code?: string; email?: string }) => {\n const history = useHistory();\n\n const [formData, setFormData] = React.useState({\n FirstName: '',\n LastName: '',\n Email: props.email || '',\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 setData = (field: string, value: string) => {\n if (validationError?.Field === field) {\n setValidationError(undefined);\n }\n setFormData((prev) => ({\n ...prev,\n [field]: value\n }));\n };\n\n const handleLogin = () => {\n setLoading(true);\n setTimeout(\n () =>\n userSignUp({\n Insured: {\n FirstName: formData.FirstName,\n LastName: formData.LastName,\n Email: formData.Email\n },\n AccessCode: formData.AccessCode\n })\n .then(() => history.push(`/signin?email=${encodeURIComponent(formData.Email)}`))\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 })\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

    Create Account

    \n \n Already have an account? Sign in.\n

    \n \n \n \n setData('FirstName', e.currentTarget.value)}\n autoComplete=\"given-name\"\n />\n \n \n \n \n setData('LastName', e.currentTarget.value)}\n autoComplete=\"family-name\"\n />\n \n \n \n \n setData('Email', e.currentTarget.value)}\n inputMode=\"email\"\n autoComplete=\"email\"\n />\n \n \n \n \n }\n icon={}\n loading={loading}\n onClick={() => handleLogin()}\n >\n Sign Up\n \n

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

    \n
    \n
    \n
    \n {error &&

    {error}

    }\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 const analytics = useAnalytics();\n\n const resendCode = () => {\n setResending(true);\n setTimeout(\n () =>\n userSignInInit(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 userSignInComplete(props.email, code)\n .then((res) => {\n setLoading(false);\n setAuth(res);\n\n // Identify user to metrics platforms\n // TODO: currenlty we only attribute their ID, could put more info in the future\n analytics.identify(res.User.ID);\n\n history.push(props.redirect ? props.redirect : '/');\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={() => handleLogin(code)}\n loading={loading}\n >\n Continue\n \n \n \n\n {error &&

    {error}

    }\n
    \n \n \n \n );\n};\n\nconst AuthSignIn = (props: { token: string; redirect?: string }) => {\n const history = useHistory();\n const analytics = useAnalytics();\n const [error, setError] = React.useState('');\n\n const handleLogin = (token: string) => {\n window.localStorage.setItem(\n 'oyster_token',\n JSON.stringify({\n Token: token\n })\n );\n setTimeout(\n () =>\n confirmAccount(props.redirect).then(() => {\n getAccountSummary()\n .then((res) => {\n if (res.User) {\n window.localStorage.setItem(\n 'oyster_token',\n JSON.stringify({\n Token: token,\n User: res.User\n })\n );\n analytics.identify(res.User?.ID);\n history.push(props.redirect ? props.redirect : '/policies');\n }\n })\n .catch((err) => {\n setError(err.message);\n });\n }),\n 500\n );\n };\n\n React.useEffect(() => {\n handleLogin(props.token);\n }, [props.token]);\n\n return (\n \n \n {error &&

    {error}

    }\n
    \n );\n};\n\nconst SignInCompleteWrapper = (props: {\n children: (data: {\n code?: string;\n email?: string;\n redirect?: string;\n token?: string;\n }) => JSX.Element | null;\n}) => {\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 const token = params.get('token') || undefined;\n\n return (\n \n \n \n \n {props.children({ code, email, redirect, token })}\n \n );\n};\n\nexport const SignIn = (): JSX.Element => (\n \n {({ code, email, redirect, token }) => {\n if (email) {\n return ;\n }\n\n if (token) {\n return ;\n }\n\n return ;\n }}\n \n);\n\nexport const SignUp = (): JSX.Element => (\n \n {({ code, email }) => }\n \n);\n","import React from 'react';\nimport ReactGA from 'react-ga4';\nimport { useHistory } from 'react-router';\n\nexport const useGA = (trackingId: string): void => {\n useHistory();\n\n React.useEffect(() => {\n ReactGA.initialize(trackingId);\n }, []);\n\n React.useEffect(() => {\n const obj = { hitType: 'pageview', page: window.location.pathname + window.location.search };\n ReactGA.send(obj);\n }, [window.location.href]);\n};\n","import { init as initApm } from '@oysterjs/core/apm';\ninitApm();\n\nimport { init as initAppConfiguration } from '@oysterjs/core/api/appConfiguration';\ninitAppConfiguration();\n\nimport './style.scss';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport {\n BrowserRouter as Router,\n Switch,\n Route as BrowserRoute,\n useRouteMatch,\n useHistory\n} 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 PolicyholderDashboardPage from './pages/PolicyholderDashboard';\nimport { SignIn, SignUp } from './pages/SignIn';\nimport { useAuth } from '@oysterjs/core/auth';\nimport { useGA } from '@oysterjs/core/ga';\nimport { useGoogleTags } from '@oysterjs/core/analytics/googletags';\nimport { HubspotChatContextProvider } from '@oysterjs/core/hubspot';\n\nconst Authenticated = (props: React.PropsWithChildren) => {\n const [auth] = useAuth();\n const history = useHistory();\n const match = useRouteMatch();\n\n React.useEffect(() => {\n if (!auth.Token && match.path !== '/signin') {\n history.push('/signin');\n }\n }, [auth.Token]);\n\n if (!auth.Token && match.path !== '/signin') {\n return null;\n }\n\n return <>{props.children};\n};\n\nconst App = () => {\n if (config().environment === 'production') {\n useGA('G-MX1C87Q096');\n useGoogleTags();\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

    404

    \n
    \n
    \n
    \n );\n};\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"names":["ProductType","BikePowerSource","ActivationSource","MotorProductValidationKeys","BikeProductValidationKeys","ElectronicsType","ElectronicsProductValidationKeys","JewelryProductValidationKeys","Cadence","PolicyState","PolicyType","ReferralSubChannel","ReferralChannelType","BikeUsageType","MarkelPersonalCharacteristicFlag","JewelryUnderwritingFlag","JewelryStorageLocationFlag","OptionType","DefaultFileRoles","ClaimState","ClaimType","ClaimSectionItemType","ReferralStatus","VerificationStatus","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","getPolicies","getPolicy","policyId","userCreatePolicy","products","getAccountSummary","redirectUrl","confirmAccount","getAccountStatement","statementId","retrieveVerificationSession","deletePaymentMethod","makePaymentMethodDefault","createPaymentMethod","d","getReferralList","userGetPaymentSession","userCompletePolicy","userIdentify","firstName","lastName","getClaims","getClaim","claimId","createClaim","productId","resetClaim","updateClaim","claim","deleteClaim","submitClaim","createClaimAttachments","group","files","form","file","deleteClaimAttachment","attachmentId","Spinner","color","size","centerHorizontal","jsx","background","width","undefined","LoadableContainer","styled","div","props","inline","Loadable","setData","exactlyOnce","then","children","hideSpinner","FooterStandardContainer","FooterContainer","FooterLinksContainer","OysterCopyright","opacity","CustomFooter","policyType","chubbJewelry","Fragment","FooterStandard","jsxs","serviceName","FooterMinimalContainer","FooterMinimal","PaneContainer","gap","Pane","paneWidth","TwoPaneContainer","leftPaneWidth","rightPane","PageContainerDiv","isNaN","Number","marginTop","marginRight","marginBottom","marginLeft","PageContainer","footerStyle","FooterStyle","footerTextColor","PageSection","customPadding","noPadding","noBorder","centered","ErrorIllustration","img","forceMobile","ErrorContainer","ErrorDetailsContainer","ErrorDetailContainer","ErrorDetailTitle","ErrorDetailDescription","pre","ErrorDetail","title","description","ErrorCopyData","button","ErrorDetails","copied","setCopied","clipboard","writeText","errorData","setTimeout","IoCheckmark","IoClipboard","ErrorComponent","toString","transaction","getSession","pageLoadId","filter","margin","map","join","ErrorBoundary","constructor","state","getDerivedStateFromError","componentDidCatch","captureError","render","useWindowScrollPosition","scrollPosX","setScrollPosX","useState","scrollX","scrollPosY","setScrollPosY","scrollY","useEffect","onscroll","useWindowDimensions","innerWidth","setInnerWidth","innerHeight","setInnerHeight","onresize","OysterLogoContainer","OysterLogo","scale","verticalAlign","light","textTransform","LeftMenuContainer","NavItem","li","RightMenuContainer","DesktopNavBar","useRouteMatch","NavLink","display","alignItems","replace","IoPerson","HamburgerMenu","HamburgerMenuItemContainer","HamburgerMenuItem","link","onClick","label","MobileNavBar","expanded","setExpanded","prev","e","preventDefault","IoMenu","cursor","borderRadius","padding","TopBarContainer","ol","NavBar","UnstyledLink","a","ButtonContainerComponent","center","ButtonContainer","ButtonComponent","primary","loading","disabled","ButtonDivComponent","ButtonLink","Button","match","target","Link","textDecoration","ButtonDiv","leftIcon","icon","cloneElement","onPointerUp","style","UnstyledButton","LinkComponent","STRIPE_PUBLIC_KEY","secrets","stripePublicKey","stripe","loadStripe","apiVersion","getStripe","Table","table","BadgeContainer","Badge","textColor","BannerContainer","ContentContainer","IconContainer","TextContainer","ActionContainer","TitleText","DescriptionText","Banner","IoInformationCircleOutline","bannerAction","Overlay","disableMobileView","Popup","ContentBox","CloseIcon","BackIcon","Header","position","justifyContent","headerContents","IoClose","onClose","onBack","IoArrowBack","Modal","flexWrap","overflow","transform","flexDirection","flexGrow","minHeight","stopPropagation","ErrorDisplay","TextInputComponent","input","currency","TextInput","forwardRef","ref","left","top","NumericFormat","SuggestionsContainer","Suggestions","suggestions","s","onSelect","AutocompleteTextInput","selectedSuggestion","setSelectedSuggestion","onChange","currentTarget","length","suggestion","index","onSelectSuggestion","TextAreaInputComponent","textarea","TextAreaInput","tagId","GetOysterEventNames","install","scriptId","head","script","tagScript","useGoogleTags","GoogleTagAnalytics","name","properties","tagEvent","convertEvent","AggregateAnalytics","useAnalytics","analytics","CheckboxContainer","checked","Checkbox","useId","RequirementItem","RequirementItemContainer","RequirementCheckboxContainer","RequirementContentContainer","RequirementTitle","RequirementDescription","getStaticFileUrl","getSamplePolicyUrl","type","getDocumentUrl","getPolicyDocumentUrl","PaymentMethod","fontSize","paymentMethod","Brand","FaCcVisa","FaCcMastercard","FaCcDiscover","FaCcAmex","FaCreditCard","fontWeight","charAt","toUpperCase","substring","LastFour","ExpMonth","ExpYear","PaymentDisclosure","disclosure","bike","markelBike","minicoJewelry","worthAveElectronics","SubmissionDisclosure","PaymentCollection","setLoading","setError","hasConsent","setHasConsent","useStripe","elements","useElements","handleSubmit","event","PaymentSubmitted","options","confirmParams","return_url","returnUrl","setupOnly","confirmSetup","confirmPayment","PaymentElement","terms","card","defaultValues","billingDetails","defaultName","defaultEmail","hideLegal","underwriter","paddingBottom","IoLockClosed","IoArrowForward","continueLabel","ShowDefaultPayment","history","useHistory","confirmPaymentIntent","push","origin","catch","finally","defaultPayment","PaymentMethodInput","getPaymentIntent","clientSecret","Elements","fonts","family","weight","src","unicodeRange","appearance","theme","variables","fontFamily","fontSizeBase","fontWeightNormal","colorPrimary","colorBackground","colorText","colorDanger","spacingGridRow","spacingGridColumn","rules","letterSpacing","border","boxShadow","borderColor","userSignUp","userSignInInit","userSignInComplete","code","userSignOut","Route","Sentry","BrowserRoute","PolicyStatementContainer","PolicyStatement","borderTop","paddingRight","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","total","PolicyLineItemContainer","PolicyLineItem","maxWidth","PolicyTotalContainer","PolicyTotal","subtotal","taxrate","taxtotal","PropertyList","ul","PropertyListItem","StatementPage","date","DateTimeFormat","month","year","Date","statement","StatementDate","PolicyStatements","Name","Total","LineItems","Title","Description","Price","Amount","Adjustments","SubTotal","TaxTotal","TaxRate","Currency","GeneratedAt","toUTCString","BillingPage","account","setAccount","showAddPaymentMethod","setShowAddPaymentMethod","showDeleteConfirmation","setShowDeleteConfirmation","showMakeDefaultConfirmation","setShowMakeDefaultConfirmation","textAlign","PaymentMethods","Default","IoStar","IoTrashOutline","AsyncStatementPage","Statement","AccountHeaderContainer","ProfileImage","AccountDetailsContainer","AccountNavigationContainer","AccountNavigationItemContainer","HeaderContainer","ProfileActionsContainer","AccountHeader","signOut","IdentityVerification","setStripe","verification","setVerification","badge","text","action","paddingLeft","handleVerify","secret","verifyIdentity","Verification","onVerify","VerificationSession","Secret","Status","started","RequiresInput","Error","pending","Processing","denied","verified","Verified","canceled","Canceled","VerifyIdentityBanner","accountSummary","Promise","hasAction","AccountPage","FirstName","LastName","CreatedAt","Switch","Redirect","VerticalLayoutContainer","invertedIcon","activeIconColor","VerticalLayoutItemContainer","inactive","last","VerticalLayoutIconContainer","VerticalLayoutDetailsContainer","VerticalLayout","VerticalLayoutItem","useDynamicRefs","refs","setRefs","getRef","setRef","existingRef","createRef","DatePickerContainer","DatePicker","DayPicker","RadioContainer","Radio","CardGallery","comingSoon","CardContents","ComingSoon","success","setSuccess","IoCheckmarkOutline","SlimCardContainer","selected","SlimCardImage","SlimCardContents","CheckmarkBox","TitleBadge","SelectableOptionCard","image","titleAction","flex","IoCheckmarkSharp","getPolicyDisplayName","policy","Type","markelOffroad","markelMotorcycle","iPhone","smartPhone","includes","InsuredItems","Details","getPolicyHref","Coverage","ActivationTrigger","some","HasNotReceived","Source","ManuallyActivate","State","applicationSubmitted","unknown","offerSubmitted","getPolicyDisplayImage","phone","getProductDisplayName","offroad","motorcycle","PowerSource","jewelry","electronics","getProductDisplayImage","overrideUrl","getPolicyFromProduct","getPolicyOptionalCoverageItem","itemId","getPolicyCoverageItems","getPolicyCoverageItemsLongDescription","AttachmentContainer","uploading","formatSize","Math","round","Attachment","IoAttachOutline","onRemove","MAPBOX_PUBLIC_KEY","mapboxPublicKey","getLocationSuggestions","address","fetch","encodeURI","status","features","place_name","coordinates","getMapURL","longitude","latitude","zoomLevel","height","FormContainer","FormRowContainer","singleItem","breakMobile","FormRowHeaderContainer","paddingTop","FormRowHeaderDescription","FormRowHeaderTitle","FormRowError","FormRow","FormRowHeader","FormColumnContainer","FormColumnTitle","FormColumnDescription","FormColumnContents","FormColumn","formColumnStyle","FormColumnStyle","optional","Children","isValidElement","child","AddressInput","setState","initialAddress","setSuggestions","setValidationError","Message","ConditionalWrapper","condition","wrap","AddressInputForm","initialValue","businessName","streetAddress","streetAddressLine2","aptFloor","aptUnit","city","zipCode","fn","next","showBusinessName","AddressAutofill","showSecondLine","singleSecondLine","SwitchContainer","SwitchLabel","enabled","ProductSection","selectedProductId","setSelectedProductId","onContinue","ImageURL","getFieldKey","fields","getData","Data","getClaimIcon","claimType","theft","IoShield","damage","IoBandage","injury","IoMedkit","liability","IoHammer","other","IoSad","electricalBreakdown","IoFlash","mechanicalBreakdown","IoCog","naturalDisaster","IoBonfire","waterDamage","IoWater","CrackedScreen","IoLayers","SpillOrLiquid","SomethingElse","Fire","IoFlame","Flood","Lightning","Wind","IoRainy","TheftFromHome","IoHome","TheftAwayFromHome","IoLocation","LostInTransport","IoAirplane","Yes","No","IoCloseSharp","SelectSection","autoContinue","Types","component","sectionItem","Item","setSelected","section","Field","SubField","AllowedValues","Value","Icon","CheckboxSection","TextSection","Required","setText","DateSection","valueOf","setDate","toISOString","day","today","setHours","getTime","getDate","getLocationSectionState","AddressField","parseFloat","LongitudeField","LatitudeField","LocationSection","LongTextSection","resize","UploadGroupContainer","dragging","UploadGroupCheckboxContainer","UploadGroupContentContainer","UploadGroupDescription","UploadGroupContent","UploadGroupHeaderContainer","getFilesFromEvent","dataTransfer","items","kind","getAsFile","UploadSection","setDragging","attachRef","claimAttachments","setClaimAttachments","Attachments","fileList","setFileList","validationErrors","setValidationErrors","completed","uploadFiles","asWrappedError","getValidationError","slice","addFiles","onDragEnter","onDragLeave","onDragOver","dropEffect","onDrop","Array","from","current","click","IoEllipseOutline","IoCheckmarkCircle","Size","ConfirmSection","submit","Confirmation","ClaimActionsContainer","getClaimBadge","collectingInformation","awaitingProcessing","settled","relativeTimeString","start","end","formatter","RelativeTimeFormat","units","unit","diff","abs","floor","ClaimsTable","claims","setClaims","showDeleteClaimConfirmation","setShowDeleteClaimConfirmation","Claims","Product","UpdatedAt","ResumeClaimsPage","startClaim","claimsPhrase","ClaimsPage","policies","p","policyInforce","hasNoClaims","requireVerification","verificationPending","shouldDisableClaimCTA","startClaimCTALabel","getClaimURL","find","c","ClaimSectionOuter","active","ClaimSectionItem","subTitle","ClaimPage","setClaim","sections","setSections","sectionContinued","setSectionContinued","sectionAtOffset","offset","sectionIndex","findIndex","isInactive","sectionKey","bottom","elem","offsetTop","nextSectionKey","nextElem","field","newClaim","split","doUpdateClaim","currentSections","Sections","flatMap","Items","newSections","Claim","reduce","curr","NextError","prevSection","doSubmit","createOrResetClaim","pr","createSection","sectionIcons","select","IoTrailSign","IoCalendarClear","longText","IoDocumentText","upload","IoCloudUpload","confirm","IoPencil","sectionTypeMap","checkbox","sectionItems","needsContinueButton","needsSubmitButton","IoFlag","SubTitle","v","scrollTo","behavior","Pending","ViewClaimPage","tt","t","IncidentDate","toLocaleDateString","trim","paragraph","URL","Policy","toLocaleString","SelectInput","Carat","Select","option","displayValue","UnstyledSelect","initialSelected","transition","SliderContainer","RangeInput","Slider","min","max","interval","setValue","labelRef","pos","offsetWidth","val","parseInt","backgroundSize","CoverageSectionContainer","CoverageSectionTitleContainer","CoverageSection","EndorsementsPanelContainer","small","EndorsementsPanel","Endorsements","PurchaseSection","EditPolicyPage","getV","random","CollectBikeInfo","validate","formData","Make","Model","test","ModelYear","FrameType","TotalInsuredValue","PurchaseYear","getFullYear","onAddAnother","onNext","onAdd","addAnother","add","onAddSingle","onSubmit","callback","SKU","Quantity","IsPendingSerialNumber","FrameSerialNumber","none","pedalAssist20MPH","CanUnlock","IsSecondHandPurchase","isAdding","isEditing","addEndorsement","getEndorsementPremium","cancelEndorsement","TooltipContainer","backgroundColor","Tooltip","AttachmentLozengeContainer","AttachmentLozenge","AttachmentCheckboxContainer","AttachmentContentContainer","AttachmentDescription","AttachmentContent","AttachmentHeaderContainer","ChildrenContainer","AttachmentUploader","useRef","existingAttachmentsList","setExistingAttachmentsList","newAttachmentsList","setNewAttachmentsList","attachments","newAttachment","uploadedAttachment","onAttachmentsAdded","indexOf","multiple","attachment","onAttachmentRemoved","allowDeleteExisting","newIndex","splice","DEPRECATED_ATTRIBUTION_COOKIE","ATTRIBUTION_COOKIE","TRACKING_COOKIE","COOKIE_TYPE","getPageHistory","getParametersString","paramsCopy","isMerchantReferral","getCookieData","useReferralChannel","useCookies","source","campaign","cookies","Cookies","k","JEWELRY_VALUE_RECEIPT_REQUIRED","TooltipContent","isReceiptRequired","price","CollectJewelryInfo","fileLength","AppraisalFileIDs","_AppraisalFiles","fileId","_","updatedFiles","IsNewPurchase","InSafe","CollectElectronicsInfo","productTypeDisplayName","Manufacturer","SerialNumber","PurchaseReceiptFileIDs","_PurchaseReceiptFiles","skipReceiptUpload","tablet","iPad","ProductInfoPage","setFormData","initialFormData","NextValidationError","hasError","MultiProductInfoPage","formDataConstructor","savedProducts","setSavedProducts","formExpanded","setFormExpanded","editingProduct","setEditingProduct","addOnly","collapse","SavedProductListContainer","SavedProduct","idx","Expandable","createElement","ExpandableTitle","expandable","disabledExpansion","onExpand","IoChevronDown","IoChevronForward","SavedProductContainer","SavedProductInfoContainer","SavedProductCheckmarkContainer","SavedProductDetailsContainer","SavedProductName","SavedProductDetail","SavedProductPriceContainer","ActionsContainer","getDetail","details","getInsuredValue","Action","onEdit","IoDuplicate","onDuplicate","IoTrash","CoverageItemContainer","CoverageItemCheckboxContainer","CoverageItemDetailsContainer","CoverageItemTitle","CoverageItemDescription","CoverageItemCheckbox","CoverageItem","iconColor","CoveragePageSectionContainer","CoveragePageSectionTitle","CoveragePageSectionContent","CoveragePageSection","BoxContainer","Box","BoxBadgeHeader","BoxItemImage","AlternateBoxTitle","BoxTitle","BoxContents","BoxDescription","LeftAlignBoxContents","BoxItem","className","SlideOutContainer","wide","HeaderButtonContainer","SlideOut","overflowState","setOverflowState","document","body","showing","CSSTransition","getPolicyToActivate","updatePolicyActivation","confirmActivationPolicy","overrideManualActivationTrigger","validateUserActivationPolicy","updatedPolicy","sdkGetPolicy","sdkCreatePolicy","sdkUpdatePolicy","isD2CFlow","sdkValidatePolicy","sdkGetPaymentSession","sdkCompletePolicy","sdkCreateTemporaryAttachments","fileRole","existingFileIDs","debounce","func","waitFor","timeout","args","PORTAL_ID","HubspotChatContext","createContext","HubspotChatContextProvider","chat","useHubspotChat","portalId","scriptLoaded","setScriptLoaded","manualIdentification","setManualIdentification","useLocation","updateIdentification","token","hsConversationsSettings","identificationEmail","identificationToken","_hsq","remove","trackPageView","pathname","search","identify","manual","refreshWidget","HubSpotConversations","clear","resetWidget","widget","load","loadImmediately","hsConversationsOnReady","defer","appendChild","removeChild","updatedIdentification","GetPolicyWrapper","promise","preconditionFailed","alreadySubmitted","ExistingUserWrapper","PageWrapper","hubspot","setPolicy","currentPageIndex","pages","matchPath","page","exact","onUpdate","forceUpdate","nextPageIndex","Underwriting","Insured","underwritingError","ProgressContainer","ProgressBarContainer","ProgressBarTrack","ProgressBarInner","ProgressStepContainer","ProgressStep","filled","ProgressBar","percentage","toFixed","Progress","numSteps","isFinite","steps","isArray","keys","currentStep","step","getPaymentPageText","activationTrigger","SetStartDate","StartDate","TrackingNumber","getPaymentPage","Underwriter","OptionContainer","OptionCheckboxContainer","OptionImageContainer","OptionContentContainer","OptionDescription","OptionContent","OptionHeaderContainer","OptionHeader","OptionGroup","multi","imageUrl","titleRight","DateOfBirthInput","dayRef","monthRef","yearRef","nextRefMap","prevRefMap","fieldToFocus","focus","sanitizedValue","newFormData","dateObject","UTC","handleKeyDown","handleBlur","inputValue","mmId","ddId","yyyyId","getCoveragePage","getPremium","showLoading","subDescription","atomicPriceUpdate","PolicyCoveragePage","PolicyOptionBox","CoveragePriceAmount","span","CoveragePriceCadence","CoveragePrice","annualPrice","cadence","displayCadence","displayPrice","showBilledAnnually","isInteger","userSelect","extraFooter","setPrice","setUnderwriter","inputChanged","setInputChanged","showAltText","partialSum","loadPrice","ReviewCoverage","policy_id","policy_type","transaction_id","clearTimeout","onUpdateCoverageItem","Options","existingItem","onUpdateDeductible","deductible","Deductible","onUpdateActivationTrigger","trigger","handleToggle","Enabled","onUpdateCoverage","Option","renderDescription","boolean","ValueLabel","discrete","opt","newValue","coveragePage","priceDisplayCadence","PaymentCadence","addButtonText","isWidget","useUrlData","URLSearchParams","atob","decodeURIComponent","get","btoa","newData","integrationID","I","appData","D","CollectJewelryInfoPage","urlData","referralChannel","uploadAttachmentHandler","newFiles","purchaseReceipt","filesMetadata","updatedDetails","concat","CriteriaPage","JewelryCriteriaPage","criteria","Criteria","onChangeInsured","onChangePriorLoss","lossIdentifier","PriorLosses","priorLoss","updatedLoss","updatedLosses","Phone","Occupation","HasAdditionalInsured","AdditionalInsuredFirstName","AdditionalInsuredLastName","IsCurrentlyInsured","CurrentInsurerName","dateOfLoss","hasDateOfLoss","validationField","__","___","getUTCDate","getUTCMonth","getUTCFullYear","lossAmount","IoCloseOutline","IoAddOutline","default","exhibition","bankruptcy","judgment","conviction","Set","UnderwritingFlags","has","delete","UnderwritingJustification","LocationPage","JewelryLocationPage","onChangeMulti","vals","Object","fromEntries","onChangeMultiInsured","StorageStreetAddress","StorageAptFloor","StorageAptUnit","StorageCity","StorageState","StorageZipCode","StorageIsResidential","AddressLine1","AddressLine2","AddressCity","AddressState","AddressZipCode","ConstructionType","ConstructionYear","has_doorman","hidden","deadbolts","central_station_fire","burglar_alarm","central_station_burglar_alarm","StorageLocationFlags","indented","near_fire_hydrant","below_ground","off_the_ground","flood_zone","IoPricetagsOutline","prefix","startsWith","IoHomeOutline","subfield","IoPersonOutline","IoDocumentTextOutline","IoBagCheckOutline","MinicoInsuranceApp","sendEvent","flow_type","page_index","route","query","exec","FraudDisclosuresByState","AL","AK","AS","AZ","AR","CA","CO","CT","DE","DC","FM","FL","GA","GU","HI","IL","IN","IA","KS","KY","LA","ME","MH","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PW","PA","PR","RI","SC","SD","TN","TX","UT","VT","VI","VA","WA","WV","WI","WY","requiresAUI","occupationDetail","totalValue","partialValue","getOccupationDetailOpts","occupation","showOccupationDetails","onChangeInsuredDateOfBirth","DateOfBirth","Day","Month","Year","OccupationDetails","OtherOccupationDetails","AdditionalInsuredDateOfBirth","AdditionalInsuredOccupation","AdditionalInsuredOccupationDetails","InsuredTravel","AverageJewelryValueOnTravel","JewelrySafeguardOnTravel","JewelrySafeguardAtHomeInsuredOnTravel","paidDate","lossPaidDate","hasPaidDate","lossType","lossPaidAmount","causeOfLossCode","lossStatus","causeOfLossDescription","lossCatastrophe","fraudDisclosure","setFraudDisclosure","StorageAddress","stateOrProvinceName","onChangeMultiStorageAddress","line1","line2","postalCode","ResidenceType","ToggleSwitch","HasInHouseEmployees","InHouseEmployees","IsStoredInClimateControlledStorage","IsCoveredItemsElevated","CentralStationFireAlarm","SignalContinuity","TwentyFourHourSecurity","FullTimeCaretaker","GatedCommunity","GatedCommunityPatrol","FiftyPercentJewelryKeptInVault","SafeAtHome","AcceptConsumerDisclosure","ChubbInsuranceApp","CollectBikeInfoPage","replaceState","BikeCriteriaPage","onChangeMultiCriteria","Gender","ResidentialIsStorage","StorageAddressLine1","StorageAddressLine2","YearsOfExperience","casual","fitness","commute","competition","UsageTypes","IoBicycleOutline","BikeInsuranceApp","CollectElectronicsInfoPage","productDisplayName","ElectronicsCriteriaPage","ElectronicsInsuranceApp","CollectMotorInfo","CCSize","VIN","AccessoryValue","EstimatedAnnualMileage","CollectOffroadInfoPage","OffroadCriteriaPage","onChangeProduct","MaritalStatus","MinorViolations","MajorViolations","AtFaultAccidents","DriversLicenseState","DriversLicenseNumber","taken_safety_course","motorcycle_endorsed","homeowner","PersonalCharacteristicFlags","MotorInsuranceApp","ActivationPage","submissionError","setSubmissionError","RequestID","ApplicationSubmitted","referral_channel","ReferralChannelInfo","ReferralChannel","ReferralChannelDirect","Settings","processingError","submissionFailed","insured","onActivate","fromValidationError","CollectPagePage","mergeProduct","b","getPages","routePrefix","IoClipboardOutline","MinicoLocationPage","MinicoJewelryCriteriaPage","ChubbJewelryCriteriaPage","ChubbLocationPage","ATVCriteriaPage","IoPhonePortraitOutline","IoCheckmarkDoneOutline","getManualActivationPages","getPolicyStatus","noDocument","badgeColor","IoPencilSharp","premiumText","stateText","buttonText","IoAlertCircleSharp","policyBinding","IoHourglass","IoShieldCheckmark","ExpiresAt","policyCanceled","IoBan","policyExpired","IoTime","IoHelp","getProductDetails","motorProduct","detail","bikeProduct","renderClass","throttleAssist20MPH","pedalAssist28MPH","phoneProduct","electronicsProduct","typeTitle","PolicyStatusBadge","PolicyDocument","PolicyDocumentNotAvailable","PolicyPremium","lineHeight","PolicyActivation","activation","setActivation","goBack","getPolicyDescription","startDate","dateStyle","StartPolicy","PolicyOverview","additionalText","setAdditionalText","insuredItem","PendingPrice","pendingText","IoCloudOffline","IoDownload","SerialNumberInput","itemID","setItemID","serialNumber","setSerialNumber","matches","matchedItemID","indexToUpdate","onPolicyUpdated","InsuredItemSubTitle","InsuredItemProperties","InsuredItemPropertyItem","InsuredItemBadge","InsuredItemProperty","InsuredItem","requireSerialNumber","onCancelEndorsement","IoAdd","onAddSerialNumber","PolicyCoveredItems","_setPolicy","currentPrice","setCurrentPrice","pendingPrice","setPendingPrice","endorsementPrice","setEndorsementPrice","showEndorsementFlow","setShowEndorsementFlow","showNewPremium","setShowNewPremium","showSerialNumberEditor","setShowSerialNumberEditor","setProduct","onPolicyUpdate","isActive","closeSerialNumberSlideOut","getPolicyForm","CurrentPrice","EndorsementPrice","CoveragePageContainer","PolicyDetails","totalItems","Setting","PolicySettings","updated","setUpdated","origPolicy","FormSwitch","DisableAutoRenew","PolicyNavigationContainer","PolicyNavigationItemContainer","PolicyPage","BikeSerialNumberBanner","currentPolicy","IoPricetagOutline","JewelryInsuranceApp","PolicyCompletePage","alreadyActivated","setAlreadyActivated","dashboardRedirect","setDashboardRedirect","setShowAltText","handleActivate","redirectionUrl","locationUrl","host","CompletePage","policyList","types","hideD2C","getPolicyBadge","getProductTypeFromPolicy","PoliciesPage","noAppPolicies","pp","laptop","smallElectronics","gamingSystem","eReaderKindle","applyPolicies","comingSoonPolicies","showPolicyAppModal","setShowPolicyAppModal","PhoneInsuranceApp","ReactTooltip","minWidth","isPolicySubmittedOrActive","getSerialNumberLink","pendingLinks","setPendingLinks","forEach","ActivityItem","IoPaperPlane","referree","boxSizing","amount","ReferralList","r","fulfilled","referral","Referee","Reward","getInviteLinkHost","InvitePage","handle","PublicHandle","copyClicked","setCopyClicked","navigator","IoCopyOutline","AsyncPoliciesPage","all","Policies","AsyncClaimsPage","AsyncPolicyPage","AsyncEditPolicyPage","AsyncClaimPage","AsyncAccountPage","AsyncResumeClaimPage","notFinished","PolicyholderDashboardPage","DigitsInputContainer","Digit","DigitsInput","digits","setDigits","fill","initialDigits","React.Fragment","j","onInputChange","onComplete","blur","SignInContainer","SignInPane","SignInImage","SignInPage","setEmail","handleLogin","SignUpPage","AccessCode","SignInCompletePage","setCode","resending","setResending","resendCode","AuthSignIn","SignInCompleteWrapper","SignIn","SignUp","useGA","trackingId","ReactGA","obj","initApm","initAppConfiguration","Authenticated","App","ReactDOM","Router","getElementById"],"mappings":"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ACFt5B,KAAM,mMACR,EACAu5B,GAAI,CACFv5B,KAAM,mUACR,EACAw5B,GAAI,CACFx5B,KAAM,EACR,EACAy5B,GAAI,CACFz5B,KAAM,yOACR,EACA05B,GAAI,CACF15B,KAAM,EACR,EACA25B,GAAI,CACF35B,KAAM,EACR,EACA45B,GAAI,CACF55B,KAAM,EACR,EACAxlB,GAAI,CACFwlB,KAAM,0SACR,EACA65B,GAAI,CACF75B,KAAM,EACR,EACA85B,GAAI,CACF95B,KAAM,uKACR,EACA+5B,GAAI,CACF/5B,KAAM,EACR,EACAg6B,GAAI,CACFh6B,KAAM,EACR,EACAi6B,GAAI,CACFj6B,KAAM,ynBACR,EACAk6B,GAAI,CACFl6B,KAAM,oPACR,EACAm6B,GAAI,CACFn6B,KAAM,gOACR,EACAo6B,GAAI,CACFp6B,KAAM,EACR,EACAq6B,GAAI,CACFr6B,KAAM,kRACR,EACAs6B,GAAI,CACFt6B,KAAM,EACR,EACAu6B,GAAI,CACFv6B,KAAM,EACR,EACAw6B,GAAI,CACFx6B,KAAM,oHACR,EACAy6B,GAAI,CACFz6B,KAAM,EACR,EACA06B,GAAI,CACF16B,KAAM,EACR,EACA26B,GAAI,CACF36B,KAAM,EACR,EACA46B,GAAI,CACF56B,KAAM,EACR,EACA66B,GAAI,CACF76B,KAAM,EACR,EACA86B,GAAI,CACF96B,KAAM,sQACR,EACA+6B,GAAI,CACF/6B,KAAM,mJACR,EACAg7B,GAAI,CACFh7B,KAAM,uPACR,EACAi7B,GAAI,CACFj7B,KAAM,+dACR,EACAk7B,GAAI,CACFl7B,KAAM,EACR,EACAm7B,GAAI,CACFn7B,KAAM,EACR,EACAo7B,GAAI,CACFp7B,KAAM,EACR,EACAq7B,GAAI,CACFr7B,KAAM,uNACR,EACAs7B,GAAI,CACFt7B,KAAM,yOACR,EACAu7B,GAAI,CACFv7B,KAAM,EACR,EACAw7B,GAAI,CACFx7B,KAAM,EACR,EACAy7B,GAAI,CACFz7B,KAAM,2YACR,EACA07B,GAAI,CACF17B,KAAM,EACR,EACA27B,GAAI,CACF3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"}