const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BoostCompanion-q-L5-MVc.js","assets/BoostPanel-B2VWp1zZ.js","assets/useAssistantChat-BQv8n0x4.js","assets/arrow-up-right-CnNM4TYN.js","assets/useSmartQueue-C96v1XDn.js","assets/useBoostGift-Ch1VYLxL.js","assets/rotate-ccw-CIi8r86E.js","assets/sun-DuIrBscM.js","assets/pause-CQB6Wd2M.js","assets/CommercialMarketplace-BP9xbDlD.js","assets/LeadSiteHome-DOQzTZGt.js","assets/useLeadSiteSearchSuggestions-C_gpaYPK.js","assets/hash-DkB16eIZ.js","assets/map-DeDrbVNT.js","assets/AgentReviewsSection-C46Ult_N.js","assets/credits-Qf3-hamN.js","assets/ListingCarouselModule-DdYEwceX.js","assets/imageOptimization-Csrlnz8M.js","assets/maximize-G2q36Y9p.js","assets/ExchangeListingsSection-DvzDaBsu.js","assets/leadSiteAgent--GbV6IdE.js","assets/ScrollLivingHero-CFjCC4U9.js","assets/LeadSiteLuxuryHome-Yb8uQgXh.js","assets/LeadSiteExchangeListings-B7BsG4PZ.js","assets/truck-vabBcr7i.js","assets/LeadSiteLuxuryHome-DKt_VWIz.css","assets/LeadSiteLandRanchHome-Cn1_wjiv.js","assets/use-in-view-BwjZA5A2.js","assets/tree-pine-D31H-Jsi.js","assets/mountain-BBQpUtR-.js","assets/LeadSiteSearch-DbJFMN-d.js","assets/LeadSiteListingCardImage-D-6SwwEQ.js","assets/bell-ring-73aRB5i-.js","assets/useInfiniteQuery-DChCBwof.js","assets/LeadSiteMap-CMlsYy7D.js","assets/LeadSiteLuxurySearch-CclGGfKJ.js","assets/LeadSiteListingDetail-DkpvnOvc.js","assets/ListingVideoTour-QrrMblxx.js","assets/expand-ZTj2Qdak.js","assets/car-nYJ2IiW9.js","assets/thermometer-C8yBMv5K.js","assets/snowflake-MHgOjx_r.js","assets/waves-B5kbGUBk.js","assets/useListingVideos-BUpszs6p.js","assets/LeadSiteLuxuryListingDetail-DODU1Z1W.js","assets/LeadSiteAbout-BTnRzEJF.js","assets/LeadSiteCommunity-G2xR9QKE.js","assets/utensils-BUlVNaNb.js","assets/music-DMT83XIf.js","assets/trees-DR-P4n0e.js","assets/LeadSiteCityPage-Dbg7h2_l.js","assets/CityFaqSection-gWl25IAz.js","assets/LeadSiteSubdivisionPage-CeJ8wnQ4.js","assets/LeadSiteFocusPage-B31iEjfY.js","assets/plane-Ben2C_xL.js","assets/OrgSiteLayout-PxXeVtEF.js","assets/orgSiteBrand-DKMUe12O.js","assets/OrgSiteHome-B8kIDVQS.js","assets/OrgSiteAgents-BnNOGt6U.js","assets/OrgSitePages-BGMfd9lW.js","assets/OrgSiteListings-itvon9g1.js","assets/CanvaSupport-BYTFMRIV.js","assets/unplug-kKyVh_fb.js","assets/SmsOptIn-DDmWZZ9L.js","assets/signpost-CjCVNskg.js","assets/ConnectChatGPT-B5dS0bXI.js","assets/circle-check-big-Cr_bM_U9.js","assets/SubscriptionSuccess-Dg1urjtw.js","assets/SetupBrokerage-D1YRgZGy.js","assets/InviteSignup-0og6cbAY.js","assets/eye-off-CQbtJv9x.js","assets/CoachingHub-EkdjFMKt.js","assets/useCoaching-Buorcwuk.js","assets/CoachAgentWorkspace-BMaFCJ4C.js","assets/CoachingFiles-COfIYhxv.js","assets/folder-open-D8eN5_84.js","assets/save-DLp94oLm.js","assets/MyCoach-CVXWQBYn.js","assets/CoachReviews-Dhl3q78Y.js","assets/circle-x-Bzu-t-Me.js","assets/AdminCoaching-Bz6Hnprk.js","assets/arrow-left-right-vK42D1dC.js","assets/user-minus-CocvAelz.js","assets/inbox-BFeU_wf2.js","assets/CoachBilling-DiPFkKkM.js","assets/credit-card-DyynW6hn.js","assets/CoachSettings-C51aK9b0.js","assets/GoogleCalendarCard-BkMS0iit.js","assets/calendar-off-BzhFVauW.js","assets/useCoachGoogleCalendar-Cpxuvxf3.js","assets/link-Cy9K-hQy.js","assets/CoachWaitlist-CPj51Iez.js","assets/mail-check-CTr3YjJ3.js","assets/CoachProfile-Bpjg3XZh.js","assets/Trial-BCzPKb-0.js","assets/testimonial-avatar-5-DBoTqx4u.js","assets/TrialSuccess-C02ooohH.js","assets/party-popper-BH9bKReu.js","assets/LaborDaySale-tBeurMBi.js","assets/OpenHouseInviteModal-sPn3U9_4.js","assets/infinity-DAKRB_lV.js","assets/workflow-0Gy_ZMti.js","assets/BrokerageLaborDaySale-DO8cOiTl.js","assets/BrokerageSolutions-Bj4l5DbI.js","assets/receipt-DAbbRJT0.js","assets/scale-Dw-A1gAk.js","assets/pencil-line-CM_uJRWg.js","assets/Upgrade-C8lsE7sI.js","assets/log-in-gPIaeTTY.js","assets/InstagramGift-BkkvMceO.js","assets/VideoShare-BB63nKN4.js","assets/VideoPageTemplates-BOMw0Y1y.js","assets/flag-BnYBnNhQ.js","assets/message-circle-heart-DOUfuUGa.js","assets/door-open-CzuNP0iA.js","assets/brain-DtshRDps.js","assets/coffee-BYW4pzZM.js","assets/CommercialWizard-B6LAdOou.js","assets/useListingExchange-COSbirhn.js","assets/useTeamListingAccess-Bab6NRQf.js","assets/CommercialWorkspace-ClM5Jy1N.js","assets/ListingSocialDialog-BAdxQr1K.js","assets/useAgentBrand-DWug0Xlf.js","assets/ListingPhotoGrid-DYXVZVp4.js","assets/sortable.esm-DzeuxF-C.js","assets/grip-vertical-KD9_2sDp.js","assets/ShareListingDialog-B-wAQS12.js","assets/EmailListingToSphereDialog-CdA9N4vN.js","assets/index-fKoLeeOk.js","assets/separator-CKZ0PpFX.js","assets/GmailComposeDialog-D_iyanGc.js","assets/useMassEmailReady-C6CvUzn0.js","assets/useVerifiedSenderCheck-D_Gi0p2B.js","assets/VerifySenderRequiredDialog-BfSYD4AM.js","assets/useContactIntakePage-CITRacbR.js","assets/ToContactAutocomplete-0EC_tOXT.js","assets/paperclip-DDnlUORV.js","assets/file-search-C48WW8_H.js","assets/qr-code-oKzG4Ne0.js","assets/CommercialPitchPreview-CufBLLdV.js","assets/PublicLiveEvent-BfF1P4rZ.js","assets/pin-aLydYdoJ.js","assets/arrow-up-CMSCDhMy.js","assets/useLiveEngagement-sDrBuR_X.js","assets/sparkle-CzAKmhXA.js","assets/LiveEvents-DgUgB8eN.js","assets/AdminPageHeader-DN0WICtJ.js","assets/useLiveEvents-DWUL_bXz.js","assets/image-plus-r49c5rhV.js","assets/LiveEventConsole-DRfS6Kqf.js","assets/mouse-pointer-click-BE0PaHqu.js","assets/ban-Da526ol3.js","assets/Dashboard-CBVNNr7i.js","assets/useContentEngagement-CNeT_nZ9.js","assets/usePrograms-DV_Tif15.js","assets/timezone-C6Wh3azT.js","assets/addMilliseconds-Q-RGVzJy.js","assets/isWithinInterval-DNjGLuQI.js","assets/useGmailIntegration-Dq8V29Ax.js","assets/GoalTargetsDialog-TG94VfKQ.js","assets/useBrokerageContent-CtLBpb25.js","assets/beta-badge-D2wHNQvx.js","assets/useEventGamification-BNOREk6L.js","assets/RelationshipHealthWidget-DZXhWsyN.js","assets/useRelationshipScore-CqB1Px4G.js","assets/file-image-BxOTLY_K.js","assets/Profile-z_bLUHHn.js","assets/RichTextEditor-DxwjbCRa.js","assets/index-BDxO4VPL.js","assets/index-C8SV7RUi.js","assets/index-Dgzgr5ir.js","assets/heading-1-Cs2cDBfq.js","assets/heading-2-BTgifJH9.js","assets/undo-C3F59c9Q.js","assets/list-ordered-l-yQQjiJ.js","assets/align-left-OUrRHhfZ.js","assets/align-right-BTg4P_gU.js","assets/ImageCropper-9f8WMo6e.js","assets/zoom-out-J5kLSDAE.js","assets/rotate-cw-BK0n4DRy.js","assets/ImageCropper-D8Md-CES.css","assets/useBrandKit-IOhsRt4V.js","assets/useStagingStudio-Dfn3D1e_.js","assets/checkoutTab-DrlkWlzI.js","assets/BrokerageLogoUpload-xJefiItv.js","assets/user-round-qYZjejdH.js","assets/bell-off-DWYLRT80.js","assets/mail-x-DrnhYB6Z.js","assets/Events-DqJBWVuN.js","assets/EventLeaderboard-DqAjUr2h.js","assets/medal-CoAP1l44.js","assets/history-DInP_weU.js","assets/EventDetail-CqiALGYS.js","assets/ShareButton-C1Ei0R21.js","assets/user-cog-CVswuui-.js","assets/Apps-5qqCDqRW.js","assets/monitor-play-B-S350Yk.js","assets/skip-forward-CvsrLVpf.js","assets/Templates-Bx7LCAY8.js","assets/TemplateDetail-D-5Yomtw.js","assets/Programs-CE3Iwid7.js","assets/ProgramDetail-BJRrKNjS.js","assets/accordion-D3wO2RAW.js","assets/index-BF479X1I.js","assets/ProgramEnroll-rEB5ejTg.js","assets/tag-BGVGrXCz.js","assets/ProgramWorkspace-BgEKlbP_.js","assets/file-spreadsheet-Ywg4U_-6.js","assets/layout-template-B0todP42.js","assets/Programs-CFPVTCV2.js","assets/route-v-O7w3Yr.js","assets/collapsible-LbVloie2.js","assets/AcademyVideoDetail-BU8z7ElJ.js","assets/LinkedTemplatePills-DjVwNzqS.js","assets/ToolboxDetail-DuPWh5XV.js","assets/SocialSwag-oWNVp2Lz.js","assets/SocialStudio-Cv9sZ_xj.js","assets/CanvaImportDialog-CRLQOT6e.js","assets/unlink-CQ2Izvvv.js","assets/scheduleTz-BBeLz-gv.js","assets/calendarTz-JHe45SGp.js","assets/repeat-2-BHyeqRBB.js","assets/useCalendarTimezone-C46bkX8Z.js","assets/CalendarSettingsDialog-DJm9Avj9.js","assets/earth-D34Lzo0B.js","assets/edgeError-tGG4A-QU.js","assets/jszip.min-DLVBo-On.js","assets/settings-2-BuQkOw2M.js","assets/MarketingStudio-C7DkUle5.js","assets/message-square-quote-DyjiqUx8.js","assets/BrandKit-37F1yeKK.js","assets/useBrandPresets-DpdQhNmC.js","assets/BrandingBarEditor-DlwmiCjM.js","assets/ReactKonvaCore-Mf-U22iS.js","assets/index-D82cxvIt.js","assets/ListingTemplates-CFNLaoYO.js","assets/index-xVp0PEHv.js","assets/EditorialTemplate-Cbl07u_L.js","assets/PersonalBranding-DYNnzWj8.js","assets/toggle-group-C4K6Lrl0.js","assets/SocialSwagDetail-BCH3cppN.js","assets/Community-C__dDDd1.js","assets/MentionTextarea-Mppcc-Sh.js","assets/reply-DgapI3QH.js","assets/pin-off-Cpbed9Qn.js","assets/Support-Btmgulo6.js","assets/SupportAttachmentList-grVgO8tA.js","assets/file-video-BYwKugGh.js","assets/BrokerageResources-BWJGZE2K.js","assets/AdminDashboard-DFsQkXzl.js","assets/coins-C4NaeGMJ.js","assets/shopping-bag-CbT5bBPt.js","assets/flask-conical-eBrsnylp.js","assets/database-BTXJDxRC.js","assets/MemberManagement-DadafQrO.js","assets/SendCelebrationDialog-CuanSLqP.js","assets/sortable-table-head-ClttKBMm.js","assets/arrow-down-CviH84RJ.js","assets/useTeams-CMuTg5Kh.js","assets/CreateTeamDialog-lYdxt9wP.js","assets/TeamSharedAssetsView-DJHhz_rh.js","assets/LeadPondView-DFdQYm7V.js","assets/arrow-right-left-B6kZjhNo.js","assets/sticky-note-CyR9kH3X.js","assets/droplets-XtUEjn4a.js","assets/hand-DmoCXWhM.js","assets/contact-CAoQ7uCq.js","assets/crown-B51lmFZQ.js","assets/calendar-heart-9K6dM4IQ.js","assets/UnassignedMembers-BWODL9kf.js","assets/InviteCodes-ooU473E3.js","assets/Events-CjLpoXY8.js","assets/useNotifications-CsLuXowj.js","assets/repeat-DLfrAkUZ.js","assets/MCPAuditLog-BzFOX0WW.js","assets/shield-alert-D-opUujo.js","assets/Templates-BkHq2wJa.js","assets/Academy-CJ02MfdF.js","assets/LinkedTemplatePicker-Dcp58JGo.js","assets/Toolbox-C5bL0uhl.js","assets/SocialSwag-BVGXaTNE.js","assets/SocialSwag2-CYINH1SN.js","assets/Community-DKhvMWYg.js","assets/Analytics-BfCEYRPD.js","assets/ShareAnalytics-D_k1G98o.js","assets/mouse-pointer--elUumHs.js","assets/panels-top-left-kDR0tmML.js","assets/LineChart-KSlt6OQ1.js","assets/chrome-qiOnbqju.js","assets/BrokerageResources-DVLgSXw9.js","assets/DashboardManagement-DjoS2LQp.js","assets/SupportTickets-B31pM133.js","assets/EmailTemplates-CNT8kzdl.js","assets/index-CWS-nfBG.js","assets/code-mauNIXKS.js","assets/variable-CHpOzONc.js","assets/monitor-e2ZkVMla.js","assets/AgentEmailTemplates-74Yk66DZ.js","assets/BrokerageDashboard-Cf-2jSGE.js","assets/MyBrokerage-BVAO9gpy.js","assets/useBrokerageOnboarding-DaIvv2E7.js","assets/OnboardingChecklist-ByRdCjgu.js","assets/BrokerageContent-DwlpxTES.js","assets/BrokerageHelpBoard-B9hFnw1d.js","assets/useBrokerageHelpBoard-bs4xnZBg.js","assets/BrokerageHelpBoardNew-G7_8Ep9S.js","assets/BrokerageHelpBoardDetail-lc39XbIw.js","assets/Newsletters-DHcdiw76.js","assets/VisualHtmlEditor-C-GA_Mcf.js","assets/NewsletterGraphicsPicker-CqN2pQT7.js","assets/underline-BaiGfapY.js","assets/uploadBase64Images-L-ZEigGx.js","assets/SendNewsletterDialog-BXP1gfru.js","assets/undo-2-6uVC74Wc.js","assets/useContactCustomTags-BYbdxOOk.js","assets/useSmartLists-GpLU-c9Q.js","assets/code-xml-Cai_870K.js","assets/NewsletterDetail-D7COOPYI.js","assets/Newsletters-w9nFWjUs.js","assets/library-DC5B4jXf.js","assets/MemberBroadcasts-CiU7g4S5.js","assets/bookmark-plus-B4ou1ZKR.js","assets/NewsletterGraphics-Btb766F0.js","assets/Wishlist-DXRHwSvP.js","assets/WishlistDetail-BAVX88bP.js","assets/LevelUpBrief-BoZbYh34.js","assets/AdditionalServices-BV66CWOU.js","assets/Discounts-szPLZjou.js","assets/Subscriptions-DUex0T1c.js","assets/instagramEmailReview-DK4Cq88H.js","assets/InstagramGiftEmails-CMzpQpYO.js","assets/Referrals-A9cx6B_i.js","assets/AgentOSControlCenter-CHloRZfg.js","assets/AskAI-BmZAVN_M.js","assets/InnerCircleHome-Z4tukygX.js","assets/SnoozeContactDialog-Cap_bneA.js","assets/pen-tool-DGgX00qE.js","assets/milestoneMail-Cs6qfJaR.js","assets/handoff-B7AOa2Ye.js","assets/milestones-De303X1G.js","assets/stamp-Bvaoq6bR.js","assets/useActiveVisitors-BQMEFFq0.js","assets/InnerCircleContacts-Dceg6SMk.js","assets/mailingAddress-BJ5Zh-Ye.js","assets/SyncDirectionSelector-B_cyD6-2.js","assets/refresh-ccw-GXHQ_bkD.js","assets/merge-CJSP8oMX.js","assets/ContactCriteriaForm-DUSLmuwf.js","assets/usePopbys-_8eeTwfA.js","assets/ContactTagChip-CQJqqdAD.js","assets/info-BNcKfBBE.js","assets/RelationshipScoreBadge-BM2o-_uE.js","assets/MailStudioHandoffButton-DgeJ_hny.js","assets/useVideoShareTracking-H9PftoHE.js","assets/EnrollContactsDialog-CN0eFDWV.js","assets/useDripCampaigns-GodK2cxo.js","assets/CampaignBuilderDialog-HN81_1tS.js","assets/VideoLibraryPicker-azN23kLr.js","assets/VideoUploadDialog-LAlrXS5Z.js","assets/useVideoTouch-3hhHxyNg.js","assets/NeighborhoodFilter-BOHclAkq.js","assets/useNeighborhoods-DGPGEtKb.js","assets/sphereMap-BJm0TFef.js","assets/sprout-B3k9tkaz.js","assets/ContactAvatar-Cb1OtLaT.js","assets/map-pinned-qSs6GIXO.js","assets/InnerCircleContactDetail-BpWW7lQm.js","assets/useCMA-2ZLOeS_s.js","assets/useClientPortal-KKtj_LIY.js","assets/useSentEmails-BZSgBWAw.js","assets/propertyService-B_HQh-rO.js","assets/building-BVeSgFYc.js","assets/archive-C-Nnz9o6.js","assets/useContactFinder-C-EC-lGf.js","assets/SentEmails-BZzfG8iT.js","assets/freshAccessToken-DUQI8ktu.js","assets/InnerCirclePlans-CwAf7K7u.js","assets/pen-Bg4RFobk.js","assets/CMAList-DwTQs6qp.js","assets/SendCMADialog-nnfr3nQX.js","assets/UpgradeLockedCard-Ciyx-MKO.js","assets/CMABuilder-BbCx-I0I.js","assets/VideoRecorder-D3vQKVXJ.js","assets/monitor-up-8tXG6wgz.js","assets/mic-N8zT_zwC.js","assets/ListingPresentations-l5eQ9VxL.js","assets/session-CF4C3e8r.js","assets/jspdf.es.min-NEU8TSfV.js","assets/SendPresentationDialog-DPnAbxnZ.js","assets/ListingPresentationBuilder-BQpD-AD9.js","assets/PdfCanvasPreview-CKSeUt_3.js","assets/pdf.worker.min-DMcjB3HO.js","assets/ImageUploadField-CIALb0Ny.js","assets/move-CW2CX1Bw.js","assets/InnerCirclePopbys-CQVxXx0m.js","assets/locate-D4AzBAna.js","assets/navigation-Bl_Rvulq.js","assets/ListingExchange-CNvUhAg_.js","assets/ListingLaunchKitModal-DshnEhv1.js","assets/ListingSelectionBar-CxTy4kJ_.js","assets/musicVideoHandoff-Bs6IOG8F.js","assets/ListingDetail-B-62PUXm.js","assets/ListingForm-0oYOY2Bd.js","assets/CustomizeListingPage-Dyt7vKZq.js","assets/box-z5MilQjv.js","assets/VideoRecordPage-lo4pC9DP.js","assets/TeleprompterOverlay-PBzzBlRh.js","assets/VideoShareWithTemplate-KVmYB8C0.js","assets/VideoLibrary-B6-ShXs2.js","assets/hard-drive-moCZxqpd.js","assets/DealPipeline-CKSIvdqA.js","assets/lucide-react-BBrN-pWf.js","assets/archive-restore-Bf5fUHlP.js","assets/arrow-down-right-BY-6Ijgg.js","assets/badge-check-e_lTmfs8.js","assets/circle-user-Dx8RbQDN.js","assets/beaker-Dmc3jkKa.js","assets/mouse-pointer-2-B-_HUx-a.js","assets/brain-circuit-Cuh2EehQ.js","assets/calendar-x-CShXeE7t.js","assets/file-code-GbKMQmAB.js","assets/table-DK6zG7PQ.js","assets/circle-dollar-sign-rE6jKhOr.js","assets/clapperboard-CBtMZwDq.js","assets/clock-3-CuDtfSOj.js","assets/sunset-CFboKREF.js","assets/cloud-upload-HH_ZREix.js","assets/corner-down-right-D0m-YZVd.js","assets/eraser-DTsGHqWc.js","assets/file-check-2-C9GiFdg6.js","assets/hammer-6G1RtrsQ.js","assets/file-down-DUDb-LNe.js","assets/file-plus-2-Cuicio4S.js","assets/piggy-bank-DQW08Bds.js","assets/folder-plus-CJCs4gK0.js","assets/folder-_l0uO0G4.js","assets/footprints-haR3qNAn.js","assets/gem-BC96h_1I.js","assets/hand-heart-vk2-6t4J.js","assets/heading-3-DTkbgnRx.js","assets/heart-handshake-BCqDoNri.js","assets/id-card-B-ezlDYn.js","assets/panel-right-close-BrAjBAzV.js","assets/list-plus-BloMPIKD.js","assets/lock-keyhole-CGIS7RVE.js","assets/mail-open-BudAiYtw.js","assets/mail-warning-C9FxadhS.js","assets/message-square-more-CDHLbsPB.js","assets/message-square-plus-xgwUMqwG.js","assets/message-square-reply-CouRflZt.js","assets/messages-square-Uph7EKD6.js","assets/skip-back-DrO7-2Fw.js","assets/octagon-alert-Du8ksONm.js","assets/power-off-B9xOSyDH.js","assets/power-pCIfo9ZF.js","assets/printer-D07JCDvy.js","assets/rectangle-vertical-d9DeHPz1.js","assets/scroll-text-DUqrcdqw.js","assets/shield-off-r0d45V6n.js","assets/shield-question-6kCmBFVD.js","assets/shuffle-Y38knMoj.js","assets/table-2-By9segTY.js","assets/tags-DQG_cJLp.js","assets/text-cursor-input-BQA72TTq.js","assets/thumbs-down-DgpMLWMr.js","assets/twitter-CqXybSOP.js","assets/type-DVSikk6H.js","assets/user-round-check-Bok4MA0D.js","assets/user-round-search-HCVEdu3t.js","assets/user-x-CPg3nzts.js","assets/users-round-BYEe-QWW.js","assets/useCommissionPlans-B581XxRg.js","assets/ComplianceMessageThread-CnygCqen.js","assets/SendForSignatureDialog-B5LV24RS.js","assets/useFormEnvelopes-DbMnXR4E.js","assets/PortalInviteDialog-im75J_Ur.js","assets/CardVideoRecorderDialog-DNJsk7Cj.js","assets/PlaybookLibraryDialog-S2lX-B_k.js","assets/PortalListView-HbRTnyh4.js","assets/complianceMetrics-Ce83UgLe.js","assets/FormsLibrary-DHyAt8Ty.js","assets/FormPlacementEditor-BKVTGHLa.js","assets/TransactionCoordinator-sBLCSRx3.js","assets/PortalReferrals-6sZ3RLUe.js","assets/usePortalReferrals-BOtytrJh.js","assets/AgentVendors-HUXwJlhN.js","assets/VendorFormDialog-ByZLjq_B.js","assets/BrokerageForms-D5Ux-sJD.js","assets/BrokerageVendors-CRj0CWaR.js","assets/ClientPortalsHub-B8LS6Van.js","assets/PortalMessagesPanel-CLMUrNPS.js","assets/ClientPortalDetail-qRpyAOtd.js","assets/MyCardEditor-aNTsOg7w.js","assets/CardBlocksEditor--SzaEcjf.js","assets/Integrations-CGVS1gej.js","assets/CanvaIntegrationCard-C9cLF4Aa.js","assets/RecruitVerifiedSenders-DfB_Yvme.js","assets/BrowserExtension-CWAA1ko_.js","assets/IntegrationsGmailCallback-CBLpNCaD.js","assets/IntegrationsMetaCallback-Vt-Qlz8G.js","assets/AgentActivation-ZlDSfaaO.js","assets/MembershipReviews-B53bNkxv.js","assets/LeadNotifications-8ZdHPB6n.js","assets/WeeklyDigest-au7qLqOI.js","assets/AgentPoints-BQuQAtp9.js","assets/AgentCards-hmsELSL9.js","assets/Marketplace-BPtwx9xz.js","assets/RewardStore-L6yfEkcp.js","assets/usePointRewardSettings-B4a0zSXs.js","assets/Integrations-EQhbpln4.js","assets/SocialConnections-CwvoqJKx.js","assets/NotificationSettings-D5lt3_EW.js","assets/PresentationAnalytics-DyANlPPy.js","assets/ListingPresentationStudioAdmin-BO6bd-Q-.js","assets/ListingRevivalAdmin-BMczzRiF.js","assets/useListingRevivalAccess-mOWRx64s.js","assets/GuestBookAnalytics-D3DeyUdY.js","assets/IntegrationsCallback-CCAFnTSm.js","assets/AdminRecruiting-C2Ab-wO8.js","assets/RecruitPipelineStageEditor-CvW_frU5.js","assets/index-Bff8qiG6.js","assets/BrokerageRecruiting-BIDbjawB.js","assets/600-BSKZD_mM.css","assets/BrokerageOnboarding-lxOvfEhW.js","assets/BrokerageTransactions-BciP1WpA.js","assets/useDealEscrow-7HeZiWjf.js","assets/BrokerageOperations-EOTRGVU5.js","assets/renewals-D2Q-7ERh.js","assets/WebsitesHub-BioV2U22.js","assets/useMyWebsites-DmwbNbNY.js","assets/TeamWebsite-BdSfEHB0.js","assets/OrgSiteBuilder-Db5zZHYO.js","assets/SiteSwitcher-prOZj4Xc.js","assets/BrokerageWebsite-NCMzrsXU.js","assets/BrokerageCommissionPlans-C_kD_WQ2.js","assets/BrokerageContentActivity-Cj4BLK-R.js","assets/BetaSocialPostGenerator-F4ZaT83p.js","assets/AdminLMS-YGj-Eq70.js","assets/useLMS-DJCFJqtu.js","assets/AdminCourseDetail-ChubA-DA.js","assets/LevelUpU-CsnsQ989.js","assets/LevelUpUCourse-CgZ49YaN.js","assets/MobileAgentApp-YXhzTXto.js","assets/StagingStudio-19rsaABa.js","assets/presets-BJtiPF6y.js","assets/download-BqCckdNk.js","assets/BeforeAfterSlider-B_fH24dO.js","assets/BuyCreditsDialog-Bxs1zwmj.js","assets/StagingLibrary-DnkL-LhN.js","assets/StagingCredits-9_oF5dGM.js","assets/AgentWallet-C0yFXnMF.js","assets/useHomeReel-B7sFUtl0.js","assets/StagingSharePage-B_zular_.js","assets/StagingStudioAdmin-DDIHKRih.js","assets/ContactFinderAdmin-BCG-qte8.js","assets/PostcardManager-182SpOzl.js","assets/PostcardZoneEditor-BPaivNia.js","assets/usePostcardZones-QrOW9t4t.js","assets/MailStudioTemplates-CHuDE7gs.js","assets/HomeReelManager-D0XqqDPn.js","assets/videoRenderSink-KDd1M0JO.js","assets/AdminMusicVideos-CvDNW1t5.js","assets/AdminVideoLab-CbZ56wap.js","assets/BoostPreview-CnEnDSDp.js","assets/AdminCredits-CbzUgM_r.js","assets/MailStudio-ta6mMCEF.js","assets/farmToCrm-C_-CAnx_.js","assets/artwork-DzDcZZbS.js","assets/browser-CjSdxGTc.js","assets/MailStudio-D-BotKHo.css","assets/InnerCirclePopbyMap-rTIQK-_L.js","assets/SphereMap-ElCaBgKv.js","assets/PropertyIntelligenceDashboard-CGcE6tFF.js","assets/LiveVisitorFeed-D8CiKKIX.js","assets/LeadSites-CsqRgLXQ.js","assets/LeadSiteEditor-B4QTo8E2.js","assets/ImageUrlField-BwFTxWOU.js","assets/HomepageModuleManager-C6LQ7w2-.js","assets/VideoUrlField-BTsMWdhE.js","assets/LeadSiteEditor-BzY4kI8E.css","assets/AdminLeadSiteThemes-CT6SMzBD.js","assets/AdminFreeWebsiteOfferStudio-Dt23IIY7.js","assets/AdminMlsFeeds-D7diVu6Z.js","assets/AdminWebsiteRequests-lQqzF4qj.js","assets/NeedAWebsite-D1XGT2F_.js","assets/MLSListings-D1F09bZw.js","assets/MLSListingDetail-DFwIJQWe.js","assets/WebsiteActivityPage-DV9yWIj0.js","assets/PublicRecruitForm-Br9AHz8-.js","assets/PublicEventInviteUnsubscribe-C8hiU5rs.js","assets/SocialConnections-BH2eXP8_.js","assets/SocialConnectionsCallback-DzUXVPr6.js","assets/LinkedInCallback-D1GQbqya.js","assets/MarketplaceCart-BPsE24KM.js","assets/MarketplaceOrderDetail-vgsFgrAS.js","assets/RewardStore-dqiIVSTo.js","assets/ReferFriends-BZyP754o.js","assets/SmartPresentations-BpHrr3vJ.js","assets/useSmartPresentations-FG2rI849.js","assets/SmartPresentationCreate-CF8tcQC4.js","assets/GuestBook-CcfnZ5tw.js","assets/SignDocument-DzeKNVSU.js","assets/Blog-CETd_XN0.js","assets/TrialCTA-CY0dg7fr.js","assets/BlogPost-DlbOAk_K.js","assets/AdminBlog-DYJe5Fad.js","assets/ReviewLanding-BL0wS3FC.js","assets/ReviewIntake-Uey0wWIA.js","assets/PublicReviewsPage-BcJijAYK.js","assets/PublicReviewSubmit-zGBzGEre.js","assets/Reviews-B2kESgQj.js","assets/CardStudio-DWVMBzSu.js","assets/ListingStudio-raMNe31A.js","assets/SmartDrips-DmHRgwRE.js","assets/WeeklyReels-HrZVOnVl.js","assets/ReelCard-BZcsL7Ur.js","assets/useWeeklyReels-DIdmwXtS.js","assets/WeeklyReelsOnboarding-svo15ydK.js","assets/WeeklyReelsAdmin-mW_IX57U.js","assets/AttractLayout-CKo0XqAt.js","assets/useAttractSettings-D45eMEO2.js","assets/useAttractIntelligence-ZbHQ1jK0.js","assets/HealthScoreBadge-0RZxEjFn.js","assets/AttractToday-BIa6CiLe.js","assets/useAttractIntelSync-D9OJ8GUg.js","assets/useAttractAgents-CJEILLnu.js","assets/useAttractFollowUps-sUmWDBuE.js","assets/useAttractActivities-BfTP0_-a.js","assets/RecommendationCard-K39q5JTo.js","assets/QuickAddRelationship-CQ6FgvyY.js","assets/relationshipStages-Buh5_cBI.js","assets/useAttractEvents-DjXNKeyF.js","assets/AttractRelationships-gqsMJbeQ.js","assets/AttractPageHeader-DDpqrsTU.js","assets/AgentEditSheet-CBDN9JqA.js","assets/AttractFollowUp-CAAlETdf.js","assets/AttractTemplates-BzobzZkq.js","assets/AttractReports-CBj9TQiJ.js","assets/AttractSettings-DicBgOd4.js","assets/AttractToolkit-qsJpeoUl.js","assets/Objections-Dj_bBCvD.js","assets/AttractCalculator-dJAy1v_1.js","assets/attractionPageTemplate-C9AaZMgq.js","assets/AttractEventList-BqqIvPuF.js","assets/AttractEventBuilder-DL9lBZIn.js","assets/useAttractKits-0ZttBePn.js","assets/AttractEventDetail-CEfio04D.js","assets/AttractEventCheckIn-IGR3UGWy.js","assets/AttractOnboarding-_OZUiKHo.js","assets/ContentStudio-CU4ERe0Q.js","assets/KitList-DFgVxNlS.js","assets/KitBuilder-B1546DIb.js","assets/KitPreview-CvQyvD8I.js","assets/KitAnalytics-CmoR2Xoz.js","assets/KitTemplates-CaHD2QAt.js","assets/AttractAgentDetail-MRS5oLiS.js","assets/AttractOpportunities-Dsu9Ee8M.js","assets/AttractIntelligenceDebug-CgngTINA.js","assets/PublicAttractKit-2PcQZoFC.js","assets/PublicAttractEvent-C-WirUqp.js","assets/PublicAttractionPage-fey7lWWP.js","assets/AttractionPageView-DlDie48a.js","assets/RevivalLanding-lj4J56z5.js","assets/types-Bbp_6W6m.js","assets/RevivalPlan-Dc8HJGAr.js","assets/revivalPdf-DD2Dh9V3.js","assets/ListingRevival-TlE2TNWu.js","assets/useListingRevival-Co50vlxV.js","assets/AreaChart-Bl7tqUne.js","assets/RevivalCampaignWizard-Cp1lbFVm.js","assets/campaignMail-DmiNnVHR.js","assets/RevivalCampaignDetail-CoJ3S_xL.js","assets/LetterEditor-Dh4930a8.js","assets/FsboBreakthrough-BpftVSLJ.js","assets/useFsboBreakthrough-BLNkrY_4.js","assets/types-CK1tolb7.js","assets/FsboPropertyDialog-CVJkw5eQ.js","assets/FsboCampaignWizard-DVkfBJrK.js","assets/FsboCampaignDetail-wNMG6pdq.js","assets/FsboLanding-CQLkR6oE.js","assets/publicApi-BEaFpcRg.js","assets/FsboGuide-l8hI_XGv.js","assets/FsboBreakthroughAdmin-MrgRh7QC.js","assets/AttractLandingPageBuilder-C4Umv-X9.js","assets/AttractAccess-Cizj9fkg.js","assets/Teams-LxqSKjwF.js","assets/MyTeam-i4kLt0KB.js","assets/TeamLeaderSettings-CqXslgKY.js","assets/TeamHub-DEY0OBh3.js","assets/SchedulerSettings-C5-kgw5u.js","assets/MyCalendar-BoJuQpaT.js","assets/BookingManagePage-CoxbDHH8.js","assets/LandingPages-B16cy3aQ.js","assets/BuyerMatch-DwWRrWjb.js","assets/SendBuyerMatchEmailDialog-D19l__LU.js","assets/BuyerMatchEditor-CP8q-FJU.js","assets/matching-BdEgbJjD.js","assets/PublicBuyerMatch-DrY_9Mki.js","assets/LandingPageEditor-DL3B_iyp.js","assets/LandingPageDefaults-grnijYri.js","assets/WebsiteAppsHub-Ch6jFV6G.js","assets/ClaimFreeLeadSiteCard-DnCBrEtG.js","assets/useWebsiteApps-csrq7K6G.js","assets/ClaimWebsite-DEqlAeWB.js","assets/VideoGreeterEditor-Hd6lnra4.js","assets/ExitIntentEditor-VH2zDGE9.js","assets/widgetTemplates-keLygp7O.js","assets/LeadMagnetEditor-DgxezAS7.js","assets/RelationshipScorecard-ZN8cst0A.js","assets/SphereGaps-06dBcsBW.js","assets/ConnectPageSettings-CImHB-fJ.js","assets/EmailCampaigns-BGNKpwbv.js","assets/sesRequest-DVgThupY.js","assets/EmailCompliance-x9C_vMkP.js","assets/EmailCampaignComposer-DdfTcXE5.js","assets/EditorModeSelector-Cwy1ZVFx.js","assets/EmailCampaignDetail-CP97xZEe.js","assets/SharedCampaignTemplates-C-sTiU7V.js","assets/TemplateEditorDialog-BpvswPiZ.js","assets/AgentTemplates-CzeMzCA0.js","assets/TheLocalMoveHome-C-9vak05.js","assets/tlm-hero-bg-BbD3acLf.js","assets/TheLocalMoveGetStarted-CdznTkqu.js","assets/TheLocalMoveCheckout-Dehnyrkr.js","assets/AdminWebsiteOrders-Dh2Z-LCk.js"])))=>i.map(i=>d[i]); var WIe=Object.defineProperty;var YX=t=>{throw TypeError(t)};var KIe=(t,e,r)=>e in t?WIe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var cn=(t,e,r)=>KIe(t,typeof e!="symbol"?e+"":e,r),w4=(t,e,r)=>e.has(t)||YX("Cannot "+r);var At=(t,e,r)=>(w4(t,e,"read from private field"),r?r.call(t):e.get(t)),Kn=(t,e,r)=>e.has(t)?YX("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),pn=(t,e,r,n)=>(w4(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Bi=(t,e,r)=>(w4(t,e,"access private method"),r);var IP=(t,e,r,n)=>({set _(i){pn(t,e,i,r)},get _(){return At(t,e,n)}});function YIe(t,e){for(var r=0;rn[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();var Hl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function fs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function ZIe(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var Mce={exports:{}},EM={},Oce={exports:{}},Ki={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var hC=Symbol.for("react.element"),XIe=Symbol.for("react.portal"),QIe=Symbol.for("react.fragment"),JIe=Symbol.for("react.strict_mode"),eje=Symbol.for("react.profiler"),tje=Symbol.for("react.provider"),rje=Symbol.for("react.context"),nje=Symbol.for("react.forward_ref"),ije=Symbol.for("react.suspense"),sje=Symbol.for("react.memo"),aje=Symbol.for("react.lazy"),ZX=Symbol.iterator;function oje(t){return t===null||typeof t!="object"?null:(t=ZX&&t[ZX]||t["@@iterator"],typeof t=="function"?t:null)}var Fce={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Bce=Object.assign,zce={};function J1(t,e,r){this.props=t,this.context=e,this.refs=zce,this.updater=r||Fce}J1.prototype.isReactComponent={};J1.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};J1.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function $ce(){}$ce.prototype=J1.prototype;function sq(t,e,r){this.props=t,this.context=e,this.refs=zce,this.updater=r||Fce}var aq=sq.prototype=new $ce;aq.constructor=sq;Bce(aq,J1.prototype);aq.isPureReactComponent=!0;var XX=Array.isArray,Uce=Object.prototype.hasOwnProperty,oq={current:null},Vce={key:!0,ref:!0,__self:!0,__source:!0};function qce(t,e,r){var n,i={},a=null,c=null;if(e!=null)for(n in e.ref!==void 0&&(c=e.ref),e.key!==void 0&&(a=""+e.key),e)Uce.call(e,n)&&!Vce.hasOwnProperty(n)&&(i[n]=e[n]);var s=arguments.length-2;if(s===1)i.children=r;else if(1>>1,Pe=ge[xe];if(0>>1;xei(lt,_e))xti(St,lt)?(ge[xe]=St,ge[xt]=_e,xe=xt):(ge[xe]=lt,ge[at]=_e,xe=at);else if(xti(St,_e))ge[xe]=St,ge[xt]=_e,xe=xt;else break e}}return je}function i(ge,je){var _e=ge.sortIndex-je.sortIndex;return _e!==0?_e:ge.id-je.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var c=Date,s=c.now();t.unstable_now=function(){return c.now()-s}}var f=[],m=[],x=1,_=null,T=3,E=!1,C=!1,N=!1,L=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function B(ge){for(var je=r(m);je!==null;){if(je.callback===null)n(m);else if(je.startTime<=ge)n(m),je.sortIndex=je.expirationTime,e(f,je);else break;je=r(m)}}function V(ge){if(N=!1,B(ge),!C)if(r(f)!==null)C=!0,Ae(G);else{var je=r(m);je!==null&&Se(V,je.startTime-ge)}}function G(ge,je){C=!1,N&&(N=!1,M(Q),Q=-1),E=!0;var _e=T;try{for(B(je),_=r(f);_!==null&&(!(_.expirationTime>je)||ge&&!ue());){var xe=_.callback;if(typeof xe=="function"){_.callback=null,T=_.priorityLevel;var Pe=xe(_.expirationTime<=je);je=t.unstable_now(),typeof Pe=="function"?_.callback=Pe:_===r(f)&&n(f),B(je)}else n(f);_=r(f)}if(_!==null)var Ze=!0;else{var at=r(m);at!==null&&Se(V,at.startTime-je),Ze=!1}return Ze}finally{_=null,T=_e,E=!1}}var W=!1,Z=null,Q=-1,se=5,ie=-1;function ue(){return!(t.unstable_now()-iege||125xe?(ge.sortIndex=_e,e(m,ge),r(f)===null&&ge===r(m)&&(N?(M(Q),Q=-1):N=!0,Se(V,_e-xe))):(ge.sortIndex=Pe,e(f,ge),C||E||(C=!0,Ae(G))),ge},t.unstable_shouldYield=ue,t.unstable_wrapCallback=function(ge){var je=T;return function(){var _e=T;T=je;try{return ge.apply(this,arguments)}finally{T=_e}}}})(Yce);Kce.exports=Yce;var xje=Kce.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var _je=P,id=xje;function Vr(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),b$=Object.prototype.hasOwnProperty,vje=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,JX={},eQ={};function bje(t){return b$.call(eQ,t)?!0:b$.call(JX,t)?!1:vje.test(t)?eQ[t]=!0:(JX[t]=!0,!1)}function wje(t,e,r,n){if(r!==null&&r.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function Sje(t,e,r,n){if(e===null||typeof e>"u"||wje(t,e,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function Jc(t,e,r,n,i,a,c){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=t,this.type=e,this.sanitizeURL=a,this.removeEmptyString=c}var Xl={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Xl[t]=new Jc(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Xl[e]=new Jc(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Xl[t]=new Jc(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Xl[t]=new Jc(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Xl[t]=new Jc(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Xl[t]=new Jc(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Xl[t]=new Jc(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Xl[t]=new Jc(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Xl[t]=new Jc(t,5,!1,t.toLowerCase(),null,!1,!1)});var uq=/[\-:]([a-z])/g;function dq(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(uq,dq);Xl[e]=new Jc(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(uq,dq);Xl[e]=new Jc(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(uq,dq);Xl[e]=new Jc(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Xl[t]=new Jc(t,1,!1,t.toLowerCase(),null,!1,!1)});Xl.xlinkHref=new Jc("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Xl[t]=new Jc(t,1,!1,t.toLowerCase(),null,!0,!0)});function hq(t,e,r,n){var i=Xl.hasOwnProperty(e)?Xl[e]:null;(i!==null?i.type!==0:n||!(2s||i[c]!==a[s]){var f=` `+i[c].replace(" at new "," at ");return t.displayName&&f.includes("")&&(f=f.replace("",t.displayName)),f}while(1<=c&&0<=s);break}}}finally{E4=!1,Error.prepareStackTrace=r}return(t=t?t.displayName||t.name:"")?O2(t):""}function Tje(t){switch(t.tag){case 5:return O2(t.type);case 16:return O2("Lazy");case 13:return O2("Suspense");case 19:return O2("SuspenseList");case 0:case 2:case 15:return t=A4(t.type,!1),t;case 11:return t=A4(t.type.render,!1),t;case 1:return t=A4(t.type,!0),t;default:return""}}function E$(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Jb:return"Fragment";case Qb:return"Portal";case w$:return"Profiler";case fq:return"StrictMode";case S$:return"Suspense";case T$:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case Qce:return(t.displayName||"Context")+".Consumer";case Xce:return(t._context.displayName||"Context")+".Provider";case pq:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case mq:return e=t.displayName||null,e!==null?e:E$(t.type)||"Memo";case Hg:e=t._payload,t=t._init;try{return E$(t(e))}catch{}}return null}function Eje(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return E$(e);case 8:return e===fq?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Ly(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function eue(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Aje(t){var e=eue(t)?"checked":"value",r=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),n=""+t[e];if(!t.hasOwnProperty(e)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,a=r.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(c){n=""+c,a.call(this,c)}}),Object.defineProperty(t,e,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(c){n=""+c},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function NP(t){t._valueTracker||(t._valueTracker=Aje(t))}function tue(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var r=e.getValue(),n="";return t&&(n=eue(t)?t.checked?"true":"false":t.value),t=n,t!==r?(e.setValue(t),!0):!1}function XR(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function A$(t,e){var r=e.checked;return to({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??t._wrapperState.initialChecked})}function rQ(t,e){var r=e.defaultValue==null?"":e.defaultValue,n=e.checked!=null?e.checked:e.defaultChecked;r=Ly(e.value!=null?e.value:r),t._wrapperState={initialChecked:n,initialValue:r,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function rue(t,e){e=e.checked,e!=null&&hq(t,"checked",e,!1)}function k$(t,e){rue(t,e);var r=Ly(e.value),n=e.type;if(r!=null)n==="number"?(r===0&&t.value===""||t.value!=r)&&(t.value=""+r):t.value!==""+r&&(t.value=""+r);else if(n==="submit"||n==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?C$(t,e.type,r):e.hasOwnProperty("defaultValue")&&C$(t,e.type,Ly(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function nQ(t,e,r){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var n=e.type;if(!(n!=="submit"&&n!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,r||e===t.value||(t.value=e),t.defaultValue=e}r=t.name,r!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,r!==""&&(t.name=r)}function C$(t,e,r){(e!=="number"||XR(t.ownerDocument)!==t)&&(r==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+r&&(t.defaultValue=""+r))}var F2=Array.isArray;function vw(t,e,r,n){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=RP.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function IA(t,e){if(e){var r=t.firstChild;if(r&&r===t.lastChild&&r.nodeType===3){r.nodeValue=e;return}}t.textContent=e}var Z2={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kje=["Webkit","ms","Moz","O"];Object.keys(Z2).forEach(function(t){kje.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Z2[e]=Z2[t]})});function aue(t,e,r){return e==null||typeof e=="boolean"||e===""?"":r||typeof e!="number"||e===0||Z2.hasOwnProperty(t)&&Z2[t]?(""+e).trim():e+"px"}function oue(t,e){t=t.style;for(var r in e)if(e.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=aue(r,e[r],n);r==="float"&&(r="cssFloat"),n?t.setProperty(r,i):t[r]=i}}var Cje=to({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function P$(t,e){if(e){if(Cje[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Vr(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Vr(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Vr(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Vr(62))}}function N$(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var R$=null;function gq(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var L$=null,bw=null,ww=null;function aQ(t){if(t=mC(t)){if(typeof L$!="function")throw Error(Vr(280));var e=t.stateNode;e&&(e=jM(e),L$(t.stateNode,t.type,e))}}function lue(t){bw?ww?ww.push(t):ww=[t]:bw=t}function cue(){if(bw){var t=bw,e=ww;if(ww=bw=null,aQ(t),e)for(t=0;t>>=0,t===0?32:31-(Bje(t)/zje|0)|0}var LP=64,DP=4194304;function B2(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function tL(t,e){var r=t.pendingLanes;if(r===0)return 0;var n=0,i=t.suspendedLanes,a=t.pingedLanes,c=r&268435455;if(c!==0){var s=c&~i;s!==0?n=B2(s):(a&=c,a!==0&&(n=B2(a)))}else c=r&~i,c!==0?n=B2(c):a!==0&&(n=B2(a));if(n===0)return 0;if(e!==0&&e!==n&&!(e&i)&&(i=n&-n,a=e&-e,i>=a||i===16&&(a&4194240)!==0))return e;if(n&4&&(n|=r&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=n;0r;r++)e.push(t);return e}function fC(t,e,r){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Wh(e),t[e]=r}function qje(t,e){var r=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var n=t.eventTimes;for(t=t.expirationTimes;0=Q2),mQ=" ",gQ=!1;function Iue(t,e){switch(t){case"keyup":return xPe.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jue(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ew=!1;function vPe(t,e){switch(t){case"compositionend":return jue(e);case"keypress":return e.which!==32?null:(gQ=!0,mQ);case"textInput":return t=e.data,t===mQ&&gQ?null:t;default:return null}}function bPe(t,e){if(ew)return t==="compositionend"||!Tq&&Iue(t,e)?(t=kue(),oR=bq=fy=null,ew=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:r,offset:e-t};t=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=vQ(r)}}function Lue(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Lue(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Due(){for(var t=window,e=XR();e instanceof t.HTMLIFrameElement;){try{var r=typeof e.contentWindow.location.href=="string"}catch{r=!1}if(r)t=e.contentWindow;else break;e=XR(t.document)}return e}function Eq(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function jPe(t){var e=Due(),r=t.focusedElem,n=t.selectionRange;if(e!==r&&r&&r.ownerDocument&&Lue(r.ownerDocument.documentElement,r)){if(n!==null&&Eq(r)){if(e=n.start,t=n.end,t===void 0&&(t=e),"selectionStart"in r)r.selectionStart=e,r.selectionEnd=Math.min(t,r.value.length);else if(t=(e=r.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=r.textContent.length,a=Math.min(n.start,i);n=n.end===void 0?a:Math.min(n.end,i),!t.extend&&a>n&&(i=n,n=a,a=i),i=bQ(r,a);var c=bQ(r,n);i&&c&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==c.node||t.focusOffset!==c.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),a>n?(t.addRange(e),t.extend(c.node,c.offset)):(e.setEnd(c.node,c.offset),t.addRange(e)))}}for(e=[],t=r;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,tw=null,z$=null,eA=null,$$=!1;function wQ(t,e,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;$$||tw==null||tw!==XR(n)||(n=tw,"selectionStart"in n&&Eq(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),eA&&DA(eA,n)||(eA=n,n=iL(z$,"onSelect"),0iw||(t.current=W$[iw],W$[iw]=null,iw--)}function pa(t,e){iw++,W$[iw]=t.current,t.current=e}var Dy={},mc=Qy(Dy),Su=Qy(!1),f_=Dy;function t1(t,e){var r=t.type.contextTypes;if(!r)return Dy;var n=t.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===e)return n.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in r)i[a]=e[a];return n&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function Tu(t){return t=t.childContextTypes,t!=null}function aL(){ka(Su),ka(mc)}function IQ(t,e,r){if(mc.current!==Dy)throw Error(Vr(168));pa(mc,e),pa(Su,r)}function que(t,e,r){var n=t.stateNode;if(e=e.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in e))throw Error(Vr(108,Eje(t)||"Unknown",i));return to({},r,n)}function oL(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Dy,f_=mc.current,pa(mc,t),pa(Su,Su.current),!0}function jQ(t,e,r){var n=t.stateNode;if(!n)throw Error(Vr(169));r?(t=que(t,e,f_),n.__reactInternalMemoizedMergedChildContext=t,ka(Su),ka(mc),pa(mc,t)):ka(Su),pa(Su,r)}var am=null,PM=!1,z4=!1;function Gue(t){am===null?am=[t]:am.push(t)}function UPe(t){PM=!0,Gue(t)}function Jy(){if(!z4&&am!==null){z4=!0;var t=0,e=Vs;try{var r=am;for(Vs=1;t>=c,i-=c,um=1<<32-Wh(e)+i|r<Q?(se=Z,Z=null):se=Z.sibling;var ie=T(M,Z,B[Q],V);if(ie===null){Z===null&&(Z=se);break}t&&Z&&ie.alternate===null&&e(M,Z),D=a(ie,D,Q),W===null?G=ie:W.sibling=ie,W=ie,Z=se}if(Q===B.length)return r(M,Z),Da&&I0(M,Q),G;if(Z===null){for(;QQ?(se=Z,Z=null):se=Z.sibling;var ue=T(M,Z,ie.value,V);if(ue===null){Z===null&&(Z=se);break}t&&Z&&ue.alternate===null&&e(M,Z),D=a(ue,D,Q),W===null?G=ue:W.sibling=ue,W=ue,Z=se}if(ie.done)return r(M,Z),Da&&I0(M,Q),G;if(Z===null){for(;!ie.done;Q++,ie=B.next())ie=_(M,ie.value,V),ie!==null&&(D=a(ie,D,Q),W===null?G=ie:W.sibling=ie,W=ie);return Da&&I0(M,Q),G}for(Z=n(M,Z);!ie.done;Q++,ie=B.next())ie=E(Z,M,Q,ie.value,V),ie!==null&&(t&&ie.alternate!==null&&Z.delete(ie.key===null?Q:ie.key),D=a(ie,D,Q),W===null?G=ie:W.sibling=ie,W=ie);return t&&Z.forEach(function(be){return e(M,be)}),Da&&I0(M,Q),G}function L(M,D,B,V){if(typeof B=="object"&&B!==null&&B.type===Jb&&B.key===null&&(B=B.props.children),typeof B=="object"&&B!==null){switch(B.$$typeof){case PP:e:{for(var G=B.key,W=D;W!==null;){if(W.key===G){if(G=B.type,G===Jb){if(W.tag===7){r(M,W.sibling),D=i(W,B.props.children),D.return=M,M=D;break e}}else if(W.elementType===G||typeof G=="object"&&G!==null&&G.$$typeof===Hg&&RQ(G)===W.type){r(M,W.sibling),D=i(W,B.props),D.ref=i2(M,W,B),D.return=M,M=D;break e}r(M,W);break}else e(M,W);W=W.sibling}B.type===Jb?(D=o_(B.props.children,M.mode,V,B.key),D.return=M,M=D):(V=mR(B.type,B.key,B.props,null,M.mode,V),V.ref=i2(M,D,B),V.return=M,M=V)}return c(M);case Qb:e:{for(W=B.key;D!==null;){if(D.key===W)if(D.tag===4&&D.stateNode.containerInfo===B.containerInfo&&D.stateNode.implementation===B.implementation){r(M,D.sibling),D=i(D,B.children||[]),D.return=M,M=D;break e}else{r(M,D);break}else e(M,D);D=D.sibling}D=K4(B,M.mode,V),D.return=M,M=D}return c(M);case Hg:return W=B._init,L(M,D,W(B._payload),V)}if(F2(B))return C(M,D,B,V);if(JE(B))return N(M,D,B,V);UP(M,B)}return typeof B=="string"&&B!==""||typeof B=="number"?(B=""+B,D!==null&&D.tag===6?(r(M,D.sibling),D=i(D,B),D.return=M,M=D):(r(M,D),D=W4(B,M.mode,V),D.return=M,M=D),c(M)):r(M,D)}return L}var n1=Yue(!0),Zue=Yue(!1),uL=Qy(null),dL=null,ow=null,Iq=null;function jq(){Iq=ow=dL=null}function Pq(t){var e=uL.current;ka(uL),t._currentValue=e}function Z$(t,e,r){for(;t!==null;){var n=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,n!==null&&(n.childLanes|=e)):n!==null&&(n.childLanes&e)!==e&&(n.childLanes|=e),t===r)break;t=t.return}}function Tw(t,e){dL=t,Iq=ow=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(vu=!0),t.firstContext=null)}function Wd(t){var e=t._currentValue;if(Iq!==t)if(t={context:t,memoizedValue:e,next:null},ow===null){if(dL===null)throw Error(Vr(308));ow=t,dL.dependencies={lanes:0,firstContext:t}}else ow=ow.next=t;return e}var $0=null;function Nq(t){$0===null?$0=[t]:$0.push(t)}function Xue(t,e,r,n){var i=e.interleaved;return i===null?(r.next=r,Nq(e)):(r.next=i.next,i.next=r),e.interleaved=r,Am(t,n)}function Am(t,e){t.lanes|=e;var r=t.alternate;for(r!==null&&(r.lanes|=e),r=t,t=t.return;t!==null;)t.childLanes|=e,r=t.alternate,r!==null&&(r.childLanes|=e),r=t,t=t.return;return r.tag===3?r.stateNode:null}var Wg=!1;function Rq(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Que(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function mm(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function Sy(t,e,r){var n=t.updateQueue;if(n===null)return null;if(n=n.shared,ys&2){var i=n.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),n.pending=e,Am(t,r)}return i=n.interleaved,i===null?(e.next=e,Nq(n)):(e.next=i.next,i.next=e),n.interleaved=e,Am(t,r)}function cR(t,e,r){if(e=e.updateQueue,e!==null&&(e=e.shared,(r&4194240)!==0)){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,xq(t,r)}}function LQ(t,e){var r=t.updateQueue,n=t.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,a=null;if(r=r.firstBaseUpdate,r!==null){do{var c={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};a===null?i=a=c:a=a.next=c,r=r.next}while(r!==null);a===null?i=a=e:a=a.next=e}else i=a=e;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:n.shared,effects:n.effects},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=e:t.next=e,r.lastBaseUpdate=e}function hL(t,e,r,n){var i=t.updateQueue;Wg=!1;var a=i.firstBaseUpdate,c=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var f=s,m=f.next;f.next=null,c===null?a=m:c.next=m,c=f;var x=t.alternate;x!==null&&(x=x.updateQueue,s=x.lastBaseUpdate,s!==c&&(s===null?x.firstBaseUpdate=m:s.next=m,x.lastBaseUpdate=f))}if(a!==null){var _=i.baseState;c=0,x=m=f=null,s=a;do{var T=s.lane,E=s.eventTime;if((n&T)===T){x!==null&&(x=x.next={eventTime:E,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var C=t,N=s;switch(T=e,E=r,N.tag){case 1:if(C=N.payload,typeof C=="function"){_=C.call(E,_,T);break e}_=C;break e;case 3:C.flags=C.flags&-65537|128;case 0:if(C=N.payload,T=typeof C=="function"?C.call(E,_,T):C,T==null)break e;_=to({},_,T);break e;case 2:Wg=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,T=i.effects,T===null?i.effects=[s]:T.push(s))}else E={eventTime:E,lane:T,tag:s.tag,payload:s.payload,callback:s.callback,next:null},x===null?(m=x=E,f=_):x=x.next=E,c|=T;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;T=s,s=T.next,T.next=null,i.lastBaseUpdate=T,i.shared.pending=null}}while(!0);if(x===null&&(f=_),i.baseState=f,i.firstBaseUpdate=m,i.lastBaseUpdate=x,e=i.shared.interleaved,e!==null){i=e;do c|=i.lane,i=i.next;while(i!==e)}else a===null&&(i.shared.lanes=0);g_|=c,t.lanes=c,t.memoizedState=_}}function DQ(t,e,r){if(t=e.effects,e.effects=null,t!==null)for(e=0;er?r:4,t(!0);var n=U4.transition;U4.transition={};try{t(!1),e()}finally{Vs=r,U4.transition=n}}function mde(){return Kd().memoizedState}function HPe(t,e,r){var n=Ey(t);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},gde(t))yde(e,r);else if(r=Xue(t,e,r,n),r!==null){var i=Yc();Kh(r,t,n,i),xde(r,e,n)}}function WPe(t,e,r){var n=Ey(t),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(gde(t))yde(e,i);else{var a=t.alternate;if(t.lanes===0&&(a===null||a.lanes===0)&&(a=e.lastRenderedReducer,a!==null))try{var c=e.lastRenderedState,s=a(c,r);if(i.hasEagerState=!0,i.eagerState=s,Qh(s,c)){var f=e.interleaved;f===null?(i.next=i,Nq(e)):(i.next=f.next,f.next=i),e.interleaved=i;return}}catch{}finally{}r=Xue(t,e,i,n),r!==null&&(i=Yc(),Kh(r,t,n,i),xde(r,e,n))}}function gde(t){var e=t.alternate;return t===Ja||e!==null&&e===Ja}function yde(t,e){tA=pL=!0;var r=t.pending;r===null?e.next=e:(e.next=r.next,r.next=e),t.pending=e}function xde(t,e,r){if(r&4194240){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,xq(t,r)}}var mL={readContext:Wd,useCallback:lc,useContext:lc,useEffect:lc,useImperativeHandle:lc,useInsertionEffect:lc,useLayoutEffect:lc,useMemo:lc,useReducer:lc,useRef:lc,useState:lc,useDebugValue:lc,useDeferredValue:lc,useTransition:lc,useMutableSource:lc,useSyncExternalStore:lc,useId:lc,unstable_isNewReconciler:!1},KPe={readContext:Wd,useCallback:function(t,e){return Nf().memoizedState=[t,e===void 0?null:e],t},useContext:Wd,useEffect:OQ,useImperativeHandle:function(t,e,r){return r=r!=null?r.concat([t]):null,dR(4194308,4,ude.bind(null,e,t),r)},useLayoutEffect:function(t,e){return dR(4194308,4,t,e)},useInsertionEffect:function(t,e){return dR(4,2,t,e)},useMemo:function(t,e){var r=Nf();return e=e===void 0?null:e,t=t(),r.memoizedState=[t,e],t},useReducer:function(t,e,r){var n=Nf();return e=r!==void 0?r(e):e,n.memoizedState=n.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},n.queue=t,t=t.dispatch=HPe.bind(null,Ja,t),[n.memoizedState,t]},useRef:function(t){var e=Nf();return t={current:t},e.memoizedState=t},useState:MQ,useDebugValue:$q,useDeferredValue:function(t){return Nf().memoizedState=t},useTransition:function(){var t=MQ(!1),e=t[0];return t=GPe.bind(null,t[1]),Nf().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,r){var n=Ja,i=Nf();if(Da){if(r===void 0)throw Error(Vr(407));r=r()}else{if(r=e(),Al===null)throw Error(Vr(349));m_&30||rde(n,e,r)}i.memoizedState=r;var a={value:r,getSnapshot:e};return i.queue=a,OQ(ide.bind(null,n,a,t),[t]),n.flags|=2048,VA(9,nde.bind(null,n,a,r,e),void 0,null),r},useId:function(){var t=Nf(),e=Al.identifierPrefix;if(Da){var r=dm,n=um;r=(n&~(1<<32-Wh(n)-1)).toString(32)+r,e=":"+e+"R"+r,r=$A++,0<\/script>",t=t.removeChild(t.firstChild)):typeof n.is=="string"?t=c.createElement(r,{is:n.is}):(t=c.createElement(r),r==="select"&&(c=t,n.multiple?c.multiple=!0:n.size&&(c.size=n.size))):t=c.createElementNS(t,r),t[zf]=e,t[FA]=n,Cde(t,e,!1,!1),e.stateNode=t;e:{switch(c=N$(r,n),r){case"dialog":Sa("cancel",t),Sa("close",t),i=n;break;case"iframe":case"object":case"embed":Sa("load",t),i=n;break;case"video":case"audio":for(i=0;ia1&&(e.flags|=128,n=!0,s2(a,!1),e.lanes=4194304)}else{if(!n)if(t=fL(c),t!==null){if(e.flags|=128,n=!0,r=t.updateQueue,r!==null&&(e.updateQueue=r,e.flags|=4),s2(a,!0),a.tail===null&&a.tailMode==="hidden"&&!c.alternate&&!Da)return cc(e),null}else 2*So()-a.renderingStartTime>a1&&r!==1073741824&&(e.flags|=128,n=!0,s2(a,!1),e.lanes=4194304);a.isBackwards?(c.sibling=e.child,e.child=c):(r=a.last,r!==null?r.sibling=c:e.child=c,a.last=c)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=So(),e.sibling=null,r=Za.current,pa(Za,n?r&1|2:r&1),e):(cc(e),null);case 22:case 23:return Wq(),n=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==n&&(e.flags|=8192),n&&e.mode&1?Gu&1073741824&&(cc(e),e.subtreeFlags&6&&(e.flags|=8192)):cc(e),null;case 24:return null;case 25:return null}throw Error(Vr(156,e.tag))}function rNe(t,e){switch(kq(e),e.tag){case 1:return Tu(e.type)&&aL(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return i1(),ka(Su),ka(mc),Mq(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return Dq(e),null;case 13:if(ka(Za),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Vr(340));r1()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return ka(Za),null;case 4:return i1(),null;case 10:return Pq(e.type._context),null;case 22:case 23:return Wq(),null;case 24:return null;default:return null}}var qP=!1,hc=!1,nNe=typeof WeakSet=="function"?WeakSet:Set,bn=null;function lw(t,e){var r=t.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){lo(t,e,n)}else r.current=null}function sU(t,e,r){try{r()}catch(n){lo(t,e,n)}}var KQ=!1;function iNe(t,e){if(U$=rL,t=Due(),Eq(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,a=n.focusNode;n=n.focusOffset;try{r.nodeType,a.nodeType}catch{r=null;break e}var c=0,s=-1,f=-1,m=0,x=0,_=t,T=null;t:for(;;){for(var E;_!==r||i!==0&&_.nodeType!==3||(s=c+i),_!==a||n!==0&&_.nodeType!==3||(f=c+n),_.nodeType===3&&(c+=_.nodeValue.length),(E=_.firstChild)!==null;)T=_,_=E;for(;;){if(_===t)break t;if(T===r&&++m===i&&(s=c),T===a&&++x===n&&(f=c),(E=_.nextSibling)!==null)break;_=T,T=_.parentNode}_=E}r=s===-1||f===-1?null:{start:s,end:f}}else r=null}r=r||{start:0,end:0}}else r=null;for(V$={focusedElem:t,selectionRange:r},rL=!1,bn=e;bn!==null;)if(e=bn,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,bn=t;else for(;bn!==null;){e=bn;try{var C=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var N=C.memoizedProps,L=C.memoizedState,M=e.stateNode,D=M.getSnapshotBeforeUpdate(e.elementType===e.type?N:Nh(e.type,N),L);M.__reactInternalSnapshotBeforeUpdate=D}break;case 3:var B=e.stateNode.containerInfo;B.nodeType===1?B.textContent="":B.nodeType===9&&B.documentElement&&B.removeChild(B.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Vr(163))}}catch(V){lo(e,e.return,V)}if(t=e.sibling,t!==null){t.return=e.return,bn=t;break}bn=e.return}return C=KQ,KQ=!1,C}function rA(t,e,r){var n=e.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&t)===t){var a=i.destroy;i.destroy=void 0,a!==void 0&&sU(e,r,a)}i=i.next}while(i!==n)}}function LM(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var r=e=e.next;do{if((r.tag&t)===t){var n=r.create;r.destroy=n()}r=r.next}while(r!==e)}}function aU(t){var e=t.ref;if(e!==null){var r=t.stateNode;switch(t.tag){case 5:t=r;break;default:t=r}typeof e=="function"?e(t):e.current=t}}function Pde(t){var e=t.alternate;e!==null&&(t.alternate=null,Pde(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[zf],delete e[FA],delete e[H$],delete e[zPe],delete e[$Pe])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Nde(t){return t.tag===5||t.tag===3||t.tag===4}function YQ(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Nde(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function oU(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.nodeType===8?r.parentNode.insertBefore(t,e):r.insertBefore(t,e):(r.nodeType===8?(e=r.parentNode,e.insertBefore(t,r)):(e=r,e.appendChild(t)),r=r._reactRootContainer,r!=null||e.onclick!==null||(e.onclick=sL));else if(n!==4&&(t=t.child,t!==null))for(oU(t,e,r),t=t.sibling;t!==null;)oU(t,e,r),t=t.sibling}function lU(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.insertBefore(t,e):r.appendChild(t);else if(n!==4&&(t=t.child,t!==null))for(lU(t,e,r),t=t.sibling;t!==null;)lU(t,e,r),t=t.sibling}var Ol=null,Dh=!1;function Pg(t,e,r){for(r=r.child;r!==null;)Rde(t,e,r),r=r.sibling}function Rde(t,e,r){if(Yf&&typeof Yf.onCommitFiberUnmount=="function")try{Yf.onCommitFiberUnmount(AM,r)}catch{}switch(r.tag){case 5:hc||lw(r,e);case 6:var n=Ol,i=Dh;Ol=null,Pg(t,e,r),Ol=n,Dh=i,Ol!==null&&(Dh?(t=Ol,r=r.stateNode,t.nodeType===8?t.parentNode.removeChild(r):t.removeChild(r)):Ol.removeChild(r.stateNode));break;case 18:Ol!==null&&(Dh?(t=Ol,r=r.stateNode,t.nodeType===8?B4(t.parentNode,r):t.nodeType===1&&B4(t,r),RA(t)):B4(Ol,r.stateNode));break;case 4:n=Ol,i=Dh,Ol=r.stateNode.containerInfo,Dh=!0,Pg(t,e,r),Ol=n,Dh=i;break;case 0:case 11:case 14:case 15:if(!hc&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var a=i,c=a.destroy;a=a.tag,c!==void 0&&(a&2||a&4)&&sU(r,e,c),i=i.next}while(i!==n)}Pg(t,e,r);break;case 1:if(!hc&&(lw(r,e),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){lo(r,e,s)}Pg(t,e,r);break;case 21:Pg(t,e,r);break;case 22:r.mode&1?(hc=(n=hc)||r.memoizedState!==null,Pg(t,e,r),hc=n):Pg(t,e,r);break;default:Pg(t,e,r)}}function ZQ(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var r=t.stateNode;r===null&&(r=t.stateNode=new nNe),e.forEach(function(n){var i=fNe.bind(null,t,n);r.has(n)||(r.add(n),n.then(i,i))})}}function Th(t,e){var r=e.deletions;if(r!==null)for(var n=0;ni&&(i=c),n&=~a}if(n=i,n=So()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*aNe(n/1960))-n,10t?16:t,py===null)var n=!1;else{if(t=py,py=null,xL=0,ys&6)throw Error(Vr(331));var i=ys;for(ys|=4,bn=t.current;bn!==null;){var a=bn,c=a.child;if(bn.flags&16){var s=a.deletions;if(s!==null){for(var f=0;fSo()-Gq?a_(t,0):qq|=r),Eu(t,e)}function $de(t,e){e===0&&(t.mode&1?(e=DP,DP<<=1,!(DP&130023424)&&(DP=4194304)):e=1);var r=Yc();t=Am(t,e),t!==null&&(fC(t,e,r),Eu(t,r))}function hNe(t){var e=t.memoizedState,r=0;e!==null&&(r=e.retryLane),$de(t,r)}function fNe(t,e){var r=0;switch(t.tag){case 13:var n=t.stateNode,i=t.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=t.stateNode;break;default:throw Error(Vr(314))}n!==null&&n.delete(e),$de(t,r)}var Ude;Ude=function(t,e,r){if(t!==null)if(t.memoizedProps!==e.pendingProps||Su.current)vu=!0;else{if(!(t.lanes&r)&&!(e.flags&128))return vu=!1,eNe(t,e,r);vu=!!(t.flags&131072)}else vu=!1,Da&&e.flags&1048576&&Hue(e,cL,e.index);switch(e.lanes=0,e.tag){case 2:var n=e.type;hR(t,e),t=e.pendingProps;var i=t1(e,mc.current);Tw(e,r),i=Fq(null,e,n,t,i,r);var a=Bq();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Tu(n)?(a=!0,oL(e)):a=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Rq(e),i.updater=RM,e.stateNode=i,i._reactInternals=e,Q$(e,n,t,r),e=tU(null,e,n,!0,a,r)):(e.tag=0,Da&&a&&Aq(e),Fc(null,e,i,r),e=e.child),e;case 16:n=e.elementType;e:{switch(hR(t,e),t=e.pendingProps,i=n._init,n=i(n._payload),e.type=n,i=e.tag=mNe(n),t=Nh(n,t),i){case 0:e=eU(null,e,n,t,r);break e;case 1:e=GQ(null,e,n,t,r);break e;case 11:e=VQ(null,e,n,t,r);break e;case 14:e=qQ(null,e,n,Nh(n.type,t),r);break e}throw Error(Vr(306,n,""))}return e;case 0:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:Nh(n,i),eU(t,e,n,i,r);case 1:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:Nh(n,i),GQ(t,e,n,i,r);case 3:e:{if(Ede(e),t===null)throw Error(Vr(387));n=e.pendingProps,a=e.memoizedState,i=a.element,Que(t,e),hL(e,n,null,r);var c=e.memoizedState;if(n=c.element,a.isDehydrated)if(a={element:n,isDehydrated:!1,cache:c.cache,pendingSuspenseBoundaries:c.pendingSuspenseBoundaries,transitions:c.transitions},e.updateQueue.baseState=a,e.memoizedState=a,e.flags&256){i=s1(Error(Vr(423)),e),e=HQ(t,e,n,r,i);break e}else if(n!==i){i=s1(Error(Vr(424)),e),e=HQ(t,e,n,r,i);break e}else for(Xu=wy(e.stateNode.containerInfo.firstChild),ed=e,Da=!0,Bh=null,r=Zue(e,null,n,r),e.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(r1(),n===i){e=km(t,e,r);break e}Fc(t,e,n,r)}e=e.child}return e;case 5:return Jue(e),t===null&&Y$(e),n=e.type,i=e.pendingProps,a=t!==null?t.memoizedProps:null,c=i.children,q$(n,i)?c=null:a!==null&&q$(n,a)&&(e.flags|=32),Tde(t,e),Fc(t,e,c,r),e.child;case 6:return t===null&&Y$(e),null;case 13:return Ade(t,e,r);case 4:return Lq(e,e.stateNode.containerInfo),n=e.pendingProps,t===null?e.child=n1(e,null,n,r):Fc(t,e,n,r),e.child;case 11:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:Nh(n,i),VQ(t,e,n,i,r);case 7:return Fc(t,e,e.pendingProps,r),e.child;case 8:return Fc(t,e,e.pendingProps.children,r),e.child;case 12:return Fc(t,e,e.pendingProps.children,r),e.child;case 10:e:{if(n=e.type._context,i=e.pendingProps,a=e.memoizedProps,c=i.value,pa(uL,n._currentValue),n._currentValue=c,a!==null)if(Qh(a.value,c)){if(a.children===i.children&&!Su.current){e=km(t,e,r);break e}}else for(a=e.child,a!==null&&(a.return=e);a!==null;){var s=a.dependencies;if(s!==null){c=a.child;for(var f=s.firstContext;f!==null;){if(f.context===n){if(a.tag===1){f=mm(-1,r&-r),f.tag=2;var m=a.updateQueue;if(m!==null){m=m.shared;var x=m.pending;x===null?f.next=f:(f.next=x.next,x.next=f),m.pending=f}}a.lanes|=r,f=a.alternate,f!==null&&(f.lanes|=r),Z$(a.return,r,e),s.lanes|=r;break}f=f.next}}else if(a.tag===10)c=a.type===e.type?null:a.child;else if(a.tag===18){if(c=a.return,c===null)throw Error(Vr(341));c.lanes|=r,s=c.alternate,s!==null&&(s.lanes|=r),Z$(c,r,e),c=a.sibling}else c=a.child;if(c!==null)c.return=a;else for(c=a;c!==null;){if(c===e){c=null;break}if(a=c.sibling,a!==null){a.return=c.return,c=a;break}c=c.return}a=c}Fc(t,e,i.children,r),e=e.child}return e;case 9:return i=e.type,n=e.pendingProps.children,Tw(e,r),i=Wd(i),n=n(i),e.flags|=1,Fc(t,e,n,r),e.child;case 14:return n=e.type,i=Nh(n,e.pendingProps),i=Nh(n.type,i),qQ(t,e,n,i,r);case 15:return wde(t,e,e.type,e.pendingProps,r);case 17:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:Nh(n,i),hR(t,e),e.tag=1,Tu(n)?(t=!0,oL(e)):t=!1,Tw(e,r),_de(e,n,i),Q$(e,n,i,r),tU(null,e,n,!0,t,r);case 19:return kde(t,e,r);case 22:return Sde(t,e,r)}throw Error(Vr(156,e.tag))};function Vde(t,e){return gue(t,e)}function pNe(t,e,r,n){this.tag=t,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bd(t,e,r,n){return new pNe(t,e,r,n)}function Yq(t){return t=t.prototype,!(!t||!t.isReactComponent)}function mNe(t){if(typeof t=="function")return Yq(t)?1:0;if(t!=null){if(t=t.$$typeof,t===pq)return 11;if(t===mq)return 14}return 2}function Ay(t,e){var r=t.alternate;return r===null?(r=Bd(t.tag,e,t.key,t.mode),r.elementType=t.elementType,r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.pendingProps=e,r.type=t.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=t.flags&14680064,r.childLanes=t.childLanes,r.lanes=t.lanes,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,e=t.dependencies,r.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r}function mR(t,e,r,n,i,a){var c=2;if(n=t,typeof t=="function")Yq(t)&&(c=1);else if(typeof t=="string")c=5;else e:switch(t){case Jb:return o_(r.children,i,a,e);case fq:c=8,i|=8;break;case w$:return t=Bd(12,r,e,i|2),t.elementType=w$,t.lanes=a,t;case S$:return t=Bd(13,r,e,i),t.elementType=S$,t.lanes=a,t;case T$:return t=Bd(19,r,e,i),t.elementType=T$,t.lanes=a,t;case Jce:return MM(r,i,a,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case Xce:c=10;break e;case Qce:c=9;break e;case pq:c=11;break e;case mq:c=14;break e;case Hg:c=16,n=null;break e}throw Error(Vr(130,t==null?t:typeof t,""))}return e=Bd(c,r,e,i),e.elementType=t,e.type=n,e.lanes=a,e}function o_(t,e,r,n){return t=Bd(7,t,n,e),t.lanes=r,t}function MM(t,e,r,n){return t=Bd(22,t,n,e),t.elementType=Jce,t.lanes=r,t.stateNode={isHidden:!1},t}function W4(t,e,r){return t=Bd(6,t,null,e),t.lanes=r,t}function K4(t,e,r){return e=Bd(4,t.children!==null?t.children:[],t.key,e),e.lanes=r,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function gNe(t,e,r,n,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=C4(0),this.expirationTimes=C4(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=C4(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Zq(t,e,r,n,i,a,c,s,f){return t=new gNe(t,e,r,s,f),e===1?(e=1,a===!0&&(e|=8)):e=0,a=Bd(3,null,null,e),t.current=a,a.stateNode=t,a.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Rq(a),t}function yNe(t,e,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Wde)}catch(t){console.error(t)}}Wde(),Wce.exports=ld;var Fm=Wce.exports;const Kde=fs(Fm);var Yde,iJ=Fm;Yde=iJ.createRoot,iJ.hydrateRoot;const wNe="modulepreload",SNe=function(t){return"/"+t},sJ={},$e=function(e,r,n){let i=Promise.resolve();if(r&&r.length>0){document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),s=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));i=Promise.allSettled(r.map(f=>{if(f=SNe(f),f in sJ)return;sJ[f]=!0;const m=f.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${x}`))return;const _=document.createElement("link");if(_.rel=m?"stylesheet":wNe,m||(_.as="script"),_.crossOrigin="",_.href=f,s&&_.setAttribute("nonce",s),document.head.appendChild(_),m)return new Promise((T,E)=>{_.addEventListener("load",T),_.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${f}`)))})}))}function a(c){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=c,window.dispatchEvent(s),!s.defaultPrevented)throw c}return i.then(c=>{for(const s of c||[])s.status==="rejected"&&a(s.reason);return e().catch(a)})},TNe=new Set(["localhost","relevelup.com","thelocalmove.com","www.thelocalmove.com"]),ENe=t=>t.toLowerCase().replace(/:\d+$/,"").replace(/^www\./,"");function ANe(t){return!!(t==="localhost"||t.endsWith(".localhost")||/^\d{1,3}(\.\d{1,3}){3}$/.test(t)||t.endsWith(".lovable.app")||t.endsWith(".lovableproject.com")||t.endsWith(".lovable.dev")||t.endsWith(".vercel.app")||t==="relevelup.com"||t.endsWith(".relevelup.com")||t==="thelocalmove.com"||t.endsWith(".thelocalmove.com")||TNe.has(t))}function Zde(t){return Xde(t)!==null}function Xde(t){const e=ENe(t);return ANe(e)?null:e}const kNe=1,CNe=1e6;let Y4=0;function INe(){return Y4=(Y4+1)%Number.MAX_SAFE_INTEGER,Y4.toString()}const Z4=new Map,aJ=t=>{if(Z4.has(t))return;const e=setTimeout(()=>{Z4.delete(t),sA({type:"REMOVE_TOAST",toastId:t})},CNe);Z4.set(t,e)},jNe=(t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,kNe)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(r=>r.id===e.toast.id?{...r,...e.toast}:r)};case"DISMISS_TOAST":{const{toastId:r}=e;return r?aJ(r):t.toasts.forEach(n=>{aJ(n.id)}),{...t,toasts:t.toasts.map(n=>n.id===r||r===void 0?{...n,open:!1}:n)}}case"REMOVE_TOAST":return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(r=>r.id!==e.toastId)}}},gR=[];let yR={toasts:[]};function sA(t){yR=jNe(yR,t),gR.forEach(e=>{e(yR)})}function As({...t}){const e=INe(),r=i=>sA({type:"UPDATE_TOAST",toast:{...i,id:e}}),n=()=>sA({type:"DISMISS_TOAST",toastId:e});return sA({type:"ADD_TOAST",toast:{...t,id:e,open:!0,onOpenChange:i=>{i||n()}}}),{id:e,dismiss:n,update:r}}function Qde(){const[t,e]=P.useState(yR);return P.useEffect(()=>(gR.push(e),()=>{const r=gR.indexOf(e);r>-1&&gR.splice(r,1)}),[t]),{...t,toast:As,dismiss:r=>sA({type:"DISMISS_TOAST",toastId:r})}}function Or(t,e,{checkForDefaultPrevented:r=!0}={}){return function(i){if(t==null||t(i),r===!1||!i.defaultPrevented)return e==null?void 0:e(i)}}function oJ(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Cm(...t){return e=>{let r=!1;const n=t.map(i=>{const a=oJ(i,e);return!r&&typeof a=="function"&&(r=!0),a});if(r)return()=>{for(let i=0;i{const{children:c,...s}=a,f=P.useMemo(()=>s,Object.values(s));return o.jsx(r.Provider,{value:f,children:c})};n.displayName=t+"Provider";function i(a){const c=P.useContext(r);if(c)return c;if(e!==void 0)return e;throw new Error(`\`${a}\` must be used within \`${t}\``)}return[n,i]}function Go(t,e=[]){let r=[];function n(a,c){const s=P.createContext(c),f=r.length;r=[...r,c];const m=_=>{var M;const{scope:T,children:E,...C}=_,N=((M=T==null?void 0:T[t])==null?void 0:M[f])||s,L=P.useMemo(()=>C,Object.values(C));return o.jsx(N.Provider,{value:L,children:E})};m.displayName=a+"Provider";function x(_,T){var N;const E=((N=T==null?void 0:T[t])==null?void 0:N[f])||s,C=P.useContext(E);if(C)return C;if(c!==void 0)return c;throw new Error(`\`${_}\` must be used within \`${a}\``)}return[m,x]}const i=()=>{const a=r.map(c=>P.createContext(c));return function(s){const f=(s==null?void 0:s[t])||a;return P.useMemo(()=>({[`__scope${t}`]:{...s,[t]:f}}),[s,f])}};return i.scopeName=t,[n,NNe(i,...e)]}function NNe(...t){const e=t[0];if(t.length===1)return e;const r=()=>{const n=t.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){const c=n.reduce((s,{useScope:f,scopeName:m})=>{const _=f(a)[`__scope${m}`];return{...s,..._}},{});return P.useMemo(()=>({[`__scope${e.scopeName}`]:c}),[c])}};return r.scopeName=e.scopeName,r}function My(t){const e=RNe(t),r=P.forwardRef((n,i)=>{const{children:a,...c}=n,s=P.Children.toArray(a),f=s.find(LNe);if(f){const m=f.props.children,x=s.map(_=>_===f?P.Children.count(m)>1?P.Children.only(null):P.isValidElement(m)?m.props.children:null:_);return o.jsx(e,{...c,ref:i,children:P.isValidElement(m)?P.cloneElement(m,void 0,x):null})}return o.jsx(e,{...c,ref:i,children:a})});return r.displayName=`${t}.Slot`,r}var Jde=My("Slot");function RNe(t){const e=P.forwardRef((r,n)=>{const{children:i,...a}=r;if(P.isValidElement(i)){const c=MNe(i),s=DNe(a,i.props);return i.type!==P.Fragment&&(s.ref=n?Cm(n,c):c),P.cloneElement(i,s)}return P.Children.count(i)>1?P.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var ehe=Symbol("radix.slottable");function the(t){const e=({children:r})=>o.jsx(o.Fragment,{children:r});return e.displayName=`${t}.Slottable`,e.__radixId=ehe,e}function LNe(t){return P.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===ehe}function DNe(t,e){const r={...e};for(const n in e){const i=t[n],a=e[n];/^on[A-Z]/.test(n)?i&&a?r[n]=(...s)=>{const f=a(...s);return i(...s),f}:i&&(r[n]=i):n==="style"?r[n]={...i,...a}:n==="className"&&(r[n]=[i,a].filter(Boolean).join(" "))}return{...t,...r}}function MNe(t){var n,i;let e=(n=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:n.get,r=e&&"isReactWarning"in e&&e.isReactWarning;return r?t.ref:(e=(i=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:i.get,r=e&&"isReactWarning"in e&&e.isReactWarning,r?t.props.ref:t.props.ref||t.ref)}function yC(t){const e=t+"CollectionProvider",[r,n]=Go(e),[i,a]=r(e,{collectionRef:{current:null},itemMap:new Map}),c=N=>{const{scope:L,children:M}=N,D=Xe.useRef(null),B=Xe.useRef(new Map).current;return o.jsx(i,{scope:L,itemMap:B,collectionRef:D,children:M})};c.displayName=e;const s=t+"CollectionSlot",f=My(s),m=Xe.forwardRef((N,L)=>{const{scope:M,children:D}=N,B=a(s,M),V=Gn(L,B.collectionRef);return o.jsx(f,{ref:V,children:D})});m.displayName=s;const x=t+"CollectionItemSlot",_="data-radix-collection-item",T=My(x),E=Xe.forwardRef((N,L)=>{const{scope:M,children:D,...B}=N,V=Xe.useRef(null),G=Gn(L,V),W=a(x,M);return Xe.useEffect(()=>(W.itemMap.set(V,{ref:V,...B}),()=>void W.itemMap.delete(V))),o.jsx(T,{[_]:"",ref:G,children:D})});E.displayName=x;function C(N){const L=a(t+"CollectionConsumer",N);return Xe.useCallback(()=>{const D=L.collectionRef.current;if(!D)return[];const B=Array.from(D.querySelectorAll(`[${_}]`));return Array.from(L.itemMap.values()).sort((W,Z)=>B.indexOf(W.ref.current)-B.indexOf(Z.ref.current))},[L.collectionRef,L.itemMap])}return[{Provider:c,Slot:m,ItemSlot:E},C,n]}var ONe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],rn=ONe.reduce((t,e)=>{const r=My(`Primitive.${e}`),n=P.forwardRef((i,a)=>{const{asChild:c,...s}=i,f=c?r:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(f,{...s,ref:a})});return n.displayName=`Primitive.${e}`,{...t,[e]:n}},{});function eG(t,e){t&&Fm.flushSync(()=>t.dispatchEvent(e))}function ho(t){const e=P.useRef(t);return P.useEffect(()=>{e.current=t}),P.useMemo(()=>(...r)=>{var n;return(n=e.current)==null?void 0:n.call(e,...r)},[])}function FNe(t,e=globalThis==null?void 0:globalThis.document){const r=ho(t);P.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return e.addEventListener("keydown",n,{capture:!0}),()=>e.removeEventListener("keydown",n,{capture:!0})},[r,e])}var BNe="DismissableLayer",fU="dismissableLayer.update",zNe="dismissableLayer.pointerDownOutside",$Ne="dismissableLayer.focusOutside",lJ,rhe=P.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),O_=P.forwardRef((t,e)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:c,onDismiss:s,...f}=t,m=P.useContext(rhe),[x,_]=P.useState(null),T=(x==null?void 0:x.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,E]=P.useState({}),C=Gn(e,Z=>_(Z)),N=Array.from(m.layers),[L]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),M=N.indexOf(L),D=x?N.indexOf(x):-1,B=m.layersWithOutsidePointerEventsDisabled.size>0,V=D>=M,G=VNe(Z=>{const Q=Z.target,se=[...m.branches].some(ie=>ie.contains(Q));!V||se||(i==null||i(Z),c==null||c(Z),Z.defaultPrevented||s==null||s())},T),W=qNe(Z=>{const Q=Z.target;[...m.branches].some(ie=>ie.contains(Q))||(a==null||a(Z),c==null||c(Z),Z.defaultPrevented||s==null||s())},T);return FNe(Z=>{D===m.layers.size-1&&(n==null||n(Z),!Z.defaultPrevented&&s&&(Z.preventDefault(),s()))},T),P.useEffect(()=>{if(x)return r&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(lJ=T.body.style.pointerEvents,T.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(x)),m.layers.add(x),cJ(),()=>{r&&m.layersWithOutsidePointerEventsDisabled.size===1&&(T.body.style.pointerEvents=lJ)}},[x,T,r,m]),P.useEffect(()=>()=>{x&&(m.layers.delete(x),m.layersWithOutsidePointerEventsDisabled.delete(x),cJ())},[x,m]),P.useEffect(()=>{const Z=()=>E({});return document.addEventListener(fU,Z),()=>document.removeEventListener(fU,Z)},[]),o.jsx(rn.div,{...f,ref:C,style:{pointerEvents:B?V?"auto":"none":void 0,...t.style},onFocusCapture:Or(t.onFocusCapture,W.onFocusCapture),onBlurCapture:Or(t.onBlurCapture,W.onBlurCapture),onPointerDownCapture:Or(t.onPointerDownCapture,G.onPointerDownCapture)})});O_.displayName=BNe;var UNe="DismissableLayerBranch",nhe=P.forwardRef((t,e)=>{const r=P.useContext(rhe),n=P.useRef(null),i=Gn(e,n);return P.useEffect(()=>{const a=n.current;if(a)return r.branches.add(a),()=>{r.branches.delete(a)}},[r.branches]),o.jsx(rn.div,{...t,ref:i})});nhe.displayName=UNe;function VNe(t,e=globalThis==null?void 0:globalThis.document){const r=ho(t),n=P.useRef(!1),i=P.useRef(()=>{});return P.useEffect(()=>{const a=s=>{if(s.target&&!n.current){let f=function(){ihe(zNe,r,m,{discrete:!0})};const m={originalEvent:s};s.pointerType==="touch"?(e.removeEventListener("click",i.current),i.current=f,e.addEventListener("click",i.current,{once:!0})):f()}else e.removeEventListener("click",i.current);n.current=!1},c=window.setTimeout(()=>{e.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(c),e.removeEventListener("pointerdown",a),e.removeEventListener("click",i.current)}},[e,r]),{onPointerDownCapture:()=>n.current=!0}}function qNe(t,e=globalThis==null?void 0:globalThis.document){const r=ho(t),n=P.useRef(!1);return P.useEffect(()=>{const i=a=>{a.target&&!n.current&&ihe($Ne,r,{originalEvent:a},{discrete:!1})};return e.addEventListener("focusin",i),()=>e.removeEventListener("focusin",i)},[e,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function cJ(){const t=new CustomEvent(fU);document.dispatchEvent(t)}function ihe(t,e,r,{discrete:n}){const i=r.originalEvent.target,a=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:r});e&&i.addEventListener(t,e,{once:!0}),n?eG(i,a):i.dispatchEvent(a)}var GNe=O_,HNe=nhe,jo=globalThis!=null&&globalThis.document?P.useLayoutEffect:()=>{},WNe="Portal",rS=P.forwardRef((t,e)=>{var s;const{container:r,...n}=t,[i,a]=P.useState(!1);jo(()=>a(!0),[]);const c=r||i&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return c?Kde.createPortal(o.jsx(rn.div,{...n,ref:e}),c):null});rS.displayName=WNe;function KNe(t,e){return P.useReducer((r,n)=>e[r][n]??r,t)}var ul=t=>{const{present:e,children:r}=t,n=YNe(e),i=typeof r=="function"?r({present:n.isPresent}):P.Children.only(r),a=Gn(n.ref,ZNe(i));return typeof r=="function"||n.isPresent?P.cloneElement(i,{ref:a}):null};ul.displayName="Presence";function YNe(t){const[e,r]=P.useState(),n=P.useRef(null),i=P.useRef(t),a=P.useRef("none"),c=t?"mounted":"unmounted",[s,f]=KNe(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return P.useEffect(()=>{const m=WP(n.current);a.current=s==="mounted"?m:"none"},[s]),jo(()=>{const m=n.current,x=i.current;if(x!==t){const T=a.current,E=WP(m);t?f("MOUNT"):E==="none"||(m==null?void 0:m.display)==="none"?f("UNMOUNT"):f(x&&T!==E?"ANIMATION_OUT":"UNMOUNT"),i.current=t}},[t,f]),jo(()=>{if(e){let m;const x=e.ownerDocument.defaultView??window,_=E=>{const N=WP(n.current).includes(E.animationName);if(E.target===e&&N&&(f("ANIMATION_END"),!i.current)){const L=e.style.animationFillMode;e.style.animationFillMode="forwards",m=x.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=L)})}},T=E=>{E.target===e&&(a.current=WP(n.current))};return e.addEventListener("animationstart",T),e.addEventListener("animationcancel",_),e.addEventListener("animationend",_),()=>{x.clearTimeout(m),e.removeEventListener("animationstart",T),e.removeEventListener("animationcancel",_),e.removeEventListener("animationend",_)}}else f("ANIMATION_END")},[e,f]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:P.useCallback(m=>{n.current=m?getComputedStyle(m):null,r(m)},[])}}function WP(t){return(t==null?void 0:t.animationName)||"none"}function ZNe(t){var n,i;let e=(n=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:n.get,r=e&&"isReactWarning"in e&&e.isReactWarning;return r?t.ref:(e=(i=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:i.get,r=e&&"isReactWarning"in e&&e.isReactWarning,r?t.props.ref:t.props.ref||t.ref)}var XNe=cq[" useInsertionEffect ".trim().toString()]||jo;function sd({prop:t,defaultProp:e,onChange:r=()=>{},caller:n}){const[i,a,c]=QNe({defaultProp:e,onChange:r}),s=t!==void 0,f=s?t:i;{const x=P.useRef(t!==void 0);P.useEffect(()=>{const _=x.current;_!==s&&console.warn(`${n} is changing from ${_?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),x.current=s},[s,n])}const m=P.useCallback(x=>{var _;if(s){const T=JNe(x)?x(t):x;T!==t&&((_=c.current)==null||_.call(c,T))}else a(x)},[s,t,a,c]);return[f,m]}function QNe({defaultProp:t,onChange:e}){const[r,n]=P.useState(t),i=P.useRef(r),a=P.useRef(e);return XNe(()=>{a.current=e},[e]),P.useEffect(()=>{var c;i.current!==r&&((c=a.current)==null||c.call(a,r),i.current=r)},[r,i]),[r,n,a]}function JNe(t){return typeof t=="function"}var she=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),eRe="VisuallyHidden",$M=P.forwardRef((t,e)=>o.jsx(rn.span,{...t,ref:e,style:{...she,...t.style}}));$M.displayName=eRe;var tRe=$M,tG="ToastProvider",[rG,rRe,nRe]=yC("Toast"),[ahe,a$t]=Go("Toast",[nRe]),[iRe,UM]=ahe(tG),ohe=t=>{const{__scopeToast:e,label:r="Notification",duration:n=5e3,swipeDirection:i="right",swipeThreshold:a=50,children:c}=t,[s,f]=P.useState(null),[m,x]=P.useState(0),_=P.useRef(!1),T=P.useRef(!1);return r.trim()||console.error(`Invalid prop \`label\` supplied to \`${tG}\`. Expected non-empty \`string\`.`),o.jsx(rG.Provider,{scope:e,children:o.jsx(iRe,{scope:e,label:r,duration:n,swipeDirection:i,swipeThreshold:a,toastCount:m,viewport:s,onViewportChange:f,onToastAdd:P.useCallback(()=>x(E=>E+1),[]),onToastRemove:P.useCallback(()=>x(E=>E-1),[]),isFocusedToastEscapeKeyDownRef:_,isClosePausedRef:T,children:c})})};ohe.displayName=tG;var lhe="ToastViewport",sRe=["F8"],pU="toast.viewportPause",mU="toast.viewportResume",che=P.forwardRef((t,e)=>{const{__scopeToast:r,hotkey:n=sRe,label:i="Notifications ({hotkey})",...a}=t,c=UM(lhe,r),s=rRe(r),f=P.useRef(null),m=P.useRef(null),x=P.useRef(null),_=P.useRef(null),T=Gn(e,_,c.onViewportChange),E=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),C=c.toastCount>0;P.useEffect(()=>{const L=M=>{var B;n.length!==0&&n.every(V=>M[V]||M.code===V)&&((B=_.current)==null||B.focus())};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[n]),P.useEffect(()=>{const L=f.current,M=_.current;if(C&&L&&M){const D=()=>{if(!c.isClosePausedRef.current){const W=new CustomEvent(pU);M.dispatchEvent(W),c.isClosePausedRef.current=!0}},B=()=>{if(c.isClosePausedRef.current){const W=new CustomEvent(mU);M.dispatchEvent(W),c.isClosePausedRef.current=!1}},V=W=>{!L.contains(W.relatedTarget)&&B()},G=()=>{L.contains(document.activeElement)||B()};return L.addEventListener("focusin",D),L.addEventListener("focusout",V),L.addEventListener("pointermove",D),L.addEventListener("pointerleave",G),window.addEventListener("blur",D),window.addEventListener("focus",B),()=>{L.removeEventListener("focusin",D),L.removeEventListener("focusout",V),L.removeEventListener("pointermove",D),L.removeEventListener("pointerleave",G),window.removeEventListener("blur",D),window.removeEventListener("focus",B)}}},[C,c.isClosePausedRef]);const N=P.useCallback(({tabbingDirection:L})=>{const D=s().map(B=>{const V=B.ref.current,G=[V,...xRe(V)];return L==="forwards"?G:G.reverse()});return(L==="forwards"?D.reverse():D).flat()},[s]);return P.useEffect(()=>{const L=_.current;if(L){const M=D=>{var G,W,Z;const B=D.altKey||D.ctrlKey||D.metaKey;if(D.key==="Tab"&&!B){const Q=document.activeElement,se=D.shiftKey;if(D.target===L&&se){(G=m.current)==null||G.focus();return}const be=N({tabbingDirection:se?"backwards":"forwards"}),Te=be.findIndex(we=>we===Q);X4(be.slice(Te+1))?D.preventDefault():se?(W=m.current)==null||W.focus():(Z=x.current)==null||Z.focus()}};return L.addEventListener("keydown",M),()=>L.removeEventListener("keydown",M)}},[s,N]),o.jsxs(HNe,{ref:f,role:"region","aria-label":i.replace("{hotkey}",E),tabIndex:-1,style:{pointerEvents:C?void 0:"none"},children:[C&&o.jsx(gU,{ref:m,onFocusFromOutsideViewport:()=>{const L=N({tabbingDirection:"forwards"});X4(L)}}),o.jsx(rG.Slot,{scope:r,children:o.jsx(rn.ol,{tabIndex:-1,...a,ref:T})}),C&&o.jsx(gU,{ref:x,onFocusFromOutsideViewport:()=>{const L=N({tabbingDirection:"backwards"});X4(L)}})]})});che.displayName=lhe;var uhe="ToastFocusProxy",gU=P.forwardRef((t,e)=>{const{__scopeToast:r,onFocusFromOutsideViewport:n,...i}=t,a=UM(uhe,r);return o.jsx($M,{"aria-hidden":!0,tabIndex:0,...i,ref:e,style:{position:"fixed"},onFocus:c=>{var m;const s=c.relatedTarget;!((m=a.viewport)!=null&&m.contains(s))&&n()}})});gU.displayName=uhe;var xC="Toast",aRe="toast.swipeStart",oRe="toast.swipeMove",lRe="toast.swipeCancel",cRe="toast.swipeEnd",dhe=P.forwardRef((t,e)=>{const{forceMount:r,open:n,defaultOpen:i,onOpenChange:a,...c}=t,[s,f]=sd({prop:n,defaultProp:i??!0,onChange:a,caller:xC});return o.jsx(ul,{present:r||s,children:o.jsx(hRe,{open:s,...c,ref:e,onClose:()=>f(!1),onPause:ho(t.onPause),onResume:ho(t.onResume),onSwipeStart:Or(t.onSwipeStart,m=>{m.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Or(t.onSwipeMove,m=>{const{x,y:_}=m.detail.delta;m.currentTarget.setAttribute("data-swipe","move"),m.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${x}px`),m.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${_}px`)}),onSwipeCancel:Or(t.onSwipeCancel,m=>{m.currentTarget.setAttribute("data-swipe","cancel"),m.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),m.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),m.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),m.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Or(t.onSwipeEnd,m=>{const{x,y:_}=m.detail.delta;m.currentTarget.setAttribute("data-swipe","end"),m.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),m.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),m.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${x}px`),m.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${_}px`),f(!1)})})})});dhe.displayName=xC;var[uRe,dRe]=ahe(xC,{onClose(){}}),hRe=P.forwardRef((t,e)=>{const{__scopeToast:r,type:n="foreground",duration:i,open:a,onClose:c,onEscapeKeyDown:s,onPause:f,onResume:m,onSwipeStart:x,onSwipeMove:_,onSwipeCancel:T,onSwipeEnd:E,...C}=t,N=UM(xC,r),[L,M]=P.useState(null),D=Gn(e,we=>M(we)),B=P.useRef(null),V=P.useRef(null),G=i||N.duration,W=P.useRef(0),Z=P.useRef(G),Q=P.useRef(0),{onToastAdd:se,onToastRemove:ie}=N,ue=ho(()=>{var Oe;(L==null?void 0:L.contains(document.activeElement))&&((Oe=N.viewport)==null||Oe.focus()),c()}),be=P.useCallback(we=>{!we||we===1/0||(window.clearTimeout(Q.current),W.current=new Date().getTime(),Q.current=window.setTimeout(ue,we))},[ue]);P.useEffect(()=>{const we=N.viewport;if(we){const Oe=()=>{be(Z.current),m==null||m()},Ae=()=>{const Se=new Date().getTime()-W.current;Z.current=Z.current-Se,window.clearTimeout(Q.current),f==null||f()};return we.addEventListener(pU,Ae),we.addEventListener(mU,Oe),()=>{we.removeEventListener(pU,Ae),we.removeEventListener(mU,Oe)}}},[N.viewport,G,f,m,be]),P.useEffect(()=>{a&&!N.isClosePausedRef.current&&be(G)},[a,G,N.isClosePausedRef,be]),P.useEffect(()=>(se(),()=>ie()),[se,ie]);const Te=P.useMemo(()=>L?xhe(L):null,[L]);return N.viewport?o.jsxs(o.Fragment,{children:[Te&&o.jsx(fRe,{__scopeToast:r,role:"status","aria-live":n==="foreground"?"assertive":"polite","aria-atomic":!0,children:Te}),o.jsx(uRe,{scope:r,onClose:ue,children:Fm.createPortal(o.jsx(rG.ItemSlot,{scope:r,children:o.jsx(GNe,{asChild:!0,onEscapeKeyDown:Or(s,()=>{N.isFocusedToastEscapeKeyDownRef.current||ue(),N.isFocusedToastEscapeKeyDownRef.current=!1}),children:o.jsx(rn.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":a?"open":"closed","data-swipe-direction":N.swipeDirection,...C,ref:D,style:{userSelect:"none",touchAction:"none",...t.style},onKeyDown:Or(t.onKeyDown,we=>{we.key==="Escape"&&(s==null||s(we.nativeEvent),we.nativeEvent.defaultPrevented||(N.isFocusedToastEscapeKeyDownRef.current=!0,ue()))}),onPointerDown:Or(t.onPointerDown,we=>{we.button===0&&(B.current={x:we.clientX,y:we.clientY})}),onPointerMove:Or(t.onPointerMove,we=>{if(!B.current)return;const Oe=we.clientX-B.current.x,Ae=we.clientY-B.current.y,Se=!!V.current,ge=["left","right"].includes(N.swipeDirection),je=["left","up"].includes(N.swipeDirection)?Math.min:Math.max,_e=ge?je(0,Oe):0,xe=ge?0:je(0,Ae),Pe=we.pointerType==="touch"?10:2,Ze={x:_e,y:xe},at={originalEvent:we,delta:Ze};Se?(V.current=Ze,KP(oRe,_,at,{discrete:!1})):uJ(Ze,N.swipeDirection,Pe)?(V.current=Ze,KP(aRe,x,at,{discrete:!1}),we.target.setPointerCapture(we.pointerId)):(Math.abs(Oe)>Pe||Math.abs(Ae)>Pe)&&(B.current=null)}),onPointerUp:Or(t.onPointerUp,we=>{const Oe=V.current,Ae=we.target;if(Ae.hasPointerCapture(we.pointerId)&&Ae.releasePointerCapture(we.pointerId),V.current=null,B.current=null,Oe){const Se=we.currentTarget,ge={originalEvent:we,delta:Oe};uJ(Oe,N.swipeDirection,N.swipeThreshold)?KP(cRe,E,ge,{discrete:!0}):KP(lRe,T,ge,{discrete:!0}),Se.addEventListener("click",je=>je.preventDefault(),{once:!0})}})})})}),N.viewport)})]}):null}),fRe=t=>{const{__scopeToast:e,children:r,...n}=t,i=UM(xC,e),[a,c]=P.useState(!1),[s,f]=P.useState(!1);return gRe(()=>c(!0)),P.useEffect(()=>{const m=window.setTimeout(()=>f(!0),1e3);return()=>window.clearTimeout(m)},[]),s?null:o.jsx(rS,{asChild:!0,children:o.jsx($M,{...n,children:a&&o.jsxs(o.Fragment,{children:[i.label," ",r]})})})},pRe="ToastTitle",hhe=P.forwardRef((t,e)=>{const{__scopeToast:r,...n}=t;return o.jsx(rn.div,{...n,ref:e})});hhe.displayName=pRe;var mRe="ToastDescription",fhe=P.forwardRef((t,e)=>{const{__scopeToast:r,...n}=t;return o.jsx(rn.div,{...n,ref:e})});fhe.displayName=mRe;var phe="ToastAction",mhe=P.forwardRef((t,e)=>{const{altText:r,...n}=t;return r.trim()?o.jsx(yhe,{altText:r,asChild:!0,children:o.jsx(nG,{...n,ref:e})}):(console.error(`Invalid prop \`altText\` supplied to \`${phe}\`. Expected non-empty \`string\`.`),null)});mhe.displayName=phe;var ghe="ToastClose",nG=P.forwardRef((t,e)=>{const{__scopeToast:r,...n}=t,i=dRe(ghe,r);return o.jsx(yhe,{asChild:!0,children:o.jsx(rn.button,{type:"button",...n,ref:e,onClick:Or(t.onClick,i.onClose)})})});nG.displayName=ghe;var yhe=P.forwardRef((t,e)=>{const{__scopeToast:r,altText:n,...i}=t;return o.jsx(rn.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":n||void 0,...i,ref:e})});function xhe(t){const e=[];return Array.from(t.childNodes).forEach(n=>{if(n.nodeType===n.TEXT_NODE&&n.textContent&&e.push(n.textContent),yRe(n)){const i=n.ariaHidden||n.hidden||n.style.display==="none",a=n.dataset.radixToastAnnounceExclude==="";if(!i)if(a){const c=n.dataset.radixToastAnnounceAlt;c&&e.push(c)}else e.push(...xhe(n))}}),e}function KP(t,e,r,{discrete:n}){const i=r.originalEvent.currentTarget,a=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r});e&&i.addEventListener(t,e,{once:!0}),n?eG(i,a):i.dispatchEvent(a)}var uJ=(t,e,r=0)=>{const n=Math.abs(t.x),i=Math.abs(t.y),a=n>i;return e==="left"||e==="right"?a&&n>r:!a&&i>r};function gRe(t=()=>{}){const e=ho(t);jo(()=>{let r=0,n=0;return r=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(e)),()=>{window.cancelAnimationFrame(r),window.cancelAnimationFrame(n)}},[e])}function yRe(t){return t.nodeType===t.ELEMENT_NODE}function xRe(t){const e=[],r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)e.push(r.currentNode);return e}function X4(t){const e=document.activeElement;return t.some(r=>r===e?!0:(r.focus(),document.activeElement!==e))}var _Re=ohe,_he=che,vhe=dhe,bhe=hhe,whe=fhe,She=mhe,The=nG;function Ehe(t){var e,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;etypeof t=="boolean"?`${t}`:t===0?"0":t,hJ=Mi,nS=(t,e)=>r=>{var n;if((e==null?void 0:e.variants)==null)return hJ(t,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:i,defaultVariants:a}=e,c=Object.keys(i).map(m=>{const x=r==null?void 0:r[m],_=a==null?void 0:a[m];if(x===null)return null;const T=dJ(x)||dJ(_);return i[m][T]}),s=r&&Object.entries(r).reduce((m,x)=>{let[_,T]=x;return T===void 0||(m[_]=T),m},{}),f=e==null||(n=e.compoundVariants)===null||n===void 0?void 0:n.reduce((m,x)=>{let{class:_,className:T,...E}=x;return Object.entries(E).every(C=>{let[N,L]=C;return Array.isArray(L)?L.includes({...a,...s}[N]):{...a,...s}[N]===L})?[...m,_,T]:m},[]);return hJ(t,c,f,r==null?void 0:r.class,r==null?void 0:r.className)};/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vRe=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ahe=(...t)=>t.filter((e,r,n)=>!!e&&e.trim()!==""&&n.indexOf(e)===r).join(" ").trim();/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */var bRe={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wRe=P.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:i="",children:a,iconNode:c,...s},f)=>P.createElement("svg",{ref:f,...bRe,width:e,height:e,stroke:t,strokeWidth:n?Number(r)*24/Number(e):r,className:Ahe("lucide",i),...s},[...c.map(([m,x])=>P.createElement(m,x)),...Array.isArray(a)?a:[a]]));/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ar=(t,e)=>{const r=P.forwardRef(({className:n,...i},a)=>P.createElement(wRe,{ref:a,iconNode:e,className:Ahe(`lucide-${vRe(t)}`,n),...i}));return r.displayName=`${t}`,r};/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const fJ=ar("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Oy=ar("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Uc=ar("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SRe=ar("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const aA=ar("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const iS=ar("Bath",[["path",{d:"M10 4 8 6",key:"1rru8s"}],["path",{d:"M17 19v2",key:"ts1sot"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M7 19v2",key:"12npes"}],["path",{d:"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",key:"14ym8i"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const TRe=ar("BedDouble",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const _C=ar("Bed",[["path",{d:"M2 4v16",key:"vw9hq8"}],["path",{d:"M2 8h18a2 2 0 0 1 2 2v10",key:"1dgv2r"}],["path",{d:"M2 17h20",key:"18nfp3"}],["path",{d:"M6 8v9",key:"1yriud"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vC=ar("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const o1=ar("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bL=ar("Bookmark",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ERe=ar("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const khe=ar("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Eo=ar("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ARe=ar("Cake",[["path",{d:"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8",key:"1w3rig"}],["path",{d:"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1",key:"n2jgmb"}],["path",{d:"M2 21h20",key:"1nyx9w"}],["path",{d:"M7 8v3",key:"1qtyvj"}],["path",{d:"M12 8v3",key:"hwp4zt"}],["path",{d:"M17 8v3",key:"1i6e5u"}],["path",{d:"M7 4h.01",key:"1bh4kh"}],["path",{d:"M12 4h.01",key:"1ujb9j"}],["path",{d:"M17 4h.01",key:"1upcoc"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Che=ar("Calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const iG=ar("CalendarCheck",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m9 16 2 2 4-4",key:"19s6y9"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ihe=ar("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Xf=ar("CalendarDays",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jhe=ar("CalendarPlus",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"3spt84"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 16v6",key:"tddt3s"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const fo=ar("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const pJ=ar("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const GA=ar("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ao=ar("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Yd=ar("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Bm=ar("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const th=ar("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const kRe=ar("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const yU=ar("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Phe=ar("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const gc=ar("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const CRe=ar("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const sG=ar("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const l1=ar("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const xU=ar("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Q4=ar("ClipboardList",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const pc=ar("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const mJ=ar("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const _U=ar("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const gm=ar("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Zl=ar("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const IRe=ar("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jRe=ar("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const sS=ar("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const aG=ar("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Nhe=ar("Facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const PRe=ar("FilePenLine",[["path",{d:"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2",key:"142zxg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const NRe=ar("FileStack",[["path",{d:"M21 7h-3a2 2 0 0 1-2-2V2",key:"9rb54x"}],["path",{d:"M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17Z",key:"1059l0"}],["path",{d:"M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15",key:"16874u"}],["path",{d:"M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11",key:"k2ox98"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Im=ar("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const gJ=ar("Film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const RRe=ar("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Rhe=ar("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Yh=ar("Gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const c1=ar("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const HA=ar("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const LRe=ar("Grid3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const DRe=ar("HandHelping",[["path",{d:"M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14",key:"1j4xps"}],["path",{d:"m7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"uospg8"}],["path",{d:"m2 13 6 6",key:"16e5sb"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vU=ar("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const tp=ar("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ma=ar("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const yJ=ar("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Lhe=ar("Instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const oG=ar("Kanban",[["path",{d:"M6 5v11",key:"mdvv1e"}],["path",{d:"M12 5v6",key:"14ar3b"}],["path",{d:"M18 5v14",key:"7ji314"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const MRe=ar("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Dhe=ar("Key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Mhe=ar("Landmark",[["line",{x1:"3",x2:"21",y1:"22",y2:"22",key:"j8o0r"}],["line",{x1:"6",x2:"6",y1:"18",y2:"11",key:"10tf0k"}],["line",{x1:"10",x2:"10",y1:"18",y2:"11",key:"54lgf6"}],["line",{x1:"14",x2:"14",y1:"18",y2:"11",key:"380y"}],["line",{x1:"18",x2:"18",y1:"18",y2:"11",key:"1kevvc"}],["polygon",{points:"12 2 20 7 4 7",key:"jkujk7"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ORe=ar("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ohe=ar("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const FRe=ar("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const BRe=ar("LifeBuoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const zRe=ar("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const xJ=ar("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Fhe=ar("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $Re=ar("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bU=ar("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ku=ar("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Fy=ar("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Bhe=ar("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $i=ar("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ga=ar("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const URe=ar("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bC=ar("Megaphone",[["path",{d:"m3 11 18-5v12L3 14v-3z",key:"n962bs"}],["path",{d:"M11.6 16.8a3 3 0 1 1-5.8-1.6",key:"1yl0tm"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const VM=ar("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const VRe=ar("MessageCircleQuestion",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const u1=ar("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const rp=ar("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const qRe=ar("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const zhe=ar("Newspaper",[["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2",key:"7pis2x"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M10 6h8v4h-8V6Z",key:"smlsk5"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const _J=ar("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const qM=ar("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const GRe=ar("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const HRe=ar("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const WRe=ar("Percent",[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const KRe=ar("PhoneCall",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}],["path",{d:"M14.05 2a9 9 0 0 1 8 7.94",key:"vmijpz"}],["path",{d:"M14.05 6A5 5 0 0 1 18 10",key:"13nbpp"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ui=ar("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const YRe=ar("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wL=ar("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ym=ar("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ZRe=ar("Presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const XRe=ar("Quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const QRe=ar("Radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const JRe=ar("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const eLe=ar("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vJ=ar("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const GM=ar("Ruler",[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const tLe=ar("SearchX",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const x_=ar("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SL=ar("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $he=ar("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wC=ar("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const rLe=ar("Share",[["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["polyline",{points:"16 6 12 2 8 6",key:"m901s6"}],["line",{x1:"12",x2:"12",y1:"2",y2:"15",key:"1p0rca"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const lG=ar("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const WA=ar("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Uhe=ar("ShoppingCart",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const nLe=ar("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const J4=ar("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const iLe=ar("Sofa",[["path",{d:"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3",key:"1dgpiv"}],["path",{d:"M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z",key:"xacw8m"}],["path",{d:"M4 18v2",key:"jwo5n2"}],["path",{d:"M20 18v2",key:"1ar1qi"}],["path",{d:"M12 4v9",key:"oqhhn3"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Es=ar("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const sLe=ar("SquareCheckBig",[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wU=ar("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const cG=ar("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Xc=ar("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Vhe=ar("Store",[["path",{d:"m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7",key:"ztvudi"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}],["path",{d:"M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4",key:"2ebpfo"}],["path",{d:"M2 7h20",key:"1fcdvo"}],["path",{d:"M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",key:"6c3vgh"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const aLe=ar("Tablet",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const uG=ar("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const oLe=ar("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const qhe=ar("Ticket",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const TL=ar("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ghe=ar("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const aS=ar("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SC=ar("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const EL=ar("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SU=ar("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const lLe=ar("UserCheck",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["polyline",{points:"16 11 18 13 22 9",key:"1pwet4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const HM=ar("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const kl=ar("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const El=ar("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const AL=ar("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const cLe=ar("Volume2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const uLe=ar("VolumeX",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const dG=ar("Wallet",[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const dLe=ar("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const hG=ar("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Zs=ar("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const hLe=ar("Youtube",[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const kL=ar("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);/** * @license lucide-react v0.462.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bJ=ar("ZoomIn",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),fG="-",fLe=t=>{const e=mLe(t),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=t;return{getClassGroupId:c=>{const s=c.split(fG);return s[0]===""&&s.length!==1&&s.shift(),Hhe(s,e)||pLe(c)},getConflictingClassGroupIds:(c,s)=>{const f=r[c]||[];return s&&n[c]?[...f,...n[c]]:f}}},Hhe=(t,e)=>{var c;if(t.length===0)return e.classGroupId;const r=t[0],n=e.nextPart.get(r),i=n?Hhe(t.slice(1),n):void 0;if(i)return i;if(e.validators.length===0)return;const a=t.join(fG);return(c=e.validators.find(({validator:s})=>s(a)))==null?void 0:c.classGroupId},wJ=/^\[(.+)\]$/,pLe=t=>{if(wJ.test(t)){const e=wJ.exec(t)[1],r=e==null?void 0:e.substring(0,e.indexOf(":"));if(r)return"arbitrary.."+r}},mLe=t=>{const{theme:e,prefix:r}=t,n={nextPart:new Map,validators:[]};return yLe(Object.entries(t.classGroups),r).forEach(([a,c])=>{TU(c,n,a,e)}),n},TU=(t,e,r,n)=>{t.forEach(i=>{if(typeof i=="string"){const a=i===""?e:SJ(e,i);a.classGroupId=r;return}if(typeof i=="function"){if(gLe(i)){TU(i(n),e,r,n);return}e.validators.push({validator:i,classGroupId:r});return}Object.entries(i).forEach(([a,c])=>{TU(c,SJ(e,a),r,n)})})},SJ=(t,e)=>{let r=t;return e.split(fG).forEach(n=>{r.nextPart.has(n)||r.nextPart.set(n,{nextPart:new Map,validators:[]}),r=r.nextPart.get(n)}),r},gLe=t=>t.isThemeGetter,yLe=(t,e)=>e?t.map(([r,n])=>{const i=n.map(a=>typeof a=="string"?e+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([c,s])=>[e+c,s])):a);return[r,i]}):t,xLe=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,r=new Map,n=new Map;const i=(a,c)=>{r.set(a,c),e++,e>t&&(e=0,n=r,r=new Map)};return{get(a){let c=r.get(a);if(c!==void 0)return c;if((c=n.get(a))!==void 0)return i(a,c),c},set(a,c){r.has(a)?r.set(a,c):i(a,c)}}},Whe="!",_Le=t=>{const{separator:e,experimentalParseClassName:r}=t,n=e.length===1,i=e[0],a=e.length,c=s=>{const f=[];let m=0,x=0,_;for(let L=0;Lx?_-x:void 0;return{modifiers:f,hasImportantModifier:E,baseClassName:C,maybePostfixModifierPosition:N}};return r?s=>r({className:s,parseClassName:c}):c},vLe=t=>{if(t.length<=1)return t;const e=[];let r=[];return t.forEach(n=>{n[0]==="["?(e.push(...r.sort(),n),r=[]):r.push(n)}),e.push(...r.sort()),e},bLe=t=>({cache:xLe(t.cacheSize),parseClassName:_Le(t),...fLe(t)}),wLe=/\s+/,SLe=(t,e)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:i}=e,a=[],c=t.trim().split(wLe);let s="";for(let f=c.length-1;f>=0;f-=1){const m=c[f],{modifiers:x,hasImportantModifier:_,baseClassName:T,maybePostfixModifierPosition:E}=r(m);let C=!!E,N=n(C?T.substring(0,E):T);if(!N){if(!C){s=m+(s.length>0?" "+s:s);continue}if(N=n(T),!N){s=m+(s.length>0?" "+s:s);continue}C=!1}const L=vLe(x).join(":"),M=_?L+Whe:L,D=M+N;if(a.includes(D))continue;a.push(D);const B=i(N,C);for(let V=0;V0?" "+s:s)}return s};function TLe(){let t=0,e,r,n="";for(;t{if(typeof t=="string")return t;let e,r="";for(let n=0;n_(x),t());return r=bLe(m),n=r.cache.get,i=r.cache.set,a=s,s(f)}function s(f){const m=n(f);if(m)return m;const x=SLe(f,r);return i(f,x),x}return function(){return a(TLe.apply(null,arguments))}}const wa=t=>{const e=r=>r[t]||[];return e.isThemeGetter=!0,e},Yhe=/^\[(?:([a-z-]+):)?(.+)\]$/i,ALe=/^\d+\/\d+$/,kLe=new Set(["px","full","screen"]),CLe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ILe=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,jLe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,PLe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,NLe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Kp=t=>Aw(t)||kLe.has(t)||ALe.test(t),Ng=t=>oS(t,"length",zLe),Aw=t=>!!t&&!Number.isNaN(Number(t)),eB=t=>oS(t,"number",Aw),o2=t=>!!t&&Number.isInteger(Number(t)),RLe=t=>t.endsWith("%")&&Aw(t.slice(0,-1)),Ni=t=>Yhe.test(t),Rg=t=>CLe.test(t),LLe=new Set(["length","size","percentage"]),DLe=t=>oS(t,LLe,Zhe),MLe=t=>oS(t,"position",Zhe),OLe=new Set(["image","url"]),FLe=t=>oS(t,OLe,ULe),BLe=t=>oS(t,"",$Le),l2=()=>!0,oS=(t,e,r)=>{const n=Yhe.exec(t);return n?n[1]?typeof e=="string"?n[1]===e:e.has(n[1]):r(n[2]):!1},zLe=t=>ILe.test(t)&&!jLe.test(t),Zhe=()=>!1,$Le=t=>PLe.test(t),ULe=t=>NLe.test(t),VLe=()=>{const t=wa("colors"),e=wa("spacing"),r=wa("blur"),n=wa("brightness"),i=wa("borderColor"),a=wa("borderRadius"),c=wa("borderSpacing"),s=wa("borderWidth"),f=wa("contrast"),m=wa("grayscale"),x=wa("hueRotate"),_=wa("invert"),T=wa("gap"),E=wa("gradientColorStops"),C=wa("gradientColorStopPositions"),N=wa("inset"),L=wa("margin"),M=wa("opacity"),D=wa("padding"),B=wa("saturate"),V=wa("scale"),G=wa("sepia"),W=wa("skew"),Z=wa("space"),Q=wa("translate"),se=()=>["auto","contain","none"],ie=()=>["auto","hidden","clip","visible","scroll"],ue=()=>["auto",Ni,e],be=()=>[Ni,e],Te=()=>["",Kp,Ng],we=()=>["auto",Aw,Ni],Oe=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Ae=()=>["solid","dashed","dotted","double","none"],Se=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ge=()=>["start","end","center","between","around","evenly","stretch"],je=()=>["","0",Ni],_e=()=>["auto","avoid","all","avoid-page","page","left","right","column"],xe=()=>[Aw,Ni];return{cacheSize:500,separator:":",theme:{colors:[l2],spacing:[Kp,Ng],blur:["none","",Rg,Ni],brightness:xe(),borderColor:[t],borderRadius:["none","","full",Rg,Ni],borderSpacing:be(),borderWidth:Te(),contrast:xe(),grayscale:je(),hueRotate:xe(),invert:je(),gap:be(),gradientColorStops:[t],gradientColorStopPositions:[RLe,Ng],inset:ue(),margin:ue(),opacity:xe(),padding:be(),saturate:xe(),scale:xe(),sepia:je(),skew:xe(),space:be(),translate:be()},classGroups:{aspect:[{aspect:["auto","square","video",Ni]}],container:["container"],columns:[{columns:[Rg]}],"break-after":[{"break-after":_e()}],"break-before":[{"break-before":_e()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Oe(),Ni]}],overflow:[{overflow:ie()}],"overflow-x":[{"overflow-x":ie()}],"overflow-y":[{"overflow-y":ie()}],overscroll:[{overscroll:se()}],"overscroll-x":[{"overscroll-x":se()}],"overscroll-y":[{"overscroll-y":se()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[N]}],"inset-x":[{"inset-x":[N]}],"inset-y":[{"inset-y":[N]}],start:[{start:[N]}],end:[{end:[N]}],top:[{top:[N]}],right:[{right:[N]}],bottom:[{bottom:[N]}],left:[{left:[N]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",o2,Ni]}],basis:[{basis:ue()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Ni]}],grow:[{grow:je()}],shrink:[{shrink:je()}],order:[{order:["first","last","none",o2,Ni]}],"grid-cols":[{"grid-cols":[l2]}],"col-start-end":[{col:["auto",{span:["full",o2,Ni]},Ni]}],"col-start":[{"col-start":we()}],"col-end":[{"col-end":we()}],"grid-rows":[{"grid-rows":[l2]}],"row-start-end":[{row:["auto",{span:[o2,Ni]},Ni]}],"row-start":[{"row-start":we()}],"row-end":[{"row-end":we()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Ni]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Ni]}],gap:[{gap:[T]}],"gap-x":[{"gap-x":[T]}],"gap-y":[{"gap-y":[T]}],"justify-content":[{justify:["normal",...ge()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...ge(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...ge(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[D]}],px:[{px:[D]}],py:[{py:[D]}],ps:[{ps:[D]}],pe:[{pe:[D]}],pt:[{pt:[D]}],pr:[{pr:[D]}],pb:[{pb:[D]}],pl:[{pl:[D]}],m:[{m:[L]}],mx:[{mx:[L]}],my:[{my:[L]}],ms:[{ms:[L]}],me:[{me:[L]}],mt:[{mt:[L]}],mr:[{mr:[L]}],mb:[{mb:[L]}],ml:[{ml:[L]}],"space-x":[{"space-x":[Z]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[Z]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Ni,e]}],"min-w":[{"min-w":[Ni,e,"min","max","fit"]}],"max-w":[{"max-w":[Ni,e,"none","full","min","max","fit","prose",{screen:[Rg]},Rg]}],h:[{h:[Ni,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Ni,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Ni,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Ni,e,"auto","min","max","fit"]}],"font-size":[{text:["base",Rg,Ng]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",eB]}],"font-family":[{font:[l2]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Ni]}],"line-clamp":[{"line-clamp":["none",Aw,eB]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Kp,Ni]}],"list-image":[{"list-image":["none",Ni]}],"list-style-type":[{list:["none","disc","decimal",Ni]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[M]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[M]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ae(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Kp,Ng]}],"underline-offset":[{"underline-offset":["auto",Kp,Ni]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:be()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ni]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ni]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[M]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Oe(),MLe]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",DLe]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},FLe]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[C]}],"gradient-via-pos":[{via:[C]}],"gradient-to-pos":[{to:[C]}],"gradient-from":[{from:[E]}],"gradient-via":[{via:[E]}],"gradient-to":[{to:[E]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[M]}],"border-style":[{border:[...Ae(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[M]}],"divide-style":[{divide:Ae()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...Ae()]}],"outline-offset":[{"outline-offset":[Kp,Ni]}],"outline-w":[{outline:[Kp,Ng]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:Te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[M]}],"ring-offset-w":[{"ring-offset":[Kp,Ng]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",Rg,BLe]}],"shadow-color":[{shadow:[l2]}],opacity:[{opacity:[M]}],"mix-blend":[{"mix-blend":[...Se(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Se()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[n]}],contrast:[{contrast:[f]}],"drop-shadow":[{"drop-shadow":["","none",Rg,Ni]}],grayscale:[{grayscale:[m]}],"hue-rotate":[{"hue-rotate":[x]}],invert:[{invert:[_]}],saturate:[{saturate:[B]}],sepia:[{sepia:[G]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[f]}],"backdrop-grayscale":[{"backdrop-grayscale":[m]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[x]}],"backdrop-invert":[{"backdrop-invert":[_]}],"backdrop-opacity":[{"backdrop-opacity":[M]}],"backdrop-saturate":[{"backdrop-saturate":[B]}],"backdrop-sepia":[{"backdrop-sepia":[G]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[c]}],"border-spacing-x":[{"border-spacing-x":[c]}],"border-spacing-y":[{"border-spacing-y":[c]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Ni]}],duration:[{duration:xe()}],ease:[{ease:["linear","in","out","in-out",Ni]}],delay:[{delay:xe()}],animate:[{animate:["none","spin","ping","pulse","bounce",Ni]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[V]}],"scale-x":[{"scale-x":[V]}],"scale-y":[{"scale-y":[V]}],rotate:[{rotate:[o2,Ni]}],"translate-x":[{"translate-x":[Q]}],"translate-y":[{"translate-y":[Q]}],"skew-x":[{"skew-x":[W]}],"skew-y":[{"skew-y":[W]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Ni]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ni]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":be()}],"scroll-mx":[{"scroll-mx":be()}],"scroll-my":[{"scroll-my":be()}],"scroll-ms":[{"scroll-ms":be()}],"scroll-me":[{"scroll-me":be()}],"scroll-mt":[{"scroll-mt":be()}],"scroll-mr":[{"scroll-mr":be()}],"scroll-mb":[{"scroll-mb":be()}],"scroll-ml":[{"scroll-ml":be()}],"scroll-p":[{"scroll-p":be()}],"scroll-px":[{"scroll-px":be()}],"scroll-py":[{"scroll-py":be()}],"scroll-ps":[{"scroll-ps":be()}],"scroll-pe":[{"scroll-pe":be()}],"scroll-pt":[{"scroll-pt":be()}],"scroll-pr":[{"scroll-pr":be()}],"scroll-pb":[{"scroll-pb":be()}],"scroll-pl":[{"scroll-pl":be()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ni]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[Kp,Ng,eB]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},qLe=ELe(VLe);function ir(...t){return qLe(Mi(t))}function La(t,e=!1){return e&&t>=1e6?`$${(t/1e6).toFixed(1)}M`:e&&t>=1e3?`$${(t/1e3).toFixed(0)}K`:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}).format(t)}function TJ(t){const e=new Date(t);return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(e)}function o$t(t){return t?t.replace(/<[^>]*>/g,""):""}const GLe=_Re,Xhe=P.forwardRef(({className:t,...e},r)=>o.jsx(_he,{ref:r,className:ir("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",t),...e}));Xhe.displayName=_he.displayName;const HLe=nS("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),Qhe=P.forwardRef(({className:t,variant:e,...r},n)=>o.jsx(vhe,{ref:n,className:ir(HLe({variant:e}),t),...r}));Qhe.displayName=vhe.displayName;const WLe=P.forwardRef(({className:t,...e},r)=>o.jsx(She,{ref:r,className:ir("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",t),...e}));WLe.displayName=She.displayName;const Jhe=P.forwardRef(({className:t,...e},r)=>o.jsx(The,{ref:r,className:ir("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",t),"toast-close":"",...e,children:o.jsx(Zs,{className:"h-4 w-4"})}));Jhe.displayName=The.displayName;const efe=P.forwardRef(({className:t,...e},r)=>o.jsx(bhe,{ref:r,className:ir("text-sm font-semibold",t),...e}));efe.displayName=bhe.displayName;const tfe=P.forwardRef(({className:t,...e},r)=>o.jsx(whe,{ref:r,className:ir("text-sm opacity-90",t),...e}));tfe.displayName=whe.displayName;function KLe(){const{toasts:t}=Qde();return o.jsxs(GLe,{children:[t.map(function({id:e,title:r,description:n,action:i,...a}){return o.jsxs(Qhe,{...a,children:[o.jsxs("div",{className:"grid gap-1",children:[r&&o.jsx(efe,{children:r}),n&&o.jsx(tfe,{children:n})]}),i,o.jsx(Jhe,{})]},e)}),o.jsx(Xhe,{})]})}var EJ=["light","dark"],YLe="(prefers-color-scheme: dark)",ZLe=P.createContext(void 0),XLe={setTheme:t=>{},themes:[]},QLe=()=>{var t;return(t=P.useContext(ZLe))!=null?t:XLe};P.memo(({forcedTheme:t,storageKey:e,attribute:r,enableSystem:n,enableColorScheme:i,defaultTheme:a,value:c,attrs:s,nonce:f})=>{let m=a==="system",x=r==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${s.map(C=>`'${C}'`).join(",")})`};`:`var d=document.documentElement,n='${r}',s='setAttribute';`,_=i?EJ.includes(a)&&a?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${a}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",T=(C,N=!1,L=!0)=>{let M=c?c[C]:C,D=N?C+"|| ''":`'${M}'`,B="";return i&&L&&!N&&EJ.includes(C)&&(B+=`d.style.colorScheme = '${C}';`),r==="class"?N||M?B+=`c.add(${D})`:B+="null":M&&(B+=`d[s](n,${D})`),B},E=t?`!function(){${x}${T(t)}}()`:n?`!function(){try{${x}var e=localStorage.getItem('${e}');if('system'===e||(!e&&${m})){var t='${YLe}',m=window.matchMedia(t);if(m.media!==t||m.matches){${T("dark")}}else{${T("light")}}}else if(e){${c?`var x=${JSON.stringify(c)};`:""}${T(c?"x[e]":"e",!0)}}${m?"":"else{"+T(a,!1,!1)+"}"}${_}}catch(e){}}()`:`!function(){try{${x}var e=localStorage.getItem('${e}');if(e){${c?`var x=${JSON.stringify(c)};`:""}${T(c?"x[e]":"e",!0)}}else{${T(a,!1,!1)};}${_}}catch(t){}}();`;return P.createElement("script",{nonce:f,dangerouslySetInnerHTML:{__html:E}})});var JLe=t=>{switch(t){case"success":return rDe;case"info":return iDe;case"warning":return nDe;case"error":return sDe;default:return null}},eDe=Array(12).fill(0),tDe=({visible:t,className:e})=>Xe.createElement("div",{className:["sonner-loading-wrapper",e].filter(Boolean).join(" "),"data-visible":t},Xe.createElement("div",{className:"sonner-spinner"},eDe.map((r,n)=>Xe.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),rDe=Xe.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Xe.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),nDe=Xe.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Xe.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),iDe=Xe.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Xe.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),sDe=Xe.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Xe.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),aDe=Xe.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},Xe.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Xe.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),oDe=()=>{let[t,e]=Xe.useState(document.hidden);return Xe.useEffect(()=>{let r=()=>{e(document.hidden)};return document.addEventListener("visibilitychange",r),()=>window.removeEventListener("visibilitychange",r)},[]),t},EU=1,lDe=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:r,...n}=t,i=typeof(t==null?void 0:t.id)=="number"||((e=t.id)==null?void 0:e.length)>0?t.id:EU++,a=this.toasts.find(s=>s.id===i),c=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(i)&&this.dismissedToasts.delete(i),a?this.toasts=this.toasts.map(s=>s.id===i?(this.publish({...s,...t,id:i,title:r}),{...s,...t,id:i,dismissible:c,title:r}):s):this.addToast({title:r,...n,dismissible:c,id:i}),i},this.dismiss=t=>(this.dismissedToasts.add(t),t||this.toasts.forEach(e=>{this.subscribers.forEach(r=>r({id:e.id,dismiss:!0}))}),this.subscribers.forEach(e=>e({id:t,dismiss:!0})),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{if(!e)return;let r;e.loading!==void 0&&(r=this.create({...e,promise:t,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));let n=t instanceof Promise?t:t(),i=r!==void 0,a,c=n.then(async f=>{if(a=["resolve",f],Xe.isValidElement(f))i=!1,this.create({id:r,type:"default",message:f});else if(uDe(f)&&!f.ok){i=!1;let m=typeof e.error=="function"?await e.error(`HTTP error! status: ${f.status}`):e.error,x=typeof e.description=="function"?await e.description(`HTTP error! status: ${f.status}`):e.description;this.create({id:r,type:"error",message:m,description:x})}else if(e.success!==void 0){i=!1;let m=typeof e.success=="function"?await e.success(f):e.success,x=typeof e.description=="function"?await e.description(f):e.description;this.create({id:r,type:"success",message:m,description:x})}}).catch(async f=>{if(a=["reject",f],e.error!==void 0){i=!1;let m=typeof e.error=="function"?await e.error(f):e.error,x=typeof e.description=="function"?await e.description(f):e.description;this.create({id:r,type:"error",message:m,description:x})}}).finally(()=>{var f;i&&(this.dismiss(r),r=void 0),(f=e.finally)==null||f.call(e)}),s=()=>new Promise((f,m)=>c.then(()=>a[0]==="reject"?m(a[1]):f(a[1])).catch(m));return typeof r!="string"&&typeof r!="number"?{unwrap:s}:Object.assign(r,{unwrap:s})},this.custom=(t,e)=>{let r=(e==null?void 0:e.id)||EU++;return this.create({jsx:t(r),id:r,...e}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},yu=new lDe,cDe=(t,e)=>{let r=(e==null?void 0:e.id)||EU++;return yu.addToast({title:t,...e,id:r}),r},uDe=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",dDe=cDe,hDe=()=>yu.toasts,fDe=()=>yu.getActiveToasts(),Jt=Object.assign(dDe,{success:yu.success,info:yu.info,warning:yu.warning,error:yu.error,custom:yu.custom,message:yu.message,promise:yu.promise,dismiss:yu.dismiss,loading:yu.loading},{getHistory:hDe,getToasts:fDe});function pDe(t,{insertAt:e}={}){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",e==="top"&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}pDe(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} `);function YP(t){return t.label!==void 0}var mDe=3,gDe="32px",yDe="16px",AJ=4e3,xDe=356,_De=14,vDe=20,bDe=200;function Eh(...t){return t.filter(Boolean).join(" ")}function wDe(t){let[e,r]=t.split("-"),n=[];return e&&n.push(e),r&&n.push(r),n}var SDe=t=>{var e,r,n,i,a,c,s,f,m,x,_;let{invert:T,toast:E,unstyled:C,interacting:N,setHeights:L,visibleToasts:M,heights:D,index:B,toasts:V,expanded:G,removeToast:W,defaultRichColors:Z,closeButton:Q,style:se,cancelButtonStyle:ie,actionButtonStyle:ue,className:be="",descriptionClassName:Te="",duration:we,position:Oe,gap:Ae,loadingIcon:Se,expandByDefault:ge,classNames:je,icons:_e,closeButtonAriaLabel:xe="Close toast",pauseWhenPageIsHidden:Pe}=t,[Ze,at]=Xe.useState(null),[lt,xt]=Xe.useState(null),[St,Xt]=Xe.useState(!1),[_t,Rt]=Xe.useState(!1),[er,vt]=Xe.useState(!1),[xr,_r]=Xe.useState(!1),[tn,or]=Xe.useState(!1),[Sr,jr]=Xe.useState(0),[Qt,Je]=Xe.useState(0),Tt=Xe.useRef(E.duration||we||AJ),Dt=Xe.useRef(null),cr=Xe.useRef(null),lr=B===0,ur=B+1<=M,Rr=E.type,Pn=E.dismissible!==!1,Yn=E.className||"",ki=E.descriptionClassName||"",wi=Xe.useMemo(()=>D.findIndex(Qr=>Qr.toastId===E.id)||0,[D,E.id]),Ci=Xe.useMemo(()=>{var Qr;return(Qr=E.closeButton)!=null?Qr:Q},[E.closeButton,Q]),Gs=Xe.useMemo(()=>E.duration||we||AJ,[E.duration,we]),vi=Xe.useRef(0),sa=Xe.useRef(0),ts=Xe.useRef(0),Pr=Xe.useRef(null),[ni,rs]=Oe.split("-"),Nn=Xe.useMemo(()=>D.reduce((Qr,Dn,ns)=>ns>=wi?Qr:Qr+Dn.height,0),[D,wi]),Nr=oDe(),Sn=E.invert||T,li=Rr==="loading";sa.current=Xe.useMemo(()=>wi*Ae+Nn,[wi,Nn]),Xe.useEffect(()=>{Tt.current=Gs},[Gs]),Xe.useEffect(()=>{Xt(!0)},[]),Xe.useEffect(()=>{let Qr=cr.current;if(Qr){let Dn=Qr.getBoundingClientRect().height;return Je(Dn),L(ns=>[{toastId:E.id,height:Dn,position:E.position},...ns]),()=>L(ns=>ns.filter(hl=>hl.toastId!==E.id))}},[L,E.id]),Xe.useLayoutEffect(()=>{if(!St)return;let Qr=cr.current,Dn=Qr.style.height;Qr.style.height="auto";let ns=Qr.getBoundingClientRect().height;Qr.style.height=Dn,Je(ns),L(hl=>hl.find(Ho=>Ho.toastId===E.id)?hl.map(Ho=>Ho.toastId===E.id?{...Ho,height:ns}:Ho):[{toastId:E.id,height:ns,position:E.position},...hl])},[St,E.title,E.description,L,E.id]);let Un=Xe.useCallback(()=>{Rt(!0),jr(sa.current),L(Qr=>Qr.filter(Dn=>Dn.toastId!==E.id)),setTimeout(()=>{W(E)},bDe)},[E,W,L,sa]);Xe.useEffect(()=>{if(E.promise&&Rr==="loading"||E.duration===1/0||E.type==="loading")return;let Qr;return G||N||Pe&&Nr?(()=>{if(ts.current{var Dn;(Dn=E.onAutoClose)==null||Dn.call(E,E),Un()},Tt.current)),()=>clearTimeout(Qr)},[G,N,E,Rr,Pe,Nr,Un]),Xe.useEffect(()=>{E.delete&&Un()},[Un,E.delete]);function xi(){var Qr,Dn,ns;return _e!=null&&_e.loading?Xe.createElement("div",{className:Eh(je==null?void 0:je.loader,(Qr=E==null?void 0:E.classNames)==null?void 0:Qr.loader,"sonner-loader"),"data-visible":Rr==="loading"},_e.loading):Se?Xe.createElement("div",{className:Eh(je==null?void 0:je.loader,(Dn=E==null?void 0:E.classNames)==null?void 0:Dn.loader,"sonner-loader"),"data-visible":Rr==="loading"},Se):Xe.createElement(tDe,{className:Eh(je==null?void 0:je.loader,(ns=E==null?void 0:E.classNames)==null?void 0:ns.loader),visible:Rr==="loading"})}return Xe.createElement("li",{tabIndex:0,ref:cr,className:Eh(be,Yn,je==null?void 0:je.toast,(e=E==null?void 0:E.classNames)==null?void 0:e.toast,je==null?void 0:je.default,je==null?void 0:je[Rr],(r=E==null?void 0:E.classNames)==null?void 0:r[Rr]),"data-sonner-toast":"","data-rich-colors":(n=E.richColors)!=null?n:Z,"data-styled":!(E.jsx||E.unstyled||C),"data-mounted":St,"data-promise":!!E.promise,"data-swiped":tn,"data-removed":_t,"data-visible":ur,"data-y-position":ni,"data-x-position":rs,"data-index":B,"data-front":lr,"data-swiping":er,"data-dismissible":Pn,"data-type":Rr,"data-invert":Sn,"data-swipe-out":xr,"data-swipe-direction":lt,"data-expanded":!!(G||ge&&St),style:{"--index":B,"--toasts-before":B,"--z-index":V.length-B,"--offset":`${_t?Sr:sa.current}px`,"--initial-height":ge?"auto":`${Qt}px`,...se,...E.style},onDragEnd:()=>{vt(!1),at(null),Pr.current=null},onPointerDown:Qr=>{li||!Pn||(Dt.current=new Date,jr(sa.current),Qr.target.setPointerCapture(Qr.pointerId),Qr.target.tagName!=="BUTTON"&&(vt(!0),Pr.current={x:Qr.clientX,y:Qr.clientY}))},onPointerUp:()=>{var Qr,Dn,ns,hl;if(xr||!Pn)return;Pr.current=null;let Ho=Number(((Qr=cr.current)==null?void 0:Qr.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Ot=Number(((Dn=cr.current)==null?void 0:Dn.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Po=new Date().getTime()-((ns=Dt.current)==null?void 0:ns.getTime()),_i=Ze==="x"?Ho:Ot,Cs=Math.abs(_i)/Po;if(Math.abs(_i)>=vDe||Cs>.11){jr(sa.current),(hl=E.onDismiss)==null||hl.call(E,E),xt(Ze==="x"?Ho>0?"right":"left":Ot>0?"down":"up"),Un(),_r(!0),or(!1);return}vt(!1),at(null)},onPointerMove:Qr=>{var Dn,ns,hl,Ho;if(!Pr.current||!Pn||((Dn=window.getSelection())==null?void 0:Dn.toString().length)>0)return;let Ot=Qr.clientY-Pr.current.y,Po=Qr.clientX-Pr.current.x,_i=(ns=t.swipeDirections)!=null?ns:wDe(Oe);!Ze&&(Math.abs(Po)>1||Math.abs(Ot)>1)&&at(Math.abs(Po)>Math.abs(Ot)?"x":"y");let Cs={x:0,y:0};Ze==="y"?(_i.includes("top")||_i.includes("bottom"))&&(_i.includes("top")&&Ot<0||_i.includes("bottom")&&Ot>0)&&(Cs.y=Ot):Ze==="x"&&(_i.includes("left")||_i.includes("right"))&&(_i.includes("left")&&Po<0||_i.includes("right")&&Po>0)&&(Cs.x=Po),(Math.abs(Cs.x)>0||Math.abs(Cs.y)>0)&&or(!0),(hl=cr.current)==null||hl.style.setProperty("--swipe-amount-x",`${Cs.x}px`),(Ho=cr.current)==null||Ho.style.setProperty("--swipe-amount-y",`${Cs.y}px`)}},Ci&&!E.jsx?Xe.createElement("button",{"aria-label":xe,"data-disabled":li,"data-close-button":!0,onClick:li||!Pn?()=>{}:()=>{var Qr;Un(),(Qr=E.onDismiss)==null||Qr.call(E,E)},className:Eh(je==null?void 0:je.closeButton,(i=E==null?void 0:E.classNames)==null?void 0:i.closeButton)},(a=_e==null?void 0:_e.close)!=null?a:aDe):null,E.jsx||P.isValidElement(E.title)?E.jsx?E.jsx:typeof E.title=="function"?E.title():E.title:Xe.createElement(Xe.Fragment,null,Rr||E.icon||E.promise?Xe.createElement("div",{"data-icon":"",className:Eh(je==null?void 0:je.icon,(c=E==null?void 0:E.classNames)==null?void 0:c.icon)},E.promise||E.type==="loading"&&!E.icon?E.icon||xi():null,E.type!=="loading"?E.icon||(_e==null?void 0:_e[Rr])||JLe(Rr):null):null,Xe.createElement("div",{"data-content":"",className:Eh(je==null?void 0:je.content,(s=E==null?void 0:E.classNames)==null?void 0:s.content)},Xe.createElement("div",{"data-title":"",className:Eh(je==null?void 0:je.title,(f=E==null?void 0:E.classNames)==null?void 0:f.title)},typeof E.title=="function"?E.title():E.title),E.description?Xe.createElement("div",{"data-description":"",className:Eh(Te,ki,je==null?void 0:je.description,(m=E==null?void 0:E.classNames)==null?void 0:m.description)},typeof E.description=="function"?E.description():E.description):null),P.isValidElement(E.cancel)?E.cancel:E.cancel&&YP(E.cancel)?Xe.createElement("button",{"data-button":!0,"data-cancel":!0,style:E.cancelButtonStyle||ie,onClick:Qr=>{var Dn,ns;YP(E.cancel)&&Pn&&((ns=(Dn=E.cancel).onClick)==null||ns.call(Dn,Qr),Un())},className:Eh(je==null?void 0:je.cancelButton,(x=E==null?void 0:E.classNames)==null?void 0:x.cancelButton)},E.cancel.label):null,P.isValidElement(E.action)?E.action:E.action&&YP(E.action)?Xe.createElement("button",{"data-button":!0,"data-action":!0,style:E.actionButtonStyle||ue,onClick:Qr=>{var Dn,ns;YP(E.action)&&((ns=(Dn=E.action).onClick)==null||ns.call(Dn,Qr),!Qr.defaultPrevented&&Un())},className:Eh(je==null?void 0:je.actionButton,(_=E==null?void 0:E.classNames)==null?void 0:_.actionButton)},E.action.label):null))};function kJ(){if(typeof window>"u"||typeof document>"u")return"ltr";let t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function TDe(t,e){let r={};return[t,e].forEach((n,i)=>{let a=i===1,c=a?"--mobile-offset":"--offset",s=a?yDe:gDe;function f(m){["top","right","bottom","left"].forEach(x=>{r[`${c}-${x}`]=typeof m=="number"?`${m}px`:m})}typeof n=="number"||typeof n=="string"?f(n):typeof n=="object"?["top","right","bottom","left"].forEach(m=>{n[m]===void 0?r[`${c}-${m}`]=s:r[`${c}-${m}`]=typeof n[m]=="number"?`${n[m]}px`:n[m]}):f(s)}),r}var EDe=P.forwardRef(function(t,e){let{invert:r,position:n="bottom-right",hotkey:i=["altKey","KeyT"],expand:a,closeButton:c,className:s,offset:f,mobileOffset:m,theme:x="light",richColors:_,duration:T,style:E,visibleToasts:C=mDe,toastOptions:N,dir:L=kJ(),gap:M=_De,loadingIcon:D,icons:B,containerAriaLabel:V="Notifications",pauseWhenPageIsHidden:G}=t,[W,Z]=Xe.useState([]),Q=Xe.useMemo(()=>Array.from(new Set([n].concat(W.filter(Pe=>Pe.position).map(Pe=>Pe.position)))),[W,n]),[se,ie]=Xe.useState([]),[ue,be]=Xe.useState(!1),[Te,we]=Xe.useState(!1),[Oe,Ae]=Xe.useState(x!=="system"?x:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),Se=Xe.useRef(null),ge=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),je=Xe.useRef(null),_e=Xe.useRef(!1),xe=Xe.useCallback(Pe=>{Z(Ze=>{var at;return(at=Ze.find(lt=>lt.id===Pe.id))!=null&&at.delete||yu.dismiss(Pe.id),Ze.filter(({id:lt})=>lt!==Pe.id)})},[]);return Xe.useEffect(()=>yu.subscribe(Pe=>{if(Pe.dismiss){Z(Ze=>Ze.map(at=>at.id===Pe.id?{...at,delete:!0}:at));return}setTimeout(()=>{Kde.flushSync(()=>{Z(Ze=>{let at=Ze.findIndex(lt=>lt.id===Pe.id);return at!==-1?[...Ze.slice(0,at),{...Ze[at],...Pe},...Ze.slice(at+1)]:[Pe,...Ze]})})})}),[]),Xe.useEffect(()=>{if(x!=="system"){Ae(x);return}if(x==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ae("dark"):Ae("light")),typeof window>"u")return;let Pe=window.matchMedia("(prefers-color-scheme: dark)");try{Pe.addEventListener("change",({matches:Ze})=>{Ae(Ze?"dark":"light")})}catch{Pe.addListener(({matches:at})=>{try{Ae(at?"dark":"light")}catch(lt){console.error(lt)}})}},[x]),Xe.useEffect(()=>{W.length<=1&&be(!1)},[W]),Xe.useEffect(()=>{let Pe=Ze=>{var at,lt;i.every(xt=>Ze[xt]||Ze.code===xt)&&(be(!0),(at=Se.current)==null||at.focus()),Ze.code==="Escape"&&(document.activeElement===Se.current||(lt=Se.current)!=null&<.contains(document.activeElement))&&be(!1)};return document.addEventListener("keydown",Pe),()=>document.removeEventListener("keydown",Pe)},[i]),Xe.useEffect(()=>{if(Se.current)return()=>{je.current&&(je.current.focus({preventScroll:!0}),je.current=null,_e.current=!1)}},[Se.current]),Xe.createElement("section",{ref:e,"aria-label":`${V} ${ge}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Q.map((Pe,Ze)=>{var at;let[lt,xt]=Pe.split("-");return W.length?Xe.createElement("ol",{key:Pe,dir:L==="auto"?kJ():L,tabIndex:-1,ref:Se,className:s,"data-sonner-toaster":!0,"data-theme":Oe,"data-y-position":lt,"data-lifted":ue&&W.length>1&&!a,"data-x-position":xt,style:{"--front-toast-height":`${((at=se[0])==null?void 0:at.height)||0}px`,"--width":`${xDe}px`,"--gap":`${M}px`,...E,...TDe(f,m)},onBlur:St=>{_e.current&&!St.currentTarget.contains(St.relatedTarget)&&(_e.current=!1,je.current&&(je.current.focus({preventScroll:!0}),je.current=null))},onFocus:St=>{St.target instanceof HTMLElement&&St.target.dataset.dismissible==="false"||_e.current||(_e.current=!0,je.current=St.relatedTarget)},onMouseEnter:()=>be(!0),onMouseMove:()=>be(!0),onMouseLeave:()=>{Te||be(!1)},onDragEnd:()=>be(!1),onPointerDown:St=>{St.target instanceof HTMLElement&&St.target.dataset.dismissible==="false"||we(!0)},onPointerUp:()=>we(!1)},W.filter(St=>!St.position&&Ze===0||St.position===Pe).map((St,Xt)=>{var _t,Rt;return Xe.createElement(SDe,{key:St.id,icons:B,index:Xt,toast:St,defaultRichColors:_,duration:(_t=N==null?void 0:N.duration)!=null?_t:T,className:N==null?void 0:N.className,descriptionClassName:N==null?void 0:N.descriptionClassName,invert:r,visibleToasts:C,closeButton:(Rt=N==null?void 0:N.closeButton)!=null?Rt:c,interacting:Te,position:Pe,style:N==null?void 0:N.style,unstyled:N==null?void 0:N.unstyled,classNames:N==null?void 0:N.classNames,cancelButtonStyle:N==null?void 0:N.cancelButtonStyle,actionButtonStyle:N==null?void 0:N.actionButtonStyle,removeToast:xe,toasts:W.filter(er=>er.position==St.position),heights:se.filter(er=>er.position==St.position),setHeights:ie,expandByDefault:a,gap:M,loadingIcon:D,expanded:ue,pauseWhenPageIsHidden:G,swipeDirections:t.swipeDirections})})):null}))});const ADe=({...t})=>{const{theme:e="system"}=QLe();return o.jsx(EDe,{theme:e,position:"top-center",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...t})};var kDe=cq[" useId ".trim().toString()]||(()=>{}),CDe=0;function Cl(t){const[e,r]=P.useState(kDe());return jo(()=>{r(n=>n??String(CDe++))},[t]),e?`radix-${e}`:""}var tB="focusScope.autoFocusOnMount",rB="focusScope.autoFocusOnUnmount",CJ={bubbles:!1,cancelable:!0},IDe="FocusScope",TC=P.forwardRef((t,e)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...c}=t,[s,f]=P.useState(null),m=ho(i),x=ho(a),_=P.useRef(null),T=Gn(e,N=>f(N)),E=P.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;P.useEffect(()=>{if(n){let N=function(B){if(E.paused||!s)return;const V=B.target;s.contains(V)?_.current=V:zg(_.current,{select:!0})},L=function(B){if(E.paused||!s)return;const V=B.relatedTarget;V!==null&&(s.contains(V)||zg(_.current,{select:!0}))},M=function(B){if(document.activeElement===document.body)for(const G of B)G.removedNodes.length>0&&zg(s)};document.addEventListener("focusin",N),document.addEventListener("focusout",L);const D=new MutationObserver(M);return s&&D.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",N),document.removeEventListener("focusout",L),D.disconnect()}}},[n,s,E.paused]),P.useEffect(()=>{if(s){jJ.add(E);const N=document.activeElement;if(!s.contains(N)){const M=new CustomEvent(tB,CJ);s.addEventListener(tB,m),s.dispatchEvent(M),M.defaultPrevented||(jDe(DDe(rfe(s)),{select:!0}),document.activeElement===N&&zg(s))}return()=>{s.removeEventListener(tB,m),setTimeout(()=>{const M=new CustomEvent(rB,CJ);s.addEventListener(rB,x),s.dispatchEvent(M),M.defaultPrevented||zg(N??document.body,{select:!0}),s.removeEventListener(rB,x),jJ.remove(E)},0)}}},[s,m,x,E]);const C=P.useCallback(N=>{if(!r&&!n||E.paused)return;const L=N.key==="Tab"&&!N.altKey&&!N.ctrlKey&&!N.metaKey,M=document.activeElement;if(L&&M){const D=N.currentTarget,[B,V]=PDe(D);B&&V?!N.shiftKey&&M===V?(N.preventDefault(),r&&zg(B,{select:!0})):N.shiftKey&&M===B&&(N.preventDefault(),r&&zg(V,{select:!0})):M===D&&N.preventDefault()}},[r,n,E.paused]);return o.jsx(rn.div,{tabIndex:-1,...c,ref:T,onKeyDown:C})});TC.displayName=IDe;function jDe(t,{select:e=!1}={}){const r=document.activeElement;for(const n of t)if(zg(n,{select:e}),document.activeElement!==r)return}function PDe(t){const e=rfe(t),r=IJ(e,t),n=IJ(e.reverse(),t);return[r,n]}function rfe(t){const e=[],r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)e.push(r.currentNode);return e}function IJ(t,e){for(const r of t)if(!NDe(r,{upTo:e}))return r}function NDe(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function RDe(t){return t instanceof HTMLInputElement&&"select"in t}function zg(t,{select:e=!1}={}){if(t&&t.focus){const r=document.activeElement;t.focus({preventScroll:!0}),t!==r&&RDe(t)&&e&&t.select()}}var jJ=LDe();function LDe(){let t=[];return{add(e){const r=t[0];e!==r&&(r==null||r.pause()),t=PJ(t,e),t.unshift(e)},remove(e){var r;t=PJ(t,e),(r=t[0])==null||r.resume()}}}function PJ(t,e){const r=[...t],n=r.indexOf(e);return n!==-1&&r.splice(n,1),r}function DDe(t){return t.filter(e=>e.tagName!=="A")}var nB=0;function WM(){P.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??NJ()),document.body.insertAdjacentElement("beforeend",t[1]??NJ()),nB++,()=>{nB===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),nB--}},[])}function NJ(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var $f=function(){return $f=Object.assign||function(e){for(var r,n=1,i=arguments.length;n"u")return QDe;var e=JDe(t),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,n-r+e[2]-e[0])}},tMe=afe(),kw="data-scroll-locked",rMe=function(t,e,r,n){var i=t.left,a=t.top,c=t.right,s=t.gap;return r===void 0&&(r="margin"),` .`.concat(ODe,` { overflow: hidden `).concat(n,`; padding-right: `).concat(s,"px ").concat(n,`; } body[`).concat(kw,`] { overflow: hidden `).concat(n,`; overscroll-behavior: contain; `).concat([e&&"position: relative ".concat(n,";"),r==="margin"&&` padding-left: `.concat(i,`px; padding-top: `).concat(a,`px; padding-right: `).concat(c,`px; margin-left:0; margin-top:0; margin-right: `).concat(s,"px ").concat(n,`; `),r==="padding"&&"padding-right: ".concat(s,"px ").concat(n,";")].filter(Boolean).join(""),` } .`).concat(xR,` { right: `).concat(s,"px ").concat(n,`; } .`).concat(_R,` { margin-right: `).concat(s,"px ").concat(n,`; } .`).concat(xR," .").concat(xR,` { right: 0 `).concat(n,`; } .`).concat(_R," .").concat(_R,` { margin-right: 0 `).concat(n,`; } body[`).concat(kw,`] { `).concat(FDe,": ").concat(s,`px; } `)},LJ=function(){var t=parseInt(document.body.getAttribute(kw)||"0",10);return isFinite(t)?t:0},nMe=function(){P.useEffect(function(){return document.body.setAttribute(kw,(LJ()+1).toString()),function(){var t=LJ()-1;t<=0?document.body.removeAttribute(kw):document.body.setAttribute(kw,t.toString())}},[])},iMe=function(t){var e=t.noRelative,r=t.noImportant,n=t.gapMode,i=n===void 0?"margin":n;nMe();var a=P.useMemo(function(){return eMe(i)},[i]);return P.createElement(tMe,{styles:rMe(a,!e,i,r?"":"!important")})},AU=!1;if(typeof window<"u")try{var ZP=Object.defineProperty({},"passive",{get:function(){return AU=!0,!0}});window.addEventListener("test",ZP,ZP),window.removeEventListener("test",ZP,ZP)}catch{AU=!1}var Eb=AU?{passive:!1}:!1,sMe=function(t){return t.tagName==="TEXTAREA"},ofe=function(t,e){if(!(t instanceof Element))return!1;var r=window.getComputedStyle(t);return r[e]!=="hidden"&&!(r.overflowY===r.overflowX&&!sMe(t)&&r[e]==="visible")},aMe=function(t){return ofe(t,"overflowY")},oMe=function(t){return ofe(t,"overflowX")},DJ=function(t,e){var r=e.ownerDocument,n=e;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var i=lfe(t,n);if(i){var a=cfe(t,n),c=a[1],s=a[2];if(c>s)return!0}n=n.parentNode}while(n&&n!==r.body);return!1},lMe=function(t){var e=t.scrollTop,r=t.scrollHeight,n=t.clientHeight;return[e,r,n]},cMe=function(t){var e=t.scrollLeft,r=t.scrollWidth,n=t.clientWidth;return[e,r,n]},lfe=function(t,e){return t==="v"?aMe(e):oMe(e)},cfe=function(t,e){return t==="v"?lMe(e):cMe(e)},uMe=function(t,e){return t==="h"&&e==="rtl"?-1:1},dMe=function(t,e,r,n,i){var a=uMe(t,window.getComputedStyle(e).direction),c=a*n,s=r.target,f=e.contains(s),m=!1,x=c>0,_=0,T=0;do{if(!s)break;var E=cfe(t,s),C=E[0],N=E[1],L=E[2],M=N-L-a*C;(C||M)&&lfe(t,s)&&(_+=M,T+=C);var D=s.parentNode;s=D&&D.nodeType===Node.DOCUMENT_FRAGMENT_NODE?D.host:D}while(!f&&s!==document.body||f&&(e.contains(s)||e===s));return(x&&(Math.abs(_)<1||!i)||!x&&(Math.abs(T)<1||!i))&&(m=!0),m},XP=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},MJ=function(t){return[t.deltaX,t.deltaY]},OJ=function(t){return t&&"current"in t?t.current:t},hMe=function(t,e){return t[0]===e[0]&&t[1]===e[1]},fMe=function(t){return` .block-interactivity-`.concat(t,` {pointer-events: none;} .allow-interactivity-`).concat(t,` {pointer-events: all;} `)},pMe=0,Ab=[];function mMe(t){var e=P.useRef([]),r=P.useRef([0,0]),n=P.useRef(),i=P.useState(pMe++)[0],a=P.useState(afe)[0],c=P.useRef(t);P.useEffect(function(){c.current=t},[t]),P.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(i));var N=MDe([t.lockRef.current],(t.shards||[]).map(OJ),!0).filter(Boolean);return N.forEach(function(L){return L.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),N.forEach(function(L){return L.classList.remove("allow-interactivity-".concat(i))})}}},[t.inert,t.lockRef.current,t.shards]);var s=P.useCallback(function(N,L){if("touches"in N&&N.touches.length===2||N.type==="wheel"&&N.ctrlKey)return!c.current.allowPinchZoom;var M=XP(N),D=r.current,B="deltaX"in N?N.deltaX:D[0]-M[0],V="deltaY"in N?N.deltaY:D[1]-M[1],G,W=N.target,Z=Math.abs(B)>Math.abs(V)?"h":"v";if("touches"in N&&Z==="h"&&W.type==="range")return!1;var Q=DJ(Z,W);if(!Q)return!0;if(Q?G=Z:(G=Z==="v"?"h":"v",Q=DJ(Z,W)),!Q)return!1;if(!n.current&&"changedTouches"in N&&(B||V)&&(n.current=G),!G)return!0;var se=n.current||G;return dMe(se,L,N,se==="h"?B:V,!0)},[]),f=P.useCallback(function(N){var L=N;if(!(!Ab.length||Ab[Ab.length-1]!==a)){var M="deltaY"in L?MJ(L):XP(L),D=e.current.filter(function(G){return G.name===L.type&&(G.target===L.target||L.target===G.shadowParent)&&hMe(G.delta,M)})[0];if(D&&D.should){L.cancelable&&L.preventDefault();return}if(!D){var B=(c.current.shards||[]).map(OJ).filter(Boolean).filter(function(G){return G.contains(L.target)}),V=B.length>0?s(L,B[0]):!c.current.noIsolation;V&&L.cancelable&&L.preventDefault()}}},[]),m=P.useCallback(function(N,L,M,D){var B={name:N,delta:L,target:M,should:D,shadowParent:gMe(M)};e.current.push(B),setTimeout(function(){e.current=e.current.filter(function(V){return V!==B})},1)},[]),x=P.useCallback(function(N){r.current=XP(N),n.current=void 0},[]),_=P.useCallback(function(N){m(N.type,MJ(N),N.target,s(N,t.lockRef.current))},[]),T=P.useCallback(function(N){m(N.type,XP(N),N.target,s(N,t.lockRef.current))},[]);P.useEffect(function(){return Ab.push(a),t.setCallbacks({onScrollCapture:_,onWheelCapture:_,onTouchMoveCapture:T}),document.addEventListener("wheel",f,Eb),document.addEventListener("touchmove",f,Eb),document.addEventListener("touchstart",x,Eb),function(){Ab=Ab.filter(function(N){return N!==a}),document.removeEventListener("wheel",f,Eb),document.removeEventListener("touchmove",f,Eb),document.removeEventListener("touchstart",x,Eb)}},[]);var E=t.removeScrollBar,C=t.inert;return P.createElement(P.Fragment,null,C?P.createElement(a,{styles:fMe(i)}):null,E?P.createElement(iMe,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function gMe(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const yMe=GDe(sfe,mMe);var EC=P.forwardRef(function(t,e){return P.createElement(KM,$f({},t,{ref:e,sideCar:yMe}))});EC.classNames=KM.classNames;var xMe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},kb=new WeakMap,QP=new WeakMap,JP={},oB=0,ufe=function(t){return t&&(t.host||ufe(t.parentNode))},_Me=function(t,e){return e.map(function(r){if(t.contains(r))return r;var n=ufe(r);return n&&t.contains(n)?n:(console.error("aria-hidden",r,"in not contained inside",t,". Doing nothing"),null)}).filter(function(r){return!!r})},vMe=function(t,e,r,n){var i=_Me(e,Array.isArray(t)?t:[t]);JP[r]||(JP[r]=new WeakMap);var a=JP[r],c=[],s=new Set,f=new Set(i),m=function(_){!_||s.has(_)||(s.add(_),m(_.parentNode))};i.forEach(m);var x=function(_){!_||f.has(_)||Array.prototype.forEach.call(_.children,function(T){if(s.has(T))x(T);else try{var E=T.getAttribute(n),C=E!==null&&E!=="false",N=(kb.get(T)||0)+1,L=(a.get(T)||0)+1;kb.set(T,N),a.set(T,L),c.push(T),N===1&&C&&QP.set(T,!0),L===1&&T.setAttribute(r,"true"),C||T.setAttribute(n,"true")}catch(M){console.error("aria-hidden: cannot operate on ",T,M)}})};return x(e),s.clear(),oB++,function(){c.forEach(function(_){var T=kb.get(_)-1,E=a.get(_)-1;kb.set(_,T),a.set(_,E),T||(QP.has(_)||_.removeAttribute(n),QP.delete(_)),E||_.removeAttribute(r)}),oB--,oB||(kb=new WeakMap,kb=new WeakMap,QP=new WeakMap,JP={})}},YM=function(t,e,r){r===void 0&&(r="data-aria-hidden");var n=Array.from(Array.isArray(t)?t:[t]),i=xMe(t);return i?(n.push.apply(n,Array.from(i.querySelectorAll("[aria-live]"))),vMe(n,i,r,"aria-hidden")):function(){return null}},ZM="Dialog",[dfe,hfe]=Go(ZM),[bMe,rf]=dfe(ZM),ffe=t=>{const{__scopeDialog:e,children:r,open:n,defaultOpen:i,onOpenChange:a,modal:c=!0}=t,s=P.useRef(null),f=P.useRef(null),[m,x]=sd({prop:n,defaultProp:i??!1,onChange:a,caller:ZM});return o.jsx(bMe,{scope:e,triggerRef:s,contentRef:f,contentId:Cl(),titleId:Cl(),descriptionId:Cl(),open:m,onOpenChange:x,onOpenToggle:P.useCallback(()=>x(_=>!_),[x]),modal:c,children:r})};ffe.displayName=ZM;var pfe="DialogTrigger",mfe=P.forwardRef((t,e)=>{const{__scopeDialog:r,...n}=t,i=rf(pfe,r),a=Gn(e,i.triggerRef);return o.jsx(rn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":gG(i.open),...n,ref:a,onClick:Or(t.onClick,i.onOpenToggle)})});mfe.displayName=pfe;var pG="DialogPortal",[wMe,gfe]=dfe(pG,{forceMount:void 0}),yfe=t=>{const{__scopeDialog:e,forceMount:r,children:n,container:i}=t,a=rf(pG,e);return o.jsx(wMe,{scope:e,forceMount:r,children:P.Children.map(n,c=>o.jsx(ul,{present:r||a.open,children:o.jsx(rS,{asChild:!0,container:i,children:c})}))})};yfe.displayName=pG;var CL="DialogOverlay",xfe=P.forwardRef((t,e)=>{const r=gfe(CL,t.__scopeDialog),{forceMount:n=r.forceMount,...i}=t,a=rf(CL,t.__scopeDialog);return a.modal?o.jsx(ul,{present:n||a.open,children:o.jsx(TMe,{...i,ref:e})}):null});xfe.displayName=CL;var SMe=My("DialogOverlay.RemoveScroll"),TMe=P.forwardRef((t,e)=>{const{__scopeDialog:r,...n}=t,i=rf(CL,r);return o.jsx(EC,{as:SMe,allowPinchZoom:!0,shards:[i.contentRef],children:o.jsx(rn.div,{"data-state":gG(i.open),...n,ref:e,style:{pointerEvents:"auto",...n.style}})})}),__="DialogContent",_fe=P.forwardRef((t,e)=>{const r=gfe(__,t.__scopeDialog),{forceMount:n=r.forceMount,...i}=t,a=rf(__,t.__scopeDialog);return o.jsx(ul,{present:n||a.open,children:a.modal?o.jsx(EMe,{...i,ref:e}):o.jsx(AMe,{...i,ref:e})})});_fe.displayName=__;var EMe=P.forwardRef((t,e)=>{const r=rf(__,t.__scopeDialog),n=P.useRef(null),i=Gn(e,r.contentRef,n);return P.useEffect(()=>{const a=n.current;if(a)return YM(a)},[]),o.jsx(vfe,{...t,ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Or(t.onCloseAutoFocus,a=>{var c;a.preventDefault(),(c=r.triggerRef.current)==null||c.focus()}),onPointerDownOutside:Or(t.onPointerDownOutside,a=>{const c=a.detail.originalEvent,s=c.button===0&&c.ctrlKey===!0;(c.button===2||s)&&a.preventDefault()}),onFocusOutside:Or(t.onFocusOutside,a=>a.preventDefault())})}),AMe=P.forwardRef((t,e)=>{const r=rf(__,t.__scopeDialog),n=P.useRef(!1),i=P.useRef(!1);return o.jsx(vfe,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,s;(c=t.onCloseAutoFocus)==null||c.call(t,a),a.defaultPrevented||(n.current||(s=r.triggerRef.current)==null||s.focus(),a.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:a=>{var f,m;(f=t.onInteractOutside)==null||f.call(t,a),a.defaultPrevented||(n.current=!0,a.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const c=a.target;((m=r.triggerRef.current)==null?void 0:m.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&i.current&&a.preventDefault()}})}),vfe=P.forwardRef((t,e)=>{const{__scopeDialog:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:a,...c}=t,s=rf(__,r),f=P.useRef(null),m=Gn(e,f);return WM(),o.jsxs(o.Fragment,{children:[o.jsx(TC,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:a,children:o.jsx(O_,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":gG(s.open),...c,ref:m,onDismiss:()=>s.onOpenChange(!1)})}),o.jsxs(o.Fragment,{children:[o.jsx(CMe,{titleId:s.titleId}),o.jsx(jMe,{contentRef:f,descriptionId:s.descriptionId})]})]})}),mG="DialogTitle",bfe=P.forwardRef((t,e)=>{const{__scopeDialog:r,...n}=t,i=rf(mG,r);return o.jsx(rn.h2,{id:i.titleId,...n,ref:e})});bfe.displayName=mG;var wfe="DialogDescription",Sfe=P.forwardRef((t,e)=>{const{__scopeDialog:r,...n}=t,i=rf(wfe,r);return o.jsx(rn.p,{id:i.descriptionId,...n,ref:e})});Sfe.displayName=wfe;var Tfe="DialogClose",Efe=P.forwardRef((t,e)=>{const{__scopeDialog:r,...n}=t,i=rf(Tfe,r);return o.jsx(rn.button,{type:"button",...n,ref:e,onClick:Or(t.onClick,()=>i.onOpenChange(!1))})});Efe.displayName=Tfe;function gG(t){return t?"open":"closed"}var Afe="DialogTitleWarning",[kMe,kfe]=PNe(Afe,{contentName:__,titleName:mG,docsSlug:"dialog"}),CMe=({titleId:t})=>{const e=kfe(Afe),r=`\`${e.contentName}\` requires a \`${e.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${e.titleName}\`, you can wrap it with our VisuallyHidden component. For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return P.useEffect(()=>{t&&(document.getElementById(t)||console.error(r))},[r,t]),null},IMe="DialogDescriptionWarning",jMe=({contentRef:t,descriptionId:e})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${kfe(IMe).contentName}}.`;return P.useEffect(()=>{var a;const i=(a=t.current)==null?void 0:a.getAttribute("aria-describedby");e&&i&&(document.getElementById(e)||console.warn(n))},[n,t,e]),null},XM=ffe,yG=mfe,QM=yfe,lS=xfe,cS=_fe,AC=bfe,kC=Sfe,CC=Efe,Cfe="AlertDialog",[PMe,l$t]=Go(Cfe,[hfe]),zm=hfe(),Ife=t=>{const{__scopeAlertDialog:e,...r}=t,n=zm(e);return o.jsx(XM,{...n,...r,modal:!0})};Ife.displayName=Cfe;var NMe="AlertDialogTrigger",jfe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,i=zm(r);return o.jsx(yG,{...i,...n,ref:e})});jfe.displayName=NMe;var RMe="AlertDialogPortal",Pfe=t=>{const{__scopeAlertDialog:e,...r}=t,n=zm(e);return o.jsx(QM,{...n,...r})};Pfe.displayName=RMe;var LMe="AlertDialogOverlay",Nfe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,i=zm(r);return o.jsx(lS,{...i,...n,ref:e})});Nfe.displayName=LMe;var Cw="AlertDialogContent",[DMe,MMe]=PMe(Cw),OMe=the("AlertDialogContent"),Rfe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,children:n,...i}=t,a=zm(r),c=P.useRef(null),s=Gn(e,c),f=P.useRef(null);return o.jsx(kMe,{contentName:Cw,titleName:Lfe,docsSlug:"alert-dialog",children:o.jsx(DMe,{scope:r,cancelRef:f,children:o.jsxs(cS,{role:"alertdialog",...a,...i,ref:s,onOpenAutoFocus:Or(i.onOpenAutoFocus,m=>{var x;m.preventDefault(),(x=f.current)==null||x.focus({preventScroll:!0})}),onPointerDownOutside:m=>m.preventDefault(),onInteractOutside:m=>m.preventDefault(),children:[o.jsx(OMe,{children:n}),o.jsx(BMe,{contentRef:c})]})})})});Rfe.displayName=Cw;var Lfe="AlertDialogTitle",Dfe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,i=zm(r);return o.jsx(AC,{...i,...n,ref:e})});Dfe.displayName=Lfe;var Mfe="AlertDialogDescription",Ofe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,i=zm(r);return o.jsx(kC,{...i,...n,ref:e})});Ofe.displayName=Mfe;var FMe="AlertDialogAction",Ffe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,i=zm(r);return o.jsx(CC,{...i,...n,ref:e})});Ffe.displayName=FMe;var Bfe="AlertDialogCancel",zfe=P.forwardRef((t,e)=>{const{__scopeAlertDialog:r,...n}=t,{cancelRef:i}=MMe(Bfe,r),a=zm(r),c=Gn(e,i);return o.jsx(CC,{...a,...n,ref:c})});zfe.displayName=Bfe;var BMe=({contentRef:t})=>{const e=`\`${Cw}\` requires a description for the component to be accessible for screen reader users. You can add a description to the \`${Cw}\` by passing a \`${Mfe}\` component as a child, which also benefits sighted users by adding visible context to the dialog. Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Cw}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return P.useEffect(()=>{var n;document.getElementById((n=t.current)==null?void 0:n.getAttribute("aria-describedby"))||console.warn(e)},[e,t]),null},zMe=Ife,$Me=jfe,UMe=Pfe,$fe=Nfe,Ufe=Rfe,Vfe=Ffe,qfe=zfe,Gfe=Dfe,Hfe=Ofe;const KA=nS("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-full px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Kt=P.forwardRef(({className:t,variant:e,size:r,asChild:n=!1,...i},a)=>{const c=n?Jde:"button";return o.jsx(c,{className:ir(KA({variant:e,size:r,className:t})),ref:a,...i})});Kt.displayName="Button";const Wfe=zMe,c$t=$Me,VMe=UMe,Kfe=P.forwardRef(({className:t,...e},r)=>o.jsx($fe,{className:ir("fixed inset-0 z-50 bg-foreground/45 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e,ref:r}));Kfe.displayName=$fe.displayName;const xG=P.forwardRef(({className:t,...e},r)=>o.jsxs(VMe,{children:[o.jsx(Kfe,{}),o.jsx(Ufe,{ref:r,className:ir("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...e})]}));xG.displayName=Ufe.displayName;const _G=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col space-y-2 text-center sm:text-left",t),...e});_G.displayName="AlertDialogHeader";const vG=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});vG.displayName="AlertDialogFooter";const bG=P.forwardRef(({className:t,...e},r)=>o.jsx(Gfe,{ref:r,className:ir("text-lg font-semibold",t),...e}));bG.displayName=Gfe.displayName;const wG=P.forwardRef(({className:t,...e},r)=>o.jsx(Hfe,{ref:r,className:ir("text-sm text-muted-foreground",t),...e}));wG.displayName=Hfe.displayName;const SG=P.forwardRef(({className:t,...e},r)=>o.jsx(Vfe,{ref:r,className:ir(KA(),t),...e}));SG.displayName=Vfe.displayName;const TG=P.forwardRef(({className:t,...e},r)=>o.jsx(qfe,{ref:r,className:ir(KA({variant:"outline"}),"mt-2 sm:mt-0",t),...e}));TG.displayName=qfe.displayName;let IL=null;const qMe=["delete","remove","revoke","cannot be undone","permanently"];function u$t(t,e={}){const r=typeof t=="string"?{description:t,...e}:t,n=`${r.title??""} ${r.description??""}`.toLowerCase(),i=r.destructive??qMe.some(a=>n.includes(a));return new Promise(a=>{if(!IL){a(window.confirm(r.description??r.title??"Are you sure?"));return}IL({...r,destructive:i,resolve:a})})}function GMe(){const[t,e]=P.useState(null);P.useEffect(()=>(IL=i=>e(i),()=>{IL=null}),[]);const r=i=>{t==null||t.resolve(i),e(null)},n=!!(t!=null&&t.destructive);return o.jsx(Wfe,{open:!!t,onOpenChange:i=>!i&&r(!1),children:o.jsxs(xG,{className:"sm:max-w-md",children:[o.jsx(_G,{children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx("div",{className:ir("mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-full",n?"bg-destructive/10 text-destructive":"bg-primary/10 text-primary"),children:o.jsx(SC,{className:"h-5 w-5"})}),o.jsxs("div",{className:"space-y-1.5 text-left",children:[o.jsx(bG,{children:(t==null?void 0:t.title)??(n?"Are you sure?":"Please confirm")}),(t==null?void 0:t.description)&&o.jsx(wG,{className:"leading-relaxed",children:t.description})]})]})}),o.jsxs(vG,{className:"gap-2 sm:gap-2",children:[o.jsx(TG,{onClick:()=>r(!1),children:(t==null?void 0:t.cancelText)??"Cancel"}),o.jsx(SG,{onClick:()=>r(!0),className:ir(n&&"bg-destructive text-destructive-foreground hover:bg-destructive/90"),children:(t==null?void 0:t.confirmText)??(n?"Delete":"Continue")})]})]})})}const HMe=["top","right","bottom","left"],By=Math.min,Ku=Math.max,jL=Math.round,eN=Math.floor,zy=t=>({x:t,y:t}),WMe={left:"right",right:"left",bottom:"top",top:"bottom"},KMe={start:"end",end:"start"};function kU(t,e,r){return Ku(t,By(e,r))}function jm(t,e){return typeof t=="function"?t(e):t}function Pm(t){return t.split("-")[0]}function uS(t){return t.split("-")[1]}function EG(t){return t==="x"?"y":"x"}function AG(t){return t==="y"?"height":"width"}function $y(t){return["top","bottom"].includes(Pm(t))?"y":"x"}function kG(t){return EG($y(t))}function YMe(t,e,r){r===void 0&&(r=!1);const n=uS(t),i=kG(t),a=AG(i);let c=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return e.reference[a]>e.floating[a]&&(c=PL(c)),[c,PL(c)]}function ZMe(t){const e=PL(t);return[CU(t),e,CU(e)]}function CU(t){return t.replace(/start|end/g,e=>KMe[e])}function XMe(t,e,r){const n=["left","right"],i=["right","left"],a=["top","bottom"],c=["bottom","top"];switch(t){case"top":case"bottom":return r?e?i:n:e?n:i;case"left":case"right":return e?a:c;default:return[]}}function QMe(t,e,r,n){const i=uS(t);let a=XMe(Pm(t),r==="start",n);return i&&(a=a.map(c=>c+"-"+i),e&&(a=a.concat(a.map(CU)))),a}function PL(t){return t.replace(/left|right|bottom|top/g,e=>WMe[e])}function JMe(t){return{top:0,right:0,bottom:0,left:0,...t}}function Yfe(t){return typeof t!="number"?JMe(t):{top:t,right:t,bottom:t,left:t}}function NL(t){const{x:e,y:r,width:n,height:i}=t;return{width:n,height:i,top:r,left:e,right:e+n,bottom:r+i,x:e,y:r}}function FJ(t,e,r){let{reference:n,floating:i}=t;const a=$y(e),c=kG(e),s=AG(c),f=Pm(e),m=a==="y",x=n.x+n.width/2-i.width/2,_=n.y+n.height/2-i.height/2,T=n[s]/2-i[s]/2;let E;switch(f){case"top":E={x,y:n.y-i.height};break;case"bottom":E={x,y:n.y+n.height};break;case"right":E={x:n.x+n.width,y:_};break;case"left":E={x:n.x-i.width,y:_};break;default:E={x:n.x,y:n.y}}switch(uS(e)){case"start":E[c]-=T*(r&&m?-1:1);break;case"end":E[c]+=T*(r&&m?-1:1);break}return E}const eOe=async(t,e,r)=>{const{placement:n="bottom",strategy:i="absolute",middleware:a=[],platform:c}=r,s=a.filter(Boolean),f=await(c.isRTL==null?void 0:c.isRTL(e));let m=await c.getElementRects({reference:t,floating:e,strategy:i}),{x,y:_}=FJ(m,n,f),T=n,E={},C=0;for(let N=0;N({name:"arrow",options:t,async fn(e){const{x:r,y:n,placement:i,rects:a,platform:c,elements:s,middlewareData:f}=e,{element:m,padding:x=0}=jm(t,e)||{};if(m==null)return{};const _=Yfe(x),T={x:r,y:n},E=kG(i),C=AG(E),N=await c.getDimensions(m),L=E==="y",M=L?"top":"left",D=L?"bottom":"right",B=L?"clientHeight":"clientWidth",V=a.reference[C]+a.reference[E]-T[E]-a.floating[C],G=T[E]-a.reference[E],W=await(c.getOffsetParent==null?void 0:c.getOffsetParent(m));let Z=W?W[B]:0;(!Z||!await(c.isElement==null?void 0:c.isElement(W)))&&(Z=s.floating[B]||a.floating[C]);const Q=V/2-G/2,se=Z/2-N[C]/2-1,ie=By(_[M],se),ue=By(_[D],se),be=ie,Te=Z-N[C]-ue,we=Z/2-N[C]/2+Q,Oe=kU(be,we,Te),Ae=!f.arrow&&uS(i)!=null&&we!==Oe&&a.reference[C]/2-(wewe<=0)){var ue,be;const we=(((ue=a.flip)==null?void 0:ue.index)||0)+1,Oe=Z[we];if(Oe)return{data:{index:we,overflows:ie},reset:{placement:Oe}};let Ae=(be=ie.filter(Se=>Se.overflows[0]<=0).sort((Se,ge)=>Se.overflows[1]-ge.overflows[1])[0])==null?void 0:be.placement;if(!Ae)switch(E){case"bestFit":{var Te;const Se=(Te=ie.filter(ge=>{if(W){const je=$y(ge.placement);return je===D||je==="y"}return!0}).map(ge=>[ge.placement,ge.overflows.filter(je=>je>0).reduce((je,_e)=>je+_e,0)]).sort((ge,je)=>ge[1]-je[1])[0])==null?void 0:Te[0];Se&&(Ae=Se);break}case"initialPlacement":Ae=s;break}if(i!==Ae)return{reset:{placement:Ae}}}return{}}}};function BJ(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function zJ(t){return HMe.some(e=>t[e]>=0)}const nOe=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:r}=e,{strategy:n="referenceHidden",...i}=jm(t,e);switch(n){case"referenceHidden":{const a=await YA(e,{...i,elementContext:"reference"}),c=BJ(a,r.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:zJ(c)}}}case"escaped":{const a=await YA(e,{...i,altBoundary:!0}),c=BJ(a,r.floating);return{data:{escapedOffsets:c,escaped:zJ(c)}}}default:return{}}}}};async function iOe(t,e){const{placement:r,platform:n,elements:i}=t,a=await(n.isRTL==null?void 0:n.isRTL(i.floating)),c=Pm(r),s=uS(r),f=$y(r)==="y",m=["left","top"].includes(c)?-1:1,x=a&&f?-1:1,_=jm(e,t);let{mainAxis:T,crossAxis:E,alignmentAxis:C}=typeof _=="number"?{mainAxis:_,crossAxis:0,alignmentAxis:null}:{mainAxis:_.mainAxis||0,crossAxis:_.crossAxis||0,alignmentAxis:_.alignmentAxis};return s&&typeof C=="number"&&(E=s==="end"?C*-1:C),f?{x:E*x,y:T*m}:{x:T*m,y:E*x}}const sOe=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var r,n;const{x:i,y:a,placement:c,middlewareData:s}=e,f=await iOe(e,t);return c===((r=s.offset)==null?void 0:r.placement)&&(n=s.arrow)!=null&&n.alignmentOffset?{}:{x:i+f.x,y:a+f.y,data:{...f,placement:c}}}}},aOe=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:r,y:n,placement:i}=e,{mainAxis:a=!0,crossAxis:c=!1,limiter:s={fn:L=>{let{x:M,y:D}=L;return{x:M,y:D}}},...f}=jm(t,e),m={x:r,y:n},x=await YA(e,f),_=$y(Pm(i)),T=EG(_);let E=m[T],C=m[_];if(a){const L=T==="y"?"top":"left",M=T==="y"?"bottom":"right",D=E+x[L],B=E-x[M];E=kU(D,E,B)}if(c){const L=_==="y"?"top":"left",M=_==="y"?"bottom":"right",D=C+x[L],B=C-x[M];C=kU(D,C,B)}const N=s.fn({...e,[T]:E,[_]:C});return{...N,data:{x:N.x-r,y:N.y-n,enabled:{[T]:a,[_]:c}}}}}},oOe=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:r,y:n,placement:i,rects:a,middlewareData:c}=e,{offset:s=0,mainAxis:f=!0,crossAxis:m=!0}=jm(t,e),x={x:r,y:n},_=$y(i),T=EG(_);let E=x[T],C=x[_];const N=jm(s,e),L=typeof N=="number"?{mainAxis:N,crossAxis:0}:{mainAxis:0,crossAxis:0,...N};if(f){const B=T==="y"?"height":"width",V=a.reference[T]-a.floating[B]+L.mainAxis,G=a.reference[T]+a.reference[B]-L.mainAxis;EG&&(E=G)}if(m){var M,D;const B=T==="y"?"width":"height",V=["top","left"].includes(Pm(i)),G=a.reference[_]-a.floating[B]+(V&&((M=c.offset)==null?void 0:M[_])||0)+(V?0:L.crossAxis),W=a.reference[_]+a.reference[B]+(V?0:((D=c.offset)==null?void 0:D[_])||0)-(V?L.crossAxis:0);CW&&(C=W)}return{[T]:E,[_]:C}}}},lOe=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var r,n;const{placement:i,rects:a,platform:c,elements:s}=e,{apply:f=()=>{},...m}=jm(t,e),x=await YA(e,m),_=Pm(i),T=uS(i),E=$y(i)==="y",{width:C,height:N}=a.floating;let L,M;_==="top"||_==="bottom"?(L=_,M=T===(await(c.isRTL==null?void 0:c.isRTL(s.floating))?"start":"end")?"left":"right"):(M=_,L=T==="end"?"top":"bottom");const D=N-x.top-x.bottom,B=C-x.left-x.right,V=By(N-x[L],D),G=By(C-x[M],B),W=!e.middlewareData.shift;let Z=V,Q=G;if((r=e.middlewareData.shift)!=null&&r.enabled.x&&(Q=B),(n=e.middlewareData.shift)!=null&&n.enabled.y&&(Z=D),W&&!T){const ie=Ku(x.left,0),ue=Ku(x.right,0),be=Ku(x.top,0),Te=Ku(x.bottom,0);E?Q=C-2*(ie!==0||ue!==0?ie+ue:Ku(x.left,x.right)):Z=N-2*(be!==0||Te!==0?be+Te:Ku(x.top,x.bottom))}await f({...e,availableWidth:Q,availableHeight:Z});const se=await c.getDimensions(s.floating);return C!==se.width||N!==se.height?{reset:{rects:!0}}:{}}}};function JM(){return typeof window<"u"}function dS(t){return Zfe(t)?(t.nodeName||"").toLowerCase():"#document"}function td(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function up(t){var e;return(e=(Zfe(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Zfe(t){return JM()?t instanceof Node||t instanceof td(t).Node:!1}function Jh(t){return JM()?t instanceof Element||t instanceof td(t).Element:!1}function np(t){return JM()?t instanceof HTMLElement||t instanceof td(t).HTMLElement:!1}function $J(t){return!JM()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof td(t).ShadowRoot}function IC(t){const{overflow:e,overflowX:r,overflowY:n,display:i}=ef(t);return/auto|scroll|overlay|hidden|clip/.test(e+n+r)&&!["inline","contents"].includes(i)}function cOe(t){return["table","td","th"].includes(dS(t))}function eO(t){return[":popover-open",":modal"].some(e=>{try{return t.matches(e)}catch{return!1}})}function CG(t){const e=IG(),r=Jh(t)?ef(t):t;return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!e&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!e&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function uOe(t){let e=Uy(t);for(;np(e)&&!d1(e);){if(CG(e))return e;if(eO(e))return null;e=Uy(e)}return null}function IG(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function d1(t){return["html","body","#document"].includes(dS(t))}function ef(t){return td(t).getComputedStyle(t)}function tO(t){return Jh(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Uy(t){if(dS(t)==="html")return t;const e=t.assignedSlot||t.parentNode||$J(t)&&t.host||up(t);return $J(e)?e.host:e}function Xfe(t){const e=Uy(t);return d1(e)?t.ownerDocument?t.ownerDocument.body:t.body:np(e)&&IC(e)?e:Xfe(e)}function ZA(t,e,r){var n;e===void 0&&(e=[]),r===void 0&&(r=!0);const i=Xfe(t),a=i===((n=t.ownerDocument)==null?void 0:n.body),c=td(i);if(a){const s=IU(c);return e.concat(c,c.visualViewport||[],IC(i)?i:[],s&&r?ZA(s):[])}return e.concat(i,ZA(i,[],r))}function IU(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Qfe(t){const e=ef(t);let r=parseFloat(e.width)||0,n=parseFloat(e.height)||0;const i=np(t),a=i?t.offsetWidth:r,c=i?t.offsetHeight:n,s=jL(r)!==a||jL(n)!==c;return s&&(r=a,n=c),{width:r,height:n,$:s}}function jG(t){return Jh(t)?t:t.contextElement}function Iw(t){const e=jG(t);if(!np(e))return zy(1);const r=e.getBoundingClientRect(),{width:n,height:i,$:a}=Qfe(e);let c=(a?jL(r.width):r.width)/n,s=(a?jL(r.height):r.height)/i;return(!c||!Number.isFinite(c))&&(c=1),(!s||!Number.isFinite(s))&&(s=1),{x:c,y:s}}const dOe=zy(0);function Jfe(t){const e=td(t);return!IG()||!e.visualViewport?dOe:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function hOe(t,e,r){return e===void 0&&(e=!1),!r||e&&r!==td(t)?!1:e}function v_(t,e,r,n){e===void 0&&(e=!1),r===void 0&&(r=!1);const i=t.getBoundingClientRect(),a=jG(t);let c=zy(1);e&&(n?Jh(n)&&(c=Iw(n)):c=Iw(t));const s=hOe(a,r,n)?Jfe(a):zy(0);let f=(i.left+s.x)/c.x,m=(i.top+s.y)/c.y,x=i.width/c.x,_=i.height/c.y;if(a){const T=td(a),E=n&&Jh(n)?td(n):n;let C=T,N=IU(C);for(;N&&n&&E!==C;){const L=Iw(N),M=N.getBoundingClientRect(),D=ef(N),B=M.left+(N.clientLeft+parseFloat(D.paddingLeft))*L.x,V=M.top+(N.clientTop+parseFloat(D.paddingTop))*L.y;f*=L.x,m*=L.y,x*=L.x,_*=L.y,f+=B,m+=V,C=td(N),N=IU(C)}}return NL({width:x,height:_,x:f,y:m})}function fOe(t){let{elements:e,rect:r,offsetParent:n,strategy:i}=t;const a=i==="fixed",c=up(n),s=e?eO(e.floating):!1;if(n===c||s&&a)return r;let f={scrollLeft:0,scrollTop:0},m=zy(1);const x=zy(0),_=np(n);if((_||!_&&!a)&&((dS(n)!=="body"||IC(c))&&(f=tO(n)),np(n))){const T=v_(n);m=Iw(n),x.x=T.x+n.clientLeft,x.y=T.y+n.clientTop}return{width:r.width*m.x,height:r.height*m.y,x:r.x*m.x-f.scrollLeft*m.x+x.x,y:r.y*m.y-f.scrollTop*m.y+x.y}}function pOe(t){return Array.from(t.getClientRects())}function jU(t,e){const r=tO(t).scrollLeft;return e?e.left+r:v_(up(t)).left+r}function mOe(t){const e=up(t),r=tO(t),n=t.ownerDocument.body,i=Ku(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),a=Ku(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let c=-r.scrollLeft+jU(t);const s=-r.scrollTop;return ef(n).direction==="rtl"&&(c+=Ku(e.clientWidth,n.clientWidth)-i),{width:i,height:a,x:c,y:s}}function gOe(t,e){const r=td(t),n=up(t),i=r.visualViewport;let a=n.clientWidth,c=n.clientHeight,s=0,f=0;if(i){a=i.width,c=i.height;const m=IG();(!m||m&&e==="fixed")&&(s=i.offsetLeft,f=i.offsetTop)}return{width:a,height:c,x:s,y:f}}function yOe(t,e){const r=v_(t,!0,e==="fixed"),n=r.top+t.clientTop,i=r.left+t.clientLeft,a=np(t)?Iw(t):zy(1),c=t.clientWidth*a.x,s=t.clientHeight*a.y,f=i*a.x,m=n*a.y;return{width:c,height:s,x:f,y:m}}function UJ(t,e,r){let n;if(e==="viewport")n=gOe(t,r);else if(e==="document")n=mOe(up(t));else if(Jh(e))n=yOe(e,r);else{const i=Jfe(t);n={...e,x:e.x-i.x,y:e.y-i.y}}return NL(n)}function epe(t,e){const r=Uy(t);return r===e||!Jh(r)||d1(r)?!1:ef(r).position==="fixed"||epe(r,e)}function xOe(t,e){const r=e.get(t);if(r)return r;let n=ZA(t,[],!1).filter(s=>Jh(s)&&dS(s)!=="body"),i=null;const a=ef(t).position==="fixed";let c=a?Uy(t):t;for(;Jh(c)&&!d1(c);){const s=ef(c),f=CG(c);!f&&s.position==="fixed"&&(i=null),(a?!f&&!i:!f&&s.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||IC(c)&&!f&&epe(t,c))?n=n.filter(x=>x!==c):i=s,c=Uy(c)}return e.set(t,n),n}function _Oe(t){let{element:e,boundary:r,rootBoundary:n,strategy:i}=t;const c=[...r==="clippingAncestors"?eO(e)?[]:xOe(e,this._c):[].concat(r),n],s=c[0],f=c.reduce((m,x)=>{const _=UJ(e,x,i);return m.top=Ku(_.top,m.top),m.right=By(_.right,m.right),m.bottom=By(_.bottom,m.bottom),m.left=Ku(_.left,m.left),m},UJ(e,s,i));return{width:f.right-f.left,height:f.bottom-f.top,x:f.left,y:f.top}}function vOe(t){const{width:e,height:r}=Qfe(t);return{width:e,height:r}}function bOe(t,e,r){const n=np(e),i=up(e),a=r==="fixed",c=v_(t,!0,a,e);let s={scrollLeft:0,scrollTop:0};const f=zy(0);if(n||!n&&!a)if((dS(e)!=="body"||IC(i))&&(s=tO(e)),n){const E=v_(e,!0,a,e);f.x=E.x+e.clientLeft,f.y=E.y+e.clientTop}else i&&(f.x=jU(i));let m=0,x=0;if(i&&!n&&!a){const E=i.getBoundingClientRect();x=E.top+s.scrollTop,m=E.left+s.scrollLeft-jU(i,E)}const _=c.left+s.scrollLeft-f.x-m,T=c.top+s.scrollTop-f.y-x;return{x:_,y:T,width:c.width,height:c.height}}function lB(t){return ef(t).position==="static"}function VJ(t,e){if(!np(t)||ef(t).position==="fixed")return null;if(e)return e(t);let r=t.offsetParent;return up(t)===r&&(r=r.ownerDocument.body),r}function tpe(t,e){const r=td(t);if(eO(t))return r;if(!np(t)){let i=Uy(t);for(;i&&!d1(i);){if(Jh(i)&&!lB(i))return i;i=Uy(i)}return r}let n=VJ(t,e);for(;n&&cOe(n)&&lB(n);)n=VJ(n,e);return n&&d1(n)&&lB(n)&&!CG(n)?r:n||uOe(t)||r}const wOe=async function(t){const e=this.getOffsetParent||tpe,r=this.getDimensions,n=await r(t.floating);return{reference:bOe(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function SOe(t){return ef(t).direction==="rtl"}const TOe={convertOffsetParentRelativeRectToViewportRelativeRect:fOe,getDocumentElement:up,getClippingRect:_Oe,getOffsetParent:tpe,getElementRects:wOe,getClientRects:pOe,getDimensions:vOe,getScale:Iw,isElement:Jh,isRTL:SOe};function EOe(t,e){let r=null,n;const i=up(t);function a(){var s;clearTimeout(n),(s=r)==null||s.disconnect(),r=null}function c(s,f){s===void 0&&(s=!1),f===void 0&&(f=1),a();const{left:m,top:x,width:_,height:T}=t.getBoundingClientRect();if(s||e(),!_||!T)return;const E=eN(x),C=eN(i.clientWidth-(m+_)),N=eN(i.clientHeight-(x+T)),L=eN(m),D={rootMargin:-E+"px "+-C+"px "+-N+"px "+-L+"px",threshold:Ku(0,By(1,f))||1};let B=!0;function V(G){const W=G[0].intersectionRatio;if(W!==f){if(!B)return c();W?c(!1,W):n=setTimeout(()=>{c(!1,1e-7)},1e3)}B=!1}try{r=new IntersectionObserver(V,{...D,root:i.ownerDocument})}catch{r=new IntersectionObserver(V,D)}r.observe(t)}return c(!0),a}function AOe(t,e,r,n){n===void 0&&(n={});const{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:f=!1}=n,m=jG(t),x=i||a?[...m?ZA(m):[],...ZA(e)]:[];x.forEach(M=>{i&&M.addEventListener("scroll",r,{passive:!0}),a&&M.addEventListener("resize",r)});const _=m&&s?EOe(m,r):null;let T=-1,E=null;c&&(E=new ResizeObserver(M=>{let[D]=M;D&&D.target===m&&E&&(E.unobserve(e),cancelAnimationFrame(T),T=requestAnimationFrame(()=>{var B;(B=E)==null||B.observe(e)})),r()}),m&&!f&&E.observe(m),E.observe(e));let C,N=f?v_(t):null;f&&L();function L(){const M=v_(t);N&&(M.x!==N.x||M.y!==N.y||M.width!==N.width||M.height!==N.height)&&r(),N=M,C=requestAnimationFrame(L)}return r(),()=>{var M;x.forEach(D=>{i&&D.removeEventListener("scroll",r),a&&D.removeEventListener("resize",r)}),_==null||_(),(M=E)==null||M.disconnect(),E=null,f&&cancelAnimationFrame(C)}}const kOe=sOe,COe=aOe,IOe=rOe,jOe=lOe,POe=nOe,qJ=tOe,NOe=oOe,ROe=(t,e,r)=>{const n=new Map,i={platform:TOe,...r},a={...i.platform,_c:n};return eOe(t,e,{...i,platform:a})};var vR=typeof document<"u"?P.useLayoutEffect:P.useEffect;function RL(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let r,n,i;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(r=t.length,r!==e.length)return!1;for(n=r;n--!==0;)if(!RL(t[n],e[n]))return!1;return!0}if(i=Object.keys(t),r=i.length,r!==Object.keys(e).length)return!1;for(n=r;n--!==0;)if(!{}.hasOwnProperty.call(e,i[n]))return!1;for(n=r;n--!==0;){const a=i[n];if(!(a==="_owner"&&t.$$typeof)&&!RL(t[a],e[a]))return!1}return!0}return t!==t&&e!==e}function rpe(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function GJ(t,e){const r=rpe(t);return Math.round(e*r)/r}function cB(t){const e=P.useRef(t);return vR(()=>{e.current=t}),e}function LOe(t){t===void 0&&(t={});const{placement:e="bottom",strategy:r="absolute",middleware:n=[],platform:i,elements:{reference:a,floating:c}={},transform:s=!0,whileElementsMounted:f,open:m}=t,[x,_]=P.useState({x:0,y:0,strategy:r,placement:e,middlewareData:{},isPositioned:!1}),[T,E]=P.useState(n);RL(T,n)||E(n);const[C,N]=P.useState(null),[L,M]=P.useState(null),D=P.useCallback(ge=>{ge!==W.current&&(W.current=ge,N(ge))},[]),B=P.useCallback(ge=>{ge!==Z.current&&(Z.current=ge,M(ge))},[]),V=a||C,G=c||L,W=P.useRef(null),Z=P.useRef(null),Q=P.useRef(x),se=f!=null,ie=cB(f),ue=cB(i),be=cB(m),Te=P.useCallback(()=>{if(!W.current||!Z.current)return;const ge={placement:e,strategy:r,middleware:T};ue.current&&(ge.platform=ue.current),ROe(W.current,Z.current,ge).then(je=>{const _e={...je,isPositioned:be.current!==!1};we.current&&!RL(Q.current,_e)&&(Q.current=_e,Fm.flushSync(()=>{_(_e)}))})},[T,e,r,ue,be]);vR(()=>{m===!1&&Q.current.isPositioned&&(Q.current.isPositioned=!1,_(ge=>({...ge,isPositioned:!1})))},[m]);const we=P.useRef(!1);vR(()=>(we.current=!0,()=>{we.current=!1}),[]),vR(()=>{if(V&&(W.current=V),G&&(Z.current=G),V&&G){if(ie.current)return ie.current(V,G,Te);Te()}},[V,G,Te,ie,se]);const Oe=P.useMemo(()=>({reference:W,floating:Z,setReference:D,setFloating:B}),[D,B]),Ae=P.useMemo(()=>({reference:V,floating:G}),[V,G]),Se=P.useMemo(()=>{const ge={position:r,left:0,top:0};if(!Ae.floating)return ge;const je=GJ(Ae.floating,x.x),_e=GJ(Ae.floating,x.y);return s?{...ge,transform:"translate("+je+"px, "+_e+"px)",...rpe(Ae.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:je,top:_e}},[r,s,Ae.floating,x.x,x.y]);return P.useMemo(()=>({...x,update:Te,refs:Oe,elements:Ae,floatingStyles:Se}),[x,Te,Oe,Ae,Se])}const DOe=t=>{function e(r){return{}.hasOwnProperty.call(r,"current")}return{name:"arrow",options:t,fn(r){const{element:n,padding:i}=typeof t=="function"?t(r):t;return n&&e(n)?n.current!=null?qJ({element:n.current,padding:i}).fn(r):{}:n?qJ({element:n,padding:i}).fn(r):{}}}},MOe=(t,e)=>({...kOe(t),options:[t,e]}),OOe=(t,e)=>({...COe(t),options:[t,e]}),FOe=(t,e)=>({...NOe(t),options:[t,e]}),BOe=(t,e)=>({...IOe(t),options:[t,e]}),zOe=(t,e)=>({...jOe(t),options:[t,e]}),$Oe=(t,e)=>({...POe(t),options:[t,e]}),UOe=(t,e)=>({...DOe(t),options:[t,e]});var VOe="Arrow",npe=P.forwardRef((t,e)=>{const{children:r,width:n=10,height:i=5,...a}=t;return o.jsx(rn.svg,{...a,ref:e,width:n,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?r:o.jsx("polygon",{points:"0,0 30,0 15,10"})})});npe.displayName=VOe;var qOe=npe;function jC(t){const[e,r]=P.useState(void 0);return jo(()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const n=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const a=i[0];let c,s;if("borderBoxSize"in a){const f=a.borderBoxSize,m=Array.isArray(f)?f[0]:f;c=m.inlineSize,s=m.blockSize}else c=t.offsetWidth,s=t.offsetHeight;r({width:c,height:s})});return n.observe(t,{box:"border-box"}),()=>n.unobserve(t)}else r(void 0)},[t]),e}var PG="Popper",[ipe,ex]=Go(PG),[GOe,spe]=ipe(PG),ape=t=>{const{__scopePopper:e,children:r}=t,[n,i]=P.useState(null);return o.jsx(GOe,{scope:e,anchor:n,onAnchorChange:i,children:r})};ape.displayName=PG;var ope="PopperAnchor",lpe=P.forwardRef((t,e)=>{const{__scopePopper:r,virtualRef:n,...i}=t,a=spe(ope,r),c=P.useRef(null),s=Gn(e,c);return P.useEffect(()=>{a.onAnchorChange((n==null?void 0:n.current)||c.current)}),n?null:o.jsx(rn.div,{...i,ref:s})});lpe.displayName=ope;var NG="PopperContent",[HOe,WOe]=ipe(NG),cpe=P.forwardRef((t,e)=>{var St,Xt,_t,Rt,er,vt;const{__scopePopper:r,side:n="bottom",sideOffset:i=0,align:a="center",alignOffset:c=0,arrowPadding:s=0,avoidCollisions:f=!0,collisionBoundary:m=[],collisionPadding:x=0,sticky:_="partial",hideWhenDetached:T=!1,updatePositionStrategy:E="optimized",onPlaced:C,...N}=t,L=spe(NG,r),[M,D]=P.useState(null),B=Gn(e,xr=>D(xr)),[V,G]=P.useState(null),W=jC(V),Z=(W==null?void 0:W.width)??0,Q=(W==null?void 0:W.height)??0,se=n+(a!=="center"?"-"+a:""),ie=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},ue=Array.isArray(m)?m:[m],be=ue.length>0,Te={padding:ie,boundary:ue.filter(YOe),altBoundary:be},{refs:we,floatingStyles:Oe,placement:Ae,isPositioned:Se,middlewareData:ge}=LOe({strategy:"fixed",placement:se,whileElementsMounted:(...xr)=>AOe(...xr,{animationFrame:E==="always"}),elements:{reference:L.anchor},middleware:[MOe({mainAxis:i+Q,alignmentAxis:c}),f&&OOe({mainAxis:!0,crossAxis:!1,limiter:_==="partial"?FOe():void 0,...Te}),f&&BOe({...Te}),zOe({...Te,apply:({elements:xr,rects:_r,availableWidth:tn,availableHeight:or})=>{const{width:Sr,height:jr}=_r.reference,Qt=xr.floating.style;Qt.setProperty("--radix-popper-available-width",`${tn}px`),Qt.setProperty("--radix-popper-available-height",`${or}px`),Qt.setProperty("--radix-popper-anchor-width",`${Sr}px`),Qt.setProperty("--radix-popper-anchor-height",`${jr}px`)}}),V&&UOe({element:V,padding:s}),ZOe({arrowWidth:Z,arrowHeight:Q}),T&&$Oe({strategy:"referenceHidden",...Te})]}),[je,_e]=hpe(Ae),xe=ho(C);jo(()=>{Se&&(xe==null||xe())},[Se,xe]);const Pe=(St=ge.arrow)==null?void 0:St.x,Ze=(Xt=ge.arrow)==null?void 0:Xt.y,at=((_t=ge.arrow)==null?void 0:_t.centerOffset)!==0,[lt,xt]=P.useState();return jo(()=>{M&&xt(window.getComputedStyle(M).zIndex)},[M]),o.jsx("div",{ref:we.setFloating,"data-radix-popper-content-wrapper":"",style:{...Oe,transform:Se?Oe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:lt,"--radix-popper-transform-origin":[(Rt=ge.transformOrigin)==null?void 0:Rt.x,(er=ge.transformOrigin)==null?void 0:er.y].join(" "),...((vt=ge.hide)==null?void 0:vt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:o.jsx(HOe,{scope:r,placedSide:je,onArrowChange:G,arrowX:Pe,arrowY:Ze,shouldHideArrow:at,children:o.jsx(rn.div,{"data-side":je,"data-align":_e,...N,ref:B,style:{...N.style,animation:Se?void 0:"none"}})})})});cpe.displayName=NG;var upe="PopperArrow",KOe={top:"bottom",right:"left",bottom:"top",left:"right"},dpe=P.forwardRef(function(e,r){const{__scopePopper:n,...i}=e,a=WOe(upe,n),c=KOe[a.placedSide];return o.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:o.jsx(qOe,{...i,ref:r,style:{...i.style,display:"block"}})})});dpe.displayName=upe;function YOe(t){return t!==null}var ZOe=t=>({name:"transformOrigin",options:t,fn(e){var L,M,D;const{placement:r,rects:n,middlewareData:i}=e,c=((L=i.arrow)==null?void 0:L.centerOffset)!==0,s=c?0:t.arrowWidth,f=c?0:t.arrowHeight,[m,x]=hpe(r),_={start:"0%",center:"50%",end:"100%"}[x],T=(((M=i.arrow)==null?void 0:M.x)??0)+s/2,E=(((D=i.arrow)==null?void 0:D.y)??0)+f/2;let C="",N="";return m==="bottom"?(C=c?_:`${T}px`,N=`${-f}px`):m==="top"?(C=c?_:`${T}px`,N=`${n.floating.height+f}px`):m==="right"?(C=`${-f}px`,N=c?_:`${E}px`):m==="left"&&(C=`${n.floating.width+f}px`,N=c?_:`${E}px`),{data:{x:C,y:N}}}});function hpe(t){const[e,r="center"]=t.split("-");return[e,r]}var rO=ape,PC=lpe,nO=cpe,iO=dpe,[sO,d$t]=Go("Tooltip",[ex]),aO=ex(),fpe="TooltipProvider",XOe=700,PU="tooltip.open",[QOe,RG]=sO(fpe),ppe=t=>{const{__scopeTooltip:e,delayDuration:r=XOe,skipDelayDuration:n=300,disableHoverableContent:i=!1,children:a}=t,c=P.useRef(!0),s=P.useRef(!1),f=P.useRef(0);return P.useEffect(()=>{const m=f.current;return()=>window.clearTimeout(m)},[]),o.jsx(QOe,{scope:e,isOpenDelayedRef:c,delayDuration:r,onOpen:P.useCallback(()=>{window.clearTimeout(f.current),c.current=!1},[]),onClose:P.useCallback(()=>{window.clearTimeout(f.current),f.current=window.setTimeout(()=>c.current=!0,n)},[n]),isPointerInTransitRef:s,onPointerInTransitChange:P.useCallback(m=>{s.current=m},[]),disableHoverableContent:i,children:a})};ppe.displayName=fpe;var XA="Tooltip",[JOe,oO]=sO(XA),mpe=t=>{const{__scopeTooltip:e,children:r,open:n,defaultOpen:i,onOpenChange:a,disableHoverableContent:c,delayDuration:s}=t,f=RG(XA,t.__scopeTooltip),m=aO(e),[x,_]=P.useState(null),T=Cl(),E=P.useRef(0),C=c??f.disableHoverableContent,N=s??f.delayDuration,L=P.useRef(!1),[M,D]=sd({prop:n,defaultProp:i??!1,onChange:Z=>{Z?(f.onOpen(),document.dispatchEvent(new CustomEvent(PU))):f.onClose(),a==null||a(Z)},caller:XA}),B=P.useMemo(()=>M?L.current?"delayed-open":"instant-open":"closed",[M]),V=P.useCallback(()=>{window.clearTimeout(E.current),E.current=0,L.current=!1,D(!0)},[D]),G=P.useCallback(()=>{window.clearTimeout(E.current),E.current=0,D(!1)},[D]),W=P.useCallback(()=>{window.clearTimeout(E.current),E.current=window.setTimeout(()=>{L.current=!0,D(!0),E.current=0},N)},[N,D]);return P.useEffect(()=>()=>{E.current&&(window.clearTimeout(E.current),E.current=0)},[]),o.jsx(rO,{...m,children:o.jsx(JOe,{scope:e,contentId:T,open:M,stateAttribute:B,trigger:x,onTriggerChange:_,onTriggerEnter:P.useCallback(()=>{f.isOpenDelayedRef.current?W():V()},[f.isOpenDelayedRef,W,V]),onTriggerLeave:P.useCallback(()=>{C?G():(window.clearTimeout(E.current),E.current=0)},[G,C]),onOpen:V,onClose:G,disableHoverableContent:C,children:r})})};mpe.displayName=XA;var NU="TooltipTrigger",gpe=P.forwardRef((t,e)=>{const{__scopeTooltip:r,...n}=t,i=oO(NU,r),a=RG(NU,r),c=aO(r),s=P.useRef(null),f=Gn(e,s,i.onTriggerChange),m=P.useRef(!1),x=P.useRef(!1),_=P.useCallback(()=>m.current=!1,[]);return P.useEffect(()=>()=>document.removeEventListener("pointerup",_),[_]),o.jsx(PC,{asChild:!0,...c,children:o.jsx(rn.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...n,ref:f,onPointerMove:Or(t.onPointerMove,T=>{T.pointerType!=="touch"&&!x.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),x.current=!0)}),onPointerLeave:Or(t.onPointerLeave,()=>{i.onTriggerLeave(),x.current=!1}),onPointerDown:Or(t.onPointerDown,()=>{i.open&&i.onClose(),m.current=!0,document.addEventListener("pointerup",_,{once:!0})}),onFocus:Or(t.onFocus,()=>{m.current||i.onOpen()}),onBlur:Or(t.onBlur,i.onClose),onClick:Or(t.onClick,i.onClose)})})});gpe.displayName=NU;var eFe="TooltipPortal",[h$t,tFe]=sO(eFe,{forceMount:void 0}),h1="TooltipContent",ype=P.forwardRef((t,e)=>{const r=tFe(h1,t.__scopeTooltip),{forceMount:n=r.forceMount,side:i="top",...a}=t,c=oO(h1,t.__scopeTooltip);return o.jsx(ul,{present:n||c.open,children:c.disableHoverableContent?o.jsx(xpe,{side:i,...a,ref:e}):o.jsx(rFe,{side:i,...a,ref:e})})}),rFe=P.forwardRef((t,e)=>{const r=oO(h1,t.__scopeTooltip),n=RG(h1,t.__scopeTooltip),i=P.useRef(null),a=Gn(e,i),[c,s]=P.useState(null),{trigger:f,onClose:m}=r,x=i.current,{onPointerInTransitChange:_}=n,T=P.useCallback(()=>{s(null),_(!1)},[_]),E=P.useCallback((C,N)=>{const L=C.currentTarget,M={x:C.clientX,y:C.clientY},D=oFe(M,L.getBoundingClientRect()),B=lFe(M,D),V=cFe(N.getBoundingClientRect()),G=dFe([...B,...V]);s(G),_(!0)},[_]);return P.useEffect(()=>()=>T(),[T]),P.useEffect(()=>{if(f&&x){const C=L=>E(L,x),N=L=>E(L,f);return f.addEventListener("pointerleave",C),x.addEventListener("pointerleave",N),()=>{f.removeEventListener("pointerleave",C),x.removeEventListener("pointerleave",N)}}},[f,x,E,T]),P.useEffect(()=>{if(c){const C=N=>{const L=N.target,M={x:N.clientX,y:N.clientY},D=(f==null?void 0:f.contains(L))||(x==null?void 0:x.contains(L)),B=!uFe(M,c);D?T():B&&(T(),m())};return document.addEventListener("pointermove",C),()=>document.removeEventListener("pointermove",C)}},[f,x,c,m,T]),o.jsx(xpe,{...t,ref:a})}),[nFe,iFe]=sO(XA,{isInside:!1}),sFe=the("TooltipContent"),xpe=P.forwardRef((t,e)=>{const{__scopeTooltip:r,children:n,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:c,...s}=t,f=oO(h1,r),m=aO(r),{onClose:x}=f;return P.useEffect(()=>(document.addEventListener(PU,x),()=>document.removeEventListener(PU,x)),[x]),P.useEffect(()=>{if(f.trigger){const _=T=>{const E=T.target;E!=null&&E.contains(f.trigger)&&x()};return window.addEventListener("scroll",_,{capture:!0}),()=>window.removeEventListener("scroll",_,{capture:!0})}},[f.trigger,x]),o.jsx(O_,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:_=>_.preventDefault(),onDismiss:x,children:o.jsxs(nO,{"data-state":f.stateAttribute,...m,...s,ref:e,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[o.jsx(sFe,{children:n}),o.jsx(nFe,{scope:r,isInside:!0,children:o.jsx(tRe,{id:f.contentId,role:"tooltip",children:i||n})})]})})});ype.displayName=h1;var _pe="TooltipArrow",aFe=P.forwardRef((t,e)=>{const{__scopeTooltip:r,...n}=t,i=aO(r);return iFe(_pe,r).isInside?null:o.jsx(iO,{...i,...n,ref:e})});aFe.displayName=_pe;function oFe(t,e){const r=Math.abs(e.top-t.y),n=Math.abs(e.bottom-t.y),i=Math.abs(e.right-t.x),a=Math.abs(e.left-t.x);switch(Math.min(r,n,i,a)){case a:return"left";case i:return"right";case r:return"top";case n:return"bottom";default:throw new Error("unreachable")}}function lFe(t,e,r=5){const n=[];switch(e){case"top":n.push({x:t.x-r,y:t.y+r},{x:t.x+r,y:t.y+r});break;case"bottom":n.push({x:t.x-r,y:t.y-r},{x:t.x+r,y:t.y-r});break;case"left":n.push({x:t.x+r,y:t.y-r},{x:t.x+r,y:t.y+r});break;case"right":n.push({x:t.x-r,y:t.y-r},{x:t.x-r,y:t.y+r});break}return n}function cFe(t){const{top:e,right:r,bottom:n,left:i}=t;return[{x:i,y:e},{x:r,y:e},{x:r,y:n},{x:i,y:n}]}function uFe(t,e){const{x:r,y:n}=t;let i=!1;for(let a=0,c=e.length-1;an!=T>n&&r<(_-m)*(n-x)/(T-x)+m&&(i=!i)}return i}function dFe(t){const e=t.slice();return e.sort((r,n)=>r.xn.x?1:r.yn.y?1:0),hFe(e)}function hFe(t){if(t.length<=1)return t.slice();const e=[];for(let n=0;n=2;){const a=e[e.length-1],c=e[e.length-2];if((a.x-c.x)*(i.y-c.y)>=(a.y-c.y)*(i.x-c.x))e.pop();else break}e.push(i)}e.pop();const r=[];for(let n=t.length-1;n>=0;n--){const i=t[n];for(;r.length>=2;){const a=r[r.length-1],c=r[r.length-2];if((a.x-c.x)*(i.y-c.y)>=(a.y-c.y)*(i.x-c.x))r.pop();else break}r.push(i)}return r.pop(),e.length===1&&r.length===1&&e[0].x===r[0].x&&e[0].y===r[0].y?e:e.concat(r)}var fFe=ppe,pFe=mpe,mFe=gpe,vpe=ype;const bpe=fFe,gFe=pFe,yFe=mFe,wpe=P.forwardRef(({className:t,sideOffset:e=4,...r},n)=>o.jsx(vpe,{ref:n,sideOffset:e,className:ir("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...r}));wpe.displayName=vpe.displayName;var hS=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},b_=typeof window>"u"||"Deno"in globalThis;function Bc(){}function xFe(t,e){return typeof t=="function"?t(e):t}function RU(t){return typeof t=="number"&&t>=0&&t!==1/0}function Spe(t,e){return Math.max(t+(e||0)-Date.now(),0)}function ky(t,e){return typeof t=="function"?t(e):t}function Rd(t,e){return typeof t=="function"?t(e):t}function HJ(t,e){const{type:r="all",exact:n,fetchStatus:i,predicate:a,queryKey:c,stale:s}=t;if(c){if(n){if(e.queryHash!==LG(c,e.options))return!1}else if(!QA(e.queryKey,c))return!1}if(r!=="all"){const f=e.isActive();if(r==="active"&&!f||r==="inactive"&&f)return!1}return!(typeof s=="boolean"&&e.isStale()!==s||i&&i!==e.state.fetchStatus||a&&!a(e))}function WJ(t,e){const{exact:r,status:n,predicate:i,mutationKey:a}=t;if(a){if(!e.options.mutationKey)return!1;if(r){if(w_(e.options.mutationKey)!==w_(a))return!1}else if(!QA(e.options.mutationKey,a))return!1}return!(n&&e.state.status!==n||i&&!i(e))}function LG(t,e){return((e==null?void 0:e.queryKeyHashFn)||w_)(t)}function w_(t){return JSON.stringify(t,(e,r)=>LU(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function QA(t,e){return t===e?!0:typeof t!=typeof e?!1:t&&e&&typeof t=="object"&&typeof e=="object"?Object.keys(e).every(r=>QA(t[r],e[r])):!1}function Tpe(t,e){if(t===e)return t;const r=KJ(t)&&KJ(e);if(r||LU(t)&&LU(e)){const n=r?t:Object.keys(t),i=n.length,a=r?e:Object.keys(e),c=a.length,s=r?[]:{},f=new Set(n);let m=0;for(let x=0;x{setTimeout(e,t)})}function DU(t,e,r){return typeof r.structuralSharing=="function"?r.structuralSharing(t,e):r.structuralSharing!==!1?Tpe(t,e):e}function vFe(t,e,r=0){const n=[...t,e];return r&&n.length>r?n.slice(1):n}function bFe(t,e,r=0){const n=[e,...t];return r&&n.length>r?n.slice(0,-1):n}var DG=Symbol();function Epe(t,e){return!t.queryFn&&(e!=null&&e.initialPromise)?()=>e.initialPromise:!t.queryFn||t.queryFn===DG?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function Ape(t,e){return typeof t=="function"?t(...e):!!t}var Z0,ny,Uw,Ace,wFe=(Ace=class extends hS{constructor(){super();Kn(this,Z0);Kn(this,ny);Kn(this,Uw);pn(this,Uw,e=>{if(!b_&&window.addEventListener){const r=()=>e();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}})}onSubscribe(){At(this,ny)||this.setEventListener(At(this,Uw))}onUnsubscribe(){var e;this.hasListeners()||((e=At(this,ny))==null||e.call(this),pn(this,ny,void 0))}setEventListener(e){var r;pn(this,Uw,e),(r=At(this,ny))==null||r.call(this),pn(this,ny,e(n=>{typeof n=="boolean"?this.setFocused(n):this.onFocus()}))}setFocused(e){At(this,Z0)!==e&&(pn(this,Z0,e),this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(r=>{r(e)})}isFocused(){var e;return typeof At(this,Z0)=="boolean"?At(this,Z0):((e=globalThis.document)==null?void 0:e.visibilityState)!=="hidden"}},Z0=new WeakMap,ny=new WeakMap,Uw=new WeakMap,Ace),MG=new wFe,Vw,iy,qw,kce,SFe=(kce=class extends hS{constructor(){super();Kn(this,Vw,!0);Kn(this,iy);Kn(this,qw);pn(this,qw,e=>{if(!b_&&window.addEventListener){const r=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",n)}}})}onSubscribe(){At(this,iy)||this.setEventListener(At(this,qw))}onUnsubscribe(){var e;this.hasListeners()||((e=At(this,iy))==null||e.call(this),pn(this,iy,void 0))}setEventListener(e){var r;pn(this,qw,e),(r=At(this,iy))==null||r.call(this),pn(this,iy,e(this.setOnline.bind(this)))}setOnline(e){At(this,Vw)!==e&&(pn(this,Vw,e),this.listeners.forEach(n=>{n(e)}))}isOnline(){return At(this,Vw)}},Vw=new WeakMap,iy=new WeakMap,qw=new WeakMap,kce),DL=new SFe;function MU(){let t,e;const r=new Promise((i,a)=>{t=i,e=a});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),t(i)},r.reject=i=>{n({status:"rejected",reason:i}),e(i)},r}function TFe(t){return Math.min(1e3*2**t,3e4)}function kpe(t){return(t??"online")==="online"?DL.isOnline():!0}var Cpe=class extends Error{constructor(t){super("CancelledError"),this.revert=t==null?void 0:t.revert,this.silent=t==null?void 0:t.silent}};function uB(t){return t instanceof Cpe}function Ipe(t){let e=!1,r=0,n=!1,i;const a=MU(),c=N=>{var L;n||(T(new Cpe(N)),(L=t.abort)==null||L.call(t))},s=()=>{e=!0},f=()=>{e=!1},m=()=>MG.isFocused()&&(t.networkMode==="always"||DL.isOnline())&&t.canRun(),x=()=>kpe(t.networkMode)&&t.canRun(),_=N=>{var L;n||(n=!0,(L=t.onSuccess)==null||L.call(t,N),i==null||i(),a.resolve(N))},T=N=>{var L;n||(n=!0,(L=t.onError)==null||L.call(t,N),i==null||i(),a.reject(N))},E=()=>new Promise(N=>{var L;i=M=>{(n||m())&&N(M)},(L=t.onPause)==null||L.call(t)}).then(()=>{var N;i=void 0,n||(N=t.onContinue)==null||N.call(t)}),C=()=>{if(n)return;let N;const L=r===0?t.initialPromise:void 0;try{N=L??t.fn()}catch(M){N=Promise.reject(M)}Promise.resolve(N).then(_).catch(M=>{var W;if(n)return;const D=t.retry??(b_?0:3),B=t.retryDelay??TFe,V=typeof B=="function"?B(r,M):B,G=D===!0||typeof D=="number"&&rm()?void 0:E()).then(()=>{e?T(M):C()})})};return{promise:a,cancel:c,continue:()=>(i==null||i(),a),cancelRetry:s,continueRetry:f,canStart:x,start:()=>(x()?C():E().then(C),a)}}var EFe=t=>setTimeout(t,0);function AFe(){let t=[],e=0,r=s=>{s()},n=s=>{s()},i=EFe;const a=s=>{e?t.push(s):i(()=>{r(s)})},c=()=>{const s=t;t=[],s.length&&i(()=>{n(()=>{s.forEach(f=>{r(f)})})})};return{batch:s=>{let f;e++;try{f=s()}finally{e--,e||c()}return f},batchCalls:s=>(...f)=>{a(()=>{s(...f)})},schedule:a,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{i=s}}}var sl=AFe(),X0,Cce,jpe=(Cce=class{constructor(){Kn(this,X0)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),RU(this.gcTime)&&pn(this,X0,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(b_?1/0:5*60*1e3))}clearGcTimeout(){At(this,X0)&&(clearTimeout(At(this,X0)),pn(this,X0,void 0))}},X0=new WeakMap,Cce),Gw,Q0,Nd,J0,uc,lC,e_,Rh,em,Ice,kFe=(Ice=class extends jpe{constructor(e){super();Kn(this,Rh);Kn(this,Gw);Kn(this,Q0);Kn(this,Nd);Kn(this,J0);Kn(this,uc);Kn(this,lC);Kn(this,e_);pn(this,e_,!1),pn(this,lC,e.defaultOptions),this.setOptions(e.options),this.observers=[],pn(this,J0,e.client),pn(this,Nd,At(this,J0).getQueryCache()),this.queryKey=e.queryKey,this.queryHash=e.queryHash,pn(this,Gw,CFe(this.options)),this.state=e.state??At(this,Gw),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var e;return(e=At(this,uc))==null?void 0:e.promise}setOptions(e){this.options={...At(this,lC),...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&At(this,Nd).remove(this)}setData(e,r){const n=DU(this.state.data,e,this.options);return Bi(this,Rh,em).call(this,{data:n,type:"success",dataUpdatedAt:r==null?void 0:r.updatedAt,manual:r==null?void 0:r.manual}),n}setState(e,r){Bi(this,Rh,em).call(this,{type:"setState",state:e,setStateOptions:r})}cancel(e){var n,i;const r=(n=At(this,uc))==null?void 0:n.promise;return(i=At(this,uc))==null||i.cancel(e),r?r.then(Bc).catch(Bc):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(At(this,Gw))}isActive(){return this.observers.some(e=>Rd(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===DG||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>ky(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!Spe(this.state.dataUpdatedAt,e)}onFocus(){var r;const e=this.observers.find(n=>n.shouldFetchOnWindowFocus());e==null||e.refetch({cancelRefetch:!1}),(r=At(this,uc))==null||r.continue()}onOnline(){var r;const e=this.observers.find(n=>n.shouldFetchOnReconnect());e==null||e.refetch({cancelRefetch:!1}),(r=At(this,uc))==null||r.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),At(this,Nd).notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(r=>r!==e),this.observers.length||(At(this,uc)&&(At(this,e_)?At(this,uc).cancel({revert:!0}):At(this,uc).cancelRetry()),this.scheduleGc()),At(this,Nd).notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Bi(this,Rh,em).call(this,{type:"invalidate"})}fetch(e,r){var m,x,_;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(r!=null&&r.cancelRefetch))this.cancel({silent:!0});else if(At(this,uc))return At(this,uc).continueRetry(),At(this,uc).promise}if(e&&this.setOptions(e),!this.options.queryFn){const T=this.observers.find(E=>E.options.queryFn);T&&this.setOptions(T.options)}const n=new AbortController,i=T=>{Object.defineProperty(T,"signal",{enumerable:!0,get:()=>(pn(this,e_,!0),n.signal)})},a=()=>{const T=Epe(this.options,r),C=(()=>{const N={client:At(this,J0),queryKey:this.queryKey,meta:this.meta};return i(N),N})();return pn(this,e_,!1),this.options.persister?this.options.persister(T,C,this):T(C)},s=(()=>{const T={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:At(this,J0),state:this.state,fetchFn:a};return i(T),T})();(m=this.options.behavior)==null||m.onFetch(s,this),pn(this,Q0,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((x=s.fetchOptions)==null?void 0:x.meta))&&Bi(this,Rh,em).call(this,{type:"fetch",meta:(_=s.fetchOptions)==null?void 0:_.meta});const f=T=>{var E,C,N,L;uB(T)&&T.silent||Bi(this,Rh,em).call(this,{type:"error",error:T}),uB(T)||((C=(E=At(this,Nd).config).onError)==null||C.call(E,T,this),(L=(N=At(this,Nd).config).onSettled)==null||L.call(N,this.state.data,T,this)),this.scheduleGc()};return pn(this,uc,Ipe({initialPromise:r==null?void 0:r.initialPromise,fn:s.fetchFn,abort:n.abort.bind(n),onSuccess:T=>{var E,C,N,L;if(T===void 0){f(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(T)}catch(M){f(M);return}(C=(E=At(this,Nd).config).onSuccess)==null||C.call(E,T,this),(L=(N=At(this,Nd).config).onSettled)==null||L.call(N,T,this.state.error,this),this.scheduleGc()},onError:f,onFail:(T,E)=>{Bi(this,Rh,em).call(this,{type:"failed",failureCount:T,error:E})},onPause:()=>{Bi(this,Rh,em).call(this,{type:"pause"})},onContinue:()=>{Bi(this,Rh,em).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0})),At(this,uc).start()}},Gw=new WeakMap,Q0=new WeakMap,Nd=new WeakMap,J0=new WeakMap,uc=new WeakMap,lC=new WeakMap,e_=new WeakMap,Rh=new WeakSet,em=function(e){const r=n=>{switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...Ppe(n.data,this.options),fetchMeta:e.meta??null};case"success":return pn(this,Q0,void 0),{...n,data:e.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=e.error;return uB(i)&&i.revert&&At(this,Q0)?{...At(this,Q0),fetchStatus:"idle"}:{...n,error:i,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=r(this.state),sl.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),At(this,Nd).notify({query:this,type:"updated",action:e})})},Ice);function Ppe(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:kpe(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function CFe(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,r=e!==void 0,n=r?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var Df,jce,IFe=(jce=class extends hS{constructor(e={}){super();Kn(this,Df);this.config=e,pn(this,Df,new Map)}build(e,r,n){const i=r.queryKey,a=r.queryHash??LG(i,r);let c=this.get(a);return c||(c=new kFe({client:e,queryKey:i,queryHash:a,options:e.defaultQueryOptions(r),state:n,defaultOptions:e.getQueryDefaults(i)}),this.add(c)),c}add(e){At(this,Df).has(e.queryHash)||(At(this,Df).set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const r=At(this,Df).get(e.queryHash);r&&(e.destroy(),r===e&&At(this,Df).delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){sl.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return At(this,Df).get(e)}getAll(){return[...At(this,Df).values()]}find(e){const r={exact:!0,...e};return this.getAll().find(n=>HJ(r,n))}findAll(e={}){const r=this.getAll();return Object.keys(e).length>0?r.filter(n=>HJ(e,n)):r}notify(e){sl.batch(()=>{this.listeners.forEach(r=>{r(e)})})}onFocus(){sl.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){sl.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Df=new WeakMap,jce),Mf,Mc,t_,Of,$g,Pce,jFe=(Pce=class extends jpe{constructor(e){super();Kn(this,Of);Kn(this,Mf);Kn(this,Mc);Kn(this,t_);this.mutationId=e.mutationId,pn(this,Mc,e.mutationCache),pn(this,Mf,[]),this.state=e.state||Npe(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){At(this,Mf).includes(e)||(At(this,Mf).push(e),this.clearGcTimeout(),At(this,Mc).notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){pn(this,Mf,At(this,Mf).filter(r=>r!==e)),this.scheduleGc(),At(this,Mc).notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){At(this,Mf).length||(this.state.status==="pending"?this.scheduleGc():At(this,Mc).remove(this))}continue(){var e;return((e=At(this,t_))==null?void 0:e.continue())??this.execute(this.state.variables)}async execute(e){var a,c,s,f,m,x,_,T,E,C,N,L,M,D,B,V,G,W,Z,Q;const r=()=>{Bi(this,Of,$g).call(this,{type:"continue"})};pn(this,t_,Ipe({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(se,ie)=>{Bi(this,Of,$g).call(this,{type:"failed",failureCount:se,error:ie})},onPause:()=>{Bi(this,Of,$g).call(this,{type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>At(this,Mc).canRun(this)}));const n=this.state.status==="pending",i=!At(this,t_).canStart();try{if(n)r();else{Bi(this,Of,$g).call(this,{type:"pending",variables:e,isPaused:i}),await((c=(a=At(this,Mc).config).onMutate)==null?void 0:c.call(a,e,this));const ie=await((f=(s=this.options).onMutate)==null?void 0:f.call(s,e));ie!==this.state.context&&Bi(this,Of,$g).call(this,{type:"pending",context:ie,variables:e,isPaused:i})}const se=await At(this,t_).start();return await((x=(m=At(this,Mc).config).onSuccess)==null?void 0:x.call(m,se,e,this.state.context,this)),await((T=(_=this.options).onSuccess)==null?void 0:T.call(_,se,e,this.state.context)),await((C=(E=At(this,Mc).config).onSettled)==null?void 0:C.call(E,se,null,this.state.variables,this.state.context,this)),await((L=(N=this.options).onSettled)==null?void 0:L.call(N,se,null,e,this.state.context)),Bi(this,Of,$g).call(this,{type:"success",data:se}),se}catch(se){try{throw await((D=(M=At(this,Mc).config).onError)==null?void 0:D.call(M,se,e,this.state.context,this)),await((V=(B=this.options).onError)==null?void 0:V.call(B,se,e,this.state.context)),await((W=(G=At(this,Mc).config).onSettled)==null?void 0:W.call(G,void 0,se,this.state.variables,this.state.context,this)),await((Q=(Z=this.options).onSettled)==null?void 0:Q.call(Z,void 0,se,e,this.state.context)),se}finally{Bi(this,Of,$g).call(this,{type:"error",error:se})}}finally{At(this,Mc).runNext(this)}}},Mf=new WeakMap,Mc=new WeakMap,t_=new WeakMap,Of=new WeakSet,$g=function(e){const r=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=r(this.state),sl.batch(()=>{At(this,Mf).forEach(n=>{n.onMutationUpdate(e)}),At(this,Mc).notify({mutation:this,type:"updated",action:e})})},Pce);function Npe(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var om,Lh,cC,Nce,PFe=(Nce=class extends hS{constructor(e={}){super();Kn(this,om);Kn(this,Lh);Kn(this,cC);this.config=e,pn(this,om,new Set),pn(this,Lh,new Map),pn(this,cC,0)}build(e,r,n){const i=new jFe({mutationCache:this,mutationId:++IP(this,cC)._,options:e.defaultMutationOptions(r),state:n});return this.add(i),i}add(e){At(this,om).add(e);const r=tN(e);if(typeof r=="string"){const n=At(this,Lh).get(r);n?n.push(e):At(this,Lh).set(r,[e])}this.notify({type:"added",mutation:e})}remove(e){if(At(this,om).delete(e)){const r=tN(e);if(typeof r=="string"){const n=At(this,Lh).get(r);if(n)if(n.length>1){const i=n.indexOf(e);i!==-1&&n.splice(i,1)}else n[0]===e&&At(this,Lh).delete(r)}}this.notify({type:"removed",mutation:e})}canRun(e){const r=tN(e);if(typeof r=="string"){const n=At(this,Lh).get(r),i=n==null?void 0:n.find(a=>a.state.status==="pending");return!i||i===e}else return!0}runNext(e){var n;const r=tN(e);if(typeof r=="string"){const i=(n=At(this,Lh).get(r))==null?void 0:n.find(a=>a!==e&&a.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){sl.batch(()=>{At(this,om).forEach(e=>{this.notify({type:"removed",mutation:e})}),At(this,om).clear(),At(this,Lh).clear()})}getAll(){return Array.from(At(this,om))}find(e){const r={exact:!0,...e};return this.getAll().find(n=>WJ(r,n))}findAll(e={}){return this.getAll().filter(r=>WJ(e,r))}notify(e){sl.batch(()=>{this.listeners.forEach(r=>{r(e)})})}resumePausedMutations(){const e=this.getAll().filter(r=>r.state.isPaused);return sl.batch(()=>Promise.all(e.map(r=>r.continue().catch(Bc))))}},om=new WeakMap,Lh=new WeakMap,cC=new WeakMap,Nce);function tN(t){var e;return(e=t.options.scope)==null?void 0:e.id}function ZJ(t){return{onFetch:(e,r)=>{var x,_,T,E,C;const n=e.options,i=(T=(_=(x=e.fetchOptions)==null?void 0:x.meta)==null?void 0:_.fetchMore)==null?void 0:T.direction,a=((E=e.state.data)==null?void 0:E.pages)||[],c=((C=e.state.data)==null?void 0:C.pageParams)||[];let s={pages:[],pageParams:[]},f=0;const m=async()=>{let N=!1;const L=B=>{Object.defineProperty(B,"signal",{enumerable:!0,get:()=>(e.signal.aborted?N=!0:e.signal.addEventListener("abort",()=>{N=!0}),e.signal)})},M=Epe(e.options,e.fetchOptions),D=async(B,V,G)=>{if(N)return Promise.reject();if(V==null&&B.pages.length)return Promise.resolve(B);const Z=(()=>{const ue={client:e.client,queryKey:e.queryKey,pageParam:V,direction:G?"backward":"forward",meta:e.options.meta};return L(ue),ue})(),Q=await M(Z),{maxPages:se}=e.options,ie=G?bFe:vFe;return{pages:ie(B.pages,Q,se),pageParams:ie(B.pageParams,V,se)}};if(i&&a.length){const B=i==="backward",V=B?Rpe:OU,G={pages:a,pageParams:c},W=V(n,G);s=await D(G,W,B)}else{const B=t??a.length;do{const V=f===0?c[0]??n.initialPageParam:OU(n,s);if(f>0&&V==null)break;s=await D(s,V),f++}while(f{var N,L;return(L=(N=e.options).persister)==null?void 0:L.call(N,m,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},r)}:e.fetchFn=m}}}function OU(t,{pages:e,pageParams:r}){const n=e.length-1;return e.length>0?t.getNextPageParam(e[n],e,r[n],r):void 0}function Rpe(t,{pages:e,pageParams:r}){var n;return e.length>0?(n=t.getPreviousPageParam)==null?void 0:n.call(t,e[0],e,r[0],r):void 0}function f$t(t,e){return e?OU(t,e)!=null:!1}function p$t(t,e){return!e||!t.getPreviousPageParam?!1:Rpe(t,e)!=null}var oo,sy,ay,Hw,Ww,oy,Kw,Yw,Rce,NFe=(Rce=class{constructor(t={}){Kn(this,oo);Kn(this,sy);Kn(this,ay);Kn(this,Hw);Kn(this,Ww);Kn(this,oy);Kn(this,Kw);Kn(this,Yw);pn(this,oo,t.queryCache||new IFe),pn(this,sy,t.mutationCache||new PFe),pn(this,ay,t.defaultOptions||{}),pn(this,Hw,new Map),pn(this,Ww,new Map),pn(this,oy,0)}mount(){IP(this,oy)._++,At(this,oy)===1&&(pn(this,Kw,MG.subscribe(async t=>{t&&(await this.resumePausedMutations(),At(this,oo).onFocus())})),pn(this,Yw,DL.subscribe(async t=>{t&&(await this.resumePausedMutations(),At(this,oo).onOnline())})))}unmount(){var t,e;IP(this,oy)._--,At(this,oy)===0&&((t=At(this,Kw))==null||t.call(this),pn(this,Kw,void 0),(e=At(this,Yw))==null||e.call(this),pn(this,Yw,void 0))}isFetching(t){return At(this,oo).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return At(this,sy).findAll({...t,status:"pending"}).length}getQueryData(t){var r;const e=this.defaultQueryOptions({queryKey:t});return(r=At(this,oo).get(e.queryHash))==null?void 0:r.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),r=At(this,oo).build(this,e),n=r.state.data;return n===void 0?this.fetchQuery(t):(t.revalidateIfStale&&r.isStaleByTime(ky(e.staleTime,r))&&this.prefetchQuery(e),Promise.resolve(n))}getQueriesData(t){return At(this,oo).findAll(t).map(({queryKey:e,state:r})=>{const n=r.data;return[e,n]})}setQueryData(t,e,r){const n=this.defaultQueryOptions({queryKey:t}),i=At(this,oo).get(n.queryHash),a=i==null?void 0:i.state.data,c=xFe(e,a);if(c!==void 0)return At(this,oo).build(this,n).setData(c,{...r,manual:!0})}setQueriesData(t,e,r){return sl.batch(()=>At(this,oo).findAll(t).map(({queryKey:n})=>[n,this.setQueryData(n,e,r)]))}getQueryState(t){var r;const e=this.defaultQueryOptions({queryKey:t});return(r=At(this,oo).get(e.queryHash))==null?void 0:r.state}removeQueries(t){const e=At(this,oo);sl.batch(()=>{e.findAll(t).forEach(r=>{e.remove(r)})})}resetQueries(t,e){const r=At(this,oo);return sl.batch(()=>(r.findAll(t).forEach(n=>{n.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){const r={revert:!0,...e},n=sl.batch(()=>At(this,oo).findAll(t).map(i=>i.cancel(r)));return Promise.all(n).then(Bc).catch(Bc)}invalidateQueries(t,e={}){return sl.batch(()=>(At(this,oo).findAll(t).forEach(r=>{r.invalidate()}),(t==null?void 0:t.refetchType)==="none"?Promise.resolve():this.refetchQueries({...t,type:(t==null?void 0:t.refetchType)??(t==null?void 0:t.type)??"active"},e)))}refetchQueries(t,e={}){const r={...e,cancelRefetch:e.cancelRefetch??!0},n=sl.batch(()=>At(this,oo).findAll(t).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let a=i.fetch(void 0,r);return r.throwOnError||(a=a.catch(Bc)),i.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(n).then(Bc)}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const r=At(this,oo).build(this,e);return r.isStaleByTime(ky(e.staleTime,r))?r.fetch(e):Promise.resolve(r.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(Bc).catch(Bc)}fetchInfiniteQuery(t){return t.behavior=ZJ(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(Bc).catch(Bc)}ensureInfiniteQueryData(t){return t.behavior=ZJ(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return DL.isOnline()?At(this,sy).resumePausedMutations():Promise.resolve()}getQueryCache(){return At(this,oo)}getMutationCache(){return At(this,sy)}getDefaultOptions(){return At(this,ay)}setDefaultOptions(t){pn(this,ay,t)}setQueryDefaults(t,e){At(this,Hw).set(w_(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...At(this,Hw).values()],r={};return e.forEach(n=>{QA(t,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(t,e){At(this,Ww).set(w_(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...At(this,Ww).values()],r={};return e.forEach(n=>{QA(t,n.mutationKey)&&Object.assign(r,n.defaultOptions)}),r}defaultQueryOptions(t){if(t._defaulted)return t;const e={...At(this,ay).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=LG(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===DG&&(e.enabled=!1),e}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...At(this,ay).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){At(this,oo).clear(),At(this,sy).clear()}},oo=new WeakMap,sy=new WeakMap,ay=new WeakMap,Hw=new WeakMap,Ww=new WeakMap,oy=new WeakMap,Kw=new WeakMap,Yw=new WeakMap,Rce),pu,as,uC,Oc,r_,Zw,ly,cy,dC,Xw,Qw,n_,i_,uy,Jw,Ds,$2,FU,BU,zU,$U,UU,VU,qU,Lpe,Lce,RFe=(Lce=class extends hS{constructor(e,r){super();Kn(this,Ds);Kn(this,pu);Kn(this,as);Kn(this,uC);Kn(this,Oc);Kn(this,r_);Kn(this,Zw);Kn(this,ly);Kn(this,cy);Kn(this,dC);Kn(this,Xw);Kn(this,Qw);Kn(this,n_);Kn(this,i_);Kn(this,uy);Kn(this,Jw,new Set);this.options=r,pn(this,pu,e),pn(this,cy,null),pn(this,ly,MU()),this.options.experimental_prefetchInRender||At(this,ly).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(r)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(At(this,as).addObserver(this),XJ(At(this,as),this.options)?Bi(this,Ds,$2).call(this):this.updateResult(),Bi(this,Ds,$U).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return GU(At(this,as),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return GU(At(this,as),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Bi(this,Ds,UU).call(this),Bi(this,Ds,VU).call(this),At(this,as).removeObserver(this)}setOptions(e){const r=this.options,n=At(this,as);if(this.options=At(this,pu).defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Rd(this.options.enabled,At(this,as))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Bi(this,Ds,qU).call(this),At(this,as).setOptions(this.options),r._defaulted&&!LL(this.options,r)&&At(this,pu).getQueryCache().notify({type:"observerOptionsUpdated",query:At(this,as),observer:this});const i=this.hasListeners();i&&QJ(At(this,as),n,this.options,r)&&Bi(this,Ds,$2).call(this),this.updateResult(),i&&(At(this,as)!==n||Rd(this.options.enabled,At(this,as))!==Rd(r.enabled,At(this,as))||ky(this.options.staleTime,At(this,as))!==ky(r.staleTime,At(this,as)))&&Bi(this,Ds,FU).call(this);const a=Bi(this,Ds,BU).call(this);i&&(At(this,as)!==n||Rd(this.options.enabled,At(this,as))!==Rd(r.enabled,At(this,as))||a!==At(this,uy))&&Bi(this,Ds,zU).call(this,a)}getOptimisticResult(e){const r=At(this,pu).getQueryCache().build(At(this,pu),e),n=this.createResult(r,e);return DFe(this,n)&&(pn(this,Oc,n),pn(this,Zw,this.options),pn(this,r_,At(this,as).state)),n}getCurrentResult(){return At(this,Oc)}trackResult(e,r){return new Proxy(e,{get:(n,i)=>(this.trackProp(i),r==null||r(i),Reflect.get(n,i))})}trackProp(e){At(this,Jw).add(e)}getCurrentQuery(){return At(this,as)}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const r=At(this,pu).defaultQueryOptions(e),n=At(this,pu).getQueryCache().build(At(this,pu),r);return n.fetch().then(()=>this.createResult(n,r))}fetch(e){return Bi(this,Ds,$2).call(this,{...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),At(this,Oc)))}createResult(e,r){var se;const n=At(this,as),i=this.options,a=At(this,Oc),c=At(this,r_),s=At(this,Zw),m=e!==n?e.state:At(this,uC),{state:x}=e;let _={...x},T=!1,E;if(r._optimisticResults){const ie=this.hasListeners(),ue=!ie&&XJ(e,r),be=ie&&QJ(e,n,r,i);(ue||be)&&(_={..._,...Ppe(x.data,e.options)}),r._optimisticResults==="isRestoring"&&(_.fetchStatus="idle")}let{error:C,errorUpdatedAt:N,status:L}=_;E=_.data;let M=!1;if(r.placeholderData!==void 0&&E===void 0&&L==="pending"){let ie;a!=null&&a.isPlaceholderData&&r.placeholderData===(s==null?void 0:s.placeholderData)?(ie=a.data,M=!0):ie=typeof r.placeholderData=="function"?r.placeholderData((se=At(this,Qw))==null?void 0:se.state.data,At(this,Qw)):r.placeholderData,ie!==void 0&&(L="success",E=DU(a==null?void 0:a.data,ie,r),T=!0)}if(r.select&&E!==void 0&&!M)if(a&&E===(c==null?void 0:c.data)&&r.select===At(this,dC))E=At(this,Xw);else try{pn(this,dC,r.select),E=r.select(E),E=DU(a==null?void 0:a.data,E,r),pn(this,Xw,E),pn(this,cy,null)}catch(ie){pn(this,cy,ie)}At(this,cy)&&(C=At(this,cy),E=At(this,Xw),N=Date.now(),L="error");const D=_.fetchStatus==="fetching",B=L==="pending",V=L==="error",G=B&&D,W=E!==void 0,Q={status:L,fetchStatus:_.fetchStatus,isPending:B,isSuccess:L==="success",isError:V,isInitialLoading:G,isLoading:G,data:E,dataUpdatedAt:_.dataUpdatedAt,error:C,errorUpdatedAt:N,failureCount:_.fetchFailureCount,failureReason:_.fetchFailureReason,errorUpdateCount:_.errorUpdateCount,isFetched:_.dataUpdateCount>0||_.errorUpdateCount>0,isFetchedAfterMount:_.dataUpdateCount>m.dataUpdateCount||_.errorUpdateCount>m.errorUpdateCount,isFetching:D,isRefetching:D&&!B,isLoadingError:V&&!W,isPaused:_.fetchStatus==="paused",isPlaceholderData:T,isRefetchError:V&&W,isStale:OG(e,r),refetch:this.refetch,promise:At(this,ly),isEnabled:Rd(r.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){const ie=Te=>{Q.status==="error"?Te.reject(Q.error):Q.data!==void 0&&Te.resolve(Q.data)},ue=()=>{const Te=pn(this,ly,Q.promise=MU());ie(Te)},be=At(this,ly);switch(be.status){case"pending":e.queryHash===n.queryHash&&ie(be);break;case"fulfilled":(Q.status==="error"||Q.data!==be.value)&&ue();break;case"rejected":(Q.status!=="error"||Q.error!==be.reason)&&ue();break}}return Q}updateResult(){const e=At(this,Oc),r=this.createResult(At(this,as),this.options);if(pn(this,r_,At(this,as).state),pn(this,Zw,this.options),At(this,r_).data!==void 0&&pn(this,Qw,At(this,as)),LL(r,e))return;pn(this,Oc,r);const n=()=>{if(!e)return!0;const{notifyOnChangeProps:i}=this.options,a=typeof i=="function"?i():i;if(a==="all"||!a&&!At(this,Jw).size)return!0;const c=new Set(a??At(this,Jw));return this.options.throwOnError&&c.add("error"),Object.keys(At(this,Oc)).some(s=>{const f=s;return At(this,Oc)[f]!==e[f]&&c.has(f)})};Bi(this,Ds,Lpe).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Bi(this,Ds,$U).call(this)}},pu=new WeakMap,as=new WeakMap,uC=new WeakMap,Oc=new WeakMap,r_=new WeakMap,Zw=new WeakMap,ly=new WeakMap,cy=new WeakMap,dC=new WeakMap,Xw=new WeakMap,Qw=new WeakMap,n_=new WeakMap,i_=new WeakMap,uy=new WeakMap,Jw=new WeakMap,Ds=new WeakSet,$2=function(e){Bi(this,Ds,qU).call(this);let r=At(this,as).fetch(this.options,e);return e!=null&&e.throwOnError||(r=r.catch(Bc)),r},FU=function(){Bi(this,Ds,UU).call(this);const e=ky(this.options.staleTime,At(this,as));if(b_||At(this,Oc).isStale||!RU(e))return;const n=Spe(At(this,Oc).dataUpdatedAt,e)+1;pn(this,n_,setTimeout(()=>{At(this,Oc).isStale||this.updateResult()},n))},BU=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(At(this,as)):this.options.refetchInterval)??!1},zU=function(e){Bi(this,Ds,VU).call(this),pn(this,uy,e),!(b_||Rd(this.options.enabled,At(this,as))===!1||!RU(At(this,uy))||At(this,uy)===0)&&pn(this,i_,setInterval(()=>{(this.options.refetchIntervalInBackground||MG.isFocused())&&Bi(this,Ds,$2).call(this)},At(this,uy)))},$U=function(){Bi(this,Ds,FU).call(this),Bi(this,Ds,zU).call(this,Bi(this,Ds,BU).call(this))},UU=function(){At(this,n_)&&(clearTimeout(At(this,n_)),pn(this,n_,void 0))},VU=function(){At(this,i_)&&(clearInterval(At(this,i_)),pn(this,i_,void 0))},qU=function(){const e=At(this,pu).getQueryCache().build(At(this,pu),this.options);if(e===At(this,as))return;const r=At(this,as);pn(this,as,e),pn(this,uC,e.state),this.hasListeners()&&(r==null||r.removeObserver(this),e.addObserver(this))},Lpe=function(e){sl.batch(()=>{e.listeners&&this.listeners.forEach(r=>{r(At(this,Oc))}),At(this,pu).getQueryCache().notify({query:At(this,as),type:"observerResultsUpdated"})})},Lce);function LFe(t,e){return Rd(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function XJ(t,e){return LFe(t,e)||t.state.data!==void 0&&GU(t,e,e.refetchOnMount)}function GU(t,e,r){if(Rd(e.enabled,t)!==!1&&ky(e.staleTime,t)!=="static"){const n=typeof r=="function"?r(t):r;return n==="always"||n!==!1&&OG(t,e)}return!1}function QJ(t,e,r,n){return(t!==e||Rd(n.enabled,t)===!1)&&(!r.suspense||t.state.status!=="error")&&OG(t,r)}function OG(t,e){return Rd(e.enabled,t)!==!1&&t.isStaleByTime(ky(e.staleTime,t))}function DFe(t,e){return!LL(t.getCurrentResult(),e)}var dy,hy,mu,lm,Sm,bR,HU,Dce,MFe=(Dce=class extends hS{constructor(r,n){super();Kn(this,Sm);Kn(this,dy);Kn(this,hy);Kn(this,mu);Kn(this,lm);pn(this,dy,r),this.setOptions(n),this.bindMethods(),Bi(this,Sm,bR).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(r){var i;const n=this.options;this.options=At(this,dy).defaultMutationOptions(r),LL(this.options,n)||At(this,dy).getMutationCache().notify({type:"observerOptionsUpdated",mutation:At(this,mu),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&w_(n.mutationKey)!==w_(this.options.mutationKey)?this.reset():((i=At(this,mu))==null?void 0:i.state.status)==="pending"&&At(this,mu).setOptions(this.options)}onUnsubscribe(){var r;this.hasListeners()||(r=At(this,mu))==null||r.removeObserver(this)}onMutationUpdate(r){Bi(this,Sm,bR).call(this),Bi(this,Sm,HU).call(this,r)}getCurrentResult(){return At(this,hy)}reset(){var r;(r=At(this,mu))==null||r.removeObserver(this),pn(this,mu,void 0),Bi(this,Sm,bR).call(this),Bi(this,Sm,HU).call(this)}mutate(r,n){var i;return pn(this,lm,n),(i=At(this,mu))==null||i.removeObserver(this),pn(this,mu,At(this,dy).getMutationCache().build(At(this,dy),this.options)),At(this,mu).addObserver(this),At(this,mu).execute(r)}},dy=new WeakMap,hy=new WeakMap,mu=new WeakMap,lm=new WeakMap,Sm=new WeakSet,bR=function(){var n;const r=((n=At(this,mu))==null?void 0:n.state)??Npe();pn(this,hy,{...r,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",isIdle:r.status==="idle",mutate:this.mutate,reset:this.reset})},HU=function(r){sl.batch(()=>{var n,i,a,c,s,f,m,x;if(At(this,lm)&&this.hasListeners()){const _=At(this,hy).variables,T=At(this,hy).context;(r==null?void 0:r.type)==="success"?((i=(n=At(this,lm)).onSuccess)==null||i.call(n,r.data,_,T),(c=(a=At(this,lm)).onSettled)==null||c.call(a,r.data,null,_,T)):(r==null?void 0:r.type)==="error"&&((f=(s=At(this,lm)).onError)==null||f.call(s,r.error,_,T),(x=(m=At(this,lm)).onSettled)==null||x.call(m,void 0,r.error,_,T))}this.listeners.forEach(_=>{_(At(this,hy))})})},Dce),Dpe=P.createContext(void 0),Ir=t=>{const e=P.useContext(Dpe);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},OFe=({client:t,children:e})=>(P.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),o.jsx(Dpe.Provider,{value:t,children:e})),Mpe=P.createContext(!1),FFe=()=>P.useContext(Mpe);Mpe.Provider;function BFe(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var zFe=P.createContext(BFe()),$Fe=()=>P.useContext(zFe),UFe=(t,e)=>{(t.suspense||t.throwOnError||t.experimental_prefetchInRender)&&(e.isReset()||(t.retryOnMount=!1))},VFe=t=>{P.useEffect(()=>{t.clearReset()},[t])},qFe=({result:t,errorResetBoundary:e,throwOnError:r,query:n,suspense:i})=>t.isError&&!e.isReset()&&!t.isFetching&&n&&(i&&t.data===void 0||Ape(r,[t.error,n])),GFe=t=>{if(t.suspense){const e=n=>n==="static"?n:Math.max(n??1e3,1e3),r=t.staleTime;t.staleTime=typeof r=="function"?(...n)=>e(r(...n)):e(r),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},HFe=(t,e)=>t.isLoading&&t.isFetching&&!e,WFe=(t,e)=>(t==null?void 0:t.suspense)&&e.isPending,JJ=(t,e,r)=>e.fetchOptimistic(t).catch(()=>{r.clearReset()});function KFe(t,e,r){var _,T,E,C,N;const n=FFe(),i=$Fe(),a=Ir(),c=a.defaultQueryOptions(t);(T=(_=a.getDefaultOptions().queries)==null?void 0:_._experimental_beforeQuery)==null||T.call(_,c),c._optimisticResults=n?"isRestoring":"optimistic",GFe(c),UFe(c,i),VFe(i);const s=!a.getQueryCache().get(c.queryHash),[f]=P.useState(()=>new e(a,c)),m=f.getOptimisticResult(c),x=!n&&t.subscribed!==!1;if(P.useSyncExternalStore(P.useCallback(L=>{const M=x?f.subscribe(sl.batchCalls(L)):Bc;return f.updateResult(),M},[f,x]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),P.useEffect(()=>{f.setOptions(c)},[c,f]),WFe(c,m))throw JJ(c,f,i);if(qFe({result:m,errorResetBoundary:i,throwOnError:c.throwOnError,query:a.getQueryCache().get(c.queryHash),suspense:c.suspense}))throw m.error;if((C=(E=a.getDefaultOptions().queries)==null?void 0:E._experimental_afterQuery)==null||C.call(E,c,m),c.experimental_prefetchInRender&&!b_&&HFe(m,n)){const L=s?JJ(c,f,i):(N=a.getQueryCache().get(c.queryHash))==null?void 0:N.promise;L==null||L.catch(Bc).finally(()=>{f.updateResult()})}return c.notifyOnChangeProps?m:f.trackResult(m)}function br(t,e){return KFe(t,RFe)}function kr(t,e){const r=Ir(),[n]=P.useState(()=>new MFe(r,t));P.useEffect(()=>{n.setOptions(t)},[n,t]);const i=P.useSyncExternalStore(P.useCallback(c=>n.subscribe(sl.batchCalls(c)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),a=P.useCallback((c,s)=>{n.mutate(c,s).catch(Bc)},[n]);if(i.error&&Ape(n.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}/** * @remix-run/router v1.23.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function JA(){return JA=Object.assign?Object.assign.bind():function(t){for(var e=1;e"u")throw new Error(e)}function Ope(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function ZFe(){return Math.random().toString(36).substr(2,8)}function tee(t,e){return{usr:t.state,key:t.key,idx:e}}function WU(t,e,r,n){return r===void 0&&(r=null),JA({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?fS(e):e,{state:r,key:e&&e.key||n||ZFe()})}function ML(t){let{pathname:e="/",search:r="",hash:n=""}=t;return r&&r!=="?"&&(e+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function fS(t){let e={};if(t){let r=t.indexOf("#");r>=0&&(e.hash=t.substr(r),t=t.substr(0,r));let n=t.indexOf("?");n>=0&&(e.search=t.substr(n),t=t.substr(0,n)),t&&(e.pathname=t)}return e}function XFe(t,e,r,n){n===void 0&&(n={});let{window:i=document.defaultView,v5Compat:a=!1}=n,c=i.history,s=my.Pop,f=null,m=x();m==null&&(m=0,c.replaceState(JA({},c.state,{idx:m}),""));function x(){return(c.state||{idx:null}).idx}function _(){s=my.Pop;let L=x(),M=L==null?null:L-m;m=L,f&&f({action:s,location:N.location,delta:M})}function T(L,M){s=my.Push;let D=WU(N.location,L,M);m=x()+1;let B=tee(D,m),V=N.createHref(D);try{c.pushState(B,"",V)}catch(G){if(G instanceof DOMException&&G.name==="DataCloneError")throw G;i.location.assign(V)}a&&f&&f({action:s,location:N.location,delta:1})}function E(L,M){s=my.Replace;let D=WU(N.location,L,M);m=x();let B=tee(D,m),V=N.createHref(D);c.replaceState(B,"",V),a&&f&&f({action:s,location:N.location,delta:0})}function C(L){let M=i.location.origin!=="null"?i.location.origin:i.location.href,D=typeof L=="string"?L:ML(L);return D=D.replace(/ $/,"%20"),eo(M,"No window.location.(origin|href) available to create URL for href: "+D),new URL(D,M)}let N={get action(){return s},get location(){return t(i,c)},listen(L){if(f)throw new Error("A history only accepts one active listener");return i.addEventListener(eee,_),f=L,()=>{i.removeEventListener(eee,_),f=null}},createHref(L){return e(i,L)},createURL:C,encodeLocation(L){let M=C(L);return{pathname:M.pathname,search:M.search,hash:M.hash}},push:T,replace:E,go(L){return c.go(L)}};return N}var ree;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(ree||(ree={}));function QFe(t,e,r){return r===void 0&&(r="/"),JFe(t,e,r,!1)}function JFe(t,e,r,n){let i=typeof e=="string"?fS(e):e,a=f1(i.pathname||"/",r);if(a==null)return null;let c=Fpe(t);e3e(c);let s=null;for(let f=0;s==null&&f{let f={relativePath:s===void 0?a.path||"":s,caseSensitive:a.caseSensitive===!0,childrenIndex:c,route:a};f.relativePath.startsWith("/")&&(eo(f.relativePath.startsWith(n),'Absolute route path "'+f.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),f.relativePath=f.relativePath.slice(n.length));let m=Cy([n,f.relativePath]),x=r.concat(f);a.children&&a.children.length>0&&(eo(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+m+'".')),Fpe(a.children,e,x,m)),!(a.path==null&&!a.index)&&e.push({path:m,score:o3e(m,a.index),routesMeta:x})};return t.forEach((a,c)=>{var s;if(a.path===""||!((s=a.path)!=null&&s.includes("?")))i(a,c);else for(let f of Bpe(a.path))i(a,c,f)}),e}function Bpe(t){let e=t.split("/");if(e.length===0)return[];let[r,...n]=e,i=r.endsWith("?"),a=r.replace(/\?$/,"");if(n.length===0)return i?[a,""]:[a];let c=Bpe(n.join("/")),s=[];return s.push(...c.map(f=>f===""?a:[a,f].join("/"))),i&&s.push(...c),s.map(f=>t.startsWith("/")&&f===""?"/":f)}function e3e(t){t.sort((e,r)=>e.score!==r.score?r.score-e.score:l3e(e.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const t3e=/^:[\w-]+$/,r3e=3,n3e=2,i3e=1,s3e=10,a3e=-2,nee=t=>t==="*";function o3e(t,e){let r=t.split("/"),n=r.length;return r.some(nee)&&(n+=a3e),e&&(n+=n3e),r.filter(i=>!nee(i)).reduce((i,a)=>i+(t3e.test(a)?r3e:a===""?i3e:s3e),n)}function l3e(t,e){return t.length===e.length&&t.slice(0,-1).every((n,i)=>n===e[i])?t[t.length-1]-e[e.length-1]:0}function c3e(t,e,r){let{routesMeta:n}=t,i={},a="/",c=[];for(let s=0;s{let{paramName:T,isOptional:E}=x;if(T==="*"){let N=s[_]||"";c=a.slice(0,a.length-N.length).replace(/(.)\/+$/,"$1")}const C=s[_];return E&&!C?m[T]=void 0:m[T]=(C||"").replace(/%2F/g,"/"),m},{}),pathname:a,pathnameBase:c,pattern:t}}function u3e(t,e,r){e===void 0&&(e=!1),r===void 0&&(r=!0),Ope(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let n=[],i="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,s,f)=>(n.push({paramName:s,isOptional:f!=null}),f?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(n.push({paramName:"*"}),i+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":t!==""&&t!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,e?void 0:"i"),n]}function d3e(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Ope(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function f1(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let r=e.endsWith("/")?e.length-1:e.length,n=t.charAt(r);return n&&n!=="/"?null:t.slice(r)||"/"}function h3e(t,e){e===void 0&&(e="/");let{pathname:r,search:n="",hash:i=""}=typeof t=="string"?fS(t):t;return{pathname:r?r.startsWith("/")?r:f3e(r,e):e,search:g3e(n),hash:y3e(i)}}function f3e(t,e){let r=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function dB(t,e,r,n){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function p3e(t){return t.filter((e,r)=>r===0||e.route.path&&e.route.path.length>0)}function FG(t,e){let r=p3e(t);return e?r.map((n,i)=>i===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function BG(t,e,r,n){n===void 0&&(n=!1);let i;typeof t=="string"?i=fS(t):(i=JA({},t),eo(!i.pathname||!i.pathname.includes("?"),dB("?","pathname","search",i)),eo(!i.pathname||!i.pathname.includes("#"),dB("#","pathname","hash",i)),eo(!i.search||!i.search.includes("#"),dB("#","search","hash",i)));let a=t===""||i.pathname==="",c=a?"/":i.pathname,s;if(c==null)s=r;else{let _=e.length-1;if(!n&&c.startsWith("..")){let T=c.split("/");for(;T[0]==="..";)T.shift(),_-=1;i.pathname=T.join("/")}s=_>=0?e[_]:"/"}let f=h3e(i,s),m=c&&c!=="/"&&c.endsWith("/"),x=(a||c===".")&&r.endsWith("/");return!f.pathname.endsWith("/")&&(m||x)&&(f.pathname+="/"),f}const Cy=t=>t.join("/").replace(/\/\/+/g,"/"),m3e=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),g3e=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,y3e=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function x3e(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const zpe=["post","put","patch","delete"];new Set(zpe);const _3e=["get",...zpe];new Set(_3e);/** * React Router v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function ek(){return ek=Object.assign?Object.assign.bind():function(t){for(var e=1;e{s.current=!0}),P.useCallback(function(m,x){if(x===void 0&&(x={}),!s.current)return;if(typeof m=="number"){n.go(m);return}let _=BG(m,JSON.parse(c),a,x.relative==="path");t==null&&e!=="/"&&(_.pathname=_.pathname==="/"?e:Cy([e,_.pathname])),(x.replace?n.replace:n.push)(_,x.state,x)},[e,n,c,a,t])}const w3e=P.createContext(null);function S3e(t){let e=P.useContext(dp).outlet;return e&&P.createElement(w3e.Provider,{value:t},e)}function hp(){let{matches:t}=P.useContext(dp),e=t[t.length-1];return e?e.params:{}}function uO(t,e){let{relative:r}=e===void 0?{}:e,{future:n}=P.useContext($m),{matches:i}=P.useContext(dp),{pathname:a}=Ji(),c=JSON.stringify(FG(i,n.v7_relativeSplatPath));return P.useMemo(()=>BG(t,JSON.parse(c),a,r==="path"),[t,c,a,r])}function T3e(t,e){return E3e(t,e)}function E3e(t,e,r,n){pS()||eo(!1);let{navigator:i}=P.useContext($m),{matches:a}=P.useContext(dp),c=a[a.length-1],s=c?c.params:{};c&&c.pathname;let f=c?c.pathnameBase:"/";c&&c.route;let m=Ji(),x;if(e){var _;let L=typeof e=="string"?fS(e):e;f==="/"||(_=L.pathname)!=null&&_.startsWith(f)||eo(!1),x=L}else x=m;let T=x.pathname||"/",E=T;if(f!=="/"){let L=f.replace(/^\//,"").split("/");E="/"+T.replace(/^\//,"").split("/").slice(L.length).join("/")}let C=QFe(t,{pathname:E}),N=j3e(C&&C.map(L=>Object.assign({},L,{params:Object.assign({},s,L.params),pathname:Cy([f,i.encodeLocation?i.encodeLocation(L.pathname).pathname:L.pathname]),pathnameBase:L.pathnameBase==="/"?f:Cy([f,i.encodeLocation?i.encodeLocation(L.pathnameBase).pathname:L.pathnameBase])})),a,r,n);return e&&N?P.createElement(cO.Provider,{value:{location:ek({pathname:"/",search:"",hash:"",state:null,key:"default"},x),navigationType:my.Pop}},N):N}function A3e(){let t=L3e(),e=x3e(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),r=t instanceof Error?t.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return P.createElement(P.Fragment,null,P.createElement("h2",null,"Unexpected Application Error!"),P.createElement("h3",{style:{fontStyle:"italic"}},e),r?P.createElement("pre",{style:i},r):null,null)}const k3e=P.createElement(A3e,null);class C3e extends P.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,r){return r.location!==e.location||r.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:r.error,location:r.location,revalidation:e.revalidation||r.revalidation}}componentDidCatch(e,r){console.error("React Router caught the following error during render",e,r)}render(){return this.state.error!==void 0?P.createElement(dp.Provider,{value:this.props.routeContext},P.createElement(Upe.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function I3e(t){let{routeContext:e,match:r,children:n}=t,i=P.useContext(lO);return i&&i.static&&i.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=r.route.id),P.createElement(dp.Provider,{value:e},n)}function j3e(t,e,r,n){var i;if(e===void 0&&(e=[]),r===void 0&&(r=null),n===void 0&&(n=null),t==null){var a;if(!r)return null;if(r.errors)t=r.matches;else if((a=n)!=null&&a.v7_partialHydration&&e.length===0&&!r.initialized&&r.matches.length>0)t=r.matches;else return null}let c=t,s=(i=r)==null?void 0:i.errors;if(s!=null){let x=c.findIndex(_=>_.route.id&&(s==null?void 0:s[_.route.id])!==void 0);x>=0||eo(!1),c=c.slice(0,Math.min(c.length,x+1))}let f=!1,m=-1;if(r&&n&&n.v7_partialHydration)for(let x=0;x=0?c=c.slice(0,m+1):c=[c[0]];break}}}return c.reduceRight((x,_,T)=>{let E,C=!1,N=null,L=null;r&&(E=s&&_.route.id?s[_.route.id]:void 0,N=_.route.errorElement||k3e,f&&(m<0&&T===0?(C=!0,L=null):m===T&&(C=!0,L=_.route.hydrateFallbackElement||null)));let M=e.concat(c.slice(0,T+1)),D=()=>{let B;return E?B=N:C?B=L:_.route.Component?B=P.createElement(_.route.Component,null):_.route.element?B=_.route.element:B=x,P.createElement(I3e,{match:_,routeContext:{outlet:x,matches:M,isDataRoute:r!=null},children:B})};return r&&(_.route.ErrorBoundary||_.route.errorElement||T===0)?P.createElement(C3e,{location:r.location,revalidation:r.revalidation,component:N,error:E,children:D(),routeContext:{outlet:null,matches:M,isDataRoute:!0}}):D()},null)}var qpe=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(qpe||{}),FL=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(FL||{});function P3e(t){let e=P.useContext(lO);return e||eo(!1),e}function N3e(t){let e=P.useContext($pe);return e||eo(!1),e}function R3e(t){let e=P.useContext(dp);return e||eo(!1),e}function Gpe(t){let e=R3e(),r=e.matches[e.matches.length-1];return r.route.id||eo(!1),r.route.id}function L3e(){var t;let e=P.useContext(Upe),r=N3e(FL.UseRouteError),n=Gpe(FL.UseRouteError);return e!==void 0?e:(t=r.errors)==null?void 0:t[n]}function D3e(){let{router:t}=P3e(qpe.UseNavigateStable),e=Gpe(FL.UseNavigateStable),r=P.useRef(!1);return Vpe(()=>{r.current=!0}),P.useCallback(function(i,a){a===void 0&&(a={}),r.current&&(typeof i=="number"?t.navigate(i):t.navigate(i,ek({fromRouteId:e},a)))},[t,e])}function M3e(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function Li(t){let{to:e,replace:r,state:n,relative:i}=t;pS()||eo(!1);let{future:a,static:c}=P.useContext($m),{matches:s}=P.useContext(dp),{pathname:f}=Ji(),m=$a(),x=BG(e,FG(s,a.v7_relativeSplatPath),f,i==="path"),_=JSON.stringify(x);return P.useEffect(()=>m(JSON.parse(_),{replace:r,state:n,relative:i}),[m,_,i,r,n]),null}function g$t(t){return S3e(t.context)}function Re(t){eo(!1)}function O3e(t){let{basename:e="/",children:r=null,location:n,navigationType:i=my.Pop,navigator:a,static:c=!1,future:s}=t;pS()&&eo(!1);let f=e.replace(/^\/*/,"/"),m=P.useMemo(()=>({basename:f,navigator:a,static:c,future:ek({v7_relativeSplatPath:!1},s)}),[f,s,a,c]);typeof n=="string"&&(n=fS(n));let{pathname:x="/",search:_="",hash:T="",state:E=null,key:C="default"}=n,N=P.useMemo(()=>{let L=f1(x,f);return L==null?null:{location:{pathname:L,search:_,hash:T,state:E,key:C},navigationType:i}},[f,x,_,T,E,C,i]);return N==null?null:P.createElement($m.Provider,{value:m},P.createElement(cO.Provider,{children:r,value:N}))}function tk(t){let{children:e,location:r}=t;return T3e(KU(e),r)}new Promise(()=>{});function KU(t,e){e===void 0&&(e=[]);let r=[];return P.Children.forEach(t,(n,i)=>{if(!P.isValidElement(n))return;let a=[...e,i];if(n.type===P.Fragment){r.push.apply(r,KU(n.props.children,a));return}n.type!==Re&&eo(!1),!n.props.index||!n.props.children||eo(!1);let c={id:n.props.id||a.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(c.children=KU(n.props.children,a)),r.push(c)}),r}/** * React Router DOM v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function BL(){return BL=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&(r[i]=t[i]);return r}function F3e(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function B3e(t,e){return t.button===0&&(!e||e==="_self")&&!F3e(t)}function YU(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,r)=>{let n=t[r];return e.concat(Array.isArray(n)?n.map(i=>[r,i]):[[r,n]])},[]))}function z3e(t,e){let r=YU(t);return e&&e.forEach((n,i)=>{r.has(i)||e.getAll(i).forEach(a=>{r.append(i,a)})}),r}const $3e=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],U3e=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],V3e="6";try{window.__reactRouterVersion=V3e}catch{}const q3e=P.createContext({isTransitioning:!1}),G3e="startTransition",iee=cq[G3e];function H3e(t){let{basename:e,children:r,future:n,window:i}=t,a=P.useRef();a.current==null&&(a.current=YFe({window:i,v5Compat:!0}));let c=a.current,[s,f]=P.useState({action:c.action,location:c.location}),{v7_startTransition:m}=n||{},x=P.useCallback(_=>{m&&iee?iee(()=>f(_)):f(_)},[f,m]);return P.useLayoutEffect(()=>c.listen(x),[c,x]),P.useEffect(()=>M3e(n),[n]),P.createElement(O3e,{basename:e,children:r,location:s.location,navigationType:s.action,navigator:c,future:n})}const W3e=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",K3e=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,zi=P.forwardRef(function(e,r){let{onClick:n,relative:i,reloadDocument:a,replace:c,state:s,target:f,to:m,preventScrollReset:x,viewTransition:_}=e,T=Hpe(e,$3e),{basename:E}=P.useContext($m),C,N=!1;if(typeof m=="string"&&K3e.test(m)&&(C=m,W3e))try{let B=new URL(window.location.href),V=m.startsWith("//")?new URL(B.protocol+m):new URL(m),G=f1(V.pathname,E);V.origin===B.origin&&G!=null?m=G+V.search+V.hash:N=!0}catch{}let L=v3e(m,{relative:i}),M=Z3e(m,{replace:c,state:s,target:f,preventScrollReset:x,relative:i,viewTransition:_});function D(B){n&&n(B),B.defaultPrevented||M(B)}return P.createElement("a",BL({},T,{href:C||L,onClick:N||a?n:D,ref:r,target:f}))}),y$t=P.forwardRef(function(e,r){let{"aria-current":n="page",caseSensitive:i=!1,className:a="",end:c=!1,style:s,to:f,viewTransition:m,children:x}=e,_=Hpe(e,U3e),T=uO(f,{relative:_.relative}),E=Ji(),C=P.useContext($pe),{navigator:N,basename:L}=P.useContext($m),M=C!=null&&X3e(T)&&m===!0,D=N.encodeLocation?N.encodeLocation(T).pathname:T.pathname,B=E.pathname,V=C&&C.navigation&&C.navigation.location?C.navigation.location.pathname:null;i||(B=B.toLowerCase(),V=V?V.toLowerCase():null,D=D.toLowerCase()),V&&L&&(V=f1(V,L)||V);const G=D!=="/"&&D.endsWith("/")?D.length-1:D.length;let W=B===D||!c&&B.startsWith(D)&&B.charAt(G)==="/",Z=V!=null&&(V===D||!c&&V.startsWith(D)&&V.charAt(D.length)==="/"),Q={isActive:W,isPending:Z,isTransitioning:M},se=W?n:void 0,ie;typeof a=="function"?ie=a(Q):ie=[a,W?"active":null,Z?"pending":null,M?"transitioning":null].filter(Boolean).join(" ");let ue=typeof s=="function"?s(Q):s;return P.createElement(zi,BL({},_,{"aria-current":se,className:ie,ref:r,style:ue,to:f,viewTransition:m}),typeof x=="function"?x(Q):x)});var ZU;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(ZU||(ZU={}));var see;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(see||(see={}));function Y3e(t){let e=P.useContext(lO);return e||eo(!1),e}function Z3e(t,e){let{target:r,replace:n,state:i,preventScrollReset:a,relative:c,viewTransition:s}=e===void 0?{}:e,f=$a(),m=Ji(),x=uO(t,{relative:c});return P.useCallback(_=>{if(B3e(_,r)){_.preventDefault();let T=n!==void 0?n:ML(m)===ML(x);f(t,{replace:T,state:i,preventScrollReset:a,relative:c,viewTransition:s})}},[m,f,x,n,i,r,t,a,c,s])}function mS(t){let e=P.useRef(YU(t)),r=P.useRef(!1),n=Ji(),i=P.useMemo(()=>z3e(n.search,r.current?null:e.current),[n.search]),a=$a(),c=P.useCallback((s,f)=>{const m=YU(typeof s=="function"?s(i):s);r.current=!0,a("?"+m,f)},[a,i]);return[i,c]}function X3e(t,e){e===void 0&&(e={});let r=P.useContext(q3e);r==null&&eo(!1);let{basename:n}=Y3e(ZU.useViewTransitionState),i=uO(t,{relative:e.relative});if(!r.isTransitioning)return!1;let a=f1(r.currentLocation.pathname,n)||r.currentLocation.pathname,c=f1(r.nextLocation.pathname,n)||r.nextLocation.pathname;return OL(i.pathname,c)!=null||OL(i.pathname,a)!=null}var Q3e=typeof Element<"u",J3e=typeof Map=="function",e5e=typeof Set=="function",t5e=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function wR(t,e){if(t===e)return!0;if(t&&e&&typeof t=="object"&&typeof e=="object"){if(t.constructor!==e.constructor)return!1;var r,n,i;if(Array.isArray(t)){if(r=t.length,r!=e.length)return!1;for(n=r;n--!==0;)if(!wR(t[n],e[n]))return!1;return!0}var a;if(J3e&&t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(a=t.entries();!(n=a.next()).done;)if(!e.has(n.value[0]))return!1;for(a=t.entries();!(n=a.next()).done;)if(!wR(n.value[1],e.get(n.value[0])))return!1;return!0}if(e5e&&t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(a=t.entries();!(n=a.next()).done;)if(!e.has(n.value[0]))return!1;return!0}if(t5e&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(r=t.length,r!=e.length)return!1;for(n=r;n--!==0;)if(t[n]!==e[n])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf&&typeof t.valueOf=="function"&&typeof e.valueOf=="function")return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString&&typeof t.toString=="function"&&typeof e.toString=="function")return t.toString()===e.toString();if(i=Object.keys(t),r=i.length,r!==Object.keys(e).length)return!1;for(n=r;n--!==0;)if(!Object.prototype.hasOwnProperty.call(e,i[n]))return!1;if(Q3e&&t instanceof Element)return!1;for(n=r;n--!==0;)if(!((i[n]==="_owner"||i[n]==="__v"||i[n]==="__o")&&t.$$typeof)&&!wR(t[i[n]],e[i[n]]))return!1;return!0}return t!==t&&e!==e}var r5e=function(e,r){try{return wR(e,r)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}};const n5e=fs(r5e);var i5e=function(t,e,r,n,i,a,c,s){if(!t){var f;if(e===void 0)f=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var m=[r,n,i,a,c,s],x=0;f=new Error(e.replace(/%s/g,function(){return m[x++]})),f.name="Invariant Violation"}throw f.framesToPop=1,f}},s5e=i5e;const aee=fs(s5e);var a5e=function(e,r,n,i){var a=n?n.call(i,e,r):void 0;if(a!==void 0)return!!a;if(e===r)return!0;if(typeof e!="object"||!e||typeof r!="object"||!r)return!1;var c=Object.keys(e),s=Object.keys(r);if(c.length!==s.length)return!1;for(var f=Object.prototype.hasOwnProperty.bind(r),m=0;m(t.BASE="base",t.BODY="body",t.HEAD="head",t.HTML="html",t.LINK="link",t.META="meta",t.NOSCRIPT="noscript",t.SCRIPT="script",t.STYLE="style",t.TITLE="title",t.FRAGMENT="Symbol(react.fragment)",t))(Wpe||{}),hB={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},oee=Object.values(Wpe),zG={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},l5e=Object.entries(zG).reduce((t,[e,r])=>(t[r]=e,t),{}),qh="data-rh",jw={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},Pw=(t,e)=>{for(let r=t.length-1;r>=0;r-=1){const n=t[r];if(Object.prototype.hasOwnProperty.call(n,e))return n[e]}return null},c5e=t=>{let e=Pw(t,"title");const r=Pw(t,jw.TITLE_TEMPLATE);if(Array.isArray(e)&&(e=e.join("")),r&&e)return r.replace(/%s/g,()=>e);const n=Pw(t,jw.DEFAULT_TITLE);return e||n||void 0},u5e=t=>Pw(t,jw.ON_CHANGE_CLIENT_STATE)||(()=>{}),fB=(t,e)=>e.filter(r=>typeof r[t]<"u").map(r=>r[t]).reduce((r,n)=>({...r,...n}),{}),d5e=(t,e)=>e.filter(r=>typeof r.base<"u").map(r=>r.base).reverse().reduce((r,n)=>{if(!r.length){const i=Object.keys(n);for(let a=0;aconsole&&typeof console.warn=="function"&&console.warn(t),c2=(t,e,r)=>{const n={};return r.filter(i=>Array.isArray(i[t])?!0:(typeof i[t]<"u"&&h5e(`Helmet: ${t} should be of type "Array". Instead found type "${typeof i[t]}"`),!1)).map(i=>i[t]).reverse().reduce((i,a)=>{const c={};a.filter(f=>{let m;const x=Object.keys(f);for(let T=0;Ti.push(f));const s=Object.keys(c);for(let f=0;f{if(Array.isArray(t)&&t.length){for(let r=0;r({baseTag:d5e(["href"],t),bodyAttributes:fB("bodyAttributes",t),defer:Pw(t,jw.DEFER),encode:Pw(t,jw.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:fB("htmlAttributes",t),linkTags:c2("link",["rel","href"],t),metaTags:c2("meta",["name","charset","http-equiv","property","itemprop"],t),noscriptTags:c2("noscript",["innerHTML"],t),onChangeClientState:u5e(t),scriptTags:c2("script",["src","innerHTML"],t),styleTags:c2("style",["cssText"],t),title:c5e(t),titleAttributes:fB("titleAttributes",t),prioritizeSeoTags:f5e(t,jw.PRIORITIZE_SEO_TAGS)}),Kpe=t=>Array.isArray(t)?t.join(""):t,m5e=(t,e)=>{const r=Object.keys(t);for(let n=0;nArray.isArray(t)?t.reduce((r,n)=>(m5e(n,e)?r.priority.push(n):r.default.push(n),r),{priority:[],default:[]}):{default:t,priority:[]},lee=(t,e)=>({...t,[e]:void 0}),g5e=["noscript","script","style"],XU=(t,e=!0)=>e===!1?String(t):String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ype=t=>Object.keys(t).reduce((e,r)=>{const n=typeof t[r]<"u"?`${r}="${t[r]}"`:`${r}`;return e?`${e} ${n}`:n},""),y5e=(t,e,r,n)=>{const i=Ype(r),a=Kpe(e);return i?`<${t} ${qh}="true" ${i}>${XU(a,n)}`:`<${t} ${qh}="true">${XU(a,n)}`},x5e=(t,e,r=!0)=>e.reduce((n,i)=>{const a=i,c=Object.keys(a).filter(m=>!(m==="innerHTML"||m==="cssText")).reduce((m,x)=>{const _=typeof a[x]>"u"?x:`${x}="${XU(a[x],r)}"`;return m?`${m} ${_}`:_},""),s=a.innerHTML||a.cssText||"",f=g5e.indexOf(t)===-1;return`${n}<${t} ${qh}="true" ${c}${f?"/>":`>${s}`}`},""),Zpe=(t,e={})=>Object.keys(t).reduce((r,n)=>{const i=zG[n];return r[i||n]=t[n],r},e),_5e=(t,e,r)=>{const n={key:e,[qh]:!0},i=Zpe(r,n);return[Xe.createElement("title",i,e)]},SR=(t,e)=>e.map((r,n)=>{const i={key:n,[qh]:!0};return Object.keys(r).forEach(a=>{const s=zG[a]||a;if(s==="innerHTML"||s==="cssText"){const f=r.innerHTML||r.cssText;i.dangerouslySetInnerHTML={__html:f}}else i[s]=r[a]}),Xe.createElement(t,i)}),Pd=(t,e,r=!0)=>{switch(t){case"title":return{toComponent:()=>_5e(t,e.title,e.titleAttributes),toString:()=>y5e(t,e.title,e.titleAttributes,r)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Zpe(e),toString:()=>Ype(e)};default:return{toComponent:()=>SR(t,e),toString:()=>x5e(t,e,r)}}},v5e=({metaTags:t,linkTags:e,scriptTags:r,encode:n})=>{const i=pB(t,hB.meta),a=pB(e,hB.link),c=pB(r,hB.script);return{priorityMethods:{toComponent:()=>[...SR("meta",i.priority),...SR("link",a.priority),...SR("script",c.priority)],toString:()=>`${Pd("meta",i.priority,n)} ${Pd("link",a.priority,n)} ${Pd("script",c.priority,n)}`},metaTags:i.default,linkTags:a.default,scriptTags:c.default}},b5e=t=>{const{baseTag:e,bodyAttributes:r,encode:n=!0,htmlAttributes:i,noscriptTags:a,styleTags:c,title:s="",titleAttributes:f,prioritizeSeoTags:m}=t;let{linkTags:x,metaTags:_,scriptTags:T}=t,E={toComponent:()=>{},toString:()=>""};return m&&({priorityMethods:E,linkTags:x,metaTags:_,scriptTags:T}=v5e(t)),{priority:E,base:Pd("base",e,n),bodyAttributes:Pd("bodyAttributes",r,n),htmlAttributes:Pd("htmlAttributes",i,n),link:Pd("link",x,n),meta:Pd("meta",_,n),noscript:Pd("noscript",a,n),script:Pd("script",T,n),style:Pd("style",c,n),title:Pd("title",{title:s,titleAttributes:f},n)}},QU=b5e,rN=[],Xpe=!!(typeof window<"u"&&window.document&&window.document.createElement),JU=class{constructor(t,e){cn(this,"instances",[]);cn(this,"canUseDOM",Xpe);cn(this,"context");cn(this,"value",{setHelmet:t=>{this.context.helmet=t},helmetInstances:{get:()=>this.canUseDOM?rN:this.instances,add:t=>{(this.canUseDOM?rN:this.instances).push(t)},remove:t=>{const e=(this.canUseDOM?rN:this.instances).indexOf(t);(this.canUseDOM?rN:this.instances).splice(e,1)}}});this.context=t,this.canUseDOM=e||!1,e||(t.helmet=QU({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},w5e={},Qpe=Xe.createContext(w5e),s_,Jpe=(s_=class extends P.Component{constructor(r){super(r);cn(this,"helmetData");this.helmetData=new JU(this.props.context||{},s_.canUseDOM)}render(){return Xe.createElement(Qpe.Provider,{value:this.helmetData.value},this.props.children)}},cn(s_,"canUseDOM",Xpe),s_),Cb=(t,e)=>{const r=document.head||document.querySelector("head"),n=r.querySelectorAll(`${t}[${qh}]`),i=[].slice.call(n),a=[];let c;return e&&e.length&&e.forEach(s=>{const f=document.createElement(t);for(const m in s)if(Object.prototype.hasOwnProperty.call(s,m))if(m==="innerHTML")f.innerHTML=s.innerHTML;else if(m==="cssText")f.styleSheet?f.styleSheet.cssText=s.cssText:f.appendChild(document.createTextNode(s.cssText));else{const x=m,_=typeof s[x]>"u"?"":s[x];f.setAttribute(m,_)}f.setAttribute(qh,"true"),i.some((m,x)=>(c=x,f.isEqualNode(m)))?i.splice(c,1):a.push(f)}),i.forEach(s=>{var f;return(f=s.parentNode)==null?void 0:f.removeChild(s)}),a.forEach(s=>r.appendChild(s)),{oldTags:i,newTags:a}},e6=(t,e)=>{const r=document.getElementsByTagName(t)[0];if(!r)return;const n=r.getAttribute(qh),i=n?n.split(","):[],a=[...i],c=Object.keys(e);for(const s of c){const f=e[s]||"";r.getAttribute(s)!==f&&r.setAttribute(s,f),i.indexOf(s)===-1&&i.push(s);const m=a.indexOf(s);m!==-1&&a.splice(m,1)}for(let s=a.length-1;s>=0;s-=1)r.removeAttribute(a[s]);i.length===a.length?r.removeAttribute(qh):r.getAttribute(qh)!==c.join(",")&&r.setAttribute(qh,c.join(","))},S5e=(t,e)=>{typeof t<"u"&&document.title!==t&&(document.title=Kpe(t)),e6("title",e)},cee=(t,e)=>{const{baseTag:r,bodyAttributes:n,htmlAttributes:i,linkTags:a,metaTags:c,noscriptTags:s,onChangeClientState:f,scriptTags:m,styleTags:x,title:_,titleAttributes:T}=t;e6("body",n),e6("html",i),S5e(_,T);const E={baseTag:Cb("base",r),linkTags:Cb("link",a),metaTags:Cb("meta",c),noscriptTags:Cb("noscript",s),scriptTags:Cb("script",m),styleTags:Cb("style",x)},C={},N={};Object.keys(E).forEach(L=>{const{newTags:M,oldTags:D}=E[L];M.length&&(C[L]=M),D.length&&(N[L]=E[L].oldTags)}),e&&e(),f(t,C,N)},u2=null,T5e=t=>{u2&&cancelAnimationFrame(u2),t.defer?u2=requestAnimationFrame(()=>{cee(t,()=>{u2=null})}):(cee(t),u2=null)},E5e=T5e,uee=class extends P.Component{constructor(){super(...arguments);cn(this,"rendered",!1)}shouldComponentUpdate(e){return!o5e(e,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:e}=this.props.context;e.remove(this),this.emitChange()}emitChange(){const{helmetInstances:e,setHelmet:r}=this.props.context;let n=null;const i=p5e(e.get().map(a=>{const c={...a.props};return delete c.context,c}));Jpe.canUseDOM?E5e(i):QU&&(n=QU(i)),r(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:e}=this.props.context;e.add(this),this.emitChange()}render(){return this.init(),null}},v$,Il=(v$=class extends P.Component{shouldComponentUpdate(t){return!n5e(lee(this.props,"helmetData"),lee(t,"helmetData"))}mapNestedChildrenToProps(t,e){if(!e)return null;switch(t.type){case"script":case"noscript":return{innerHTML:e};case"style":return{cssText:e};default:throw new Error(`<${t.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(t,e,r,n){return{...e,[t.type]:[...e[t.type]||[],{...r,...this.mapNestedChildrenToProps(t,n)}]}}mapObjectTypeChildren(t,e,r,n){switch(t.type){case"title":return{...e,[t.type]:n,titleAttributes:{...r}};case"body":return{...e,bodyAttributes:{...r}};case"html":return{...e,htmlAttributes:{...r}};default:return{...e,[t.type]:{...r}}}}mapArrayTypeChildrenToProps(t,e){let r={...e};return Object.keys(t).forEach(n=>{r={...r,[n]:t[n]}}),r}warnOnInvalidChildren(t,e){return aee(oee.some(r=>t.type===r),typeof t.type=="function"?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${oee.join(", ")} are allowed. Helmet does not support rendering <${t.type}> elements. Refer to our API for more information.`),aee(!e||typeof e=="string"||Array.isArray(e)&&!e.some(r=>typeof r!="string"),`Helmet expects a string as a child of <${t.type}>. Did you forget to wrap your children in braces? ( <${t.type}>{\`\`} ) Refer to our API for more information.`),!0}mapChildrenToProps(t,e){let r={};return Xe.Children.forEach(t,n=>{if(!n||!n.props)return;const{children:i,...a}=n.props,c=Object.keys(a).reduce((f,m)=>(f[l5e[m]||m]=a[m],f),{});let{type:s}=n;switch(typeof s=="symbol"?s=s.toString():this.warnOnInvalidChildren(n,i),s){case"Symbol(react.fragment)":e=this.mapChildrenToProps(i,e);break;case"link":case"meta":case"noscript":case"script":case"style":r=this.flattenArrayTypeChildren(n,r,c,i);break;default:e=this.mapObjectTypeChildren(n,e,c,i);break}}),this.mapArrayTypeChildrenToProps(r,e)}render(){const{children:t,...e}=this.props;let r={...e},{helmetData:n}=e;if(t&&(r=this.mapChildrenToProps(t,r)),n&&!(n instanceof JU)){const i=n;n=new JU(i.context,!0),delete r.helmetData}return n?Xe.createElement(uee,{...r,context:n.value}):Xe.createElement(Qpe.Consumer,null,i=>Xe.createElement(uee,{...r,context:i}))}},cn(v$,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),v$);const A5e=t=>{let e;return t?e=t:typeof fetch>"u"?e=(...r)=>$e(async()=>{const{default:n}=await Promise.resolve().then(()=>gS);return{default:n}},void 0).then(({default:n})=>n(...r)):e=fetch,(...r)=>e(...r)};class $G extends Error{constructor(e,r="FunctionsError",n){super(e),this.name=r,this.context=n}}class k5e extends $G{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class C5e extends $G{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class I5e extends $G{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}var t6;(function(t){t.Any="any",t.ApNortheast1="ap-northeast-1",t.ApNortheast2="ap-northeast-2",t.ApSouth1="ap-south-1",t.ApSoutheast1="ap-southeast-1",t.ApSoutheast2="ap-southeast-2",t.CaCentral1="ca-central-1",t.EuCentral1="eu-central-1",t.EuWest1="eu-west-1",t.EuWest2="eu-west-2",t.EuWest3="eu-west-3",t.SaEast1="sa-east-1",t.UsEast1="us-east-1",t.UsWest1="us-west-1",t.UsWest2="us-west-2"})(t6||(t6={}));var j5e=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};class P5e{constructor(e,{headers:r={},customFetch:n,region:i=t6.Any}={}){this.url=e,this.headers=r,this.region=i,this.fetch=A5e(n)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,r={}){var n;return j5e(this,void 0,void 0,function*(){try{const{headers:i,method:a,body:c}=r;let s={},{region:f}=r;f||(f=this.region),f&&f!=="any"&&(s["x-region"]=f);let m;c&&(i&&!Object.prototype.hasOwnProperty.call(i,"Content-Type")||!i)&&(typeof Blob<"u"&&c instanceof Blob||c instanceof ArrayBuffer?(s["Content-Type"]="application/octet-stream",m=c):typeof c=="string"?(s["Content-Type"]="text/plain",m=c):typeof FormData<"u"&&c instanceof FormData?m=c:(s["Content-Type"]="application/json",m=JSON.stringify(c)));const x=yield this.fetch(`${this.url}/${e}`,{method:a||"POST",headers:Object.assign(Object.assign(Object.assign({},s),this.headers),i),body:m}).catch(C=>{throw new k5e(C)}),_=x.headers.get("x-relay-error");if(_&&_==="true")throw new C5e(x);if(!x.ok)throw new I5e(x);let T=((n=x.headers.get("Content-Type"))!==null&&n!==void 0?n:"text/plain").split(";")[0].trim(),E;return T==="application/json"?E=yield x.json():T==="application/octet-stream"?E=yield x.blob():T==="text/event-stream"?E=x:T==="multipart/form-data"?E=yield x.formData():E=yield x.text(),{data:E,error:null}}catch(i){return{data:null,error:i}}})}}var _u={},UG={},dO={},NC={},hO={},fO={},N5e=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},p1=N5e();const R5e=p1.fetch,eme=p1.fetch.bind(p1),tme=p1.Headers,L5e=p1.Request,D5e=p1.Response,gS=Object.freeze(Object.defineProperty({__proto__:null,Headers:tme,Request:L5e,Response:D5e,default:eme,fetch:R5e},Symbol.toStringTag,{value:"Module"})),M5e=ZIe(gS);var pO={};Object.defineProperty(pO,"__esModule",{value:!0});let O5e=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.code=e.code}};pO.default=O5e;var rme=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fO,"__esModule",{value:!0});const F5e=rme(M5e),B5e=rme(pO);let z5e=class{constructor(e){this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=e.headers,this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle,e.fetch?this.fetch=e.fetch:typeof fetch>"u"?this.fetch=F5e.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,r){return this.headers=Object.assign({},this.headers),this.headers[e]=r,this}then(e,r){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");const n=this.fetch;let i=n(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async a=>{var c,s,f;let m=null,x=null,_=null,T=a.status,E=a.statusText;if(a.ok){if(this.method!=="HEAD"){const M=await a.text();M===""||(this.headers.Accept==="text/csv"||this.headers.Accept&&this.headers.Accept.includes("application/vnd.pgrst.plan+text")?x=M:x=JSON.parse(M))}const N=(c=this.headers.Prefer)===null||c===void 0?void 0:c.match(/count=(exact|planned|estimated)/),L=(s=a.headers.get("content-range"))===null||s===void 0?void 0:s.split("/");N&&L&&L.length>1&&(_=parseInt(L[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(x)&&(x.length>1?(m={code:"PGRST116",details:`Results contain ${x.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},x=null,_=null,T=406,E="Not Acceptable"):x.length===1?x=x[0]:x=null)}else{const N=await a.text();try{m=JSON.parse(N),Array.isArray(m)&&a.status===404&&(x=[],m=null,T=200,E="OK")}catch{a.status===404&&N===""?(T=204,E="No Content"):m={message:N}}if(m&&this.isMaybeSingle&&(!((f=m==null?void 0:m.details)===null||f===void 0)&&f.includes("0 rows"))&&(m=null,T=200,E="OK"),m&&this.shouldThrowOnError)throw new B5e.default(m)}return{error:m,data:x,count:_,status:T,statusText:E}});return this.shouldThrowOnError||(i=i.catch(a=>{var c,s,f;return{error:{message:`${(c=a==null?void 0:a.name)!==null&&c!==void 0?c:"FetchError"}: ${a==null?void 0:a.message}`,details:`${(s=a==null?void 0:a.stack)!==null&&s!==void 0?s:""}`,hint:"",code:`${(f=a==null?void 0:a.code)!==null&&f!==void 0?f:""}`},data:null,count:null,status:0,statusText:""}})),i.then(e,r)}returns(){return this}overrideTypes(){return this}};fO.default=z5e;var $5e=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hO,"__esModule",{value:!0});const U5e=$5e(fO);let V5e=class extends U5e.default{select(e){let r=!1;const n=(e??"*").split("").map(i=>/\s/.test(i)&&!r?"":(i==='"'&&(r=!r),i)).join("");return this.url.searchParams.set("select",n),this.headers.Prefer&&(this.headers.Prefer+=","),this.headers.Prefer+="return=representation",this}order(e,{ascending:r=!0,nullsFirst:n,foreignTable:i,referencedTable:a=i}={}){const c=a?`${a}.order`:"order",s=this.url.searchParams.get(c);return this.url.searchParams.set(c,`${s?`${s},`:""}${e}.${r?"asc":"desc"}${n===void 0?"":n?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:r,referencedTable:n=r}={}){const i=typeof n>"u"?"limit":`${n}.limit`;return this.url.searchParams.set(i,`${e}`),this}range(e,r,{foreignTable:n,referencedTable:i=n}={}){const a=typeof i>"u"?"offset":`${i}.offset`,c=typeof i>"u"?"limit":`${i}.limit`;return this.url.searchParams.set(a,`${e}`),this.url.searchParams.set(c,`${r-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.method==="GET"?this.headers.Accept="application/json":this.headers.Accept="application/vnd.pgrst.object+json",this.isMaybeSingle=!0,this}csv(){return this.headers.Accept="text/csv",this}geojson(){return this.headers.Accept="application/geo+json",this}explain({analyze:e=!1,verbose:r=!1,settings:n=!1,buffers:i=!1,wal:a=!1,format:c="text"}={}){var s;const f=[e?"analyze":null,r?"verbose":null,n?"settings":null,i?"buffers":null,a?"wal":null].filter(Boolean).join("|"),m=(s=this.headers.Accept)!==null&&s!==void 0?s:"application/json";return this.headers.Accept=`application/vnd.pgrst.plan+${c}; for="${m}"; options=${f};`,c==="json"?this:this}rollback(){var e;return((e=this.headers.Prefer)!==null&&e!==void 0?e:"").trim().length>0?this.headers.Prefer+=",tx=rollback":this.headers.Prefer="tx=rollback",this}returns(){return this}};hO.default=V5e;var q5e=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(NC,"__esModule",{value:!0});const G5e=q5e(hO);let H5e=class extends G5e.default{eq(e,r){return this.url.searchParams.append(e,`eq.${r}`),this}neq(e,r){return this.url.searchParams.append(e,`neq.${r}`),this}gt(e,r){return this.url.searchParams.append(e,`gt.${r}`),this}gte(e,r){return this.url.searchParams.append(e,`gte.${r}`),this}lt(e,r){return this.url.searchParams.append(e,`lt.${r}`),this}lte(e,r){return this.url.searchParams.append(e,`lte.${r}`),this}like(e,r){return this.url.searchParams.append(e,`like.${r}`),this}likeAllOf(e,r){return this.url.searchParams.append(e,`like(all).{${r.join(",")}}`),this}likeAnyOf(e,r){return this.url.searchParams.append(e,`like(any).{${r.join(",")}}`),this}ilike(e,r){return this.url.searchParams.append(e,`ilike.${r}`),this}ilikeAllOf(e,r){return this.url.searchParams.append(e,`ilike(all).{${r.join(",")}}`),this}ilikeAnyOf(e,r){return this.url.searchParams.append(e,`ilike(any).{${r.join(",")}}`),this}is(e,r){return this.url.searchParams.append(e,`is.${r}`),this}in(e,r){const n=Array.from(new Set(r)).map(i=>typeof i=="string"&&new RegExp("[,()]").test(i)?`"${i}"`:`${i}`).join(",");return this.url.searchParams.append(e,`in.(${n})`),this}contains(e,r){return typeof r=="string"?this.url.searchParams.append(e,`cs.${r}`):Array.isArray(r)?this.url.searchParams.append(e,`cs.{${r.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(r)}`),this}containedBy(e,r){return typeof r=="string"?this.url.searchParams.append(e,`cd.${r}`):Array.isArray(r)?this.url.searchParams.append(e,`cd.{${r.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(r)}`),this}rangeGt(e,r){return this.url.searchParams.append(e,`sr.${r}`),this}rangeGte(e,r){return this.url.searchParams.append(e,`nxl.${r}`),this}rangeLt(e,r){return this.url.searchParams.append(e,`sl.${r}`),this}rangeLte(e,r){return this.url.searchParams.append(e,`nxr.${r}`),this}rangeAdjacent(e,r){return this.url.searchParams.append(e,`adj.${r}`),this}overlaps(e,r){return typeof r=="string"?this.url.searchParams.append(e,`ov.${r}`):this.url.searchParams.append(e,`ov.{${r.join(",")}}`),this}textSearch(e,r,{config:n,type:i}={}){let a="";i==="plain"?a="pl":i==="phrase"?a="ph":i==="websearch"&&(a="w");const c=n===void 0?"":`(${n})`;return this.url.searchParams.append(e,`${a}fts${c}.${r}`),this}match(e){return Object.entries(e).forEach(([r,n])=>{this.url.searchParams.append(r,`eq.${n}`)}),this}not(e,r,n){return this.url.searchParams.append(e,`not.${r}.${n}`),this}or(e,{foreignTable:r,referencedTable:n=r}={}){const i=n?`${n}.or`:"or";return this.url.searchParams.append(i,`(${e})`),this}filter(e,r,n){return this.url.searchParams.append(e,`${r}.${n}`),this}};NC.default=H5e;var W5e=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dO,"__esModule",{value:!0});const d2=W5e(NC);let K5e=class{constructor(e,{headers:r={},schema:n,fetch:i}){this.url=e,this.headers=r,this.schema=n,this.fetch=i}select(e,{head:r=!1,count:n}={}){const i=r?"HEAD":"GET";let a=!1;const c=(e??"*").split("").map(s=>/\s/.test(s)&&!a?"":(s==='"'&&(a=!a),s)).join("");return this.url.searchParams.set("select",c),n&&(this.headers.Prefer=`count=${n}`),new d2.default({method:i,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}insert(e,{count:r,defaultToNull:n=!0}={}){const i="POST",a=[];if(this.headers.Prefer&&a.push(this.headers.Prefer),r&&a.push(`count=${r}`),n||a.push("missing=default"),this.headers.Prefer=a.join(","),Array.isArray(e)){const c=e.reduce((s,f)=>s.concat(Object.keys(f)),[]);if(c.length>0){const s=[...new Set(c)].map(f=>`"${f}"`);this.url.searchParams.set("columns",s.join(","))}}return new d2.default({method:i,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}upsert(e,{onConflict:r,ignoreDuplicates:n=!1,count:i,defaultToNull:a=!0}={}){const c="POST",s=[`resolution=${n?"ignore":"merge"}-duplicates`];if(r!==void 0&&this.url.searchParams.set("on_conflict",r),this.headers.Prefer&&s.push(this.headers.Prefer),i&&s.push(`count=${i}`),a||s.push("missing=default"),this.headers.Prefer=s.join(","),Array.isArray(e)){const f=e.reduce((m,x)=>m.concat(Object.keys(x)),[]);if(f.length>0){const m=[...new Set(f)].map(x=>`"${x}"`);this.url.searchParams.set("columns",m.join(","))}}return new d2.default({method:c,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}update(e,{count:r}={}){const n="PATCH",i=[];return this.headers.Prefer&&i.push(this.headers.Prefer),r&&i.push(`count=${r}`),this.headers.Prefer=i.join(","),new d2.default({method:n,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}delete({count:e}={}){const r="DELETE",n=[];return e&&n.push(`count=${e}`),this.headers.Prefer&&n.unshift(this.headers.Prefer),this.headers.Prefer=n.join(","),new d2.default({method:r,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}};dO.default=K5e;var mO={},gO={};Object.defineProperty(gO,"__esModule",{value:!0});gO.version=void 0;gO.version="0.0.0-automated";Object.defineProperty(mO,"__esModule",{value:!0});mO.DEFAULT_HEADERS=void 0;const Y5e=gO;mO.DEFAULT_HEADERS={"X-Client-Info":`postgrest-js/${Y5e.version}`};var nme=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(UG,"__esModule",{value:!0});const Z5e=nme(dO),X5e=nme(NC),Q5e=mO;let J5e=class ime{constructor(e,{headers:r={},schema:n,fetch:i}={}){this.url=e,this.headers=Object.assign(Object.assign({},Q5e.DEFAULT_HEADERS),r),this.schemaName=n,this.fetch=i}from(e){const r=new URL(`${this.url}/${e}`);return new Z5e.default(r,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}schema(e){return new ime(this.url,{headers:this.headers,schema:e,fetch:this.fetch})}rpc(e,r={},{head:n=!1,get:i=!1,count:a}={}){let c;const s=new URL(`${this.url}/rpc/${e}`);let f;n||i?(c=n?"HEAD":"GET",Object.entries(r).filter(([x,_])=>_!==void 0).map(([x,_])=>[x,Array.isArray(_)?`{${_.join(",")}}`:`${_}`]).forEach(([x,_])=>{s.searchParams.append(x,_)})):(c="POST",f=r);const m=Object.assign({},this.headers);return a&&(m.Prefer=`count=${a}`),new X5e.default({method:c,url:s,headers:m,schema:this.schemaName,body:f,fetch:this.fetch,allowEmpty:!1})}};UG.default=J5e;var yS=Hl&&Hl.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_u,"__esModule",{value:!0});_u.PostgrestError=_u.PostgrestBuilder=_u.PostgrestTransformBuilder=_u.PostgrestFilterBuilder=_u.PostgrestQueryBuilder=_u.PostgrestClient=void 0;const sme=yS(UG);_u.PostgrestClient=sme.default;const ame=yS(dO);_u.PostgrestQueryBuilder=ame.default;const ome=yS(NC);_u.PostgrestFilterBuilder=ome.default;const lme=yS(hO);_u.PostgrestTransformBuilder=lme.default;const cme=yS(fO);_u.PostgrestBuilder=cme.default;const ume=yS(pO);_u.PostgrestError=ume.default;var e4e=_u.default={PostgrestClient:sme.default,PostgrestQueryBuilder:ame.default,PostgrestFilterBuilder:ome.default,PostgrestTransformBuilder:lme.default,PostgrestBuilder:cme.default,PostgrestError:ume.default};const{PostgrestClient:t4e,PostgrestQueryBuilder:S$t,PostgrestFilterBuilder:T$t,PostgrestTransformBuilder:E$t,PostgrestBuilder:A$t,PostgrestError:k$t}=e4e;let r6;typeof window>"u"?r6=require("ws"):r6=window.WebSocket;const r4e=r6,n4e="2.11.10",i4e={"X-Client-Info":`realtime-js/${n4e}`},s4e="1.0.0",dme=1e4,a4e=1e3;var Nw;(function(t){t[t.connecting=0]="connecting",t[t.open=1]="open",t[t.closing=2]="closing",t[t.closed=3]="closed"})(Nw||(Nw={}));var Dc;(function(t){t.closed="closed",t.errored="errored",t.joined="joined",t.joining="joining",t.leaving="leaving"})(Dc||(Dc={}));var Mh;(function(t){t.close="phx_close",t.error="phx_error",t.join="phx_join",t.reply="phx_reply",t.leave="phx_leave",t.access_token="access_token"})(Mh||(Mh={}));var n6;(function(t){t.websocket="websocket"})(n6||(n6={}));var F0;(function(t){t.Connecting="connecting",t.Open="open",t.Closing="closing",t.Closed="closed"})(F0||(F0={}));class o4e{constructor(){this.HEADER_LENGTH=1}decode(e,r){return e.constructor===ArrayBuffer?r(this._binaryDecode(e)):r(typeof e=="string"?JSON.parse(e):{})}_binaryDecode(e){const r=new DataView(e),n=new TextDecoder;return this._decodeBroadcast(e,r,n)}_decodeBroadcast(e,r,n){const i=r.getUint8(1),a=r.getUint8(2);let c=this.HEADER_LENGTH+2;const s=n.decode(e.slice(c,c+i));c=c+i;const f=n.decode(e.slice(c,c+a));c=c+a;const m=JSON.parse(n.decode(e.slice(c,e.byteLength)));return{ref:null,topic:s,event:f,payload:m}}}class hme{constructor(e,r){this.callback=e,this.timerCalc=r,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=r}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}var da;(function(t){t.abstime="abstime",t.bool="bool",t.date="date",t.daterange="daterange",t.float4="float4",t.float8="float8",t.int2="int2",t.int4="int4",t.int4range="int4range",t.int8="int8",t.int8range="int8range",t.json="json",t.jsonb="jsonb",t.money="money",t.numeric="numeric",t.oid="oid",t.reltime="reltime",t.text="text",t.time="time",t.timestamp="timestamp",t.timestamptz="timestamptz",t.timetz="timetz",t.tsrange="tsrange",t.tstzrange="tstzrange"})(da||(da={}));const dee=(t,e,r={})=>{var n;const i=(n=r.skipTypes)!==null&&n!==void 0?n:[];return Object.keys(e).reduce((a,c)=>(a[c]=l4e(c,t,e,i),a),{})},l4e=(t,e,r,n)=>{const i=e.find(s=>s.name===t),a=i==null?void 0:i.type,c=r[t];return a&&!n.includes(a)?fme(a,c):i6(c)},fme=(t,e)=>{if(t.charAt(0)==="_"){const r=t.slice(1,t.length);return h4e(e,r)}switch(t){case da.bool:return c4e(e);case da.float4:case da.float8:case da.int2:case da.int4:case da.int8:case da.numeric:case da.oid:return u4e(e);case da.json:case da.jsonb:return d4e(e);case da.timestamp:return f4e(e);case da.abstime:case da.date:case da.daterange:case da.int4range:case da.int8range:case da.money:case da.reltime:case da.text:case da.time:case da.timestamptz:case da.timetz:case da.tsrange:case da.tstzrange:return i6(e);default:return i6(e)}},i6=t=>t,c4e=t=>{switch(t){case"t":return!0;case"f":return!1;default:return t}},u4e=t=>{if(typeof t=="string"){const e=parseFloat(t);if(!Number.isNaN(e))return e}return t},d4e=t=>{if(typeof t=="string")try{return JSON.parse(t)}catch(e){return console.log(`JSON parse error: ${e}`),t}return t},h4e=(t,e)=>{if(typeof t!="string")return t;const r=t.length-1,n=t[r];if(t[0]==="{"&&n==="}"){let a;const c=t.slice(1,r);try{a=JSON.parse("["+c+"]")}catch{a=c?c.split(","):[]}return a.map(s=>fme(e,s))}return t},f4e=t=>typeof t=="string"?t.replace(" ","T"):t,pme=t=>{let e=t;return e=e.replace(/^ws/i,"http"),e=e.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,""),e.replace(/\/+$/,"")};class mB{constructor(e,r,n={},i=dme){this.channel=e,this.event=r,this.payload=n,this.timeout=i,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,r){var n;return this._hasReceived(e)&&r((n=this.receivedResp)===null||n===void 0?void 0:n.response),this.recHooks.push({status:e,callback:r}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const e=r=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=r,this._matchReceive(r)};this.channel._on(this.refEvent,{},e),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(e,r){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,response:r})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:r}){this.recHooks.filter(n=>n.status===e).forEach(n=>n.callback(r))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}var hee;(function(t){t.SYNC="sync",t.JOIN="join",t.LEAVE="leave"})(hee||(hee={}));class oA{constructor(e,r){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const n=(r==null?void 0:r.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(n.state,{},i=>{const{onJoin:a,onLeave:c,onSync:s}=this.caller;this.joinRef=this.channel._joinRef(),this.state=oA.syncState(this.state,i,a,c),this.pendingDiffs.forEach(f=>{this.state=oA.syncDiff(this.state,f,a,c)}),this.pendingDiffs=[],s()}),this.channel._on(n.diff,{},i=>{const{onJoin:a,onLeave:c,onSync:s}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(i):(this.state=oA.syncDiff(this.state,i,a,c),s())}),this.onJoin((i,a,c)=>{this.channel._trigger("presence",{event:"join",key:i,currentPresences:a,newPresences:c})}),this.onLeave((i,a,c)=>{this.channel._trigger("presence",{event:"leave",key:i,currentPresences:a,leftPresences:c})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(e,r,n,i){const a=this.cloneDeep(e),c=this.transformState(r),s={},f={};return this.map(a,(m,x)=>{c[m]||(f[m]=x)}),this.map(c,(m,x)=>{const _=a[m];if(_){const T=x.map(L=>L.presence_ref),E=_.map(L=>L.presence_ref),C=x.filter(L=>E.indexOf(L.presence_ref)<0),N=_.filter(L=>T.indexOf(L.presence_ref)<0);C.length>0&&(s[m]=C),N.length>0&&(f[m]=N)}else s[m]=x}),this.syncDiff(a,{joins:s,leaves:f},n,i)}static syncDiff(e,r,n,i){const{joins:a,leaves:c}={joins:this.transformState(r.joins),leaves:this.transformState(r.leaves)};return n||(n=()=>{}),i||(i=()=>{}),this.map(a,(s,f)=>{var m;const x=(m=e[s])!==null&&m!==void 0?m:[];if(e[s]=this.cloneDeep(f),x.length>0){const _=e[s].map(E=>E.presence_ref),T=x.filter(E=>_.indexOf(E.presence_ref)<0);e[s].unshift(...T)}n(s,x,f)}),this.map(c,(s,f)=>{let m=e[s];if(!m)return;const x=f.map(_=>_.presence_ref);m=m.filter(_=>x.indexOf(_.presence_ref)<0),e[s]=m,i(s,m,f),m.length===0&&delete e[s]}),e}static map(e,r){return Object.getOwnPropertyNames(e).map(n=>r(n,e[n]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((r,n)=>{const i=e[n];return"metas"in i?r[n]=i.metas.map(a=>(a.presence_ref=a.phx_ref,delete a.phx_ref,delete a.phx_ref_prev,a)):r[n]=i,r},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var fee;(function(t){t.ALL="*",t.INSERT="INSERT",t.UPDATE="UPDATE",t.DELETE="DELETE"})(fee||(fee={}));var pee;(function(t){t.BROADCAST="broadcast",t.PRESENCE="presence",t.POSTGRES_CHANGES="postgres_changes",t.SYSTEM="system"})(pee||(pee={}));var rm;(function(t){t.SUBSCRIBED="SUBSCRIBED",t.TIMED_OUT="TIMED_OUT",t.CLOSED="CLOSED",t.CHANNEL_ERROR="CHANNEL_ERROR"})(rm||(rm={}));class VG{constructor(e,r={config:{}},n){this.topic=e,this.params=r,this.socket=n,this.bindings={},this.state=Dc.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=e.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""},private:!1},r.config),this.timeout=this.socket.timeout,this.joinPush=new mB(this,Mh.join,this.params,this.timeout),this.rejoinTimer=new hme(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=Dc.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(i=>i.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=Dc.closed,this.socket._remove(this)}),this._onError(i=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,i),this.state=Dc.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=Dc.errored,this.rejoinTimer.scheduleTimeout())}),this._on(Mh.reply,{},(i,a)=>{this._trigger(this._replyEventName(a),i)}),this.presence=new oA(this),this.broadcastEndpointURL=pme(this.socket.endPoint)+"/api/broadcast",this.private=this.params.config.private||!1}subscribe(e,r=this.timeout){var n,i;if(this.socket.isConnected()||this.socket.connect(),this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const{config:{broadcast:a,presence:c,private:s}}=this.params;this._onError(x=>e==null?void 0:e(rm.CHANNEL_ERROR,x)),this._onClose(()=>e==null?void 0:e(rm.CLOSED));const f={},m={broadcast:a,presence:c,postgres_changes:(i=(n=this.bindings.postgres_changes)===null||n===void 0?void 0:n.map(x=>x.filter))!==null&&i!==void 0?i:[],private:s};this.socket.accessTokenValue&&(f.access_token=this.socket.accessTokenValue),this.updateJoinPayload(Object.assign({config:m},f)),this.joinedOnce=!0,this._rejoin(r),this.joinPush.receive("ok",async({postgres_changes:x})=>{var _;if(this.socket.setAuth(),x===void 0){e==null||e(rm.SUBSCRIBED);return}else{const T=this.bindings.postgres_changes,E=(_=T==null?void 0:T.length)!==null&&_!==void 0?_:0,C=[];for(let N=0;N{this.state=Dc.errored,e==null||e(rm.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(x).join(", ")||"error")))}).receive("timeout",()=>{e==null||e(rm.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(e,r={}){return await this.send({type:"presence",event:"track",payload:e},r.timeout||this.timeout)}async untrack(e={}){return await this.send({type:"presence",event:"untrack"},e)}on(e,r,n){return this._on(e,r,n)}async send(e,r={}){var n,i;if(!this._canPush()&&e.type==="broadcast"){const{event:a,payload:c}=e,f={method:"POST",headers:{Authorization:this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:"",apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:a,payload:c,private:this.private}]})};try{const m=await this._fetchWithTimeout(this.broadcastEndpointURL,f,(n=r.timeout)!==null&&n!==void 0?n:this.timeout);return await((i=m.body)===null||i===void 0?void 0:i.cancel()),m.ok?"ok":"error"}catch(m){return m.name==="AbortError"?"timed out":"error"}}else return new Promise(a=>{var c,s,f;const m=this._push(e.type,e,r.timeout||this.timeout);e.type==="broadcast"&&!(!((f=(s=(c=this.params)===null||c===void 0?void 0:c.config)===null||s===void 0?void 0:s.broadcast)===null||f===void 0)&&f.ack)&&a("ok"),m.receive("ok",()=>a("ok")),m.receive("error",()=>a("error")),m.receive("timeout",()=>a("timed out"))})}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=Dc.leaving;const r=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(Mh.close,"leave",this._joinRef())};return this.joinPush.destroy(),new Promise(n=>{const i=new mB(this,Mh.leave,{},e);i.receive("ok",()=>{r(),n("ok")}).receive("timeout",()=>{r(),n("timed out")}).receive("error",()=>{n("error")}),i.send(),this._canPush()||i.trigger("ok",{})})}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.rejoinTimer&&clearTimeout(this.rejoinTimer.timer),this.joinPush.destroy()}async _fetchWithTimeout(e,r,n){const i=new AbortController,a=setTimeout(()=>i.abort(),n),c=await this.socket.fetch(e,Object.assign(Object.assign({},r),{signal:i.signal}));return clearTimeout(a),c}_push(e,r,n=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let i=new mB(this,e,r,n);return this._canPush()?i.send():(i.startTimeout(),this.pushBuffer.push(i)),i}_onMessage(e,r,n){return r}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,r,n){var i,a;const c=e.toLocaleLowerCase(),{close:s,error:f,leave:m,join:x}=Mh;if(n&&[s,f,m,x].indexOf(c)>=0&&n!==this._joinRef())return;let T=this._onMessage(c,r,n);if(r&&!T)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(c)?(i=this.bindings.postgres_changes)===null||i===void 0||i.filter(E=>{var C,N,L;return((C=E.filter)===null||C===void 0?void 0:C.event)==="*"||((L=(N=E.filter)===null||N===void 0?void 0:N.event)===null||L===void 0?void 0:L.toLocaleLowerCase())===c}).map(E=>E.callback(T,n)):(a=this.bindings[c])===null||a===void 0||a.filter(E=>{var C,N,L,M,D,B;if(["broadcast","presence","postgres_changes"].includes(c))if("id"in E){const V=E.id,G=(C=E.filter)===null||C===void 0?void 0:C.event;return V&&((N=r.ids)===null||N===void 0?void 0:N.includes(V))&&(G==="*"||(G==null?void 0:G.toLocaleLowerCase())===((L=r.data)===null||L===void 0?void 0:L.type.toLocaleLowerCase()))}else{const V=(D=(M=E==null?void 0:E.filter)===null||M===void 0?void 0:M.event)===null||D===void 0?void 0:D.toLocaleLowerCase();return V==="*"||V===((B=r==null?void 0:r.event)===null||B===void 0?void 0:B.toLocaleLowerCase())}else return E.type.toLocaleLowerCase()===c}).map(E=>{if(typeof T=="object"&&"ids"in T){const C=T.data,{schema:N,table:L,commit_timestamp:M,type:D,errors:B}=C;T=Object.assign(Object.assign({},{schema:N,table:L,commit_timestamp:M,eventType:D,new:{},old:{},errors:B}),this._getPayloadRecords(C))}E.callback(T,n)})}_isClosed(){return this.state===Dc.closed}_isJoined(){return this.state===Dc.joined}_isJoining(){return this.state===Dc.joining}_isLeaving(){return this.state===Dc.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,r,n){const i=e.toLocaleLowerCase(),a={type:i,filter:r,callback:n};return this.bindings[i]?this.bindings[i].push(a):this.bindings[i]=[a],this}_off(e,r){const n=e.toLocaleLowerCase();return this.bindings[n]=this.bindings[n].filter(i=>{var a;return!(((a=i.type)===null||a===void 0?void 0:a.toLocaleLowerCase())===n&&VG.isEqual(i.filter,r))}),this}static isEqual(e,r){if(Object.keys(e).length!==Object.keys(r).length)return!1;for(const n in e)if(e[n]!==r[n])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(Mh.close,{},e)}_onError(e){this._on(Mh.error,{},r=>e(r))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=Dc.joining,this.joinPush.resend(e))}_getPayloadRecords(e){const r={new:{},old:{}};return(e.type==="INSERT"||e.type==="UPDATE")&&(r.new=dee(e.columns,e.record)),(e.type==="UPDATE"||e.type==="DELETE")&&(r.old=dee(e.columns,e.old_record)),r}}const mee=()=>{},p4e=` addEventListener("message", (e) => { if (e.data.event === "start") { setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); } });`;class m4e{constructor(e,r){var n;this.accessTokenValue=null,this.apiKey=null,this.channels=new Array,this.endPoint="",this.httpEndpoint="",this.headers=i4e,this.params={},this.timeout=dme,this.heartbeatIntervalMs=25e3,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.heartbeatCallback=mee,this.ref=0,this.logger=mee,this.conn=null,this.sendBuffer=[],this.serializer=new o4e,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._resolveFetch=a=>{let c;return a?c=a:typeof fetch>"u"?c=(...s)=>$e(async()=>{const{default:f}=await Promise.resolve().then(()=>gS);return{default:f}},void 0).then(({default:f})=>f(...s)):c=fetch,(...s)=>c(...s)},this.endPoint=`${e}/${n6.websocket}`,this.httpEndpoint=pme(e),r!=null&&r.transport?this.transport=r.transport:this.transport=null,r!=null&&r.params&&(this.params=r.params),r!=null&&r.headers&&(this.headers=Object.assign(Object.assign({},this.headers),r.headers)),r!=null&&r.timeout&&(this.timeout=r.timeout),r!=null&&r.logger&&(this.logger=r.logger),(r!=null&&r.logLevel||r!=null&&r.log_level)&&(this.logLevel=r.logLevel||r.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel})),r!=null&&r.heartbeatIntervalMs&&(this.heartbeatIntervalMs=r.heartbeatIntervalMs);const i=(n=r==null?void 0:r.params)===null||n===void 0?void 0:n.apikey;if(i&&(this.accessTokenValue=i,this.apiKey=i),this.reconnectAfterMs=r!=null&&r.reconnectAfterMs?r.reconnectAfterMs:a=>[1e3,2e3,5e3,1e4][a-1]||1e4,this.encode=r!=null&&r.encode?r.encode:(a,c)=>c(JSON.stringify(a)),this.decode=r!=null&&r.decode?r.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new hme(async()=>{this.disconnect(),this.connect()},this.reconnectAfterMs),this.fetch=this._resolveFetch(r==null?void 0:r.fetch),r!=null&&r.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.worker=(r==null?void 0:r.worker)||!1,this.workerUrl=r==null?void 0:r.workerUrl}this.accessToken=(r==null?void 0:r.accessToken)||null}connect(){if(!this.conn){if(this.transport||(this.transport=r4e),this.transport){typeof window<"u"&&this.transport===window.WebSocket?this.conn=new this.transport(this.endpointURL()):this.conn=new this.transport(this.endpointURL(),void 0,{headers:this.headers}),this.setupConnection();return}this.conn=new g4e(this.endpointURL(),void 0,{close:()=>{this.conn=null}})}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:s4e}))}disconnect(e,r){this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,r??""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset(),this.channels.forEach(n=>n.teardown()))}getChannels(){return this.channels}async removeChannel(e){const r=await e.unsubscribe();return this.channels=this.channels.filter(n=>n._joinRef!==e._joinRef),this.channels.length===0&&this.disconnect(),r}async removeAllChannels(){const e=await Promise.all(this.channels.map(r=>r.unsubscribe()));return this.channels=[],this.disconnect(),e}log(e,r,n){this.logger(e,r,n)}connectionState(){switch(this.conn&&this.conn.readyState){case Nw.connecting:return F0.Connecting;case Nw.open:return F0.Open;case Nw.closing:return F0.Closing;default:return F0.Closed}}isConnected(){return this.connectionState()===F0.Open}channel(e,r={config:{}}){const n=`realtime:${e}`,i=this.getChannels().find(a=>a.topic===n);if(i)return i;{const a=new VG(`realtime:${e}`,r,this);return this.channels.push(a),a}}push(e){const{topic:r,event:n,payload:i,ref:a}=e,c=()=>{this.encode(e,s=>{var f;(f=this.conn)===null||f===void 0||f.send(s)})};this.log("push",`${r} ${n} (${a})`,i),this.isConnected()?c():this.sendBuffer.push(c)}async setAuth(e=null){let r=e||this.accessToken&&await this.accessToken()||this.accessTokenValue;this.accessTokenValue!=r&&(this.accessTokenValue=r,this.channels.forEach(n=>{r&&n.updateJoinPayload({access_token:r,version:this.headers&&this.headers["X-Client-Info"]}),n.joinedOnce&&n._isJoined()&&n._push(Mh.access_token,{access_token:r})}))}async sendHeartbeat(){var e;if(!this.isConnected()){this.heartbeatCallback("disconnected");return}if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),this.heartbeatCallback("timeout"),(e=this.conn)===null||e===void 0||e.close(a4e,"hearbeat timeout");return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatCallback("sent"),await this.setAuth()}onHeartbeat(e){this.heartbeatCallback=e}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}_leaveOpenTopic(e){let r=this.channels.find(n=>n.topic===e&&(n._isJoined()||n._isJoining()));r&&(this.log("transport",`leaving duplicate topic "${e}"`),r.unsubscribe())}_remove(e){this.channels=this.channels.filter(r=>r.topic!==e.topic)}setupConnection(){this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this._onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e))}_onConnMessage(e){this.decode(e.data,r=>{let{topic:n,event:i,payload:a,ref:c}=r;n==="phoenix"&&i==="phx_reply"&&this.heartbeatCallback(r.payload.status=="ok"?"ok":"error"),c&&c===this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null),this.log("receive",`${a.status||""} ${n} ${i} ${c&&"("+c+")"||""}`,a),Array.from(this.channels).filter(s=>s._isMember(n)).forEach(s=>s._trigger(i,a,c)),this.stateChangeCallbacks.message.forEach(s=>s(r))})}_onConnOpen(){if(this.log("transport",`connected to ${this.endpointURL()}`),this.flushSendBuffer(),this.reconnectTimer.reset(),!this.worker)this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs);else{this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=r=>{this.log("worker","worker error",r.message),this.workerRef.terminate()},this.workerRef.onmessage=r=>{r.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}this.stateChangeCallbacks.open.forEach(e=>e())}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(r=>r(e))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(r=>r(e))}_triggerChanError(){this.channels.forEach(e=>e._trigger(Mh.error))}_appendParams(e,r){if(Object.keys(r).length===0)return e;const n=e.match(/\?/)?"&":"?",i=new URLSearchParams(r);return`${e}${n}${i}`}_workerObjectUrl(e){let r;if(e)r=e;else{const n=new Blob([p4e],{type:"application/javascript"});r=URL.createObjectURL(n)}return r}}class g4e{constructor(e,r,n){this.binaryType="arraybuffer",this.onclose=()=>{},this.onerror=()=>{},this.onmessage=()=>{},this.onopen=()=>{},this.readyState=Nw.connecting,this.send=()=>{},this.url=null,this.url=e,this.close=n.close}}class qG extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}function vl(t){return typeof t=="object"&&t!==null&&"__isStorageError"in t}class y4e extends qG{constructor(e,r){super(e),this.name="StorageApiError",this.status=r}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class s6 extends qG{constructor(e,r){super(e),this.name="StorageUnknownError",this.originalError=r}}var x4e=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};const mme=t=>{let e;return t?e=t:typeof fetch>"u"?e=(...r)=>$e(async()=>{const{default:n}=await Promise.resolve().then(()=>gS);return{default:n}},void 0).then(({default:n})=>n(...r)):e=fetch,(...r)=>e(...r)},_4e=()=>x4e(void 0,void 0,void 0,function*(){return typeof Response>"u"?(yield $e(()=>Promise.resolve().then(()=>gS),void 0)).Response:Response}),a6=t=>{if(Array.isArray(t))return t.map(r=>a6(r));if(typeof t=="function"||t!==Object(t))return t;const e={};return Object.entries(t).forEach(([r,n])=>{const i=r.replace(/([-_][a-z])/gi,a=>a.toUpperCase().replace(/[-_]/g,""));e[i]=a6(n)}),e};var F_=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};const gB=t=>t.msg||t.message||t.error_description||t.error||JSON.stringify(t),v4e=(t,e,r)=>F_(void 0,void 0,void 0,function*(){const n=yield _4e();t instanceof n&&!(r!=null&&r.noResolveJson)?t.json().then(i=>{e(new y4e(gB(i),t.status||500))}).catch(i=>{e(new s6(gB(i),i))}):e(new s6(gB(t),t))}),b4e=(t,e,r,n)=>{const i={method:t,headers:(e==null?void 0:e.headers)||{}};return t==="GET"?i:(i.headers=Object.assign({"Content-Type":"application/json"},e==null?void 0:e.headers),n&&(i.body=JSON.stringify(n)),Object.assign(Object.assign({},i),r))};function RC(t,e,r,n,i,a){return F_(this,void 0,void 0,function*(){return new Promise((c,s)=>{t(r,b4e(e,n,i,a)).then(f=>{if(!f.ok)throw f;return n!=null&&n.noResolveJson?f:f.json()}).then(f=>c(f)).catch(f=>v4e(f,s,n))})})}function zL(t,e,r,n){return F_(this,void 0,void 0,function*(){return RC(t,"GET",e,r,n)})}function Kg(t,e,r,n,i){return F_(this,void 0,void 0,function*(){return RC(t,"POST",e,n,i,r)})}function w4e(t,e,r,n,i){return F_(this,void 0,void 0,function*(){return RC(t,"PUT",e,n,i,r)})}function S4e(t,e,r,n){return F_(this,void 0,void 0,function*(){return RC(t,"HEAD",e,Object.assign(Object.assign({},r),{noResolveJson:!0}),n)})}function gme(t,e,r,n,i){return F_(this,void 0,void 0,function*(){return RC(t,"DELETE",e,n,i,r)})}var hu=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};const T4e={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},gee={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class E4e{constructor(e,r={},n,i){this.url=e,this.headers=r,this.bucketId=n,this.fetch=mme(i)}uploadOrUpdate(e,r,n,i){return hu(this,void 0,void 0,function*(){try{let a;const c=Object.assign(Object.assign({},gee),i);let s=Object.assign(Object.assign({},this.headers),e==="POST"&&{"x-upsert":String(c.upsert)});const f=c.metadata;typeof Blob<"u"&&n instanceof Blob?(a=new FormData,a.append("cacheControl",c.cacheControl),f&&a.append("metadata",this.encodeMetadata(f)),a.append("",n)):typeof FormData<"u"&&n instanceof FormData?(a=n,a.append("cacheControl",c.cacheControl),f&&a.append("metadata",this.encodeMetadata(f))):(a=n,s["cache-control"]=`max-age=${c.cacheControl}`,s["content-type"]=c.contentType,f&&(s["x-metadata"]=this.toBase64(this.encodeMetadata(f)))),i!=null&&i.headers&&(s=Object.assign(Object.assign({},s),i.headers));const m=this._removeEmptyFolders(r),x=this._getFinalPath(m),_=yield this.fetch(`${this.url}/object/${x}`,Object.assign({method:e,body:a,headers:s},c!=null&&c.duplex?{duplex:c.duplex}:{})),T=yield _.json();return _.ok?{data:{path:m,id:T.Id,fullPath:T.Key},error:null}:{data:null,error:T}}catch(a){if(vl(a))return{data:null,error:a};throw a}})}upload(e,r,n){return hu(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,r,n)})}uploadToSignedUrl(e,r,n,i){return hu(this,void 0,void 0,function*(){const a=this._removeEmptyFolders(e),c=this._getFinalPath(a),s=new URL(this.url+`/object/upload/sign/${c}`);s.searchParams.set("token",r);try{let f;const m=Object.assign({upsert:gee.upsert},i),x=Object.assign(Object.assign({},this.headers),{"x-upsert":String(m.upsert)});typeof Blob<"u"&&n instanceof Blob?(f=new FormData,f.append("cacheControl",m.cacheControl),f.append("",n)):typeof FormData<"u"&&n instanceof FormData?(f=n,f.append("cacheControl",m.cacheControl)):(f=n,x["cache-control"]=`max-age=${m.cacheControl}`,x["content-type"]=m.contentType);const _=yield this.fetch(s.toString(),{method:"PUT",body:f,headers:x}),T=yield _.json();return _.ok?{data:{path:a,fullPath:T.Key},error:null}:{data:null,error:T}}catch(f){if(vl(f))return{data:null,error:f};throw f}})}createSignedUploadUrl(e,r){return hu(this,void 0,void 0,function*(){try{let n=this._getFinalPath(e);const i=Object.assign({},this.headers);r!=null&&r.upsert&&(i["x-upsert"]="true");const a=yield Kg(this.fetch,`${this.url}/object/upload/sign/${n}`,{},{headers:i}),c=new URL(this.url+a.url),s=c.searchParams.get("token");if(!s)throw new qG("No token returned by API");return{data:{signedUrl:c.toString(),path:e,token:s},error:null}}catch(n){if(vl(n))return{data:null,error:n};throw n}})}update(e,r,n){return hu(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,r,n)})}move(e,r,n){return hu(this,void 0,void 0,function*(){try{return{data:yield Kg(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:r,destinationBucket:n==null?void 0:n.destinationBucket},{headers:this.headers}),error:null}}catch(i){if(vl(i))return{data:null,error:i};throw i}})}copy(e,r,n){return hu(this,void 0,void 0,function*(){try{return{data:{path:(yield Kg(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:r,destinationBucket:n==null?void 0:n.destinationBucket},{headers:this.headers})).Key},error:null}}catch(i){if(vl(i))return{data:null,error:i};throw i}})}createSignedUrl(e,r,n){return hu(this,void 0,void 0,function*(){try{let i=this._getFinalPath(e),a=yield Kg(this.fetch,`${this.url}/object/sign/${i}`,Object.assign({expiresIn:r},n!=null&&n.transform?{transform:n.transform}:{}),{headers:this.headers});const c=n!=null&&n.download?`&download=${n.download===!0?"":n.download}`:"";return a={signedUrl:encodeURI(`${this.url}${a.signedURL}${c}`)},{data:a,error:null}}catch(i){if(vl(i))return{data:null,error:i};throw i}})}createSignedUrls(e,r,n){return hu(this,void 0,void 0,function*(){try{const i=yield Kg(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:r,paths:e},{headers:this.headers}),a=n!=null&&n.download?`&download=${n.download===!0?"":n.download}`:"";return{data:i.map(c=>Object.assign(Object.assign({},c),{signedUrl:c.signedURL?encodeURI(`${this.url}${c.signedURL}${a}`):null})),error:null}}catch(i){if(vl(i))return{data:null,error:i};throw i}})}download(e,r){return hu(this,void 0,void 0,function*(){const i=typeof(r==null?void 0:r.transform)<"u"?"render/image/authenticated":"object",a=this.transformOptsToQueryString((r==null?void 0:r.transform)||{}),c=a?`?${a}`:"";try{const s=this._getFinalPath(e);return{data:yield(yield zL(this.fetch,`${this.url}/${i}/${s}${c}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(s){if(vl(s))return{data:null,error:s};throw s}})}info(e){return hu(this,void 0,void 0,function*(){const r=this._getFinalPath(e);try{const n=yield zL(this.fetch,`${this.url}/object/info/${r}`,{headers:this.headers});return{data:a6(n),error:null}}catch(n){if(vl(n))return{data:null,error:n};throw n}})}exists(e){return hu(this,void 0,void 0,function*(){const r=this._getFinalPath(e);try{return yield S4e(this.fetch,`${this.url}/object/${r}`,{headers:this.headers}),{data:!0,error:null}}catch(n){if(vl(n)&&n instanceof s6){const i=n.originalError;if([400,404].includes(i==null?void 0:i.status))return{data:!1,error:n}}throw n}})}getPublicUrl(e,r){const n=this._getFinalPath(e),i=[],a=r!=null&&r.download?`download=${r.download===!0?"":r.download}`:"";a!==""&&i.push(a);const s=typeof(r==null?void 0:r.transform)<"u"?"render/image":"object",f=this.transformOptsToQueryString((r==null?void 0:r.transform)||{});f!==""&&i.push(f);let m=i.join("&");return m!==""&&(m=`?${m}`),{data:{publicUrl:encodeURI(`${this.url}/${s}/public/${n}${m}`)}}}remove(e){return hu(this,void 0,void 0,function*(){try{return{data:yield gme(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(r){if(vl(r))return{data:null,error:r};throw r}})}list(e,r,n){return hu(this,void 0,void 0,function*(){try{const i=Object.assign(Object.assign(Object.assign({},T4e),r),{prefix:e||""});return{data:yield Kg(this.fetch,`${this.url}/object/list/${this.bucketId}`,i,{headers:this.headers},n),error:null}}catch(i){if(vl(i))return{data:null,error:i};throw i}})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(e){const r=[];return e.width&&r.push(`width=${e.width}`),e.height&&r.push(`height=${e.height}`),e.resize&&r.push(`resize=${e.resize}`),e.format&&r.push(`format=${e.format}`),e.quality&&r.push(`quality=${e.quality}`),r.join("&")}}const A4e="2.7.1",k4e={"X-Client-Info":`storage-js/${A4e}`};var Ib=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};class C4e{constructor(e,r={},n){this.url=e,this.headers=Object.assign(Object.assign({},k4e),r),this.fetch=mme(n)}listBuckets(){return Ib(this,void 0,void 0,function*(){try{return{data:yield zL(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){if(vl(e))return{data:null,error:e};throw e}})}getBucket(e){return Ib(this,void 0,void 0,function*(){try{return{data:yield zL(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(r){if(vl(r))return{data:null,error:r};throw r}})}createBucket(e,r={public:!1}){return Ib(this,void 0,void 0,function*(){try{return{data:yield Kg(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:r.public,file_size_limit:r.fileSizeLimit,allowed_mime_types:r.allowedMimeTypes},{headers:this.headers}),error:null}}catch(n){if(vl(n))return{data:null,error:n};throw n}})}updateBucket(e,r){return Ib(this,void 0,void 0,function*(){try{return{data:yield w4e(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:r.public,file_size_limit:r.fileSizeLimit,allowed_mime_types:r.allowedMimeTypes},{headers:this.headers}),error:null}}catch(n){if(vl(n))return{data:null,error:n};throw n}})}emptyBucket(e){return Ib(this,void 0,void 0,function*(){try{return{data:yield Kg(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(r){if(vl(r))return{data:null,error:r};throw r}})}deleteBucket(e){return Ib(this,void 0,void 0,function*(){try{return{data:yield gme(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(r){if(vl(r))return{data:null,error:r};throw r}})}}class I4e extends C4e{constructor(e,r={},n){super(e,r,n)}from(e){return new E4e(this.url,this.headers,e,this.fetch)}}const j4e="2.49.10";let U2="";typeof Deno<"u"?U2="deno":typeof document<"u"?U2="web":typeof navigator<"u"&&navigator.product==="ReactNative"?U2="react-native":U2="node";const P4e={"X-Client-Info":`supabase-js-${U2}/${j4e}`},N4e={headers:P4e},R4e={schema:"public"},L4e={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},D4e={};var M4e=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};const O4e=t=>{let e;return t?e=t:typeof fetch>"u"?e=eme:e=fetch,(...r)=>e(...r)},F4e=()=>typeof Headers>"u"?tme:Headers,B4e=(t,e,r)=>{const n=O4e(r),i=F4e();return(a,c)=>M4e(void 0,void 0,void 0,function*(){var s;const f=(s=yield e())!==null&&s!==void 0?s:t;let m=new i(c==null?void 0:c.headers);return m.has("apikey")||m.set("apikey",t),m.has("Authorization")||m.set("Authorization",`Bearer ${f}`),n(a,Object.assign(Object.assign({},c),{headers:m}))})};var z4e=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};function $4e(t){return t.endsWith("/")?t:t+"/"}function U4e(t,e){var r,n;const{db:i,auth:a,realtime:c,global:s}=t,{db:f,auth:m,realtime:x,global:_}=e,T={db:Object.assign(Object.assign({},f),i),auth:Object.assign(Object.assign({},m),a),realtime:Object.assign(Object.assign({},x),c),global:Object.assign(Object.assign(Object.assign({},_),s),{headers:Object.assign(Object.assign({},(r=_==null?void 0:_.headers)!==null&&r!==void 0?r:{}),(n=s==null?void 0:s.headers)!==null&&n!==void 0?n:{})}),accessToken:()=>z4e(this,void 0,void 0,function*(){return""})};return t.accessToken?T.accessToken=t.accessToken:delete T.accessToken,T}const yme="2.69.1",Wb=30*1e3,o6=3,yB=o6*Wb,V4e="http://localhost:9999",q4e="supabase.auth.token",G4e={"X-Client-Info":`gotrue-js/${yme}`},l6="X-Supabase-Api-Version",xme={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},H4e=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,W4e=6e5;class GG extends Error{constructor(e,r,n){super(e),this.__isAuthError=!0,this.name="AuthError",this.status=r,this.code=n}}function Ri(t){return typeof t=="object"&&t!==null&&"__isAuthError"in t}class K4e extends GG{constructor(e,r,n){super(e,r,n),this.name="AuthApiError",this.status=r,this.code=n}}function Y4e(t){return Ri(t)&&t.name==="AuthApiError"}class _me extends GG{constructor(e,r){super(e),this.name="AuthUnknownError",this.originalError=r}}class tx extends GG{constructor(e,r,n,i){super(e,n,i),this.name=r,this.status=n}}class Ug extends tx{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function Z4e(t){return Ri(t)&&t.name==="AuthSessionMissingError"}class xB extends tx{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class nN extends tx{constructor(e){super(e,"AuthInvalidCredentialsError",400,void 0)}}class iN extends tx{constructor(e,r=null){super(e,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=r}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}function X4e(t){return Ri(t)&&t.name==="AuthImplicitGrantRedirectError"}class yee extends tx{constructor(e,r=null){super(e,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=r}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class c6 extends tx{constructor(e,r){super(e,"AuthRetryableFetchError",r,void 0)}}function _B(t){return Ri(t)&&t.name==="AuthRetryableFetchError"}class xee extends tx{constructor(e,r,n){super(e,"AuthWeakPasswordError",r,"weak_password"),this.reasons=n}}class lA extends tx{constructor(e){super(e,"AuthInvalidJwtError",400,"invalid_jwt")}}const _ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),vee=` \r=`.split(""),Q4e=(()=>{const t=new Array(128);for(let e=0;e-1)for(e.queue=e.queue<<6|n,e.queuedBits+=6;e.queuedBits>=8;)r(e.queue>>e.queuedBits-8&255),e.queuedBits-=8;else{if(n===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(t)}"`)}}function bee(t){const e=[],r=c=>{e.push(String.fromCodePoint(c))},n={utf8seq:0,codepoint:0},i={queue:0,queuedBits:0},a=c=>{tBe(c,n,r)};for(let c=0;c>6),e(128|t&63);return}else if(t<=65535){e(224|t>>12),e(128|t>>6&63),e(128|t&63);return}else if(t<=1114111){e(240|t>>18),e(128|t>>12&63),e(128|t>>6&63),e(128|t&63);return}throw new Error(`Unrecognized Unicode codepoint: ${t.toString(16)}`)}function eBe(t,e){for(let r=0;r55295&&n<=56319){const i=(n-55296)*1024&65535;n=(t.charCodeAt(r+1)-56320&65535|i)+65536,r+=1}J4e(n,e)}}function tBe(t,e,r){if(e.utf8seq===0){if(t<=127){r(t);return}for(let n=1;n<6;n+=1)if(!(t>>7-n&1)){e.utf8seq=n;break}if(e.utf8seq===2)e.codepoint=t&31;else if(e.utf8seq===3)e.codepoint=t&15;else if(e.utf8seq===4)e.codepoint=t&7;else throw new Error("Invalid UTF-8 sequence");e.utf8seq-=1}else if(e.utf8seq>0){if(t<=127)throw new Error("Invalid UTF-8 sequence");e.codepoint=e.codepoint<<6|t&63,e.utf8seq-=1,e.utf8seq===0&&r(e.codepoint)}}function rBe(t){const e=[],r={queue:0,queuedBits:0},n=i=>{e.push(i)};for(let i=0;ie.push(r)),new Uint8Array(e)}function iBe(t){return Math.round(Date.now()/1e3)+t}function sBe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t=="x"?e:e&3|8).toString(16)})}const Pf=()=>typeof window<"u"&&typeof document<"u",v0={tested:!1,writable:!1},cA=()=>{if(!Pf())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(v0.tested)return v0.writable;const t=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(t,t),globalThis.localStorage.removeItem(t),v0.tested=!0,v0.writable=!0}catch{v0.tested=!0,v0.writable=!1}return v0.writable};function aBe(t){const e={},r=new URL(t);if(r.hash&&r.hash[0]==="#")try{new URLSearchParams(r.hash.substring(1)).forEach((i,a)=>{e[a]=i})}catch{}return r.searchParams.forEach((n,i)=>{e[i]=n}),e}const bme=t=>{let e;return t?e=t:typeof fetch>"u"?e=(...r)=>$e(async()=>{const{default:n}=await Promise.resolve().then(()=>gS);return{default:n}},void 0).then(({default:n})=>n(...r)):e=fetch,(...r)=>e(...r)},oBe=t=>typeof t=="object"&&t!==null&&"status"in t&&"ok"in t&&"json"in t&&typeof t.json=="function",wme=async(t,e,r)=>{await t.setItem(e,JSON.stringify(r))},sN=async(t,e)=>{const r=await t.getItem(e);if(!r)return null;try{return JSON.parse(r)}catch{return r}},aN=async(t,e)=>{await t.removeItem(e)};class yO{constructor(){this.promise=new yO.promiseConstructor((e,r)=>{this.resolve=e,this.reject=r})}}yO.promiseConstructor=Promise;function vB(t){const e=t.split(".");if(e.length!==3)throw new lA("Invalid JWT structure");for(let n=0;n{setTimeout(()=>e(null),t)})}function cBe(t,e){return new Promise((n,i)=>{(async()=>{for(let a=0;a<1/0;a++)try{const c=await t(a);if(!e(a,null,c)){n(c);return}}catch(c){if(!e(a,c)){i(c);return}}})()})}function uBe(t){return("0"+t.toString(16)).substr(-2)}function dBe(){const e=new Uint32Array(56);if(typeof crypto>"u"){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",n=r.length;let i="";for(let a=0;a<56;a++)i+=r.charAt(Math.floor(Math.random()*n));return i}return crypto.getRandomValues(e),Array.from(e,uBe).join("")}async function hBe(t){const r=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",r),i=new Uint8Array(n);return Array.from(i).map(a=>String.fromCharCode(a)).join("")}async function fBe(t){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),t;const r=await hBe(t);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function jb(t,e,r=!1){const n=dBe();let i=n;r&&(i+="/PASSWORD_RECOVERY"),await wme(t,`${e}-code-verifier`,i);const a=await fBe(n);return[a,n===a?"plain":"s256"]}const pBe=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function mBe(t){const e=t.headers.get(l6);if(!e||!e.match(pBe))return null;try{return new Date(`${e}T00:00:00.0Z`)}catch{return null}}function gBe(t){if(!t)throw new Error("Missing exp claim");const e=Math.floor(Date.now()/1e3);if(t<=e)throw new Error("JWT has expired")}function yBe(t){switch(t){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}var xBe=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);it.msg||t.message||t.error_description||t.error||JSON.stringify(t),_Be=[502,503,504];async function wee(t){var e;if(!oBe(t))throw new c6(P0(t),0);if(_Be.includes(t.status))throw new c6(P0(t),t.status);let r;try{r=await t.json()}catch(a){throw new _me(P0(a),a)}let n;const i=mBe(t);if(i&&i.getTime()>=xme["2024-01-01"].timestamp&&typeof r=="object"&&r&&typeof r.code=="string"?n=r.code:typeof r=="object"&&r&&typeof r.error_code=="string"&&(n=r.error_code),n){if(n==="weak_password")throw new xee(P0(r),t.status,((e=r.weak_password)===null||e===void 0?void 0:e.reasons)||[]);if(n==="session_not_found")throw new Ug}else if(typeof r=="object"&&r&&typeof r.weak_password=="object"&&r.weak_password&&Array.isArray(r.weak_password.reasons)&&r.weak_password.reasons.length&&r.weak_password.reasons.reduce((a,c)=>a&&typeof c=="string",!0))throw new xee(P0(r),t.status,r.weak_password.reasons);throw new K4e(P0(r),t.status||500,n)}const vBe=(t,e,r,n)=>{const i={method:t,headers:(e==null?void 0:e.headers)||{}};return t==="GET"?i:(i.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},e==null?void 0:e.headers),i.body=JSON.stringify(n),Object.assign(Object.assign({},i),r))};async function Xi(t,e,r,n){var i;const a=Object.assign({},n==null?void 0:n.headers);a[l6]||(a[l6]=xme["2024-01-01"].name),n!=null&&n.jwt&&(a.Authorization=`Bearer ${n.jwt}`);const c=(i=n==null?void 0:n.query)!==null&&i!==void 0?i:{};n!=null&&n.redirectTo&&(c.redirect_to=n.redirectTo);const s=Object.keys(c).length?"?"+new URLSearchParams(c).toString():"",f=await bBe(t,e,r+s,{headers:a,noResolveJson:n==null?void 0:n.noResolveJson},{},n==null?void 0:n.body);return n!=null&&n.xform?n==null?void 0:n.xform(f):{data:Object.assign({},f),error:null}}async function bBe(t,e,r,n,i,a){const c=vBe(e,n,i,a);let s;try{s=await t(r,Object.assign({},c))}catch(f){throw console.error(f),new c6(P0(f),0)}if(s.ok||await wee(s),n!=null&&n.noResolveJson)return s;try{return await s.json()}catch(f){await wee(f)}}function Vg(t){var e;let r=null;EBe(t)&&(r=Object.assign({},t),t.expires_at||(r.expires_at=iBe(t.expires_in)));const n=(e=t.user)!==null&&e!==void 0?e:t;return{data:{session:r,user:n},error:null}}function See(t){const e=Vg(t);return!e.error&&t.weak_password&&typeof t.weak_password=="object"&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.message&&typeof t.weak_password.message=="string"&&t.weak_password.reasons.reduce((r,n)=>r&&typeof n=="string",!0)&&(e.data.weak_password=t.weak_password),e}function ty(t){var e;return{data:{user:(e=t.user)!==null&&e!==void 0?e:t},error:null}}function wBe(t){return{data:t,error:null}}function SBe(t){const{action_link:e,email_otp:r,hashed_token:n,redirect_to:i,verification_type:a}=t,c=xBe(t,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),s={action_link:e,email_otp:r,hashed_token:n,redirect_to:i,verification_type:a},f=Object.assign({},c);return{data:{properties:s,user:f},error:null}}function TBe(t){return t}function EBe(t){return t.access_token&&t.refresh_token&&t.expires_in}var ABe=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i0&&(E.forEach(C=>{const N=parseInt(C.split(";")[0].split("=")[1].substring(0,1)),L=JSON.parse(C.split(";")[1].split("=")[1]);m[`${L}Page`]=N}),m.total=parseInt(T)),{data:Object.assign(Object.assign({},_),m),error:null}}catch(m){if(Ri(m))return{data:{users:[]},error:m};throw m}}async getUserById(e){try{return await Xi(this.fetch,"GET",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:ty})}catch(r){if(Ri(r))return{data:{user:null},error:r};throw r}}async updateUserById(e,r){try{return await Xi(this.fetch,"PUT",`${this.url}/admin/users/${e}`,{body:r,headers:this.headers,xform:ty})}catch(n){if(Ri(n))return{data:{user:null},error:n};throw n}}async deleteUser(e,r=!1){try{return await Xi(this.fetch,"DELETE",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:r},xform:ty})}catch(n){if(Ri(n))return{data:{user:null},error:n};throw n}}async _listFactors(e){try{const{data:r,error:n}=await Xi(this.fetch,"GET",`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:i=>({data:{factors:i},error:null})});return{data:r,error:n}}catch(r){if(Ri(r))return{data:null,error:r};throw r}}async _deleteFactor(e){try{return{data:await Xi(this.fetch,"DELETE",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(r){if(Ri(r))return{data:null,error:r};throw r}}}const CBe={getItem:t=>cA()?globalThis.localStorage.getItem(t):null,setItem:(t,e)=>{cA()&&globalThis.localStorage.setItem(t,e)},removeItem:t=>{cA()&&globalThis.localStorage.removeItem(t)}};function Tee(t={}){return{getItem:e=>t[e]||null,setItem:(e,r)=>{t[e]=r},removeItem:e=>{delete t[e]}}}function IBe(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}const Pb={debug:!!(globalThis&&cA()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class Sme extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}}class jBe extends Sme{}async function PBe(t,e,r){Pb.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",t,e);const n=new globalThis.AbortController;return e>0&&setTimeout(()=>{n.abort(),Pb.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",t)},e),await Promise.resolve().then(()=>globalThis.navigator.locks.request(t,e===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:n.signal},async i=>{if(i){Pb.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",t,i.name);try{return await r()}finally{Pb.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",t,i.name)}}else{if(e===0)throw Pb.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",t),new jBe(`Acquiring an exclusive Navigator LockManager lock "${t}" immediately failed`);if(Pb.debug)try{const a=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(a,null," "))}catch(a){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",a)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await r()}}))}IBe();const NBe={url:V4e,storageKey:q4e,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:G4e,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1};async function Eee(t,e,r){return await r()}class rk{constructor(e){var r,n;this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log,this.instanceID=rk.nextInstanceID,rk.nextInstanceID+=1,this.instanceID>0&&Pf()&&console.warn("Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.");const i=Object.assign(Object.assign({},NBe),e);if(this.logDebugMessages=!!i.debug,typeof i.debug=="function"&&(this.logger=i.debug),this.persistSession=i.persistSession,this.storageKey=i.storageKey,this.autoRefreshToken=i.autoRefreshToken,this.admin=new kBe({url:i.url,headers:i.headers,fetch:i.fetch}),this.url=i.url,this.headers=i.headers,this.fetch=bme(i.fetch),this.lock=i.lock||Eee,this.detectSessionInUrl=i.detectSessionInUrl,this.flowType=i.flowType,this.hasCustomAuthorizationHeader=i.hasCustomAuthorizationHeader,i.lock?this.lock=i.lock:Pf()&&(!((r=globalThis==null?void 0:globalThis.navigator)===null||r===void 0)&&r.locks)?this.lock=PBe:this.lock=Eee,this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER,this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)},this.persistSession?i.storage?this.storage=i.storage:cA()?this.storage=CBe:(this.memoryStorage={},this.storage=Tee(this.memoryStorage)):(this.memoryStorage={},this.storage=Tee(this.memoryStorage)),Pf()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(a){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",a)}(n=this.broadcastChannel)===null||n===void 0||n.addEventListener("message",async a=>{this._debug("received broadcast notification from other tab or client",a),await this._notifyAllSubscribers(a.data.event,a.data.session,!1)})}this.initialize()}_debug(...e){return this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${yme}) ${new Date().toISOString()}`,...e),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var e;try{const r=aBe(window.location.href);let n="none";if(this._isImplicitGrantCallback(r)?n="implicit":await this._isPKCECallback(r)&&(n="pkce"),Pf()&&this.detectSessionInUrl&&n!=="none"){const{data:i,error:a}=await this._getSessionFromURL(r,n);if(a){if(this._debug("#_initialize()","error detecting session from URL",a),X4e(a)){const f=(e=a.details)===null||e===void 0?void 0:e.code;if(f==="identity_already_exists"||f==="identity_not_found"||f==="single_identity_not_deletable")return{error:a}}return await this._removeSession(),{error:a}}const{session:c,redirectType:s}=i;return this._debug("#_initialize()","detected session in URL",c,"redirect type",s),await this._saveSession(c),setTimeout(async()=>{s==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",c):await this._notifyAllSubscribers("SIGNED_IN",c)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(r){return Ri(r)?{error:r}:{error:new _me("Unexpected error during initialization",r)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(e){var r,n,i;try{const a=await Xi(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(n=(r=e==null?void 0:e.options)===null||r===void 0?void 0:r.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:(i=e==null?void 0:e.options)===null||i===void 0?void 0:i.captchaToken}},xform:Vg}),{data:c,error:s}=a;if(s||!c)return{data:{user:null,session:null},error:s};const f=c.session,m=c.user;return c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",f)),{data:{user:m,session:f},error:null}}catch(a){if(Ri(a))return{data:{user:null,session:null},error:a};throw a}}async signUp(e){var r,n,i;try{let a;if("email"in e){const{email:x,password:_,options:T}=e;let E=null,C=null;this.flowType==="pkce"&&([E,C]=await jb(this.storage,this.storageKey)),a=await Xi(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:T==null?void 0:T.emailRedirectTo,body:{email:x,password:_,data:(r=T==null?void 0:T.data)!==null&&r!==void 0?r:{},gotrue_meta_security:{captcha_token:T==null?void 0:T.captchaToken},code_challenge:E,code_challenge_method:C},xform:Vg})}else if("phone"in e){const{phone:x,password:_,options:T}=e;a=await Xi(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:x,password:_,data:(n=T==null?void 0:T.data)!==null&&n!==void 0?n:{},channel:(i=T==null?void 0:T.channel)!==null&&i!==void 0?i:"sms",gotrue_meta_security:{captcha_token:T==null?void 0:T.captchaToken}},xform:Vg})}else throw new nN("You must provide either an email or phone number and a password");const{data:c,error:s}=a;if(s||!c)return{data:{user:null,session:null},error:s};const f=c.session,m=c.user;return c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",f)),{data:{user:m,session:f},error:null}}catch(a){if(Ri(a))return{data:{user:null,session:null},error:a};throw a}}async signInWithPassword(e){try{let r;if("email"in e){const{email:a,password:c,options:s}=e;r=await Xi(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:a,password:c,gotrue_meta_security:{captcha_token:s==null?void 0:s.captchaToken}},xform:See})}else if("phone"in e){const{phone:a,password:c,options:s}=e;r=await Xi(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:a,password:c,gotrue_meta_security:{captcha_token:s==null?void 0:s.captchaToken}},xform:See})}else throw new nN("You must provide either an email or phone number and a password");const{data:n,error:i}=r;return i?{data:{user:null,session:null},error:i}:!n||!n.session||!n.user?{data:{user:null,session:null},error:new xB}:(n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers("SIGNED_IN",n.session)),{data:Object.assign({user:n.user,session:n.session},n.weak_password?{weakPassword:n.weak_password}:null),error:i})}catch(r){if(Ri(r))return{data:{user:null,session:null},error:r};throw r}}async signInWithOAuth(e){var r,n,i,a;return await this._handleProviderSignIn(e.provider,{redirectTo:(r=e.options)===null||r===void 0?void 0:r.redirectTo,scopes:(n=e.options)===null||n===void 0?void 0:n.scopes,queryParams:(i=e.options)===null||i===void 0?void 0:i.queryParams,skipBrowserRedirect:(a=e.options)===null||a===void 0?void 0:a.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(e))}async _exchangeCodeForSession(e){const r=await sN(this.storage,`${this.storageKey}-code-verifier`),[n,i]=(r??"").split("/");try{const{data:a,error:c}=await Xi(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:n},xform:Vg});if(await aN(this.storage,`${this.storageKey}-code-verifier`),c)throw c;return!a||!a.session||!a.user?{data:{user:null,session:null,redirectType:null},error:new xB}:(a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),{data:Object.assign(Object.assign({},a),{redirectType:i??null}),error:c})}catch(a){if(Ri(a))return{data:{user:null,session:null,redirectType:null},error:a};throw a}}async signInWithIdToken(e){try{const{options:r,provider:n,token:i,access_token:a,nonce:c}=e,s=await Xi(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:i,access_token:a,nonce:c,gotrue_meta_security:{captcha_token:r==null?void 0:r.captchaToken}},xform:Vg}),{data:f,error:m}=s;return m?{data:{user:null,session:null},error:m}:!f||!f.session||!f.user?{data:{user:null,session:null},error:new xB}:(f.session&&(await this._saveSession(f.session),await this._notifyAllSubscribers("SIGNED_IN",f.session)),{data:f,error:m})}catch(r){if(Ri(r))return{data:{user:null,session:null},error:r};throw r}}async signInWithOtp(e){var r,n,i,a,c;try{if("email"in e){const{email:s,options:f}=e;let m=null,x=null;this.flowType==="pkce"&&([m,x]=await jb(this.storage,this.storageKey));const{error:_}=await Xi(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:s,data:(r=f==null?void 0:f.data)!==null&&r!==void 0?r:{},create_user:(n=f==null?void 0:f.shouldCreateUser)!==null&&n!==void 0?n:!0,gotrue_meta_security:{captcha_token:f==null?void 0:f.captchaToken},code_challenge:m,code_challenge_method:x},redirectTo:f==null?void 0:f.emailRedirectTo});return{data:{user:null,session:null},error:_}}if("phone"in e){const{phone:s,options:f}=e,{data:m,error:x}=await Xi(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:s,data:(i=f==null?void 0:f.data)!==null&&i!==void 0?i:{},create_user:(a=f==null?void 0:f.shouldCreateUser)!==null&&a!==void 0?a:!0,gotrue_meta_security:{captcha_token:f==null?void 0:f.captchaToken},channel:(c=f==null?void 0:f.channel)!==null&&c!==void 0?c:"sms"}});return{data:{user:null,session:null,messageId:m==null?void 0:m.message_id},error:x}}throw new nN("You must provide either an email or phone number.")}catch(s){if(Ri(s))return{data:{user:null,session:null},error:s};throw s}}async verifyOtp(e){var r,n;try{let i,a;"options"in e&&(i=(r=e.options)===null||r===void 0?void 0:r.redirectTo,a=(n=e.options)===null||n===void 0?void 0:n.captchaToken);const{data:c,error:s}=await Xi(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:a}}),redirectTo:i,xform:Vg});if(s)throw s;if(!c)throw new Error("An error occurred on token verification.");const f=c.session,m=c.user;return f!=null&&f.access_token&&(await this._saveSession(f),await this._notifyAllSubscribers(e.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",f)),{data:{user:m,session:f},error:null}}catch(i){if(Ri(i))return{data:{user:null,session:null},error:i};throw i}}async signInWithSSO(e){var r,n,i;try{let a=null,c=null;return this.flowType==="pkce"&&([a,c]=await jb(this.storage,this.storageKey)),await Xi(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in e?{provider_id:e.providerId}:null),"domain"in e?{domain:e.domain}:null),{redirect_to:(n=(r=e.options)===null||r===void 0?void 0:r.redirectTo)!==null&&n!==void 0?n:void 0}),!((i=e==null?void 0:e.options)===null||i===void 0)&&i.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:a,code_challenge_method:c}),headers:this.headers,xform:wBe})}catch(a){if(Ri(a))return{data:null,error:a};throw a}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{const{data:{session:r},error:n}=e;if(n)throw n;if(!r)throw new Ug;const{error:i}=await Xi(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:r.access_token});return{data:{user:null,session:null},error:i}})}catch(e){if(Ri(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{const r=`${this.url}/resend`;if("email"in e){const{email:n,type:i,options:a}=e,{error:c}=await Xi(this.fetch,"POST",r,{headers:this.headers,body:{email:n,type:i,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},redirectTo:a==null?void 0:a.emailRedirectTo});return{data:{user:null,session:null},error:c}}else if("phone"in e){const{phone:n,type:i,options:a}=e,{data:c,error:s}=await Xi(this.fetch,"POST",r,{headers:this.headers,body:{phone:n,type:i,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}}});return{data:{user:null,session:null,messageId:c==null?void 0:c.message_id},error:s}}throw new nN("You must provide either an email or phone number and a type")}catch(r){if(Ri(r))return{data:{user:null,session:null},error:r};throw r}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>this._useSession(async r=>r))}async _acquireLock(e,r){this._debug("#_acquireLock","begin",e);try{if(this.lockAcquired){const n=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),i=(async()=>(await n,await r()))();return this.pendingInLock.push((async()=>{try{await i}catch{}})()),i}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const n=r();for(this.pendingInLock.push((async()=>{try{await n}catch{}})()),await n;this.pendingInLock.length;){const i=[...this.pendingInLock];await Promise.all(i),this.pendingInLock.splice(0,i.length)}return await n}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(e){this._debug("#_useSession","begin");try{const r=await this.__loadSession();return await e(r)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let e=null;const r=await sN(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",r),r!==null&&(this._isValidSession(r)?e=r:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!e)return{data:{session:null},error:null};const n=e.expires_at?e.expires_at*1e3-Date.now()(!c&&m==="user"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),c=!0,this.suppressGetSessionWarning=!0),Reflect.get(f,m,x))})}return{data:{session:e},error:null}}const{session:i,error:a}=await this._callRefreshToken(e.refresh_token);return a?{data:{session:null},error:a}:{data:{session:i},error:null}}finally{this._debug("#__loadSession()","end")}}async getUser(e){return e?await this._getUser(e):(await this.initializePromise,await this._acquireLock(-1,async()=>await this._getUser()))}async _getUser(e){try{return e?await Xi(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:ty}):await this._useSession(async r=>{var n,i,a;const{data:c,error:s}=r;if(s)throw s;return!(!((n=c.session)===null||n===void 0)&&n.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Ug}:await Xi(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(a=(i=c.session)===null||i===void 0?void 0:i.access_token)!==null&&a!==void 0?a:void 0,xform:ty})})}catch(r){if(Ri(r))return Z4e(r)&&(await this._removeSession(),await aN(this.storage,`${this.storageKey}-code-verifier`)),{data:{user:null},error:r};throw r}}async updateUser(e,r={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(e,r))}async _updateUser(e,r={}){try{return await this._useSession(async n=>{const{data:i,error:a}=n;if(a)throw a;if(!i.session)throw new Ug;const c=i.session;let s=null,f=null;this.flowType==="pkce"&&e.email!=null&&([s,f]=await jb(this.storage,this.storageKey));const{data:m,error:x}=await Xi(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:r==null?void 0:r.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:s,code_challenge_method:f}),jwt:c.access_token,xform:ty});if(x)throw x;return c.user=m.user,await this._saveSession(c),await this._notifyAllSubscribers("USER_UPDATED",c),{data:{user:c.user},error:null}})}catch(n){if(Ri(n))return{data:{user:null},error:n};throw n}}async setSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new Ug;const r=Date.now()/1e3;let n=r,i=!0,a=null;const{payload:c}=vB(e.access_token);if(c.exp&&(n=c.exp,i=n<=r),i){const{session:s,error:f}=await this._callRefreshToken(e.refresh_token);if(f)return{data:{user:null,session:null},error:f};if(!s)return{data:{user:null,session:null},error:null};a=s}else{const{data:s,error:f}=await this._getUser(e.access_token);if(f)throw f;a={access_token:e.access_token,refresh_token:e.refresh_token,user:s.user,token_type:"bearer",expires_in:n-r,expires_at:n},await this._saveSession(a),await this._notifyAllSubscribers("SIGNED_IN",a)}return{data:{user:a.user,session:a},error:null}}catch(r){if(Ri(r))return{data:{session:null,user:null},error:r};throw r}}async refreshSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async r=>{var n;if(!e){const{data:c,error:s}=r;if(s)throw s;e=(n=c.session)!==null&&n!==void 0?n:void 0}if(!(e!=null&&e.refresh_token))throw new Ug;const{session:i,error:a}=await this._callRefreshToken(e.refresh_token);return a?{data:{user:null,session:null},error:a}:i?{data:{user:i.user,session:i},error:null}:{data:{user:null,session:null},error:null}})}catch(r){if(Ri(r))return{data:{user:null,session:null},error:r};throw r}}async _getSessionFromURL(e,r){try{if(!Pf())throw new iN("No browser detected.");if(e.error||e.error_description||e.error_code)throw new iN(e.error_description||"Error in URL with unspecified error_description",{error:e.error||"unspecified_error",code:e.error_code||"unspecified_code"});switch(r){case"implicit":if(this.flowType==="pkce")throw new yee("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new iN("Not a valid implicit grant flow url.");break;default:}if(r==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!e.code)throw new yee("No code detected.");const{data:D,error:B}=await this._exchangeCodeForSession(e.code);if(B)throw B;const V=new URL(window.location.href);return V.searchParams.delete("code"),window.history.replaceState(window.history.state,"",V.toString()),{data:{session:D.session,redirectType:null},error:null}}const{provider_token:n,provider_refresh_token:i,access_token:a,refresh_token:c,expires_in:s,expires_at:f,token_type:m}=e;if(!a||!s||!c||!m)throw new iN("No session defined in URL");const x=Math.round(Date.now()/1e3),_=parseInt(s);let T=x+_;f&&(T=parseInt(f));const E=T-x;E*1e3<=Wb&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${E}s, should have been closer to ${_}s`);const C=T-_;x-C>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",C,T,x):x-C<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",C,T,x);const{data:N,error:L}=await this._getUser(a);if(L)throw L;const M={provider_token:n,provider_refresh_token:i,access_token:a,expires_in:_,expires_at:T,refresh_token:c,token_type:m,user:N.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),{data:{session:M,redirectType:e.type},error:null}}catch(n){if(Ri(n))return{data:{session:null,redirectType:null},error:n};throw n}}_isImplicitGrantCallback(e){return!!(e.access_token||e.error_description)}async _isPKCECallback(e){const r=await sN(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&r)}async signOut(e={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:"global"}){return await this._useSession(async r=>{var n;const{data:i,error:a}=r;if(a)return{error:a};const c=(n=i.session)===null||n===void 0?void 0:n.access_token;if(c){const{error:s}=await this.admin.signOut(c,e);if(s&&!(Y4e(s)&&(s.status===404||s.status===401||s.status===403)))return{error:s}}return e!=="others"&&(await this._removeSession(),await aN(this.storage,`${this.storageKey}-code-verifier`)),{error:null}})}onAuthStateChange(e){const r=sBe(),n={id:r,callback:e,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",r),this.stateChangeEmitters.delete(r)}};return this._debug("#onAuthStateChange()","registered callback with id",r),this.stateChangeEmitters.set(r,n),(async()=>(await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(r)})))(),{data:{subscription:n}}}async _emitInitialSession(e){return await this._useSession(async r=>{var n,i;try{const{data:{session:a},error:c}=r;if(c)throw c;await((n=this.stateChangeEmitters.get(e))===null||n===void 0?void 0:n.callback("INITIAL_SESSION",a)),this._debug("INITIAL_SESSION","callback id",e,"session",a)}catch(a){await((i=this.stateChangeEmitters.get(e))===null||i===void 0?void 0:i.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",e,"error",a),console.error(a)}})}async resetPasswordForEmail(e,r={}){let n=null,i=null;this.flowType==="pkce"&&([n,i]=await jb(this.storage,this.storageKey,!0));try{return await Xi(this.fetch,"POST",`${this.url}/recover`,{body:{email:e,code_challenge:n,code_challenge_method:i,gotrue_meta_security:{captcha_token:r.captchaToken}},headers:this.headers,redirectTo:r.redirectTo})}catch(a){if(Ri(a))return{data:null,error:a};throw a}}async getUserIdentities(){var e;try{const{data:r,error:n}=await this.getUser();if(n)throw n;return{data:{identities:(e=r.user.identities)!==null&&e!==void 0?e:[]},error:null}}catch(r){if(Ri(r))return{data:null,error:r};throw r}}async linkIdentity(e){var r;try{const{data:n,error:i}=await this._useSession(async a=>{var c,s,f,m,x;const{data:_,error:T}=a;if(T)throw T;const E=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:(c=e.options)===null||c===void 0?void 0:c.redirectTo,scopes:(s=e.options)===null||s===void 0?void 0:s.scopes,queryParams:(f=e.options)===null||f===void 0?void 0:f.queryParams,skipBrowserRedirect:!0});return await Xi(this.fetch,"GET",E,{headers:this.headers,jwt:(x=(m=_.session)===null||m===void 0?void 0:m.access_token)!==null&&x!==void 0?x:void 0})});if(i)throw i;return Pf()&&!(!((r=e.options)===null||r===void 0)&&r.skipBrowserRedirect)&&window.location.assign(n==null?void 0:n.url),{data:{provider:e.provider,url:n==null?void 0:n.url},error:null}}catch(n){if(Ri(n))return{data:{provider:e.provider,url:null},error:n};throw n}}async unlinkIdentity(e){try{return await this._useSession(async r=>{var n,i;const{data:a,error:c}=r;if(c)throw c;return await Xi(this.fetch,"DELETE",`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:(i=(n=a.session)===null||n===void 0?void 0:n.access_token)!==null&&i!==void 0?i:void 0})})}catch(r){if(Ri(r))return{data:null,error:r};throw r}}async _refreshAccessToken(e){const r=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(r,"begin");try{const n=Date.now();return await cBe(async i=>(i>0&&await lBe(200*Math.pow(2,i-1)),this._debug(r,"refreshing attempt",i),await Xi(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:Vg})),(i,a)=>{const c=200*Math.pow(2,i);return a&&_B(a)&&Date.now()+c-n{try{await s.callback(e,r)}catch(f){a.push(f)}});if(await Promise.all(c),a.length>0){for(let s=0;sthis._autoRefreshTokenTick(),Wb);this.autoRefreshTicker=e,e&&typeof e=="object"&&typeof e.unref=="function"?e.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(e),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const e=Date.now();try{return await this._useSession(async r=>{const{data:{session:n}}=r;if(!n||!n.refresh_token||!n.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const i=Math.floor((n.expires_at*1e3-e)/Wb);this._debug("#_autoRefreshTokenTick()",`access token expires in ${i} ticks, a tick lasts ${Wb}ms, refresh threshold is ${o6} ticks`),i<=o6&&await this._callRefreshToken(n.refresh_token)})}catch(r){console.error("Auto refresh tick failed with error. This is likely a transient error.",r)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(e){if(e.isAcquireTimeout||e instanceof Sme)this._debug("auto refresh token tick lock not available");else throw e}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Pf()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error("_handleVisibilityChange",e)}}async _onVisibilityChanged(e){const r=`#_onVisibilityChanged(${e})`;this._debug(r,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),e||(await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(r,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,r,n){const i=[`provider=${encodeURIComponent(r)}`];if(n!=null&&n.redirectTo&&i.push(`redirect_to=${encodeURIComponent(n.redirectTo)}`),n!=null&&n.scopes&&i.push(`scopes=${encodeURIComponent(n.scopes)}`),this.flowType==="pkce"){const[a,c]=await jb(this.storage,this.storageKey),s=new URLSearchParams({code_challenge:`${encodeURIComponent(a)}`,code_challenge_method:`${encodeURIComponent(c)}`});i.push(s.toString())}if(n!=null&&n.queryParams){const a=new URLSearchParams(n.queryParams);i.push(a.toString())}return n!=null&&n.skipBrowserRedirect&&i.push(`skip_http_redirect=${n.skipBrowserRedirect}`),`${e}?${i.join("&")}`}async _unenroll(e){try{return await this._useSession(async r=>{var n;const{data:i,error:a}=r;return a?{data:null,error:a}:await Xi(this.fetch,"DELETE",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:(n=i==null?void 0:i.session)===null||n===void 0?void 0:n.access_token})})}catch(r){if(Ri(r))return{data:null,error:r};throw r}}async _enroll(e){try{return await this._useSession(async r=>{var n,i;const{data:a,error:c}=r;if(c)return{data:null,error:c};const s=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},e.factorType==="phone"?{phone:e.phone}:{issuer:e.issuer}),{data:f,error:m}=await Xi(this.fetch,"POST",`${this.url}/factors`,{body:s,headers:this.headers,jwt:(n=a==null?void 0:a.session)===null||n===void 0?void 0:n.access_token});return m?{data:null,error:m}:(e.factorType==="totp"&&(!((i=f==null?void 0:f.totp)===null||i===void 0)&&i.qr_code)&&(f.totp.qr_code=`data:image/svg+xml;utf-8,${f.totp.qr_code}`),{data:f,error:null})})}catch(r){if(Ri(r))return{data:null,error:r};throw r}}async _verify(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async r=>{var n;const{data:i,error:a}=r;if(a)return{data:null,error:a};const{data:c,error:s}=await Xi(this.fetch,"POST",`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:(n=i==null?void 0:i.session)===null||n===void 0?void 0:n.access_token});return s?{data:null,error:s}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+c.expires_in},c)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",c),{data:c,error:s})})}catch(r){if(Ri(r))return{data:null,error:r};throw r}})}async _challenge(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async r=>{var n;const{data:i,error:a}=r;return a?{data:null,error:a}:await Xi(this.fetch,"POST",`${this.url}/factors/${e.factorId}/challenge`,{body:{channel:e.channel},headers:this.headers,jwt:(n=i==null?void 0:i.session)===null||n===void 0?void 0:n.access_token})})}catch(r){if(Ri(r))return{data:null,error:r};throw r}})}async _challengeAndVerify(e){const{data:r,error:n}=await this._challenge({factorId:e.factorId});return n?{data:null,error:n}:await this._verify({factorId:e.factorId,challengeId:r.id,code:e.code})}async _listFactors(){const{data:{user:e},error:r}=await this.getUser();if(r)return{data:null,error:r};const n=(e==null?void 0:e.factors)||[],i=n.filter(c=>c.factor_type==="totp"&&c.status==="verified"),a=n.filter(c=>c.factor_type==="phone"&&c.status==="verified");return{data:{all:n,totp:i,phone:a},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,async()=>await this._useSession(async e=>{var r,n;const{data:{session:i},error:a}=e;if(a)return{data:null,error:a};if(!i)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:c}=vB(i.access_token);let s=null;c.aal&&(s=c.aal);let f=s;((n=(r=i.user.factors)===null||r===void 0?void 0:r.filter(_=>_.status==="verified"))!==null&&n!==void 0?n:[]).length>0&&(f="aal2");const x=c.amr||[];return{data:{currentLevel:s,nextLevel:f,currentAuthenticationMethods:x},error:null}}))}async fetchJwk(e,r={keys:[]}){let n=r.keys.find(c=>c.kid===e);if(n||(n=this.jwks.keys.find(c=>c.kid===e),n&&this.jwks_cached_at+W4e>Date.now()))return n;const{data:i,error:a}=await Xi(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(a)throw a;if(!i.keys||i.keys.length===0)throw new lA("JWKS is empty");if(this.jwks=i,this.jwks_cached_at=Date.now(),n=i.keys.find(c=>c.kid===e),!n)throw new lA("No matching signing key found in JWKS");return n}async getClaims(e,r={keys:[]}){try{let n=e;if(!n){const{data:E,error:C}=await this.getSession();if(C||!E.session)return{data:null,error:C};n=E.session.access_token}const{header:i,payload:a,signature:c,raw:{header:s,payload:f}}=vB(n);if(gBe(a.exp),!i.kid||i.alg==="HS256"||!("crypto"in globalThis&&"subtle"in globalThis.crypto)){const{error:E}=await this.getUser(n);if(E)throw E;return{data:{claims:a,header:i,signature:c},error:null}}const m=yBe(i.alg),x=await this.fetchJwk(i.kid,r),_=await crypto.subtle.importKey("jwk",x,m,!0,["verify"]);if(!await crypto.subtle.verify(m,_,c,nBe(`${s}.${f}`)))throw new lA("Invalid JWT signature");return{data:{claims:a,header:i,signature:c},error:null}}catch(n){if(Ri(n))return{data:null,error:n};throw n}}}rk.nextInstanceID=0;const RBe=rk;class LBe extends RBe{constructor(e){super(e)}}var DBe=function(t,e,r,n){function i(a){return a instanceof r?a:new r(function(c){c(a)})}return new(r||(r=Promise))(function(a,c){function s(x){try{m(n.next(x))}catch(_){c(_)}}function f(x){try{m(n.throw(x))}catch(_){c(_)}}function m(x){x.done?a(x.value):i(x.value).then(s,f)}m((n=n.apply(t,e||[])).next())})};class MBe{constructor(e,r,n){var i,a,c;if(this.supabaseUrl=e,this.supabaseKey=r,!e)throw new Error("supabaseUrl is required.");if(!r)throw new Error("supabaseKey is required.");const s=$4e(e),f=new URL(s);this.realtimeUrl=new URL("realtime/v1",f),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",f),this.storageUrl=new URL("storage/v1",f),this.functionsUrl=new URL("functions/v1",f);const m=`sb-${f.hostname.split(".")[0]}-auth-token`,x={db:R4e,realtime:D4e,auth:Object.assign(Object.assign({},L4e),{storageKey:m}),global:N4e},_=U4e(n??{},x);this.storageKey=(i=_.auth.storageKey)!==null&&i!==void 0?i:"",this.headers=(a=_.global.headers)!==null&&a!==void 0?a:{},_.accessToken?(this.accessToken=_.accessToken,this.auth=new Proxy({},{get:(T,E)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(E)} is not possible`)}})):this.auth=this._initSupabaseAuthClient((c=_.auth)!==null&&c!==void 0?c:{},this.headers,_.global.fetch),this.fetch=B4e(r,this._getAccessToken.bind(this),_.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers,accessToken:this._getAccessToken.bind(this)},_.realtime)),this.rest=new t4e(new URL("rest/v1",f).href,{headers:this.headers,schema:_.db.schema,fetch:this.fetch}),_.accessToken||this._listenForAuthEvents()}get functions(){return new P5e(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}get storage(){return new I4e(this.storageUrl.href,this.headers,this.fetch)}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,r={},n={}){return this.rest.rpc(e,r,n)}channel(e,r={config:{}}){return this.realtime.channel(e,r)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var e,r;return DBe(this,void 0,void 0,function*(){if(this.accessToken)return yield this.accessToken();const{data:n}=yield this.auth.getSession();return(r=(e=n.session)===null||e===void 0?void 0:e.access_token)!==null&&r!==void 0?r:null})}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:r,detectSessionInUrl:n,storage:i,storageKey:a,flowType:c,lock:s,debug:f},m,x){const _={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new LBe({url:this.authUrl.href,headers:Object.assign(Object.assign({},_),m),storageKey:a,autoRefreshToken:e,persistSession:r,detectSessionInUrl:n,storage:i,flowType:c,lock:s,debug:f,fetch:x,hasCustomAuthorizationHeader:"Authorization"in this.headers})}_initRealtimeClient(e){return new m4e(this.realtimeUrl.href,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},e==null?void 0:e.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((r,n)=>{this._handleTokenChanged(r,"CLIENT",n==null?void 0:n.access_token)})}_handleTokenChanged(e,r,n){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==n?this.changedAccessToken=n:e==="SIGNED_OUT"&&(this.realtime.setAuth(),r=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const OBe=(t,e,r)=>new MBe(t,e,r);function FBe(){var L,M;if(typeof window>"u")return;const t=location.hostname,r=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(D=>t===D||t.endsWith("."+D)),n="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",i=r?((L=t.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+n+")(?:-dev)?(?=\\.|$)","i")))==null?void 0:L[1])??((M=t.match(new RegExp("^("+n+")(?=[.-])","i")))==null?void 0:M[1]):void 0,a=window.parent&&window.parent!==window;if(!i||!a)return localStorage;const c=t.endsWith(".lovableproject-dev.com")||t.endsWith(".gpt-eng.com"),s=c?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,f=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),m=f&&s.test(f)?[f]:c?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],x="lovable-preview-auth:result",_=2e3,T=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),E=(D,B,V)=>new Promise(G=>{const W=T();let Z=!1,Q;const se=be=>{Z||(Z=!0,clearTimeout(Q),window.removeEventListener("message",ie),G(be))},ie=be=>{if(m.indexOf(be.origin)<0)return;const Te=be.data;Te&&Te.type===x&&Te.requestId===W&&se(Te)};window.addEventListener("message",ie);const ue={type:D,requestId:W,projectId:i,key:B};V!==void 0&&(ue.value=V);for(const be of m)window.parent.postMessage(ue,be);Q=setTimeout(()=>se(null),_)});let C=!0;const N=250;return{getItem:async D=>{let B=await E("lovable-preview-auth:get",D);return!B&&C&&(await new Promise(V=>setTimeout(V,N)),B=await E("lovable-preview-auth:get",D)),C=!1,B&&B.ok&&typeof B.value=="string"?B.value===""?(localStorage.removeItem(D),null):B.value:localStorage.getItem(D)},setItem:(D,B)=>(localStorage.setItem(D,B),E("lovable-preview-auth:set",D,B).then(V=>{V&&V.ok&&typeof V.value=="string"&&localStorage.getItem(D)===B&&(V.value===""?localStorage.removeItem(D):localStorage.setItem(D,V.value))})),removeItem:D=>(localStorage.removeItem(D),E("lovable-preview-auth:remove",D).then(()=>{}))}}const BBe="https://relzejiswnotikjgvjhz.supabase.co",zBe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJlbHplamlzd25vdGlramd2amh6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjE5NTAzNDQsImV4cCI6MjA3NzUyNjM0NH0.dzIkIr_oFSbFE3oWS0ktIr83iKHHkZxt40Gc7SpC_mM",De=OBe(BBe,zBe,{auth:{storage:FBe(),persistSession:!0,autoRefreshToken:!0}}),C$t=Object.freeze(Object.defineProperty({__proto__:null,supabase:De},Symbol.toStringTag,{value:"Module"})),Tme=P.createContext(void 0),$Be=({children:t})=>{const[e,r]=P.useState(null),[n,i]=P.useState(null),[a,c]=P.useState(!0),[s,f]=P.useState(!0),[m,x]=P.useState(!1),[_,T]=P.useState(!1),[E,C]=P.useState(!1),[N,L]=P.useState(null),[M,D]=P.useState([]),[B,V]=P.useState(null),G=P.useRef(null),W=P.useRef(!1),Z=P.useRef(!1),Q=$a(),se=()=>{x(!1),T(!1),C(!1),L(null),D([]),V(null),G.current=null,W.current=!1},ie=async we=>{if(W.current&&G.current===we||Z.current)return;Z.current=!0,f(!0);const Oe=window.setTimeout(()=>{console.warn("Role check timeout reached — unblocking UI."),Z.current=!1,f(!1)},8e3);try{console.log("Checking roles via RPC for user:",we);const[{data:Ae,error:Se},{data:ge,error:je},{data:_e,error:xe}]=await Promise.all([De.rpc("has_role",{_user_id:we,_role:"admin"}),De.rpc("has_role",{_user_id:we,_role:"brokerage_manager"}),De.rpc("has_role",{_user_id:we,_role:"coach"})]);if(Se||je)console.error("Role RPC errors:",{isAdminError:Se,isBrokerError:je,isCoachError:xe}),x(!1),T(!1),C(!1);else{const at=!!Ae,lt=!!ge,xt=!!_e;console.log("RPC roles result:",{adminValue:at,brokerValue:lt,coachValue:xt}),x(at),T(lt),C(xt)}G.current=we,W.current=!0,window.clearTimeout(Oe),f(!1);const{data:Pe,error:Ze}=await De.from("profiles").select("brokerage_id, is_paused, paused_reason").eq("id",we).single();if(!Ze&&(Pe!=null&&Pe.is_paused)){const at=Pe.paused_reason;try{sessionStorage.setItem("accountPausedReason",at||"")}catch{}await De.auth.signOut(),se(),Q("/auth?paused=1",{replace:!0});return}if(L(!Ze&&Pe?Pe.brokerage_id:null),ge){console.log("Fetching managed brokerages for user:",we);const{data:at,error:lt}=await De.from("brokerage_manager_assignments").select("brokerage_id").eq("user_id",we);if(console.log("Managed brokerage assignments result:",{assignments:at,assignmentsError:lt}),lt||!at){console.error("Error fetching managed brokerage assignments:",lt),D([]);return}const xt=Array.from(new Set(at.map(Rt=>Rt.brokerage_id).filter(Boolean)));if(xt.length===0){D([]);return}const{data:St,error:Xt}=await De.from("brokerages").select("id, name").in("id",xt);if(console.log("Managed brokerages details result:",{brokeragesData:St,brokeragesError:Xt}),Xt||!St){console.error("Error fetching managed brokerages details:",Xt),D([]);return}const _t=St.map(Rt=>({id:Rt.id,name:Rt.name})).sort((Rt,er)=>xt.indexOf(Rt.id)-xt.indexOf(er.id));console.log("Parsed managed brokerages:",_t),D(_t),_t.length>0&&V(Rt=>Rt??_t[0].id)}else console.log("User is not a brokerage manager, skipping managed brokerages fetch"),D([]);G.current=we,W.current=!0}catch(Ae){console.error("Unexpected error in checkRoles:",Ae),se()}finally{window.clearTimeout(Oe),Z.current=!1,f(!1)}};P.useEffect(()=>{let we=!0,Oe=!1;const Ae=()=>{!we||Oe||(Oe=!0,c(!1))},{data:{subscription:Se}}=De.auth.onAuthStateChange((je,_e)=>{console.log("Auth event:",je),we&&(i(_e),r((_e==null?void 0:_e.user)??null),Ae(),je==="PASSWORD_RECOVERY"&&(console.log("Password recovery detected, redirecting to profile"),setTimeout(()=>{Q("/profile?reset=true")},100)),_e!=null&&_e.user?(!W.current||G.current!==_e.user.id)&&setTimeout(()=>{ie(_e.user.id)},0):(se(),f(!1)))}),ge=window.setTimeout(()=>{console.warn("Auth initialization timeout reached. Continuing without blocking UI."),Ae()},8e3);return()=>{we=!1,window.clearTimeout(ge),Se.unsubscribe()}},[]);const ue=async(we,Oe)=>{var je;const Ae=(we||"").trim().toLowerCase(),{data:Se,error:ge}=await De.auth.signInWithPassword({email:Ae,password:Oe});if(ge)throw Jt.error(/invalid login credentials/i.test(ge.message)?`That email and password don't match an account. Check the email address, or use "Forgot password" to set a new password.`:ge.message),ge;if((je=Se.user)!=null&&je.id){const{data:_e}=await De.from("profiles").select("is_paused, paused_reason").eq("id",Se.user.id).maybeSingle();if(_e!=null&&_e.is_paused){const xe=_e.paused_reason||"";try{sessionStorage.setItem("accountPausedReason",xe)}catch{}await De.auth.signOut(),se(),r(null),i(null);const Pe=new Error(xe?`Your account is paused. ${xe}`:"Your account is paused. Please contact LevelUp support to reactivate it.");throw Pe.name="AccountPaused",Jt.error(Pe.message),Pe}}Jt.success("Welcome back!")},be=async(we,Oe,Ae)=>{var xe;const Se="https://dashboard.relevelup.com/dashboard",ge=localStorage.getItem("levelup_referral_code")||null,{data:je,error:_e}=await De.auth.signUp({email:we,password:Oe,options:{emailRedirectTo:Se,data:{name:Ae,referred_by_code:ge}}});if(_e)throw Jt.error(_e.message),_e;if(ge&&((xe=je.user)!=null&&xe.id))try{await De.from("profiles").update({referred_by_code:ge}).eq("id",je.user.id),localStorage.removeItem("levelup_referral_code")}catch(Pe){console.warn("Failed to attach referral code to profile",Pe)}Jt.success("Account created! Welcome to LevelUp."),Q("/dashboard")},Te=async()=>{try{const{data:{session:we}}=await De.auth.getSession();if(we){const{error:Oe}=await De.auth.signOut();Oe?Oe.message==="Auth session missing!"?console.warn("Sign out warning (ignored):",Oe.message):(console.error("Sign out error:",Oe),Jt.error(Oe.message)):Jt.success("Signed out successfully")}else console.log("No active session found, redirecting to auth");r(null),i(null),x(!1),T(!1),L(null),D([]),V(null),Q("/auth")}catch(we){console.error("Unexpected sign out error:",we),Q("/auth")}};return o.jsx(Tme.Provider,{value:{user:e,session:n,loading:a,rolesLoading:s,signIn:ue,signUp:be,signOut:Te,isAdmin:m,isBrokerageManager:_,isCoach:E,brokerageId:N,managedBrokerages:M,selectedBrokerageId:B,setSelectedBrokerageId:V},children:t})},$n=()=>{const t=P.useContext(Tme);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t},Eme=P.createContext({onlineUsers:[],totalOnline:0}),UBe=3*60*1e3,VBe=45*1e3,qBe=30*1e3,GBe=({children:t})=>{const{user:e,brokerageId:r,isAdmin:n}=$n(),[i,a]=P.useState([]),c=P.useRef(new Date().toISOString()),s=P.useCallback(async()=>{e&&await De.from("user_presence").upsert({user_id:e.id,last_seen_at:new Date().toISOString(),online_since:c.current,current_path:window.location.pathname},{onConflict:"user_id"})},[e==null?void 0:e.id]),f=P.useCallback(async()=>{if(!e)return;const x=new Date(Date.now()-UBe).toISOString(),{data:_}=await De.from("user_presence").select("user_id, last_seen_at, online_since").gte("last_seen_at",x).order("last_seen_at",{ascending:!1}).limit(200);if(!(_!=null&&_.length)){a([]);return}const T=_.map(N=>N.user_id),{data:E}=await De.from("profiles").select("id, name, email, avatar_url, brokerage_id").in("id",T),C=new Map((E||[]).map(N=>[N.id,N]));a(_.map(N=>{var M;const L=C.get(N.user_id);return{id:N.user_id,name:(L==null?void 0:L.name)||((M=L==null?void 0:L.email)==null?void 0:M.split("@")[0])||"Member",avatarUrl:(L==null?void 0:L.avatar_url)||void 0,brokerageId:(L==null?void 0:L.brokerage_id)||void 0,onlineSince:N.online_since||N.last_seen_at}}))},[e==null?void 0:e.id]);P.useEffect(()=>{if(!e){a([]);return}c.current=new Date().toISOString();let x=!1;const _=async()=>{x||(await s(),await f())};_();const T=window.setInterval(()=>{s()},VBe),E=window.setInterval(()=>{f()},qBe),C=()=>{document.visibilityState==="visible"&&_()};return document.addEventListener("visibilitychange",C),()=>{x=!0,window.clearInterval(T),window.clearInterval(E),document.removeEventListener("visibilitychange",C)}},[e==null?void 0:e.id,s,f]);const m=i.filter(x=>!!(x.id===(e==null?void 0:e.id)||n||r&&x.brokerageId===r||!r&&!x.brokerageId));return o.jsx(Eme.Provider,{value:{onlineUsers:m,totalOnline:m.length},children:t})},I$t=()=>P.useContext(Eme),Ame=P.createContext(void 0),b0="levelup_admin_session",Lg="levelup_impersonation",bB="levelup_impersonation_return",HBe=({children:t})=>{const[e,r]=P.useState(!1),[n,i]=P.useState(null),[a,c]=P.useState(!1);P.useEffect(()=>{const m=sessionStorage.getItem(Lg);if(m)try{const x=JSON.parse(m);r(!0),i(x)}catch{sessionStorage.removeItem(Lg)}},[]);const s=async(m,x)=>{c(!0);try{const{data:{session:_}}=await De.auth.getSession();if(!_)return Jt.error("No active session found"),!1;const T={access_token:_.access_token,refresh_token:_.refresh_token};sessionStorage.setItem(b0,JSON.stringify(T)),x&&sessionStorage.setItem(bB,x);const E=await fetch("https://relzejiswnotikjgvjhz.supabase.co/functions/v1/impersonate-user",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${_.access_token}`},body:JSON.stringify({targetUserId:m})}),C=await E.json();if(!E.ok)throw new Error(C.error||"Failed to impersonate user");const N={id:C.targetUser.id,name:C.targetUser.name,email:C.targetUser.email};if(sessionStorage.setItem(Lg,JSON.stringify(N)),C.method==="session"){const{error:L}=await De.auth.setSession({access_token:C.access_token,refresh_token:C.refresh_token});if(L)throw console.error("Set session error:",L),sessionStorage.removeItem(b0),sessionStorage.removeItem(Lg),new Error("Failed to establish impersonation session")}else{const L=C.type||"recovery",{error:M}=await De.auth.verifyOtp({token_hash:C.token_hash,type:L});if(M)throw console.error("Verify OTP error:",M),sessionStorage.removeItem(b0),sessionStorage.removeItem(Lg),new Error("Failed to establish impersonation session")}return r(!0),i(N),Jt.success(`Now viewing as ${N.name}`),window.location.href="/dashboard",!0}catch(_){return console.error("Impersonation error:",_),Jt.error(_.message||"Failed to impersonate user"),sessionStorage.removeItem(b0),sessionStorage.removeItem(Lg),!1}finally{c(!1)}},f=async()=>{c(!0);try{const m=sessionStorage.getItem(b0);if(!m){await De.auth.signOut(),window.location.href="/auth";return}const x=JSON.parse(m);await De.auth.signOut();const{error:_}=await De.auth.setSession({access_token:x.access_token,refresh_token:x.refresh_token});if(sessionStorage.removeItem(b0),sessionStorage.removeItem(Lg),_){console.error("Failed to restore admin session:",_),Jt.error("Admin session expired, please sign in again"),window.location.href="/auth";return}r(!1),i(null),Jt.success("Returned to your account");const T=sessionStorage.getItem(bB)||"/admin/members";sessionStorage.removeItem(bB),window.location.href=T}catch(m){console.error("Stop impersonation error:",m),Jt.error("Failed to restore admin session"),sessionStorage.removeItem(b0),sessionStorage.removeItem(Lg),window.location.href="/auth"}finally{c(!1)}};return o.jsx(Ame.Provider,{value:{isImpersonating:e,impersonatedUser:n,startImpersonation:s,stopImpersonation:f,isLoading:a},children:t})},kme=()=>{const t=P.useContext(Ame);if(t===void 0)throw new Error("useImpersonation must be used within an ImpersonationProvider");return t},WBe=()=>{const{isImpersonating:t,impersonatedUser:e,stopImpersonation:r,isLoading:n}=kme();return!t||!e?null:o.jsx("div",{className:"fixed top-0 left-0 right-0 z-[100] bg-amber-500 text-amber-950 px-4 py-2 shadow-lg",children:o.jsxs("div",{className:"container mx-auto flex items-center justify-between gap-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(SC,{className:"h-5 w-5 flex-shrink-0"}),o.jsxs("span",{className:"font-medium text-sm md:text-base",children:[o.jsx("span",{className:"hidden sm:inline",children:"You are viewing as "}),o.jsx("strong",{children:e.name}),o.jsxs("span",{className:"hidden md:inline text-amber-800",children:[" (",e.email,")"]})]})]}),o.jsx(Kt,{size:"sm",variant:"secondary",onClick:r,disabled:n,className:"bg-amber-100 hover:bg-amber-200 text-amber-950 border-0",children:n?o.jsx(ku,{className:"h-4 w-4 animate-spin"}):o.jsxs(o.Fragment,{children:[o.jsx(Zs,{className:"h-4 w-4 mr-1"}),o.jsx("span",{className:"hidden sm:inline",children:"Exit Impersonation"}),o.jsx("span",{className:"sm:hidden",children:"Exit"})]})})]})})},Cme=P.createContext(void 0),Nb="levelup_acting_as",oN="levelup_acting_as_self",KBe=({children:t})=>{const{user:e}=$n(),[r,n]=P.useState(!1),[i,a]=P.useState([]),[c,s]=P.useState(null),[f,m]=P.useState({}),[x,_]=P.useState(!0),[T,E]=P.useState(()=>sessionStorage.getItem(oN)==="true");P.useEffect(()=>{if(!(e!=null&&e.id)){n(!1),a([]),s(null),m({}),_(!1);return}(async()=>{_(!0);try{const{data:B}=await De.rpc("has_role",{_user_id:e.id,_role:"assistant"});if(!B){n(!1),a([]),s(null),m({}),_(!1);return}n(!0);const{data:V,error:G}=await De.from("agent_assistant_assignments").select("agent_id, permissions").eq("assistant_id",e.id);if(G||!V||V.length===0){a([]),_(!1);return}const W=V.map(se=>se.agent_id),{data:Z}=await De.from("profiles").select("id, name, email, avatar_url").in("id",W),Q=(Z||[]).map(se=>({id:se.id,name:se.name||se.email||"Unknown",email:se.email||"",avatar_url:se.avatar_url}));if(a(Q),sessionStorage.getItem(oN)==="true")E(!0),s(null),m({});else{const se=sessionStorage.getItem(Nb);if(se){const ie=Q.find(ue=>ue.id===se);if(ie){s(ie);const ue=V.find(be=>be.agent_id===se);m((ue==null?void 0:ue.permissions)||{})}else if(Q.length>0){s(Q[0]);const ue=V.find(be=>be.agent_id===Q[0].id);m((ue==null?void 0:ue.permissions)||{}),sessionStorage.setItem(Nb,Q[0].id)}}else if(Q.length>0){s(Q[0]);const ie=V.find(ue=>ue.agent_id===Q[0].id);m((ie==null?void 0:ie.permissions)||{}),sessionStorage.setItem(Nb,Q[0].id)}}}catch(B){console.error("Error loading assistant data:",B)}finally{_(!1)}})()},[e==null?void 0:e.id]);const C=D=>{s(D),E(!1),sessionStorage.removeItem(oN),D?(sessionStorage.setItem(Nb,D.id),De.from("agent_assistant_assignments").select("permissions").eq("assistant_id",(e==null?void 0:e.id)||"").eq("agent_id",D.id).single().then(({data:B})=>{m((B==null?void 0:B.permissions)||{})})):(sessionStorage.removeItem(Nb),m({}))},N=()=>{E(!0),s(null),m({}),sessionStorage.setItem(oN,"true"),sessionStorage.removeItem(Nb)},L=D=>!r||T?!0:f[D]===!0,M=r&&c&&!T?c.id:(e==null?void 0:e.id)||null;return o.jsx(Cme.Provider,{value:{isAssistant:r,assignedAgents:i,actingAsAgent:c,setActingAsAgent:C,effectiveUserId:M,permissions:f,hasPermission:L,isLoading:x,isActingAsSelf:T,setActingAsSelf:N},children:t})},xO=()=>{const t=P.useContext(Cme);if(t===void 0)throw new Error("useActingAs must be used within an ActingAsProvider");return t},es=()=>{const{effectiveUserId:t}=xO();return t};var Ime={exports:{}},jme={};/** * @license React * use-sync-external-store-shim.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var m1=P;function YBe(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var ZBe=typeof Object.is=="function"?Object.is:YBe,XBe=m1.useState,QBe=m1.useEffect,JBe=m1.useLayoutEffect,eze=m1.useDebugValue;function tze(t,e){var r=e(),n=XBe({inst:{value:r,getSnapshot:e}}),i=n[0].inst,a=n[1];return JBe(function(){i.value=r,i.getSnapshot=e,wB(i)&&a({inst:i})},[t,r,e]),QBe(function(){return wB(i)&&a({inst:i}),t(function(){wB(i)&&a({inst:i})})},[t]),eze(r),r}function wB(t){var e=t.getSnapshot;t=t.value;try{var r=e();return!ZBe(t,r)}catch{return!0}}function rze(t,e){return e()}var nze=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?rze:tze;jme.useSyncExternalStore=m1.useSyncExternalStore!==void 0?m1.useSyncExternalStore:nze;Ime.exports=jme;var ize=Ime.exports;function sze(){return ize.useSyncExternalStore(aze,()=>!0,()=>!1)}function aze(){return()=>{}}var HG="Avatar",[oze,j$t]=Go(HG),[lze,Pme]=oze(HG),Nme=P.forwardRef((t,e)=>{const{__scopeAvatar:r,...n}=t,[i,a]=P.useState("idle");return o.jsx(lze,{scope:r,imageLoadingStatus:i,onImageLoadingStatusChange:a,children:o.jsx(rn.span,{...n,ref:e})})});Nme.displayName=HG;var Rme="AvatarImage",Lme=P.forwardRef((t,e)=>{const{__scopeAvatar:r,src:n,onLoadingStatusChange:i=()=>{},...a}=t,c=Pme(Rme,r),s=cze(n,a),f=ho(m=>{i(m),c.onImageLoadingStatusChange(m)});return jo(()=>{s!=="idle"&&f(s)},[s,f]),s==="loaded"?o.jsx(rn.img,{...a,ref:e,src:n}):null});Lme.displayName=Rme;var Dme="AvatarFallback",Mme=P.forwardRef((t,e)=>{const{__scopeAvatar:r,delayMs:n,...i}=t,a=Pme(Dme,r),[c,s]=P.useState(n===void 0);return P.useEffect(()=>{if(n!==void 0){const f=window.setTimeout(()=>s(!0),n);return()=>window.clearTimeout(f)}},[n]),c&&a.imageLoadingStatus!=="loaded"?o.jsx(rn.span,{...i,ref:e}):null});Mme.displayName=Dme;function Aee(t,e){return t?e?(t.src!==e&&(t.src=e),t.complete&&t.naturalWidth>0?"loaded":"loading"):"error":"idle"}function cze(t,{referrerPolicy:e,crossOrigin:r}){const n=sze(),i=P.useRef(null),a=n?(i.current||(i.current=new window.Image),i.current):null,[c,s]=P.useState(()=>Aee(a,t));return jo(()=>{s(Aee(a,t))},[a,t]),jo(()=>{const f=_=>()=>{s(_)};if(!a)return;const m=f("loaded"),x=f("error");return a.addEventListener("load",m),a.addEventListener("error",x),e&&(a.referrerPolicy=e),typeof r=="string"&&(a.crossOrigin=r),()=>{a.removeEventListener("load",m),a.removeEventListener("error",x)}},[a,r,e]),c}var Ome=Nme,Fme=Lme,Bme=Mme;const Zd=P.forwardRef(({className:t,...e},r)=>o.jsx(Ome,{ref:r,className:ir("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",t),...e}));Zd.displayName=Ome.displayName;const Xd=P.forwardRef(({className:t,...e},r)=>o.jsx(Fme,{ref:r,className:ir("aspect-square h-full w-full",t),...e}));Xd.displayName=Fme.displayName;const Qd=P.forwardRef(({className:t,...e},r)=>o.jsx(Bme,{ref:r,className:ir("flex h-full w-full items-center justify-center rounded-full bg-muted",t),...e}));Qd.displayName=Bme.displayName;const uze=nS("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function hs({className:t,variant:e,...r}){return o.jsx("div",{className:ir(uze({variant:e}),t),...r})}var dze=P.createContext(void 0);function B_(t){const e=P.useContext(dze);return t||e||"ltr"}var SB="rovingFocusGroup.onEntryFocus",hze={bubbles:!1,cancelable:!0},LC="RovingFocusGroup",[u6,zme,fze]=yC(LC),[pze,xS]=Go(LC,[fze]),[mze,gze]=pze(LC),$me=P.forwardRef((t,e)=>o.jsx(u6.Provider,{scope:t.__scopeRovingFocusGroup,children:o.jsx(u6.Slot,{scope:t.__scopeRovingFocusGroup,children:o.jsx(yze,{...t,ref:e})})}));$me.displayName=LC;var yze=P.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:r,orientation:n,loop:i=!1,dir:a,currentTabStopId:c,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:f,onEntryFocus:m,preventScrollOnEntryFocus:x=!1,..._}=t,T=P.useRef(null),E=Gn(e,T),C=B_(a),[N,L]=sd({prop:c,defaultProp:s??null,onChange:f,caller:LC}),[M,D]=P.useState(!1),B=ho(m),V=zme(r),G=P.useRef(!1),[W,Z]=P.useState(0);return P.useEffect(()=>{const Q=T.current;if(Q)return Q.addEventListener(SB,B),()=>Q.removeEventListener(SB,B)},[B]),o.jsx(mze,{scope:r,orientation:n,dir:C,loop:i,currentTabStopId:N,onItemFocus:P.useCallback(Q=>L(Q),[L]),onItemShiftTab:P.useCallback(()=>D(!0),[]),onFocusableItemAdd:P.useCallback(()=>Z(Q=>Q+1),[]),onFocusableItemRemove:P.useCallback(()=>Z(Q=>Q-1),[]),children:o.jsx(rn.div,{tabIndex:M||W===0?-1:0,"data-orientation":n,..._,ref:E,style:{outline:"none",...t.style},onMouseDown:Or(t.onMouseDown,()=>{G.current=!0}),onFocus:Or(t.onFocus,Q=>{const se=!G.current;if(Q.target===Q.currentTarget&&se&&!M){const ie=new CustomEvent(SB,hze);if(Q.currentTarget.dispatchEvent(ie),!ie.defaultPrevented){const ue=V().filter(Ae=>Ae.focusable),be=ue.find(Ae=>Ae.active),Te=ue.find(Ae=>Ae.id===N),Oe=[be,Te,...ue].filter(Boolean).map(Ae=>Ae.ref.current);qme(Oe,x)}}G.current=!1}),onBlur:Or(t.onBlur,()=>D(!1))})})}),Ume="RovingFocusGroupItem",Vme=P.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:r,focusable:n=!0,active:i=!1,tabStopId:a,children:c,...s}=t,f=Cl(),m=a||f,x=gze(Ume,r),_=x.currentTabStopId===m,T=zme(r),{onFocusableItemAdd:E,onFocusableItemRemove:C,currentTabStopId:N}=x;return P.useEffect(()=>{if(n)return E(),()=>C()},[n,E,C]),o.jsx(u6.ItemSlot,{scope:r,id:m,focusable:n,active:i,children:o.jsx(rn.span,{tabIndex:_?0:-1,"data-orientation":x.orientation,...s,ref:e,onMouseDown:Or(t.onMouseDown,L=>{n?x.onItemFocus(m):L.preventDefault()}),onFocus:Or(t.onFocus,()=>x.onItemFocus(m)),onKeyDown:Or(t.onKeyDown,L=>{if(L.key==="Tab"&&L.shiftKey){x.onItemShiftTab();return}if(L.target!==L.currentTarget)return;const M=vze(L,x.orientation,x.dir);if(M!==void 0){if(L.metaKey||L.ctrlKey||L.altKey||L.shiftKey)return;L.preventDefault();let B=T().filter(V=>V.focusable).map(V=>V.ref.current);if(M==="last")B.reverse();else if(M==="prev"||M==="next"){M==="prev"&&B.reverse();const V=B.indexOf(L.currentTarget);B=x.loop?bze(B,V+1):B.slice(V+1)}setTimeout(()=>qme(B))}}),children:typeof c=="function"?c({isCurrentTabStop:_,hasTabStop:N!=null}):c})})});Vme.displayName=Ume;var xze={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function _ze(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function vze(t,e,r){const n=_ze(t.key,r);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return xze[n]}function qme(t,e=!1){const r=document.activeElement;for(const n of t)if(n===r||(n.focus({preventScroll:e}),document.activeElement!==r))return}function bze(t,e){return t.map((r,n)=>t[(e+n)%t.length])}var WG=$me,KG=Vme,d6=["Enter"," "],wze=["ArrowDown","PageUp","Home"],Gme=["ArrowUp","PageDown","End"],Sze=[...wze,...Gme],Tze={ltr:[...d6,"ArrowRight"],rtl:[...d6,"ArrowLeft"]},Eze={ltr:["ArrowLeft"],rtl:["ArrowRight"]},DC="Menu",[nk,Aze,kze]=yC(DC),[z_,Hme]=Go(DC,[kze,ex,xS]),_O=ex(),Wme=xS(),[Cze,$_]=z_(DC),[Ize,MC]=z_(DC),Kme=t=>{const{__scopeMenu:e,open:r=!1,children:n,dir:i,onOpenChange:a,modal:c=!0}=t,s=_O(e),[f,m]=P.useState(null),x=P.useRef(!1),_=ho(a),T=B_(i);return P.useEffect(()=>{const E=()=>{x.current=!0,document.addEventListener("pointerdown",C,{capture:!0,once:!0}),document.addEventListener("pointermove",C,{capture:!0,once:!0})},C=()=>x.current=!1;return document.addEventListener("keydown",E,{capture:!0}),()=>{document.removeEventListener("keydown",E,{capture:!0}),document.removeEventListener("pointerdown",C,{capture:!0}),document.removeEventListener("pointermove",C,{capture:!0})}},[]),o.jsx(rO,{...s,children:o.jsx(Cze,{scope:e,open:r,onOpenChange:_,content:f,onContentChange:m,children:o.jsx(Ize,{scope:e,onClose:P.useCallback(()=>_(!1),[_]),isUsingKeyboardRef:x,dir:T,modal:c,children:n})})})};Kme.displayName=DC;var jze="MenuAnchor",YG=P.forwardRef((t,e)=>{const{__scopeMenu:r,...n}=t,i=_O(r);return o.jsx(PC,{...i,...n,ref:e})});YG.displayName=jze;var ZG="MenuPortal",[Pze,Yme]=z_(ZG,{forceMount:void 0}),Zme=t=>{const{__scopeMenu:e,forceMount:r,children:n,container:i}=t,a=$_(ZG,e);return o.jsx(Pze,{scope:e,forceMount:r,children:o.jsx(ul,{present:r||a.open,children:o.jsx(rS,{asChild:!0,container:i,children:n})})})};Zme.displayName=ZG;var Vd="MenuContent",[Nze,XG]=z_(Vd),Xme=P.forwardRef((t,e)=>{const r=Yme(Vd,t.__scopeMenu),{forceMount:n=r.forceMount,...i}=t,a=$_(Vd,t.__scopeMenu),c=MC(Vd,t.__scopeMenu);return o.jsx(nk.Provider,{scope:t.__scopeMenu,children:o.jsx(ul,{present:n||a.open,children:o.jsx(nk.Slot,{scope:t.__scopeMenu,children:c.modal?o.jsx(Rze,{...i,ref:e}):o.jsx(Lze,{...i,ref:e})})})})}),Rze=P.forwardRef((t,e)=>{const r=$_(Vd,t.__scopeMenu),n=P.useRef(null),i=Gn(e,n);return P.useEffect(()=>{const a=n.current;if(a)return YM(a)},[]),o.jsx(QG,{...t,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:Or(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})}),Lze=P.forwardRef((t,e)=>{const r=$_(Vd,t.__scopeMenu);return o.jsx(QG,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)})}),Dze=My("MenuContent.ScrollLock"),QG=P.forwardRef((t,e)=>{const{__scopeMenu:r,loop:n=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:s,onEntryFocus:f,onEscapeKeyDown:m,onPointerDownOutside:x,onFocusOutside:_,onInteractOutside:T,onDismiss:E,disableOutsideScroll:C,...N}=t,L=$_(Vd,r),M=MC(Vd,r),D=_O(r),B=Wme(r),V=Aze(r),[G,W]=P.useState(null),Z=P.useRef(null),Q=Gn(e,Z,L.onContentChange),se=P.useRef(0),ie=P.useRef(""),ue=P.useRef(0),be=P.useRef(null),Te=P.useRef("right"),we=P.useRef(0),Oe=C?EC:P.Fragment,Ae=C?{as:Dze,allowPinchZoom:!0}:void 0,Se=je=>{var St,Xt;const _e=ie.current+je,xe=V().filter(_t=>!_t.disabled),Pe=document.activeElement,Ze=(St=xe.find(_t=>_t.ref.current===Pe))==null?void 0:St.textValue,at=xe.map(_t=>_t.textValue),lt=Wze(at,_e,Ze),xt=(Xt=xe.find(_t=>_t.textValue===lt))==null?void 0:Xt.ref.current;(function _t(Rt){ie.current=Rt,window.clearTimeout(se.current),Rt!==""&&(se.current=window.setTimeout(()=>_t(""),1e3))})(_e),xt&&setTimeout(()=>xt.focus())};P.useEffect(()=>()=>window.clearTimeout(se.current),[]),WM();const ge=P.useCallback(je=>{var xe,Pe;return Te.current===((xe=be.current)==null?void 0:xe.side)&&Yze(je,(Pe=be.current)==null?void 0:Pe.area)},[]);return o.jsx(Nze,{scope:r,searchRef:ie,onItemEnter:P.useCallback(je=>{ge(je)&&je.preventDefault()},[ge]),onItemLeave:P.useCallback(je=>{var _e;ge(je)||((_e=Z.current)==null||_e.focus(),W(null))},[ge]),onTriggerLeave:P.useCallback(je=>{ge(je)&&je.preventDefault()},[ge]),pointerGraceTimerRef:ue,onPointerGraceIntentChange:P.useCallback(je=>{be.current=je},[]),children:o.jsx(Oe,{...Ae,children:o.jsx(TC,{asChild:!0,trapped:i,onMountAutoFocus:Or(a,je=>{var _e;je.preventDefault(),(_e=Z.current)==null||_e.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:o.jsx(O_,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:m,onPointerDownOutside:x,onFocusOutside:_,onInteractOutside:T,onDismiss:E,children:o.jsx(WG,{asChild:!0,...B,dir:M.dir,orientation:"vertical",loop:n,currentTabStopId:G,onCurrentTabStopIdChange:W,onEntryFocus:Or(f,je=>{M.isUsingKeyboardRef.current||je.preventDefault()}),preventScrollOnEntryFocus:!0,children:o.jsx(nO,{role:"menu","aria-orientation":"vertical","data-state":fge(L.open),"data-radix-menu-content":"",dir:M.dir,...D,...N,ref:Q,style:{outline:"none",...N.style},onKeyDown:Or(N.onKeyDown,je=>{const xe=je.target.closest("[data-radix-menu-content]")===je.currentTarget,Pe=je.ctrlKey||je.altKey||je.metaKey,Ze=je.key.length===1;xe&&(je.key==="Tab"&&je.preventDefault(),!Pe&&Ze&&Se(je.key));const at=Z.current;if(je.target!==at||!Sze.includes(je.key))return;je.preventDefault();const xt=V().filter(St=>!St.disabled).map(St=>St.ref.current);Gme.includes(je.key)&&xt.reverse(),Gze(xt)}),onBlur:Or(t.onBlur,je=>{je.currentTarget.contains(je.target)||(window.clearTimeout(se.current),ie.current="")}),onPointerMove:Or(t.onPointerMove,ik(je=>{const _e=je.target,xe=we.current!==je.clientX;if(je.currentTarget.contains(_e)&&xe){const Pe=je.clientX>we.current?"right":"left";Te.current=Pe,we.current=je.clientX}}))})})})})})})});Xme.displayName=Vd;var Mze="MenuGroup",JG=P.forwardRef((t,e)=>{const{__scopeMenu:r,...n}=t;return o.jsx(rn.div,{role:"group",...n,ref:e})});JG.displayName=Mze;var Oze="MenuLabel",Qme=P.forwardRef((t,e)=>{const{__scopeMenu:r,...n}=t;return o.jsx(rn.div,{...n,ref:e})});Qme.displayName=Oze;var $L="MenuItem",kee="menu.itemSelect",vO=P.forwardRef((t,e)=>{const{disabled:r=!1,onSelect:n,...i}=t,a=P.useRef(null),c=MC($L,t.__scopeMenu),s=XG($L,t.__scopeMenu),f=Gn(e,a),m=P.useRef(!1),x=()=>{const _=a.current;if(!r&&_){const T=new CustomEvent(kee,{bubbles:!0,cancelable:!0});_.addEventListener(kee,E=>n==null?void 0:n(E),{once:!0}),eG(_,T),T.defaultPrevented?m.current=!1:c.onClose()}};return o.jsx(Jme,{...i,ref:f,disabled:r,onClick:Or(t.onClick,x),onPointerDown:_=>{var T;(T=t.onPointerDown)==null||T.call(t,_),m.current=!0},onPointerUp:Or(t.onPointerUp,_=>{var T;m.current||(T=_.currentTarget)==null||T.click()}),onKeyDown:Or(t.onKeyDown,_=>{const T=s.searchRef.current!=="";r||T&&_.key===" "||d6.includes(_.key)&&(_.currentTarget.click(),_.preventDefault())})})});vO.displayName=$L;var Jme=P.forwardRef((t,e)=>{const{__scopeMenu:r,disabled:n=!1,textValue:i,...a}=t,c=XG($L,r),s=Wme(r),f=P.useRef(null),m=Gn(e,f),[x,_]=P.useState(!1),[T,E]=P.useState("");return P.useEffect(()=>{const C=f.current;C&&E((C.textContent??"").trim())},[a.children]),o.jsx(nk.ItemSlot,{scope:r,disabled:n,textValue:i??T,children:o.jsx(KG,{asChild:!0,...s,focusable:!n,children:o.jsx(rn.div,{role:"menuitem","data-highlighted":x?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...a,ref:m,onPointerMove:Or(t.onPointerMove,ik(C=>{n?c.onItemLeave(C):(c.onItemEnter(C),C.defaultPrevented||C.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Or(t.onPointerLeave,ik(C=>c.onItemLeave(C))),onFocus:Or(t.onFocus,()=>_(!0)),onBlur:Or(t.onBlur,()=>_(!1))})})})}),Fze="MenuCheckboxItem",ege=P.forwardRef((t,e)=>{const{checked:r=!1,onCheckedChange:n,...i}=t;return o.jsx(sge,{scope:t.__scopeMenu,checked:r,children:o.jsx(vO,{role:"menuitemcheckbox","aria-checked":UL(r)?"mixed":r,...i,ref:e,"data-state":t9(r),onSelect:Or(i.onSelect,()=>n==null?void 0:n(UL(r)?!0:!r),{checkForDefaultPrevented:!1})})})});ege.displayName=Fze;var tge="MenuRadioGroup",[Bze,zze]=z_(tge,{value:void 0,onValueChange:()=>{}}),rge=P.forwardRef((t,e)=>{const{value:r,onValueChange:n,...i}=t,a=ho(n);return o.jsx(Bze,{scope:t.__scopeMenu,value:r,onValueChange:a,children:o.jsx(JG,{...i,ref:e})})});rge.displayName=tge;var nge="MenuRadioItem",ige=P.forwardRef((t,e)=>{const{value:r,...n}=t,i=zze(nge,t.__scopeMenu),a=r===i.value;return o.jsx(sge,{scope:t.__scopeMenu,checked:a,children:o.jsx(vO,{role:"menuitemradio","aria-checked":a,...n,ref:e,"data-state":t9(a),onSelect:Or(n.onSelect,()=>{var c;return(c=i.onValueChange)==null?void 0:c.call(i,r)},{checkForDefaultPrevented:!1})})})});ige.displayName=nge;var e9="MenuItemIndicator",[sge,$ze]=z_(e9,{checked:!1}),age=P.forwardRef((t,e)=>{const{__scopeMenu:r,forceMount:n,...i}=t,a=$ze(e9,r);return o.jsx(ul,{present:n||UL(a.checked)||a.checked===!0,children:o.jsx(rn.span,{...i,ref:e,"data-state":t9(a.checked)})})});age.displayName=e9;var Uze="MenuSeparator",oge=P.forwardRef((t,e)=>{const{__scopeMenu:r,...n}=t;return o.jsx(rn.div,{role:"separator","aria-orientation":"horizontal",...n,ref:e})});oge.displayName=Uze;var Vze="MenuArrow",lge=P.forwardRef((t,e)=>{const{__scopeMenu:r,...n}=t,i=_O(r);return o.jsx(iO,{...i,...n,ref:e})});lge.displayName=Vze;var qze="MenuSub",[P$t,cge]=z_(qze),V2="MenuSubTrigger",uge=P.forwardRef((t,e)=>{const r=$_(V2,t.__scopeMenu),n=MC(V2,t.__scopeMenu),i=cge(V2,t.__scopeMenu),a=XG(V2,t.__scopeMenu),c=P.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:f}=a,m={__scopeMenu:t.__scopeMenu},x=P.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return P.useEffect(()=>x,[x]),P.useEffect(()=>{const _=s.current;return()=>{window.clearTimeout(_),f(null)}},[s,f]),o.jsx(YG,{asChild:!0,...m,children:o.jsx(Jme,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":i.contentId,"data-state":fge(r.open),...t,ref:Cm(e,i.onTriggerChange),onClick:_=>{var T;(T=t.onClick)==null||T.call(t,_),!(t.disabled||_.defaultPrevented)&&(_.currentTarget.focus(),r.open||r.onOpenChange(!0))},onPointerMove:Or(t.onPointerMove,ik(_=>{a.onItemEnter(_),!_.defaultPrevented&&!t.disabled&&!r.open&&!c.current&&(a.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{r.onOpenChange(!0),x()},100))})),onPointerLeave:Or(t.onPointerLeave,ik(_=>{var E,C;x();const T=(E=r.content)==null?void 0:E.getBoundingClientRect();if(T){const N=(C=r.content)==null?void 0:C.dataset.side,L=N==="right",M=L?-5:5,D=T[L?"left":"right"],B=T[L?"right":"left"];a.onPointerGraceIntentChange({area:[{x:_.clientX+M,y:_.clientY},{x:D,y:T.top},{x:B,y:T.top},{x:B,y:T.bottom},{x:D,y:T.bottom}],side:N}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(_),_.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:Or(t.onKeyDown,_=>{var E;const T=a.searchRef.current!=="";t.disabled||T&&_.key===" "||Tze[n.dir].includes(_.key)&&(r.onOpenChange(!0),(E=r.content)==null||E.focus(),_.preventDefault())})})})});uge.displayName=V2;var dge="MenuSubContent",hge=P.forwardRef((t,e)=>{const r=Yme(Vd,t.__scopeMenu),{forceMount:n=r.forceMount,...i}=t,a=$_(Vd,t.__scopeMenu),c=MC(Vd,t.__scopeMenu),s=cge(dge,t.__scopeMenu),f=P.useRef(null),m=Gn(e,f);return o.jsx(nk.Provider,{scope:t.__scopeMenu,children:o.jsx(ul,{present:n||a.open,children:o.jsx(nk.Slot,{scope:t.__scopeMenu,children:o.jsx(QG,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:m,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:x=>{var _;c.isUsingKeyboardRef.current&&((_=f.current)==null||_.focus()),x.preventDefault()},onCloseAutoFocus:x=>x.preventDefault(),onFocusOutside:Or(t.onFocusOutside,x=>{x.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:Or(t.onEscapeKeyDown,x=>{c.onClose(),x.preventDefault()}),onKeyDown:Or(t.onKeyDown,x=>{var E;const _=x.currentTarget.contains(x.target),T=Eze[c.dir].includes(x.key);_&&T&&(a.onOpenChange(!1),(E=s.trigger)==null||E.focus(),x.preventDefault())})})})})})});hge.displayName=dge;function fge(t){return t?"open":"closed"}function UL(t){return t==="indeterminate"}function t9(t){return UL(t)?"indeterminate":t?"checked":"unchecked"}function Gze(t){const e=document.activeElement;for(const r of t)if(r===e||(r.focus(),document.activeElement!==e))return}function Hze(t,e){return t.map((r,n)=>t[(e+n)%t.length])}function Wze(t,e,r){const i=e.length>1&&Array.from(e).every(m=>m===e[0])?e[0]:e,a=r?t.indexOf(r):-1;let c=Hze(t,Math.max(a,0));i.length===1&&(c=c.filter(m=>m!==r));const f=c.find(m=>m.toLowerCase().startsWith(i.toLowerCase()));return f!==r?f:void 0}function Kze(t,e){const{x:r,y:n}=t;let i=!1;for(let a=0,c=e.length-1;an!=T>n&&r<(_-m)*(n-x)/(T-x)+m&&(i=!i)}return i}function Yze(t,e){if(!e)return!1;const r={x:t.clientX,y:t.clientY};return Kze(r,e)}function ik(t){return e=>e.pointerType==="mouse"?t(e):void 0}var Zze=Kme,Xze=YG,Qze=Zme,Jze=Xme,e$e=JG,t$e=Qme,r$e=vO,n$e=ege,i$e=rge,s$e=ige,a$e=age,o$e=oge,l$e=lge,c$e=uge,u$e=hge,bO="DropdownMenu",[d$e,N$t]=Go(bO,[Hme]),eu=Hme(),[h$e,pge]=d$e(bO),mge=t=>{const{__scopeDropdownMenu:e,children:r,dir:n,open:i,defaultOpen:a,onOpenChange:c,modal:s=!0}=t,f=eu(e),m=P.useRef(null),[x,_]=sd({prop:i,defaultProp:a??!1,onChange:c,caller:bO});return o.jsx(h$e,{scope:e,triggerId:Cl(),triggerRef:m,contentId:Cl(),open:x,onOpenChange:_,onOpenToggle:P.useCallback(()=>_(T=>!T),[_]),modal:s,children:o.jsx(Zze,{...f,open:x,onOpenChange:_,dir:n,modal:s,children:r})})};mge.displayName=bO;var gge="DropdownMenuTrigger",yge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,disabled:n=!1,...i}=t,a=pge(gge,r),c=eu(r);return o.jsx(Xze,{asChild:!0,...c,children:o.jsx(rn.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...i,ref:Cm(e,a.triggerRef),onPointerDown:Or(t.onPointerDown,s=>{!n&&s.button===0&&s.ctrlKey===!1&&(a.onOpenToggle(),a.open||s.preventDefault())}),onKeyDown:Or(t.onKeyDown,s=>{n||(["Enter"," "].includes(s.key)&&a.onOpenToggle(),s.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});yge.displayName=gge;var f$e="DropdownMenuPortal",xge=t=>{const{__scopeDropdownMenu:e,...r}=t,n=eu(e);return o.jsx(Qze,{...n,...r})};xge.displayName=f$e;var _ge="DropdownMenuContent",vge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=pge(_ge,r),a=eu(r),c=P.useRef(!1);return o.jsx(Jze,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...n,ref:e,onCloseAutoFocus:Or(t.onCloseAutoFocus,s=>{var f;c.current||(f=i.triggerRef.current)==null||f.focus(),c.current=!1,s.preventDefault()}),onInteractOutside:Or(t.onInteractOutside,s=>{const f=s.detail.originalEvent,m=f.button===0&&f.ctrlKey===!0,x=f.button===2||m;(!i.modal||x)&&(c.current=!0)}),style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});vge.displayName=_ge;var p$e="DropdownMenuGroup",m$e=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(e$e,{...i,...n,ref:e})});m$e.displayName=p$e;var g$e="DropdownMenuLabel",bge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(t$e,{...i,...n,ref:e})});bge.displayName=g$e;var y$e="DropdownMenuItem",wge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(r$e,{...i,...n,ref:e})});wge.displayName=y$e;var x$e="DropdownMenuCheckboxItem",Sge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(n$e,{...i,...n,ref:e})});Sge.displayName=x$e;var _$e="DropdownMenuRadioGroup",v$e=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(i$e,{...i,...n,ref:e})});v$e.displayName=_$e;var b$e="DropdownMenuRadioItem",Tge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(s$e,{...i,...n,ref:e})});Tge.displayName=b$e;var w$e="DropdownMenuItemIndicator",Ege=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(a$e,{...i,...n,ref:e})});Ege.displayName=w$e;var S$e="DropdownMenuSeparator",Age=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(o$e,{...i,...n,ref:e})});Age.displayName=S$e;var T$e="DropdownMenuArrow",E$e=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(l$e,{...i,...n,ref:e})});E$e.displayName=T$e;var A$e="DropdownMenuSubTrigger",kge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(c$e,{...i,...n,ref:e})});kge.displayName=A$e;var k$e="DropdownMenuSubContent",Cge=P.forwardRef((t,e)=>{const{__scopeDropdownMenu:r,...n}=t,i=eu(r);return o.jsx(u$e,{...i,...n,ref:e,style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Cge.displayName=k$e;var C$e=mge,I$e=yge,j$e=xge,Ige=vge,jge=bge,Pge=wge,Nge=Sge,Rge=Tge,Lge=Ege,Dge=Age,Mge=kge,Oge=Cge;const wO=C$e,SO=I$e,P$e=P.forwardRef(({className:t,inset:e,children:r,...n},i)=>o.jsxs(Mge,{ref:i,className:ir("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",e&&"pl-8",t),...n,children:[r,o.jsx(th,{className:"ml-auto h-4 w-4"})]}));P$e.displayName=Mge.displayName;const N$e=P.forwardRef(({className:t,...e},r)=>o.jsx(Oge,{ref:r,className:ir("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...e}));N$e.displayName=Oge.displayName;const OC=P.forwardRef(({className:t,sideOffset:e=4,...r},n)=>o.jsx(j$e,{children:o.jsx(Ige,{ref:n,sideOffset:e,className:ir("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...r})}));OC.displayName=Ige.displayName;const Od=P.forwardRef(({className:t,inset:e,...r},n)=>o.jsx(Pge,{ref:n,className:ir("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e&&"pl-8",t),...r}));Od.displayName=Pge.displayName;const R$e=P.forwardRef(({className:t,children:e,checked:r,...n},i)=>o.jsxs(Nge,{ref:i,className:ir("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",t),checked:r,...n,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(Lge,{children:o.jsx(Ao,{className:"h-4 w-4"})})}),e]}));R$e.displayName=Nge.displayName;const L$e=P.forwardRef(({className:t,children:e,...r},n)=>o.jsxs(Rge,{ref:n,className:ir("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",t),...r,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(Lge,{children:o.jsx(l1,{className:"h-2 w-2 fill-current"})})}),e]}));L$e.displayName=Rge.displayName;const D$e=P.forwardRef(({className:t,inset:e,...r},n)=>o.jsx(jge,{ref:n,className:ir("px-2 py-1.5 text-sm font-semibold",e&&"pl-8",t),...r}));D$e.displayName=jge.displayName;const r9=P.forwardRef(({className:t,...e},r)=>o.jsx(Dge,{ref:r,className:ir("-mx-1 my-1 h-px bg-muted",t),...e}));r9.displayName=Dge.displayName;const M$e=()=>{const{isAssistant:t,actingAsAgent:e,assignedAgents:r,setActingAsAgent:n,isActingAsSelf:i,setActingAsSelf:a}=xO();if(!t)return null;const c=s=>s.split(" ").map(f=>f[0]).join("").toUpperCase().slice(0,2);return o.jsx("div",{className:"fixed top-0 left-0 right-0 z-[2147483647] bg-primary text-primary-foreground px-4 py-1.5 shadow-lg",style:{height:"40px"},children:o.jsxs("div",{className:"container mx-auto flex items-center justify-between gap-4 h-full",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[i?o.jsxs(o.Fragment,{children:[o.jsx(kl,{className:"h-4 w-4 flex-shrink-0"}),o.jsx("span",{className:"font-medium text-sm",children:"My Account"})]}):o.jsxs(o.Fragment,{children:[o.jsx(El,{className:"h-4 w-4 flex-shrink-0"}),o.jsx("span",{className:"font-medium text-sm",children:"Acting as"})]}),o.jsxs(wO,{children:[o.jsx(SO,{asChild:!0,children:o.jsxs(Kt,{variant:"secondary",size:"sm",className:"gap-2 bg-primary-foreground/20 hover:bg-primary-foreground/30 text-primary-foreground border-0",children:[i?o.jsxs(o.Fragment,{children:[o.jsx(kl,{className:"h-4 w-4"}),o.jsx("strong",{children:"My Account"})]}):e?o.jsxs(o.Fragment,{children:[o.jsxs(Zd,{className:"h-5 w-5",children:[o.jsx(Xd,{src:e.avatar_url||void 0}),o.jsx(Qd,{className:"text-[10px] bg-primary-foreground/30",children:c(e.name)})]}),o.jsx("strong",{children:e.name})]}):o.jsx("strong",{children:"Select..."}),o.jsx(Yd,{className:"h-3 w-3"})]})}),o.jsxs(OC,{align:"start",className:"z-[2147483647]",children:[o.jsxs(Od,{onClick:a,className:"gap-2",children:[o.jsx(kl,{className:"h-4 w-4"}),o.jsx("span",{children:"My Account"}),i&&o.jsx(hs,{variant:"secondary",className:"ml-auto text-[10px]",children:"Current"})]}),o.jsx(r9,{}),r.map(s=>o.jsxs(Od,{onClick:()=>n(s),className:"gap-2",children:[o.jsxs(Zd,{className:"h-6 w-6",children:[o.jsx(Xd,{src:s.avatar_url||void 0}),o.jsx(Qd,{className:"text-[10px]",children:c(s.name)})]}),o.jsx("span",{children:s.name}),!i&&s.id===(e==null?void 0:e.id)&&o.jsx(hs,{variant:"secondary",className:"ml-auto text-[10px]",children:"Current"})]},s.id))]})]})]}),o.jsx(hs,{variant:"secondary",className:"bg-primary-foreground/20 text-primary-foreground border-0 text-xs",children:i?"Personal Mode":"Assistant Mode"})]})})};function Fge(){var f,m;const{user:t,isAdmin:e}=$n(),{data:r,isLoading:n}=br({queryKey:["partnership-membership",t==null?void 0:t.id],enabled:!!(t!=null&&t.id),staleTime:5*60*1e3,queryFn:async()=>{const{data:x}=await De.from("partnership_memberships").select("id, status, package_id, program_id").eq("user_id",t.id).eq("status","active").maybeSingle();if(!x)return null;const[{data:_},{data:T}]=await Promise.all([De.from("partnership_packages").select("*").eq("id",x.package_id).maybeSingle(),De.from("partnership_programs").select("id, name, enabled, brokerage_id").eq("id",x.program_id).maybeSingle()]);return!_||!(T!=null&&T.enabled)?null:{membership:x,pkg:_,program:T}}}),i=P.useMemo(()=>{var x;return new Set(((x=r==null?void 0:r.pkg)==null?void 0:x.included_features)||[])},[r]),a=!!r,c=x=>e||!a?!0:i.has(x),s=x=>{var E,C;const _=((E=r==null?void 0:r.pkg)==null?void 0:E.feature_limits)||{},T=(C=_==null?void 0:_[x])==null?void 0:C.monthly_limit;return typeof T=="number"?T:null};return{isLoading:n,isMember:a,membership:(r==null?void 0:r.membership)??null,pkg:(r==null?void 0:r.pkg)??null,program:(r==null?void 0:r.program)??null,packageKey:((f=r==null?void 0:r.pkg)==null?void 0:f.key)??null,packageName:((m=r==null?void 0:r.pkg)==null?void 0:m.name)??null,features:i,hasFeature:c,limitFor:s,isRestricted:a&&!e}}const n9={crm:"Contacts & CRM",mass_email:"Mass Email",website:"Agent Website",deals:"Deal Pipeline",listing_exchange:"Listing Exchange",smart_card:"Smart Card",guest_book:"Guest Book",landing_pages:"Landing Pages",learn:"Learn & Academy",community:"Community",quickvid:"QuickVid",reelflow:"ReelFlow",direct_mail:"Direct Mail",levelup_attract:"LevelUp Attract",listing_revival:"Listing Revival",fsbo_breakthrough:"By-Owner Breakthrough",weekly_reels:"Weekly Reels",coaching_access:"Coaching",marketing_studio:"Marketing Studio",video_library:"Video Library",presentations:"Presentations",card_studio:"Card Studio",newsletter:"Newsletters",scheduler:"Scheduler",client_portals:"Client Portals",social:"Social Swag"},R$t=Object.keys(n9),O$e={home:null,crm:"crm",deals:"deals",listings:"listing_exchange",marketing:"marketing_studio",websites:"website",academy:"learn",events:"learn",apps:null,brokerage:"community",more:null},Cee={"mission-control":"crm",contacts:"crm","sphere-gaps":"crm","mass-emails":"mass_email","bulk-email":"mass_email",newsletters:"newsletter","my-card":"smart_card","guest-book":"guest_book","landing-pages":"landing_pages","card-studio":"card_studio","direct-mail":"direct_mail",quickvid:"quickvid","video-library":"video_library",reelflow:"reelflow",scheduler:"scheduler",community:"community",coaching:"coaching_access","my-coach":"coaching_access","client-portals":"client_portals",presentations:"presentations","social-swag":"social",attract:"levelup_attract","listing-revival":"listing_revival",fsbo:"fsbo_breakthrough","weekly-reels":"weekly_reels"},F$e={quickvid:"quickvid","smart-card":"smart_card","smart-presentations":"presentations","listing-presentation-studio":"presentations","landing-pages":"landing_pages","guest-book":"guest_book","card-studio":"card_studio","direct-mail":"direct_mail",reelflow:"reelflow","mass-emails":"mass_email","newsletter-pro":"newsletter","listing-studio":"listing_exchange","listing-revival":"listing_revival","fsbo-breakthrough":"fsbo_breakthrough",attract:"levelup_attract",scheduler:"scheduler","client-portals":"client_portals","social-swag":"social","weekly-reels":"weekly_reels"};function B$e(t){return t.id in Cee?Cee[t.id]:O$e[t.primaryCategory]??null}function L$t(t){return F$e[t]??null}const z$e=[["/mission-control/pipeline","deals"],["/mission-control/transactions","deals"],["/mission-control/tasks","deals"],["/mission-control/client-portals","client_portals"],["/mission-control/scheduler","scheduler"],["/mission-control/guest-book","guest_book"],["/mission-control/landing-pages","landing_pages"],["/mission-control/card-studio","card_studio"],["/mission-control/direct-mail","direct_mail"],["/mission-control/video-library","video_library"],["/mission-control/video","quickvid"],["/mission-control/my-card","smart_card"],["/mission-control/listing-presentations","presentations"],["/mission-control/sent-emails","mass_email"],["/mission-control/listings","listing_exchange"],["/mission-control/listing-studio","listing_exchange"],["/mission-control/cma","listing_exchange"],["/apps/listing-presentation-studio","presentations"],["/apps/listing-revival","listing_revival"],["/apps/fsbo-breakthrough","fsbo_breakthrough"],["/marketing-studio","marketing_studio"],["/social-swag","social"],["/weekly-reels","weekly_reels"],["/newsletters","newsletter"],["/email-campaigns","mass_email"],["/templates","marketing_studio"],["/reelflow","reelflow"],["/attract","levelup_attract"],["/community","community"],["/coaching","coaching_access"],["/my-coach","coaching_access"],["/events","learn"],["/academy","learn"],["/levelup-u","learn"],["/toolbox","learn"],["/programs","learn"]];function $$e(t){let e=null;for(const r of z$e){const[n]=r;(t===n||t.startsWith(n+"/")||t.startsWith(n+"?"))&&(!e||n.length>e[0].length)&&(e=r)}return e?e[1]:null}const qn=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{ref:r,className:ir("rounded-lg border bg-card text-card-foreground shadow-sm",t),...e}));qn.displayName="Card";const Qu=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{ref:r,className:ir("flex flex-col space-y-1.5 p-6",t),...e}));Qu.displayName="CardHeader";const Ju=P.forwardRef(({className:t,...e},r)=>o.jsx("h3",{ref:r,className:ir("text-2xl font-semibold leading-none tracking-tight",t),...e}));Ju.displayName="CardTitle";const sk=P.forwardRef(({className:t,...e},r)=>o.jsx("p",{ref:r,className:ir("text-sm text-muted-foreground",t),...e}));sk.displayName="CardDescription";const ri=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{ref:r,className:ir("p-6 pt-0",t),...e}));ri.displayName="CardContent";const h6=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{ref:r,className:ir("flex items-center p-6 pt-0",t),...e}));h6.displayName="CardFooter";const ud=P.forwardRef(({className:t,...e},r)=>o.jsx("textarea",{className:ir("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:r,...e}));ud.displayName="Textarea";const ro=XM,Bge=yG,U$e=QM,D$t=CC,zge=P.forwardRef(({className:t,...e},r)=>o.jsx(lS,{ref:r,className:ir("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e}));zge.displayName=lS.displayName;const za=P.forwardRef(({className:t,children:e,overlayClassName:r,...n},i)=>o.jsxs(U$e,{children:[o.jsx(zge,{className:r}),o.jsxs(cS,{ref:i,className:ir("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...n,children:[e,o.jsxs(CC,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[o.jsx(Zs,{className:"h-4 w-4"}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));za.displayName=cS.displayName;const cl=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col space-y-1.5 text-center sm:text-left",t),...e});cl.displayName="DialogHeader";const $ge=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});$ge.displayName="DialogFooter";const qo=P.forwardRef(({className:t,...e},r)=>o.jsx(AC,{ref:r,className:ir("text-lg font-semibold leading-none tracking-tight",t),...e}));qo.displayName=AC.displayName;const ad=P.forwardRef(({className:t,...e},r)=>o.jsx(kC,{ref:r,className:ir("text-sm text-muted-foreground",t),...e}));ad.displayName=kC.displayName;function V$e({featureKey:t,open:e,onOpenChange:r}){const{user:n}=$n(),i=Ir(),[a,c]=P.useState(""),{data:s}=br({queryKey:["partnership-upgrade-requests",n==null?void 0:n.id],enabled:!!(n!=null&&n.id)&&e,queryFn:async()=>{const{data:_}=await De.from("lead_site_upgrade_requests").select("id, feature_key, status").eq("user_id",n.id);return _||[]}}),f=!!(s!=null&&s.some(_=>_.feature_key===t&&_.status!=="declined")),m=kr({mutationFn:async()=>{const{error:_}=await De.from("lead_site_upgrade_requests").insert({user_id:n.id,feature_key:t,notes:a||null});if(_)throw _},onSuccess:()=>{i.invalidateQueries({queryKey:["partnership-upgrade-requests"]}),Jt.success("Request sent — we'll be in touch shortly."),c(""),r(!1)},onError:_=>Jt.error((_==null?void 0:_.message)||"Could not send your request")}),x=n9[t]||t;return o.jsx(ro,{open:e,onOpenChange:r,children:o.jsxs(za,{className:"sm:max-w-md",children:[o.jsxs(cl,{children:[o.jsxs(qo,{className:"flex items-center gap-2",children:[o.jsx(Es,{className:"h-5 w-5 text-primary"}),"Request ",x]}),o.jsxs(ad,{children:[x," is included with the Signature package. Send a request and we'll get you set up."]})]}),f?o.jsxs("div",{className:"rounded-lg border border-border bg-muted/40 p-4 text-sm flex items-start gap-2",children:[o.jsx(Ao,{className:"h-4 w-4 mt-0.5 text-primary"}),o.jsx("span",{children:"You've already requested this. We'll follow up soon."})]}):o.jsx(ud,{placeholder:"Anything we should know? (optional)",value:a,onChange:_=>c(_.target.value),rows:4}),o.jsxs($ge,{children:[o.jsx(Kt,{variant:"outline",onClick:()=>r(!1),children:"Close"}),!f&&o.jsx(Kt,{onClick:()=>m.mutate(),disabled:m.isPending,children:m.isPending?"Sending…":"Send request"})]})]})})}function q$e({featureKey:t}){const[e,r]=P.useState(!1),n=n9[t]||t;return o.jsxs("div",{className:"flex items-center justify-center py-16 px-4",children:[o.jsx(qn,{className:"max-w-lg w-full border-border/60",children:o.jsxs(ri,{className:"p-8 text-center space-y-4",children:[o.jsx("div",{className:"mx-auto h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:o.jsx(Fy,{className:"h-6 w-6 text-primary"})}),o.jsxs("h2",{className:"text-2xl font-semibold",children:[n," is a Signature feature"]}),o.jsxs("p",{className:"text-muted-foreground",children:["Your current package doesn't include ",n,". Request access and our team will upgrade your account."]}),o.jsxs(Kt,{onClick:()=>r(!0),className:"gap-2",children:[o.jsx(Es,{className:"h-4 w-4"})," Request access"]})]})}),o.jsx(V$e,{featureKey:t,open:e,onOpenChange:r})]})}const G$e=t=>{const[e,r]=P.useState(null),[n,i]=P.useState(!0);return P.useEffect(()=>{if(!t){i(!1);return}(async()=>{try{const{data:s}=await De.storage.from("avatars").list(`${t}`);if(s&&s.length>0){const{data:f}=De.storage.from("avatars").getPublicUrl(`${t}/${s[0].name}`);r(`${f.publicUrl}?t=${Date.now()}`)}else r(null)}catch(s){console.error("Error fetching avatar:",s),r(null)}finally{i(!1)}})()},[t]),{avatarUrl:e,loading:n,refreshAvatar:async()=>{if(t)try{const{data:c}=await De.storage.from("avatars").list(`${t}`);if(c&&c.length>0){const{data:s}=De.storage.from("avatars").getPublicUrl(`${t}/${c[0].name}`);r(`${s.publicUrl}?t=${Date.now()}`)}}catch(c){console.error("Error refreshing avatar:",c)}}}},M$t=async t=>{const e=new Map;return await Promise.all(t.map(async r=>{try{const{data:n}=await De.storage.from("avatars").list(`${r}`);if(n&&n.length>0){const{data:i}=De.storage.from("avatars").getPublicUrl(`${r}/${n[0].name}`);e.set(r,i.publicUrl)}}catch{}})),e},H$e=t=>{const[e,r]=P.useState({isTrial:!1,isExpired:!1,expiresAt:null,daysLeft:null,loading:!0});return P.useEffect(()=>{if(!t){r(i=>({...i,loading:!1}));return}(async()=>{try{const{data:i,error:a}=await De.from("profiles").select("is_trial, trial_expires_at, subscription_status, subscription_end_date").eq("id",t).single();if(a){console.error("Error fetching trial status:",a),r(_=>({..._,loading:!1}));return}const c=(i==null?void 0:i.subscription_status)==="trialing",s=!!(i!=null&&i.is_trial),f=!!(i!=null&&i.trial_expires_at)&&new Date(i.trial_expires_at).getTime()>Date.now()&&(i==null?void 0:i.subscription_status)!=="active",m=c&&(i==null?void 0:i.subscription_end_date)||(i==null?void 0:i.trial_expires_at)||(i==null?void 0:i.subscription_end_date)||null;if((c||s||f)&&!!m&&m){const _=new Date().getTime(),T=new Date(m).getTime(),E=Math.ceil((T-_)/(1e3*60*60*24)),C=E<=0;r({isTrial:!0,isExpired:C,expiresAt:m,daysLeft:C?0:E,loading:!1})}else r({isTrial:!1,isExpired:!1,expiresAt:null,daysLeft:null,loading:!1})}catch(i){console.error("Error in useTrialStatus:",i),r(a=>({...a,loading:!1}))}})()},[t]),e},TO=()=>{const{data:t,isLoading:e}=br({queryKey:["feature-flags"],queryFn:async()=>{const{data:n,error:i}=await De.from("feature_flags").select("*");if(i)throw i;return n}}),r=n=>{if(!t)return!1;const i=t.find(a=>a.key===n);return(i==null?void 0:i.enabled)??!1};return{flags:t,isLoading:e,isFeatureEnabled:r,isAgentOSEnabled:r("agent_os_enabled"),isInnerCircleEnabled:r("innercircle_enabled"),isMarketplaceEnabled:r("marketplace")}},Iee="community_last_seen_post_at";function W$e(){const{user:t}=$n(),e=Ji(),[r,n]=P.useState(0),[i,a]=P.useState(null);P.useEffect(()=>{if(!t)return;const s=localStorage.getItem(`${Iee}_${t.id}`);a(s)},[t]),P.useEffect(()=>{if(!t)return;const s=`community_unread_count_${t.id}`,f=2*60*1e3;(async()=>{try{const E=sessionStorage.getItem(s);if(E){const C=JSON.parse(E);if(C.ts&&Date.now()-C.ts{if(!t)return;const s=De.channel("community-new-posts").on("postgres_changes",{event:"INSERT",schema:"public",table:"community_posts"},async f=>{const m=f.new;if(m.user_id===t.id)return;const x=e.pathname==="/community";x||n(N=>N+1);const{data:_}=await De.from("profiles").select("name").eq("id",m.user_id).single(),T=(_==null?void 0:_.name)||"Someone",E=m.content.replace(/@\[([^\]]+)\]\([^)]+\)/g,"@$1"),C=E.length>50?E.substring(0,50)+"...":E;x||Jt("New Community Post",{description:`${T}: ${C}`,action:{label:"View",onClick:()=>{window.location.href="/community"}}})}).subscribe();return()=>{De.removeChannel(s)}},[t,e.pathname]);const c=P.useCallback(()=>{if(!t)return;const s=new Date().toISOString();localStorage.setItem(`${Iee}_${t.id}`,s),a(s),n(0)},[t]);return P.useEffect(()=>{e.pathname==="/community"&&r>0&&c()},[e.pathname,r,c]),{unreadCount:r,markAsRead:c}}function K$e(){const{isAdmin:t}=$n(),{data:e=0}=br({queryKey:["wishlist-open-count"],queryFn:async()=>{const{count:r,error:n}=await De.from("wishlist_items").select("*",{count:"exact",head:!0}).eq("status","open");if(n)throw n;return r||0},enabled:t,staleTime:6e4});return{openCount:t?e:0}}const TB=t=>`levelup:activeTeam:${t}`,Y$e=()=>{const t=es();return br({queryKey:["user-teams",t],queryFn:async()=>{const{data:e,error:r}=await De.from("team_members").select("id, team_id, role").eq("user_id",t);if(r)throw r;if(!(e!=null&&e.length))return[];const{data:n,error:i}=await De.from("teams").select("*").in("id",e.map(c=>c.team_id));if(i)throw i;const a=new Map((n||[]).map(c=>[c.id,c]));return e.filter(c=>a.has(c.team_id)).map(c=>({membershipId:c.id,teamId:c.team_id,role:c.role,team:a.get(c.team_id)})).sort((c,s)=>{var f,m;return c.role!==s.role?c.role==="team_leader"?-1:1:(((f=c.team)==null?void 0:f.name)||"").localeCompare(((m=s.team)==null?void 0:m.name)||"")})},enabled:!!t,staleTime:5*60*1e3})},_S=()=>{const t=es(),e=Y$e(),r=P.useMemo(()=>e.data||[],[e.data]),[n,i]=P.useState(()=>!t||typeof window>"u"?null:window.localStorage.getItem(TB(t)));P.useEffect(()=>{!t||typeof window>"u"||i(window.localStorage.getItem(TB(t)))},[t]);const a=P.useCallback(s=>{i(s),t&&typeof window<"u"&&window.localStorage.setItem(TB(t),s)},[t]),c=P.useMemo(()=>r.length?r.find(s=>s.teamId===n)||r[0]:null,[r,n]);return{...e,data:c,teams:r,activeTeamId:(c==null?void 0:c.teamId)??null,setActiveTeamId:a}},jee="weekly_reels";function i9(){const{user:t,loading:e,isAdmin:r}=$n(),{data:n,isLoading:i}=br({queryKey:["feature-entitlement",jee,t==null?void 0:t.id],enabled:!!t&&!r,staleTime:5*60*1e3,queryFn:async()=>{const{data:a,error:c}=await De.from("feature_entitlements").select("enabled, expires_at, tier").eq("user_id",t.id).eq("feature_key",jee).maybeSingle();if(c)throw c;return a?{hasAccess:a.enabled&&(!a.expires_at||new Date(a.expires_at).getTime()>Date.now()),tier:a.tier??null}:{hasAccess:!1,tier:null}}});return{hasAccess:r||!!(n!=null&&n.hasAccess),tier:r?"admin":(n==null?void 0:n.tier)??null,isLoading:e||!r&&!!t&&i}}const Uge=XM,Z$e=yG,X$e=QM,Vge=P.forwardRef(({className:t,...e},r)=>o.jsx(lS,{className:ir("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...e,ref:r}));Vge.displayName=lS.displayName;const Q$e=nS("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),s9=P.forwardRef(({side:t="right",className:e,children:r,...n},i)=>o.jsxs(X$e,{children:[o.jsx(Vge,{}),o.jsxs(cS,{ref:i,className:ir(Q$e({side:t}),e),...n,children:[r,o.jsxs(CC,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[o.jsx(Zs,{className:"h-4 w-4"}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));s9.displayName=cS.displayName;const qge=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col space-y-2 text-center sm:text-left",t),...e});qge.displayName="SheetHeader";const J$e=({className:t,...e})=>o.jsx("div",{className:ir("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...e});J$e.displayName="SheetFooter";const Gge=P.forwardRef(({className:t,...e},r)=>o.jsx(AC,{ref:r,className:ir("text-lg font-semibold text-foreground",t),...e}));Gge.displayName=AC.displayName;const Hge=P.forwardRef(({className:t,...e},r)=>o.jsx(kC,{ref:r,className:ir("text-sm text-muted-foreground",t),...e}));Hge.displayName=kC.displayName;function ak(t,[e,r]){return Math.min(r,Math.max(e,t))}function eUe(t,e){return P.useReducer((r,n)=>e[r][n]??r,t)}var a9="ScrollArea",[Wge,O$t]=Go(a9),[tUe,rh]=Wge(a9),Kge=P.forwardRef((t,e)=>{const{__scopeScrollArea:r,type:n="hover",dir:i,scrollHideDelay:a=600,...c}=t,[s,f]=P.useState(null),[m,x]=P.useState(null),[_,T]=P.useState(null),[E,C]=P.useState(null),[N,L]=P.useState(null),[M,D]=P.useState(0),[B,V]=P.useState(0),[G,W]=P.useState(!1),[Z,Q]=P.useState(!1),se=Gn(e,ue=>f(ue)),ie=B_(i);return o.jsx(tUe,{scope:r,type:n,dir:ie,scrollHideDelay:a,scrollArea:s,viewport:m,onViewportChange:x,content:_,onContentChange:T,scrollbarX:E,onScrollbarXChange:C,scrollbarXEnabled:G,onScrollbarXEnabledChange:W,scrollbarY:N,onScrollbarYChange:L,scrollbarYEnabled:Z,onScrollbarYEnabledChange:Q,onCornerWidthChange:D,onCornerHeightChange:V,children:o.jsx(rn.div,{dir:ie,...c,ref:se,style:{position:"relative","--radix-scroll-area-corner-width":M+"px","--radix-scroll-area-corner-height":B+"px",...t.style}})})});Kge.displayName=a9;var Yge="ScrollAreaViewport",Zge=P.forwardRef((t,e)=>{const{__scopeScrollArea:r,children:n,nonce:i,...a}=t,c=rh(Yge,r),s=P.useRef(null),f=Gn(e,s,c.onViewportChange);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),o.jsx(rn.div,{"data-radix-scroll-area-viewport":"",...a,ref:f,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...t.style},children:o.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Zge.displayName=Yge;var fp="ScrollAreaScrollbar",o9=P.forwardRef((t,e)=>{const{forceMount:r,...n}=t,i=rh(fp,t.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:c}=i,s=t.orientation==="horizontal";return P.useEffect(()=>(s?a(!0):c(!0),()=>{s?a(!1):c(!1)}),[s,a,c]),i.type==="hover"?o.jsx(rUe,{...n,ref:e,forceMount:r}):i.type==="scroll"?o.jsx(nUe,{...n,ref:e,forceMount:r}):i.type==="auto"?o.jsx(Xge,{...n,ref:e,forceMount:r}):i.type==="always"?o.jsx(l9,{...n,ref:e}):null});o9.displayName=fp;var rUe=P.forwardRef((t,e)=>{const{forceMount:r,...n}=t,i=rh(fp,t.__scopeScrollArea),[a,c]=P.useState(!1);return P.useEffect(()=>{const s=i.scrollArea;let f=0;if(s){const m=()=>{window.clearTimeout(f),c(!0)},x=()=>{f=window.setTimeout(()=>c(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",m),s.addEventListener("pointerleave",x),()=>{window.clearTimeout(f),s.removeEventListener("pointerenter",m),s.removeEventListener("pointerleave",x)}}},[i.scrollArea,i.scrollHideDelay]),o.jsx(ul,{present:r||a,children:o.jsx(Xge,{"data-state":a?"visible":"hidden",...n,ref:e})})}),nUe=P.forwardRef((t,e)=>{const{forceMount:r,...n}=t,i=rh(fp,t.__scopeScrollArea),a=t.orientation==="horizontal",c=AO(()=>f("SCROLL_END"),100),[s,f]=eUe("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return P.useEffect(()=>{if(s==="idle"){const m=window.setTimeout(()=>f("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(m)}},[s,i.scrollHideDelay,f]),P.useEffect(()=>{const m=i.viewport,x=a?"scrollLeft":"scrollTop";if(m){let _=m[x];const T=()=>{const E=m[x];_!==E&&(f("SCROLL"),c()),_=E};return m.addEventListener("scroll",T),()=>m.removeEventListener("scroll",T)}},[i.viewport,a,f,c]),o.jsx(ul,{present:r||s!=="hidden",children:o.jsx(l9,{"data-state":s==="hidden"?"hidden":"visible",...n,ref:e,onPointerEnter:Or(t.onPointerEnter,()=>f("POINTER_ENTER")),onPointerLeave:Or(t.onPointerLeave,()=>f("POINTER_LEAVE"))})})}),Xge=P.forwardRef((t,e)=>{const r=rh(fp,t.__scopeScrollArea),{forceMount:n,...i}=t,[a,c]=P.useState(!1),s=t.orientation==="horizontal",f=AO(()=>{if(r.viewport){const m=r.viewport.offsetWidth{const{orientation:r="vertical",...n}=t,i=rh(fp,t.__scopeScrollArea),a=P.useRef(null),c=P.useRef(0),[s,f]=P.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),m=rye(s.viewport,s.content),x={...n,sizes:s,onSizesChange:f,hasThumb:m>0&&m<1,onThumbChange:T=>a.current=T,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:T=>c.current=T};function _(T,E){return cUe(T,c.current,s,E)}return r==="horizontal"?o.jsx(iUe,{...x,ref:e,onThumbPositionChange:()=>{if(i.viewport&&a.current){const T=i.viewport.scrollLeft,E=Pee(T,s,i.dir);a.current.style.transform=`translate3d(${E}px, 0, 0)`}},onWheelScroll:T=>{i.viewport&&(i.viewport.scrollLeft=T)},onDragScroll:T=>{i.viewport&&(i.viewport.scrollLeft=_(T,i.dir))}}):r==="vertical"?o.jsx(sUe,{...x,ref:e,onThumbPositionChange:()=>{if(i.viewport&&a.current){const T=i.viewport.scrollTop,E=Pee(T,s);a.current.style.transform=`translate3d(0, ${E}px, 0)`}},onWheelScroll:T=>{i.viewport&&(i.viewport.scrollTop=T)},onDragScroll:T=>{i.viewport&&(i.viewport.scrollTop=_(T))}}):null}),iUe=P.forwardRef((t,e)=>{const{sizes:r,onSizesChange:n,...i}=t,a=rh(fp,t.__scopeScrollArea),[c,s]=P.useState(),f=P.useRef(null),m=Gn(e,f,a.onScrollbarXChange);return P.useEffect(()=>{f.current&&s(getComputedStyle(f.current))},[f]),o.jsx(Jge,{"data-orientation":"horizontal",...i,ref:m,sizes:r,style:{bottom:0,left:a.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:a.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":EO(r)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.x),onDragScroll:x=>t.onDragScroll(x.x),onWheelScroll:(x,_)=>{if(a.viewport){const T=a.viewport.scrollLeft+x.deltaX;t.onWheelScroll(T),iye(T,_)&&x.preventDefault()}},onResize:()=>{f.current&&a.viewport&&c&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:f.current.clientWidth,paddingStart:qL(c.paddingLeft),paddingEnd:qL(c.paddingRight)}})}})}),sUe=P.forwardRef((t,e)=>{const{sizes:r,onSizesChange:n,...i}=t,a=rh(fp,t.__scopeScrollArea),[c,s]=P.useState(),f=P.useRef(null),m=Gn(e,f,a.onScrollbarYChange);return P.useEffect(()=>{f.current&&s(getComputedStyle(f.current))},[f]),o.jsx(Jge,{"data-orientation":"vertical",...i,ref:m,sizes:r,style:{top:0,right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":EO(r)+"px",...t.style},onThumbPointerDown:x=>t.onThumbPointerDown(x.y),onDragScroll:x=>t.onDragScroll(x.y),onWheelScroll:(x,_)=>{if(a.viewport){const T=a.viewport.scrollTop+x.deltaY;t.onWheelScroll(T),iye(T,_)&&x.preventDefault()}},onResize:()=>{f.current&&a.viewport&&c&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:f.current.clientHeight,paddingStart:qL(c.paddingTop),paddingEnd:qL(c.paddingBottom)}})}})}),[aUe,Qge]=Wge(fp),Jge=P.forwardRef((t,e)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:i,onThumbChange:a,onThumbPointerUp:c,onThumbPointerDown:s,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:x,onResize:_,...T}=t,E=rh(fp,r),[C,N]=P.useState(null),L=Gn(e,se=>N(se)),M=P.useRef(null),D=P.useRef(""),B=E.viewport,V=n.content-n.viewport,G=ho(x),W=ho(f),Z=AO(_,10);function Q(se){if(M.current){const ie=se.clientX-M.current.left,ue=se.clientY-M.current.top;m({x:ie,y:ue})}}return P.useEffect(()=>{const se=ie=>{const ue=ie.target;(C==null?void 0:C.contains(ue))&&G(ie,V)};return document.addEventListener("wheel",se,{passive:!1}),()=>document.removeEventListener("wheel",se,{passive:!1})},[B,C,V,G]),P.useEffect(W,[n,W]),g1(C,Z),g1(E.content,Z),o.jsx(aUe,{scope:r,scrollbar:C,hasThumb:i,onThumbChange:ho(a),onThumbPointerUp:ho(c),onThumbPositionChange:W,onThumbPointerDown:ho(s),children:o.jsx(rn.div,{...T,ref:L,style:{position:"absolute",...T.style},onPointerDown:Or(t.onPointerDown,se=>{se.button===0&&(se.target.setPointerCapture(se.pointerId),M.current=C.getBoundingClientRect(),D.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",E.viewport&&(E.viewport.style.scrollBehavior="auto"),Q(se))}),onPointerMove:Or(t.onPointerMove,Q),onPointerUp:Or(t.onPointerUp,se=>{const ie=se.target;ie.hasPointerCapture(se.pointerId)&&ie.releasePointerCapture(se.pointerId),document.body.style.webkitUserSelect=D.current,E.viewport&&(E.viewport.style.scrollBehavior=""),M.current=null})})})}),VL="ScrollAreaThumb",eye=P.forwardRef((t,e)=>{const{forceMount:r,...n}=t,i=Qge(VL,t.__scopeScrollArea);return o.jsx(ul,{present:r||i.hasThumb,children:o.jsx(oUe,{ref:e,...n})})}),oUe=P.forwardRef((t,e)=>{const{__scopeScrollArea:r,style:n,...i}=t,a=rh(VL,r),c=Qge(VL,r),{onThumbPositionChange:s}=c,f=Gn(e,_=>c.onThumbChange(_)),m=P.useRef(void 0),x=AO(()=>{m.current&&(m.current(),m.current=void 0)},100);return P.useEffect(()=>{const _=a.viewport;if(_){const T=()=>{if(x(),!m.current){const E=uUe(_,s);m.current=E,s()}};return s(),_.addEventListener("scroll",T),()=>_.removeEventListener("scroll",T)}},[a.viewport,x,s]),o.jsx(rn.div,{"data-state":c.hasThumb?"visible":"hidden",...i,ref:f,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:Or(t.onPointerDownCapture,_=>{const E=_.target.getBoundingClientRect(),C=_.clientX-E.left,N=_.clientY-E.top;c.onThumbPointerDown({x:C,y:N})}),onPointerUp:Or(t.onPointerUp,c.onThumbPointerUp)})});eye.displayName=VL;var c9="ScrollAreaCorner",tye=P.forwardRef((t,e)=>{const r=rh(c9,t.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?o.jsx(lUe,{...t,ref:e}):null});tye.displayName=c9;var lUe=P.forwardRef((t,e)=>{const{__scopeScrollArea:r,...n}=t,i=rh(c9,r),[a,c]=P.useState(0),[s,f]=P.useState(0),m=!!(a&&s);return g1(i.scrollbarX,()=>{var _;const x=((_=i.scrollbarX)==null?void 0:_.offsetHeight)||0;i.onCornerHeightChange(x),f(x)}),g1(i.scrollbarY,()=>{var _;const x=((_=i.scrollbarY)==null?void 0:_.offsetWidth)||0;i.onCornerWidthChange(x),c(x)}),m?o.jsx(rn.div,{...n,ref:e,style:{width:a,height:s,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...t.style}}):null});function qL(t){return t?parseInt(t,10):0}function rye(t,e){const r=t/e;return isNaN(r)?0:r}function EO(t){const e=rye(t.viewport,t.content),r=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=(t.scrollbar.size-r)*e;return Math.max(n,18)}function cUe(t,e,r,n="ltr"){const i=EO(r),a=i/2,c=e||a,s=i-c,f=r.scrollbar.paddingStart+c,m=r.scrollbar.size-r.scrollbar.paddingEnd-s,x=r.content-r.viewport,_=n==="ltr"?[0,x]:[x*-1,0];return nye([f,m],_)(t)}function Pee(t,e,r="ltr"){const n=EO(e),i=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,a=e.scrollbar.size-i,c=e.content-e.viewport,s=a-n,f=r==="ltr"?[0,c]:[c*-1,0],m=ak(t,f);return nye([0,c],[0,s])(m)}function nye(t,e){return r=>{if(t[0]===t[1]||e[0]===e[1])return e[0];const n=(e[1]-e[0])/(t[1]-t[0]);return e[0]+n*(r-t[0])}}function iye(t,e){return t>0&&t{})=>{let r={left:t.scrollLeft,top:t.scrollTop},n=0;return function i(){const a={left:t.scrollLeft,top:t.scrollTop},c=r.left!==a.left,s=r.top!==a.top;(c||s)&&e(),r=a,n=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(n)};function AO(t,e){const r=ho(t),n=P.useRef(0);return P.useEffect(()=>()=>window.clearTimeout(n.current),[]),P.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,e)},[r,e])}function g1(t,e){const r=ho(e);jo(()=>{let n=0;if(t){const i=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return i.observe(t),()=>{window.cancelAnimationFrame(n),i.unobserve(t)}}},[t,r])}var sye=Kge,dUe=Zge,hUe=tye;const pp=P.forwardRef(({className:t,children:e,...r},n)=>o.jsxs(sye,{ref:n,className:ir("relative overflow-hidden",t),...r,children:[o.jsx(dUe,{className:"h-full w-full rounded-[inherit]",children:e}),o.jsx(aye,{}),o.jsx(hUe,{})]}));pp.displayName=sye.displayName;const aye=P.forwardRef(({className:t,orientation:e="vertical",...r},n)=>o.jsx(o9,{ref:n,orientation:e,className:ir("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...r,children:o.jsx(eye,{className:"relative flex-1 rounded-full bg-border"})}));aye.displayName=o9.displayName;const fUe="/assets/levelup-logo-Eif24dqY.png",pUe="/assets/levelup-logo-icon-C-7iromj.png",mUe="/assets/levelup-logo-mobile-B9skSjUG.png";var FC=t=>t.type==="checkbox",V0=t=>t instanceof Date,zc=t=>t==null;const oye=t=>typeof t=="object";var Io=t=>!zc(t)&&!Array.isArray(t)&&oye(t)&&!V0(t),lye=t=>Io(t)&&t.target?FC(t.target)?t.target.checked:t.target.value:t,gUe=t=>t.substring(0,t.search(/\.\d+(\.|$)/))||t,cye=(t,e)=>t.has(gUe(e)),yUe=t=>{const e=t.constructor&&t.constructor.prototype;return Io(e)&&e.hasOwnProperty("isPrototypeOf")},u9=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Jo(t){let e;const r=Array.isArray(t),n=typeof FileList<"u"?t instanceof FileList:!1;if(t instanceof Date)e=new Date(t);else if(!(u9&&(t instanceof Blob||n))&&(r||Io(t)))if(e=r?[]:{},!r&&!yUe(t))e=t;else for(const i in t)t.hasOwnProperty(i)&&(e[i]=Jo(t[i]));else return t;return e}var kO=t=>/^\w*$/.test(t),wo=t=>t===void 0,d9=t=>Array.isArray(t)?t.filter(Boolean):[],h9=t=>d9(t.replace(/["|']|\]/g,"").split(/\.|\[/)),un=(t,e,r)=>{if(!e||!Io(t))return r;const n=(kO(e)?[e]:h9(e)).reduce((i,a)=>zc(i)?i:i[a],t);return wo(n)||n===t?wo(t[e])?r:t[e]:n},Wu=t=>typeof t=="boolean",Fs=(t,e,r)=>{let n=-1;const i=kO(e)?[e]:h9(e),a=i.length,c=a-1;for(;++nXe.useContext(f9),xUe=t=>{const{children:e,...r}=t;return Xe.createElement(f9.Provider,{value:r},e)};var uye=(t,e,r,n=!0)=>{const i={defaultValues:e._defaultValues};for(const a in t)Object.defineProperty(i,a,{get:()=>{const c=a;return e._proxyFormState[c]!==zh.all&&(e._proxyFormState[c]=!n||zh.all),r&&(r[c]=!0),t[c]}});return i};const p9=typeof window<"u"?Xe.useLayoutEffect:Xe.useEffect;function _Ue(t){const e=CO(),{control:r=e.control,disabled:n,name:i,exact:a}=t||{},[c,s]=Xe.useState(r._formState),f=Xe.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return p9(()=>r._subscribe({name:i,formState:f.current,exact:a,callback:m=>{!n&&s({...r._formState,...m})}}),[i,n,a]),Xe.useEffect(()=>{f.current.isValid&&r._setValid(!0)},[r]),Xe.useMemo(()=>uye(c,r,f.current,!1),[c,r])}var Gf=t=>typeof t=="string",dye=(t,e,r,n,i)=>Gf(t)?(n&&e.watch.add(t),un(r,t,i)):Array.isArray(t)?t.map(a=>(n&&e.watch.add(a),un(r,a))):(n&&(e.watchAll=!0),r),f6=t=>zc(t)||!oye(t);function cm(t,e,r=new WeakSet){if(f6(t)||f6(e))return t===e;if(V0(t)&&V0(e))return t.getTime()===e.getTime();const n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;if(r.has(t)||r.has(e))return!0;r.add(t),r.add(e);for(const a of n){const c=t[a];if(!i.includes(a))return!1;if(a!=="ref"){const s=e[a];if(V0(c)&&V0(s)||Io(c)&&Io(s)||Array.isArray(c)&&Array.isArray(s)?!cm(c,s,r):c!==s)return!1}}return!0}function vUe(t){const e=CO(),{control:r=e.control,name:n,defaultValue:i,disabled:a,exact:c,compute:s}=t||{},f=Xe.useRef(i),m=Xe.useRef(s),x=Xe.useRef(void 0);m.current=s;const _=Xe.useMemo(()=>r._getWatch(n,f.current),[r,n]),[T,E]=Xe.useState(m.current?m.current(_):_);return p9(()=>r._subscribe({name:n,formState:{values:!0},exact:c,callback:C=>{if(!a){const N=dye(n,r._names,C.values||r._formValues,!1,f.current);if(m.current){const L=m.current(N);cm(L,x.current)||(E(L),x.current=L)}else E(N)}}}),[r,a,n,c]),Xe.useEffect(()=>r._removeUnmounted()),T}function bUe(t){const e=CO(),{name:r,disabled:n,control:i=e.control,shouldUnregister:a,defaultValue:c}=t,s=cye(i._names.array,r),f=Xe.useMemo(()=>un(i._formValues,r,un(i._defaultValues,r,c)),[i,r,c]),m=vUe({control:i,name:r,defaultValue:f,exact:!0}),x=_Ue({control:i,name:r,exact:!0}),_=Xe.useRef(t),T=Xe.useRef(i.register(r,{...t.rules,value:m,...Wu(t.disabled)?{disabled:t.disabled}:{}}));_.current=t;const E=Xe.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!un(x.errors,r)},isDirty:{enumerable:!0,get:()=>!!un(x.dirtyFields,r)},isTouched:{enumerable:!0,get:()=>!!un(x.touchedFields,r)},isValidating:{enumerable:!0,get:()=>!!un(x.validatingFields,r)},error:{enumerable:!0,get:()=>un(x.errors,r)}}),[x,r]),C=Xe.useCallback(D=>T.current.onChange({target:{value:lye(D),name:r},type:GL.CHANGE}),[r]),N=Xe.useCallback(()=>T.current.onBlur({target:{value:un(i._formValues,r),name:r},type:GL.BLUR}),[r,i._formValues]),L=Xe.useCallback(D=>{const B=un(i._fields,r);B&&D&&(B._f.ref={focus:()=>D.focus&&D.focus(),select:()=>D.select&&D.select(),setCustomValidity:V=>D.setCustomValidity(V),reportValidity:()=>D.reportValidity()})},[i._fields,r]),M=Xe.useMemo(()=>({name:r,value:m,...Wu(n)||x.disabled?{disabled:x.disabled||n}:{},onChange:C,onBlur:N,ref:L}),[r,n,x.disabled,C,N,L,m]);return Xe.useEffect(()=>{const D=i._options.shouldUnregister||a;i.register(r,{..._.current.rules,...Wu(_.current.disabled)?{disabled:_.current.disabled}:{}});const B=(V,G)=>{const W=un(i._fields,V);W&&W._f&&(W._f.mount=G)};if(B(r,!0),D){const V=Jo(un(i._options.defaultValues,r));Fs(i._defaultValues,r,V),wo(un(i._formValues,r))&&Fs(i._formValues,r,V)}return!s&&i.register(r),()=>{(s?D&&!i._state.action:D)?i.unregister(r):B(r,!1)}},[r,i,s,a]),Xe.useEffect(()=>{i._setDisabledField({disabled:n,name:r})},[n,r,i]),Xe.useMemo(()=>({field:M,formState:x,fieldState:E}),[M,x,E])}const wUe=t=>t.render(bUe(t));var hye=(t,e,r,n,i)=>e?{...r[t],types:{...r[t]&&r[t].types?r[t].types:{},[n]:i||!0}}:{},uA=t=>Array.isArray(t)?t:[t],Nee=()=>{let t=[];return{get observers(){return t},next:i=>{for(const a of t)a.next&&a.next(i)},subscribe:i=>(t.push(i),{unsubscribe:()=>{t=t.filter(a=>a!==i)}}),unsubscribe:()=>{t=[]}}},gu=t=>Io(t)&&!Object.keys(t).length,m9=t=>t.type==="file",$h=t=>typeof t=="function",HL=t=>{if(!u9)return!1;const e=t?t.ownerDocument:0;return t instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},fye=t=>t.type==="select-multiple",g9=t=>t.type==="radio",SUe=t=>g9(t)||FC(t),EB=t=>HL(t)&&t.isConnected;function TUe(t,e){const r=e.slice(0,-1).length;let n=0;for(;n{for(const e in t)if($h(t[e]))return!0;return!1};function WL(t,e={}){const r=Array.isArray(t);if(Io(t)||r)for(const n in t)Array.isArray(t[n])||Io(t[n])&&!pye(t[n])?(e[n]=Array.isArray(t[n])?[]:{},WL(t[n],e[n])):zc(t[n])||(e[n]=!0);return e}function mye(t,e,r){const n=Array.isArray(t);if(Io(t)||n)for(const i in t)Array.isArray(t[i])||Io(t[i])&&!pye(t[i])?wo(e)||f6(r[i])?r[i]=Array.isArray(t[i])?WL(t[i],[]):{...WL(t[i])}:mye(t[i],zc(e)?{}:e[i],r[i]):r[i]=!cm(t[i],e[i]);return r}var h2=(t,e)=>mye(t,e,WL(e));const Ree={value:!1,isValid:!1},Lee={value:!0,isValid:!0};var gye=t=>{if(Array.isArray(t)){if(t.length>1){const e=t.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:e,isValid:!!e.length}}return t[0].checked&&!t[0].disabled?t[0].attributes&&!wo(t[0].attributes.value)?wo(t[0].value)||t[0].value===""?Lee:{value:t[0].value,isValid:!0}:Lee:Ree}return Ree},yye=(t,{valueAsNumber:e,valueAsDate:r,setValueAs:n})=>wo(t)?t:e?t===""?NaN:t&&+t:r&&Gf(t)?new Date(t):n?n(t):t;const Dee={isValid:!1,value:null};var xye=t=>Array.isArray(t)?t.reduce((e,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:e,Dee):Dee;function Mee(t){const e=t.ref;return m9(e)?e.files:g9(e)?xye(t.refs).value:fye(e)?[...e.selectedOptions].map(({value:r})=>r):FC(e)?gye(t.refs).value:yye(wo(e.value)?t.ref.value:e.value,t)}var AUe=(t,e,r,n)=>{const i={};for(const a of t){const c=un(e,a);c&&Fs(i,a,c._f)}return{criteriaMode:r,names:[...t],fields:i,shouldUseNativeValidation:n}},KL=t=>t instanceof RegExp,f2=t=>wo(t)?t:KL(t)?t.source:Io(t)?KL(t.value)?t.value.source:t.value:t,Oee=t=>({isOnSubmit:!t||t===zh.onSubmit,isOnBlur:t===zh.onBlur,isOnChange:t===zh.onChange,isOnAll:t===zh.all,isOnTouch:t===zh.onTouched});const Fee="AsyncFunction";var kUe=t=>!!t&&!!t.validate&&!!($h(t.validate)&&t.validate.constructor.name===Fee||Io(t.validate)&&Object.values(t.validate).find(e=>e.constructor.name===Fee)),CUe=t=>t.mount&&(t.required||t.min||t.max||t.maxLength||t.minLength||t.pattern||t.validate),Bee=(t,e,r)=>!r&&(e.watchAll||e.watch.has(t)||[...e.watch].some(n=>t.startsWith(n)&&/^\.\w+/.test(t.slice(n.length))));const dA=(t,e,r,n)=>{for(const i of r||Object.keys(t)){const a=un(t,i);if(a){const{_f:c,...s}=a;if(c){if(c.refs&&c.refs[0]&&e(c.refs[0],i)&&!n)return!0;if(c.ref&&e(c.ref,c.name)&&!n)return!0;if(dA(s,e))break}else if(Io(s)&&dA(s,e))break}}};function zee(t,e,r){const n=un(t,r);if(n||kO(r))return{error:n,name:r};const i=r.split(".");for(;i.length;){const a=i.join("."),c=un(e,a),s=un(t,a);if(c&&!Array.isArray(c)&&r!==a)return{name:r};if(s&&s.type)return{name:a,error:s};if(s&&s.root&&s.root.type)return{name:`${a}.root`,error:s.root};i.pop()}return{name:r}}var IUe=(t,e,r,n)=>{r(t);const{name:i,...a}=t;return gu(a)||Object.keys(a).length>=Object.keys(e).length||Object.keys(a).find(c=>e[c]===(!n||zh.all))},jUe=(t,e,r)=>!t||!e||t===e||uA(t).some(n=>n&&(r?n===e:n.startsWith(e)||e.startsWith(n))),PUe=(t,e,r,n,i)=>i.isOnAll?!1:!r&&i.isOnTouch?!(e||t):(r?n.isOnBlur:i.isOnBlur)?!t:(r?n.isOnChange:i.isOnChange)?t:!0,NUe=(t,e)=>!d9(un(t,e)).length&&Mo(t,e),RUe=(t,e,r)=>{const n=uA(un(t,r));return Fs(n,"root",e[r]),Fs(t,r,n),t},TR=t=>Gf(t);function $ee(t,e,r="validate"){if(TR(t)||Array.isArray(t)&&t.every(TR)||Wu(t)&&!t)return{type:r,message:TR(t)?t:"",ref:e}}var Rb=t=>Io(t)&&!KL(t)?t:{value:t,message:""},Uee=async(t,e,r,n,i,a)=>{const{ref:c,refs:s,required:f,maxLength:m,minLength:x,min:_,max:T,pattern:E,validate:C,name:N,valueAsNumber:L,mount:M}=t._f,D=un(r,N);if(!M||e.has(N))return{};const B=s?s[0]:c,V=be=>{i&&B.reportValidity&&(B.setCustomValidity(Wu(be)?"":be||""),B.reportValidity())},G={},W=g9(c),Z=FC(c),Q=W||Z,se=(L||m9(c))&&wo(c.value)&&wo(D)||HL(c)&&c.value===""||D===""||Array.isArray(D)&&!D.length,ie=hye.bind(null,N,n,G),ue=(be,Te,we,Oe=Yp.maxLength,Ae=Yp.minLength)=>{const Se=be?Te:we;G[N]={type:be?Oe:Ae,message:Se,ref:c,...ie(be?Oe:Ae,Se)}};if(a?!Array.isArray(D)||!D.length:f&&(!Q&&(se||zc(D))||Wu(D)&&!D||Z&&!gye(s).isValid||W&&!xye(s).isValid)){const{value:be,message:Te}=TR(f)?{value:!!f,message:f}:Rb(f);if(be&&(G[N]={type:Yp.required,message:Te,ref:B,...ie(Yp.required,Te)},!n))return V(Te),G}if(!se&&(!zc(_)||!zc(T))){let be,Te;const we=Rb(T),Oe=Rb(_);if(!zc(D)&&!isNaN(D)){const Ae=c.valueAsNumber||D&&+D;zc(we.value)||(be=Ae>we.value),zc(Oe.value)||(Te=Aenew Date(new Date().toDateString()+" "+_e),ge=c.type=="time",je=c.type=="week";Gf(we.value)&&D&&(be=ge?Se(D)>Se(we.value):je?D>we.value:Ae>new Date(we.value)),Gf(Oe.value)&&D&&(Te=ge?Se(D)+be.value,Oe=!zc(Te.value)&&D.length<+Te.value;if((we||Oe)&&(ue(we,be.message,Te.message),!n))return V(G[N].message),G}if(E&&!se&&Gf(D)){const{value:be,message:Te}=Rb(E);if(KL(be)&&!D.match(be)&&(G[N]={type:Yp.pattern,message:Te,ref:c,...ie(Yp.pattern,Te)},!n))return V(Te),G}if(C){if($h(C)){const be=await C(D,r),Te=$ee(be,B);if(Te&&(G[N]={...Te,...ie(Yp.validate,Te.message)},!n))return V(Te.message),G}else if(Io(C)){let be={};for(const Te in C){if(!gu(be)&&!n)break;const we=$ee(await C[Te](D,r),B,Te);we&&(be={...we,...ie(Te,we.message)},V(we.message),n&&(G[N]=be))}if(!gu(be)&&(G[N]={ref:B,...be},!n))return G}}return V(!0),G};const LUe={mode:zh.onSubmit,reValidateMode:zh.onChange,shouldFocusError:!0};function DUe(t={}){let e={...LUe,...t},r={submitCount:0,isDirty:!1,isReady:!1,isLoading:$h(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},n={},i=Io(e.defaultValues)||Io(e.values)?Jo(e.defaultValues||e.values)||{}:{},a=e.shouldUnregister?{}:Jo(i),c={action:!1,mount:!1,watch:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,m=0;const x={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let _={...x};const T={array:Nee(),state:Nee()},E=e.criteriaMode===zh.all,C=Je=>Tt=>{clearTimeout(m),m=setTimeout(Je,Tt)},N=async Je=>{if(!e.disabled&&(x.isValid||_.isValid||Je)){const Tt=e.resolver?gu((await Z()).errors):await se(n,!0);Tt!==r.isValid&&T.state.next({isValid:Tt})}},L=(Je,Tt)=>{!e.disabled&&(x.isValidating||x.validatingFields||_.isValidating||_.validatingFields)&&((Je||Array.from(s.mount)).forEach(Dt=>{Dt&&(Tt?Fs(r.validatingFields,Dt,Tt):Mo(r.validatingFields,Dt))}),T.state.next({validatingFields:r.validatingFields,isValidating:!gu(r.validatingFields)}))},M=(Je,Tt=[],Dt,cr,lr=!0,ur=!0)=>{if(cr&&Dt&&!e.disabled){if(c.action=!0,ur&&Array.isArray(un(n,Je))){const Rr=Dt(un(n,Je),cr.argA,cr.argB);lr&&Fs(n,Je,Rr)}if(ur&&Array.isArray(un(r.errors,Je))){const Rr=Dt(un(r.errors,Je),cr.argA,cr.argB);lr&&Fs(r.errors,Je,Rr),NUe(r.errors,Je)}if((x.touchedFields||_.touchedFields)&&ur&&Array.isArray(un(r.touchedFields,Je))){const Rr=Dt(un(r.touchedFields,Je),cr.argA,cr.argB);lr&&Fs(r.touchedFields,Je,Rr)}(x.dirtyFields||_.dirtyFields)&&(r.dirtyFields=h2(i,a)),T.state.next({name:Je,isDirty:ue(Je,Tt),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else Fs(a,Je,Tt)},D=(Je,Tt)=>{Fs(r.errors,Je,Tt),T.state.next({errors:r.errors})},B=Je=>{r.errors=Je,T.state.next({errors:r.errors,isValid:!1})},V=(Je,Tt,Dt,cr)=>{const lr=un(n,Je);if(lr){const ur=un(a,Je,wo(Dt)?un(i,Je):Dt);wo(ur)||cr&&cr.defaultChecked||Tt?Fs(a,Je,Tt?ur:Mee(lr._f)):we(Je,ur),c.mount&&N()}},G=(Je,Tt,Dt,cr,lr)=>{let ur=!1,Rr=!1;const Pn={name:Je};if(!e.disabled){if(!Dt||cr){(x.isDirty||_.isDirty)&&(Rr=r.isDirty,r.isDirty=Pn.isDirty=ue(),ur=Rr!==Pn.isDirty);const Yn=cm(un(i,Je),Tt);Rr=!!un(r.dirtyFields,Je),Yn?Mo(r.dirtyFields,Je):Fs(r.dirtyFields,Je,!0),Pn.dirtyFields=r.dirtyFields,ur=ur||(x.dirtyFields||_.dirtyFields)&&Rr!==!Yn}if(Dt){const Yn=un(r.touchedFields,Je);Yn||(Fs(r.touchedFields,Je,Dt),Pn.touchedFields=r.touchedFields,ur=ur||(x.touchedFields||_.touchedFields)&&Yn!==Dt)}ur&&lr&&T.state.next(Pn)}return ur?Pn:{}},W=(Je,Tt,Dt,cr)=>{const lr=un(r.errors,Je),ur=(x.isValid||_.isValid)&&Wu(Tt)&&r.isValid!==Tt;if(e.delayError&&Dt?(f=C(()=>D(Je,Dt)),f(e.delayError)):(clearTimeout(m),f=null,Dt?Fs(r.errors,Je,Dt):Mo(r.errors,Je)),(Dt?!cm(lr,Dt):lr)||!gu(cr)||ur){const Rr={...cr,...ur&&Wu(Tt)?{isValid:Tt}:{},errors:r.errors,name:Je};r={...r,...Rr},T.state.next(Rr)}},Z=async Je=>{L(Je,!0);const Tt=await e.resolver(a,e.context,AUe(Je||s.mount,n,e.criteriaMode,e.shouldUseNativeValidation));return L(Je),Tt},Q=async Je=>{const{errors:Tt}=await Z(Je);if(Je)for(const Dt of Je){const cr=un(Tt,Dt);cr?Fs(r.errors,Dt,cr):Mo(r.errors,Dt)}else r.errors=Tt;return Tt},se=async(Je,Tt,Dt={valid:!0})=>{for(const cr in Je){const lr=Je[cr];if(lr){const{_f:ur,...Rr}=lr;if(ur){const Pn=s.array.has(ur.name),Yn=lr._f&&kUe(lr._f);Yn&&x.validatingFields&&L([cr],!0);const ki=await Uee(lr,s.disabled,a,E,e.shouldUseNativeValidation&&!Tt,Pn);if(Yn&&x.validatingFields&&L([cr]),ki[ur.name]&&(Dt.valid=!1,Tt))break;!Tt&&(un(ki,ur.name)?Pn?RUe(r.errors,ki,ur.name):Fs(r.errors,ur.name,ki[ur.name]):Mo(r.errors,ur.name))}!gu(Rr)&&await se(Rr,Tt,Dt)}}return Dt.valid},ie=()=>{for(const Je of s.unMount){const Tt=un(n,Je);Tt&&(Tt._f.refs?Tt._f.refs.every(Dt=>!EB(Dt)):!EB(Tt._f.ref))&&St(Je)}s.unMount=new Set},ue=(Je,Tt)=>!e.disabled&&(Je&&Tt&&Fs(a,Je,Tt),!cm(_e(),i)),be=(Je,Tt,Dt)=>dye(Je,s,{...c.mount?a:wo(Tt)?i:Gf(Je)?{[Je]:Tt}:Tt},Dt,Tt),Te=Je=>d9(un(c.mount?a:i,Je,e.shouldUnregister?un(i,Je,[]):[])),we=(Je,Tt,Dt={})=>{const cr=un(n,Je);let lr=Tt;if(cr){const ur=cr._f;ur&&(!ur.disabled&&Fs(a,Je,yye(Tt,ur)),lr=HL(ur.ref)&&zc(Tt)?"":Tt,fye(ur.ref)?[...ur.ref.options].forEach(Rr=>Rr.selected=lr.includes(Rr.value)):ur.refs?FC(ur.ref)?ur.refs.forEach(Rr=>{(!Rr.defaultChecked||!Rr.disabled)&&(Array.isArray(lr)?Rr.checked=!!lr.find(Pn=>Pn===Rr.value):Rr.checked=lr===Rr.value||!!lr)}):ur.refs.forEach(Rr=>Rr.checked=Rr.value===lr):m9(ur.ref)?ur.ref.value="":(ur.ref.value=lr,ur.ref.type||T.state.next({name:Je,values:Jo(a)})))}(Dt.shouldDirty||Dt.shouldTouch)&&G(Je,lr,Dt.shouldTouch,Dt.shouldDirty,!0),Dt.shouldValidate&&je(Je)},Oe=(Je,Tt,Dt)=>{for(const cr in Tt){if(!Tt.hasOwnProperty(cr))return;const lr=Tt[cr],ur=Je+"."+cr,Rr=un(n,ur);(s.array.has(Je)||Io(lr)||Rr&&!Rr._f)&&!V0(lr)?Oe(ur,lr,Dt):we(ur,lr,Dt)}},Ae=(Je,Tt,Dt={})=>{const cr=un(n,Je),lr=s.array.has(Je),ur=Jo(Tt);Fs(a,Je,ur),lr?(T.array.next({name:Je,values:Jo(a)}),(x.isDirty||x.dirtyFields||_.isDirty||_.dirtyFields)&&Dt.shouldDirty&&T.state.next({name:Je,dirtyFields:h2(i,a),isDirty:ue(Je,ur)})):cr&&!cr._f&&!zc(ur)?Oe(Je,ur,Dt):we(Je,ur,Dt),Bee(Je,s)&&T.state.next({...r,name:Je}),T.state.next({name:c.mount?Je:void 0,values:Jo(a)})},Se=async Je=>{c.mount=!0;const Tt=Je.target;let Dt=Tt.name,cr=!0;const lr=un(n,Dt),ur=Yn=>{cr=Number.isNaN(Yn)||V0(Yn)&&isNaN(Yn.getTime())||cm(Yn,un(a,Dt,Yn))},Rr=Oee(e.mode),Pn=Oee(e.reValidateMode);if(lr){let Yn,ki;const wi=Tt.type?Mee(lr._f):lye(Je),Ci=Je.type===GL.BLUR||Je.type===GL.FOCUS_OUT,Gs=!CUe(lr._f)&&!e.resolver&&!un(r.errors,Dt)&&!lr._f.deps||PUe(Ci,un(r.touchedFields,Dt),r.isSubmitted,Pn,Rr),vi=Bee(Dt,s,Ci);Fs(a,Dt,wi),Ci?(lr._f.onBlur&&lr._f.onBlur(Je),f&&f(0)):lr._f.onChange&&lr._f.onChange(Je);const sa=G(Dt,wi,Ci),ts=!gu(sa)||vi;if(!Ci&&T.state.next({name:Dt,type:Je.type,values:Jo(a)}),Gs)return(x.isValid||_.isValid)&&(e.mode==="onBlur"?Ci&&N():Ci||N()),ts&&T.state.next({name:Dt,...vi?{}:sa});if(!Ci&&vi&&T.state.next({...r}),e.resolver){const{errors:Pr}=await Z([Dt]);if(ur(wi),cr){const ni=zee(r.errors,n,Dt),rs=zee(Pr,n,ni.name||Dt);Yn=rs.error,Dt=rs.name,ki=gu(Pr)}}else L([Dt],!0),Yn=(await Uee(lr,s.disabled,a,E,e.shouldUseNativeValidation))[Dt],L([Dt]),ur(wi),cr&&(Yn?ki=!1:(x.isValid||_.isValid)&&(ki=await se(n,!0)));cr&&(lr._f.deps&&je(lr._f.deps),W(Dt,ki,Yn,sa))}},ge=(Je,Tt)=>{if(un(r.errors,Tt)&&Je.focus)return Je.focus(),1},je=async(Je,Tt={})=>{let Dt,cr;const lr=uA(Je);if(e.resolver){const ur=await Q(wo(Je)?Je:lr);Dt=gu(ur),cr=Je?!lr.some(Rr=>un(ur,Rr)):Dt}else Je?(cr=(await Promise.all(lr.map(async ur=>{const Rr=un(n,ur);return await se(Rr&&Rr._f?{[ur]:Rr}:Rr)}))).every(Boolean),!(!cr&&!r.isValid)&&N()):cr=Dt=await se(n);return T.state.next({...!Gf(Je)||(x.isValid||_.isValid)&&Dt!==r.isValid?{}:{name:Je},...e.resolver||!Je?{isValid:Dt}:{},errors:r.errors}),Tt.shouldFocus&&!cr&&dA(n,ge,Je?lr:s.mount),cr},_e=Je=>{const Tt={...c.mount?a:i};return wo(Je)?Tt:Gf(Je)?un(Tt,Je):Je.map(Dt=>un(Tt,Dt))},xe=(Je,Tt)=>({invalid:!!un((Tt||r).errors,Je),isDirty:!!un((Tt||r).dirtyFields,Je),error:un((Tt||r).errors,Je),isValidating:!!un(r.validatingFields,Je),isTouched:!!un((Tt||r).touchedFields,Je)}),Pe=Je=>{Je&&uA(Je).forEach(Tt=>Mo(r.errors,Tt)),T.state.next({errors:Je?r.errors:{}})},Ze=(Je,Tt,Dt)=>{const cr=(un(n,Je,{_f:{}})._f||{}).ref,lr=un(r.errors,Je)||{},{ref:ur,message:Rr,type:Pn,...Yn}=lr;Fs(r.errors,Je,{...Yn,...Tt,ref:cr}),T.state.next({name:Je,errors:r.errors,isValid:!1}),Dt&&Dt.shouldFocus&&cr&&cr.focus&&cr.focus()},at=(Je,Tt)=>$h(Je)?T.state.subscribe({next:Dt=>"values"in Dt&&Je(be(void 0,Tt),Dt)}):be(Je,Tt,!0),lt=Je=>T.state.subscribe({next:Tt=>{jUe(Je.name,Tt.name,Je.exact)&&IUe(Tt,Je.formState||x,Sr,Je.reRenderRoot)&&Je.callback({values:{...a},...r,...Tt,defaultValues:i})}}).unsubscribe,xt=Je=>(c.mount=!0,_={..._,...Je.formState},lt({...Je,formState:_})),St=(Je,Tt={})=>{for(const Dt of Je?uA(Je):s.mount)s.mount.delete(Dt),s.array.delete(Dt),Tt.keepValue||(Mo(n,Dt),Mo(a,Dt)),!Tt.keepError&&Mo(r.errors,Dt),!Tt.keepDirty&&Mo(r.dirtyFields,Dt),!Tt.keepTouched&&Mo(r.touchedFields,Dt),!Tt.keepIsValidating&&Mo(r.validatingFields,Dt),!e.shouldUnregister&&!Tt.keepDefaultValue&&Mo(i,Dt);T.state.next({values:Jo(a)}),T.state.next({...r,...Tt.keepDirty?{isDirty:ue()}:{}}),!Tt.keepIsValid&&N()},Xt=({disabled:Je,name:Tt})=>{(Wu(Je)&&c.mount||Je||s.disabled.has(Tt))&&(Je?s.disabled.add(Tt):s.disabled.delete(Tt))},_t=(Je,Tt={})=>{let Dt=un(n,Je);const cr=Wu(Tt.disabled)||Wu(e.disabled);return Fs(n,Je,{...Dt||{},_f:{...Dt&&Dt._f?Dt._f:{ref:{name:Je}},name:Je,mount:!0,...Tt}}),s.mount.add(Je),Dt?Xt({disabled:Wu(Tt.disabled)?Tt.disabled:e.disabled,name:Je}):V(Je,!0,Tt.value),{...cr?{disabled:Tt.disabled||e.disabled}:{},...e.progressive?{required:!!Tt.required,min:f2(Tt.min),max:f2(Tt.max),minLength:f2(Tt.minLength),maxLength:f2(Tt.maxLength),pattern:f2(Tt.pattern)}:{},name:Je,onChange:Se,onBlur:Se,ref:lr=>{if(lr){_t(Je,Tt),Dt=un(n,Je);const ur=wo(lr.value)&&lr.querySelectorAll&&lr.querySelectorAll("input,select,textarea")[0]||lr,Rr=SUe(ur),Pn=Dt._f.refs||[];if(Rr?Pn.find(Yn=>Yn===ur):ur===Dt._f.ref)return;Fs(n,Je,{_f:{...Dt._f,...Rr?{refs:[...Pn.filter(EB),ur,...Array.isArray(un(i,Je))?[{}]:[]],ref:{type:ur.type,name:Je}}:{ref:ur}}}),V(Je,!1,void 0,ur)}else Dt=un(n,Je,{}),Dt._f&&(Dt._f.mount=!1),(e.shouldUnregister||Tt.shouldUnregister)&&!(cye(s.array,Je)&&c.action)&&s.unMount.add(Je)}}},Rt=()=>e.shouldFocusError&&dA(n,ge,s.mount),er=Je=>{Wu(Je)&&(T.state.next({disabled:Je}),dA(n,(Tt,Dt)=>{const cr=un(n,Dt);cr&&(Tt.disabled=cr._f.disabled||Je,Array.isArray(cr._f.refs)&&cr._f.refs.forEach(lr=>{lr.disabled=cr._f.disabled||Je}))},0,!1))},vt=(Je,Tt)=>async Dt=>{let cr;Dt&&(Dt.preventDefault&&Dt.preventDefault(),Dt.persist&&Dt.persist());let lr=Jo(a);if(T.state.next({isSubmitting:!0}),e.resolver){const{errors:ur,values:Rr}=await Z();r.errors=ur,lr=Jo(Rr)}else await se(n);if(s.disabled.size)for(const ur of s.disabled)Mo(lr,ur);if(Mo(r.errors,"root"),gu(r.errors)){T.state.next({errors:{}});try{await Je(lr,Dt)}catch(ur){cr=ur}}else Tt&&await Tt({...r.errors},Dt),Rt(),setTimeout(Rt);if(T.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:gu(r.errors)&&!cr,submitCount:r.submitCount+1,errors:r.errors}),cr)throw cr},xr=(Je,Tt={})=>{un(n,Je)&&(wo(Tt.defaultValue)?Ae(Je,Jo(un(i,Je))):(Ae(Je,Tt.defaultValue),Fs(i,Je,Jo(Tt.defaultValue))),Tt.keepTouched||Mo(r.touchedFields,Je),Tt.keepDirty||(Mo(r.dirtyFields,Je),r.isDirty=Tt.defaultValue?ue(Je,Jo(un(i,Je))):ue()),Tt.keepError||(Mo(r.errors,Je),x.isValid&&N()),T.state.next({...r}))},_r=(Je,Tt={})=>{const Dt=Je?Jo(Je):i,cr=Jo(Dt),lr=gu(Je),ur=lr?i:cr;if(Tt.keepDefaultValues||(i=Dt),!Tt.keepValues){if(Tt.keepDirtyValues){const Rr=new Set([...s.mount,...Object.keys(h2(i,a))]);for(const Pn of Array.from(Rr))un(r.dirtyFields,Pn)?Fs(ur,Pn,un(a,Pn)):Ae(Pn,un(ur,Pn))}else{if(u9&&wo(Je))for(const Rr of s.mount){const Pn=un(n,Rr);if(Pn&&Pn._f){const Yn=Array.isArray(Pn._f.refs)?Pn._f.refs[0]:Pn._f.ref;if(HL(Yn)){const ki=Yn.closest("form");if(ki){ki.reset();break}}}}if(Tt.keepFieldsRef)for(const Rr of s.mount)Ae(Rr,un(ur,Rr));else n={}}a=e.shouldUnregister?Tt.keepDefaultValues?Jo(i):{}:Jo(ur),T.array.next({values:{...ur}}),T.state.next({values:{...ur}})}s={mount:Tt.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!x.isValid||!!Tt.keepIsValid||!!Tt.keepDirtyValues,c.watch=!!e.shouldUnregister,T.state.next({submitCount:Tt.keepSubmitCount?r.submitCount:0,isDirty:lr?!1:Tt.keepDirty?r.isDirty:!!(Tt.keepDefaultValues&&!cm(Je,i)),isSubmitted:Tt.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:lr?{}:Tt.keepDirtyValues?Tt.keepDefaultValues&&a?h2(i,a):r.dirtyFields:Tt.keepDefaultValues&&Je?h2(i,Je):Tt.keepDirty?r.dirtyFields:{},touchedFields:Tt.keepTouched?r.touchedFields:{},errors:Tt.keepErrors?r.errors:{},isSubmitSuccessful:Tt.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1})},tn=(Je,Tt)=>_r($h(Je)?Je(a):Je,Tt),or=(Je,Tt={})=>{const Dt=un(n,Je),cr=Dt&&Dt._f;if(cr){const lr=cr.refs?cr.refs[0]:cr.ref;lr.focus&&(lr.focus(),Tt.shouldSelect&&$h(lr.select)&&lr.select())}},Sr=Je=>{r={...r,...Je}},Qt={control:{register:_t,unregister:St,getFieldState:xe,handleSubmit:vt,setError:Ze,_subscribe:lt,_runSchema:Z,_focusError:Rt,_getWatch:be,_getDirty:ue,_setValid:N,_setFieldArray:M,_setDisabledField:Xt,_setErrors:B,_getFieldArray:Te,_reset:_r,_resetDefaultValues:()=>$h(e.defaultValues)&&e.defaultValues().then(Je=>{tn(Je,e.resetOptions),T.state.next({isLoading:!1})}),_removeUnmounted:ie,_disableForm:er,_subjects:T,_proxyFormState:x,get _fields(){return n},get _formValues(){return a},get _state(){return c},set _state(Je){c=Je},get _defaultValues(){return i},get _names(){return s},set _names(Je){s=Je},get _formState(){return r},get _options(){return e},set _options(Je){e={...e,...Je}}},subscribe:xt,trigger:je,register:_t,handleSubmit:vt,watch:at,setValue:Ae,getValues:_e,reset:tn,resetField:xr,clearErrors:Pe,unregister:St,setError:Ze,setFocus:or,getFieldState:xe};return{...Qt,formControl:Qt}}function y9(t={}){const e=Xe.useRef(void 0),r=Xe.useRef(void 0),[n,i]=Xe.useState({isDirty:!1,isValidating:!1,isLoading:$h(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,isReady:!1,defaultValues:$h(t.defaultValues)?void 0:t.defaultValues});if(!e.current)if(t.formControl)e.current={...t.formControl,formState:n},t.defaultValues&&!$h(t.defaultValues)&&t.formControl.reset(t.defaultValues,t.resetOptions);else{const{formControl:c,...s}=DUe(t);e.current={...s,formState:n}}const a=e.current.control;return a._options=t,p9(()=>{const c=a._subscribe({formState:a._proxyFormState,callback:()=>i({...a._formState}),reRenderRoot:!0});return i(s=>({...s,isReady:!0})),a._formState.isReady=!0,c},[a]),Xe.useEffect(()=>a._disableForm(t.disabled),[a,t.disabled]),Xe.useEffect(()=>{t.mode&&(a._options.mode=t.mode),t.reValidateMode&&(a._options.reValidateMode=t.reValidateMode)},[a,t.mode,t.reValidateMode]),Xe.useEffect(()=>{t.errors&&(a._setErrors(t.errors),a._focusError())},[a,t.errors]),Xe.useEffect(()=>{t.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,t.shouldUnregister]),Xe.useEffect(()=>{if(a._proxyFormState.isDirty){const c=a._getDirty();c!==n.isDirty&&a._subjects.state.next({isDirty:c})}},[a,n.isDirty]),Xe.useEffect(()=>{t.values&&!cm(t.values,r.current)?(a._reset(t.values,{keepFieldsRef:!0,...a._options.resetOptions}),r.current=t.values,i(c=>({...c}))):a._resetDefaultValues()},[a,t.values]),Xe.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),e.current.formState=uye(n,a),e.current}const Vee=(t,e,r)=>{if(t&&"reportValidity"in t){const n=un(r,e);t.setCustomValidity(n&&n.message||""),t.reportValidity()}},_ye=(t,e)=>{for(const r in e.fields){const n=e.fields[r];n&&n.ref&&"reportValidity"in n.ref?Vee(n.ref,r,t):n.refs&&n.refs.forEach(i=>Vee(i,r,t))}},MUe=(t,e)=>{e.shouldUseNativeValidation&&_ye(t,e);const r={};for(const n in t){const i=un(e.fields,n),a=Object.assign(t[n]||{},{ref:i&&i.ref});if(OUe(e.names||Object.keys(t),n)){const c=Object.assign({},un(r,n));Fs(c,"root",a),Fs(r,n,c)}else Fs(r,n,a)}return r},OUe=(t,e)=>t.some(r=>r.startsWith(e+"."));var FUe=function(t,e){for(var r={};t.length;){var n=t[0],i=n.code,a=n.message,c=n.path.join(".");if(!r[c])if("unionErrors"in n){var s=n.unionErrors[0].errors[0];r[c]={message:s.message,type:s.code}}else r[c]={message:a,type:i};if("unionErrors"in n&&n.unionErrors.forEach(function(x){return x.errors.forEach(function(_){return t.push(_)})}),e){var f=r[c].types,m=f&&f[n.code];r[c]=hye(c,e,r,i,m?[].concat(m,n.message):n.message)}t.shift()}return r},x9=function(t,e,r){return r===void 0&&(r={}),function(n,i,a){try{return Promise.resolve(function(c,s){try{var f=Promise.resolve(t[r.mode==="sync"?"parse":"parseAsync"](n,e)).then(function(m){return a.shouldUseNativeValidation&&_ye({},a),{errors:{},values:r.raw?n:m}})}catch(m){return s(m)}return f&&f.then?f.then(void 0,s):f}(0,function(c){if(function(s){return Array.isArray(s==null?void 0:s.errors)}(c))return{values:{},errors:MUe(FUe(c.errors,!a.shouldUseNativeValidation&&a.criteriaMode==="all"),a)};throw c}))}catch(c){return Promise.reject(c)}}},qee;function Ar(t,e,r){function n(s,f){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:f,constr:c,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,f);const m=c.prototype,x=Object.keys(m);for(let _=0;_{var f,m;return r!=null&&r.Parent&&s instanceof r.Parent?!0:(m=(f=s==null?void 0:s._zod)==null?void 0:f.traits)==null?void 0:m.has(t)}}),Object.defineProperty(c,"name",{value:t}),c}class Rw extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class vye extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}(qee=globalThis).__zod_globalConfig??(qee.__zod_globalConfig={});const _9=globalThis.__zod_globalConfig;function S_(t){return _9}function bye(t){const e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,i])=>e.indexOf(+n)===-1).map(([n,i])=>i)}function p6(t,e){return typeof e=="bigint"?e.toString():e}function v9(t){return{get value(){{const e=t();return Object.defineProperty(this,"value",{value:e}),e}}}}function b9(t){return t==null}function w9(t){const e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function BUe(t,e){const r=t/e,n=Math.round(r),i=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n){};function YL(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}const $Ue=v9(()=>{var t;if(_9.jitless||typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)!=null&&t.includes("Cloudflare")))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function ok(t){if(YL(t)===!1)return!1;const e=t.constructor;if(e===void 0||typeof e!="function")return!0;const r=e.prototype;return!(YL(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Sye(t){return ok(t)?{...t}:Array.isArray(t)?[...t]:t instanceof Map?new Map(t):t instanceof Set?new Set(t):t}const UUe=new Set(["string","number","symbol"]);function y1(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nx(t,e,r){const n=new t._zod.constr(e??t._zod.def);return(!e||r!=null&&r.parent)&&(n._zod.parent=t),n}function zn(t){const e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if((e==null?void 0:e.message)!==void 0){if((e==null?void 0:e.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function VUe(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}const qUe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function GUe(t,e){const r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const a=rx(t._zod.def,{get shape(){const c={};for(const s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(c[s]=r.shape[s])}return U_(this,"shape",c),c},checks:[]});return nx(t,a)}function HUe(t,e){const r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const a=rx(t._zod.def,{get shape(){const c={...t._zod.def.shape};for(const s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete c[s]}return U_(this,"shape",c),c},checks:[]});return nx(t,a)}function WUe(t,e){if(!ok(e))throw new Error("Invalid input to extend: expected a plain object");const r=t._zod.def.checks;if(r&&r.length>0){const a=t._zod.def.shape;for(const c in e)if(Object.getOwnPropertyDescriptor(a,c)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const i=rx(t._zod.def,{get shape(){const a={...t._zod.def.shape,...e};return U_(this,"shape",a),a}});return nx(t,i)}function KUe(t,e){if(!ok(e))throw new Error("Invalid input to safeExtend: expected a plain object");const r=rx(t._zod.def,{get shape(){const n={...t._zod.def.shape,...e};return U_(this,"shape",n),n}});return nx(t,r)}function YUe(t,e){var n;if((n=t._zod.def.checks)!=null&&n.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const r=rx(t._zod.def,{get shape(){const i={...t._zod.def.shape,...e._zod.def.shape};return U_(this,"shape",i),i},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return nx(t,r)}function ZUe(t,e,r){const i=e._zod.def.checks;if(i&&i.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const c=rx(e._zod.def,{get shape(){const s=e._zod.def.shape,f={...s};if(r)for(const m in r){if(!(m in s))throw new Error(`Unrecognized key: "${m}"`);r[m]&&(f[m]=t?new t({type:"optional",innerType:s[m]}):s[m])}else for(const m in s)f[m]=t?new t({type:"optional",innerType:s[m]}):s[m];return U_(this,"shape",f),f},checks:[]});return nx(e,c)}function XUe(t,e,r){const n=rx(e._zod.def,{get shape(){const i=e._zod.def.shape,a={...i};if(r)for(const c in r){if(!(c in a))throw new Error(`Unrecognized key: "${c}"`);r[c]&&(a[c]=new t({type:"nonoptional",innerType:i[c]}))}else for(const c in i)a[c]=new t({type:"nonoptional",innerType:i[c]});return U_(this,"shape",a),a}});return nx(e,n)}function uw(t,e=0){var r;if(t.aborted===!0)return!0;for(let n=e;n{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function lN(t){return typeof t=="string"?t:t==null?void 0:t.message}function T_(t,e,r){var f,m,x,_,T,E;const n=t.message?t.message:lN((x=(m=(f=t.inst)==null?void 0:f._zod.def)==null?void 0:m.error)==null?void 0:x.call(m,t))??lN((_=e==null?void 0:e.error)==null?void 0:_.call(e,t))??lN((T=r.customError)==null?void 0:T.call(r,t))??lN((E=r.localeError)==null?void 0:E.call(r,t))??"Invalid input",{inst:i,continue:a,input:c,...s}=t;return s.path??(s.path=[]),s.message=n,e!=null&&e.reportInput&&(s.input=c),s}function S9(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function lk(...t){const[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}const Eye=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,p6,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Aye=Ar("$ZodError",Eye),kye=Ar("$ZodError",Eye,{Parent:Error});function JUe(t,e=r=>r.message){const r={},n=[];for(const i of t.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}function e6e(t,e=r=>r.message){const r={_errors:[]},n=(i,a=[])=>{for(const c of i.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(s=>n({issues:s},[...a,...c.path]));else if(c.code==="invalid_key")n({issues:c.issues},[...a,...c.path]);else if(c.code==="invalid_element")n({issues:c.issues},[...a,...c.path]);else{const s=[...a,...c.path];if(s.length===0)r._errors.push(e(c));else{let f=r,m=0;for(;m(e,r,n,i)=>{const a=n?{...n,async:!1}:{async:!1},c=e._zod.run({value:r,issues:[]},a);if(c instanceof Promise)throw new Rw;if(c.issues.length){const s=new((i==null?void 0:i.Err)??t)(c.issues.map(f=>T_(f,a,S_())));throw wye(s,i==null?void 0:i.callee),s}return c.value},E9=t=>async(e,r,n,i)=>{const a=n?{...n,async:!0}:{async:!0};let c=e._zod.run({value:r,issues:[]},a);if(c instanceof Promise&&(c=await c),c.issues.length){const s=new((i==null?void 0:i.Err)??t)(c.issues.map(f=>T_(f,a,S_())));throw wye(s,i==null?void 0:i.callee),s}return c.value},IO=t=>(e,r,n)=>{const i=n?{...n,async:!1}:{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Rw;return a.issues.length?{success:!1,error:new(t??Aye)(a.issues.map(c=>T_(c,i,S_())))}:{success:!0,data:a.value}},t6e=IO(kye),jO=t=>async(e,r,n)=>{const i=n?{...n,async:!0}:{async:!0};let a=e._zod.run({value:r,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new t(a.issues.map(c=>T_(c,i,S_())))}:{success:!0,data:a.value}},r6e=jO(kye),n6e=t=>(e,r,n)=>{const i=n?{...n,direction:"backward"}:{direction:"backward"};return T9(t)(e,r,i)},i6e=t=>(e,r,n)=>T9(t)(e,r,n),s6e=t=>async(e,r,n)=>{const i=n?{...n,direction:"backward"}:{direction:"backward"};return E9(t)(e,r,i)},a6e=t=>async(e,r,n)=>E9(t)(e,r,n),o6e=t=>(e,r,n)=>{const i=n?{...n,direction:"backward"}:{direction:"backward"};return IO(t)(e,r,i)},l6e=t=>(e,r,n)=>IO(t)(e,r,n),c6e=t=>async(e,r,n)=>{const i=n?{...n,direction:"backward"}:{direction:"backward"};return jO(t)(e,r,i)},u6e=t=>async(e,r,n)=>jO(t)(e,r,n),d6e=/^[cC][0-9a-z]{6,}$/,h6e=/^[0-9a-z]+$/,f6e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,p6e=/^[0-9a-vA-V]{20}$/,m6e=/^[A-Za-z0-9]{27}$/,g6e=/^[a-zA-Z0-9_-]{21}$/,y6e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,x6e=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Wee=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,_6e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,v6e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function b6e(){return new RegExp(v6e,"u")}const w6e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,S6e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,T6e=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,E6e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,A6e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Cye=/^[A-Za-z0-9_-]*$/,k6e=/^https?$/,C6e=/^\+[1-9]\d{6,14}$/,Iye="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",I6e=new RegExp(`^${Iye}$`);function jye(t){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function j6e(t){return new RegExp(`^${jye(t)}$`)}function P6e(t){const e=jye({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${e}(?:${r.join("|")})`;return new RegExp(`^${Iye}T(?:${n})$`)}const N6e=t=>{const e=t?`[\\s\\S]{${(t==null?void 0:t.minimum)??0},${(t==null?void 0:t.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},R6e=/^-?\d+$/,L6e=/^-?\d+(?:\.\d+)?$/,D6e=/^(?:true|false)$/i,M6e=/^[^A-Z]*$/,O6e=/^[^a-z]*$/,Cu=Ar("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),Pye={number:"number",bigint:"bigint",object:"date"},Nye=Ar("$ZodCheckLessThan",(t,e)=>{Cu.init(t,e);const r=Pye[typeof e.value];t._zod.onattach.push(n=>{const i=n._zod.bag,a=(e.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Cu.init(t,e);const r=Pye[typeof e.value];t._zod.onattach.push(n=>{const i=n._zod.bag,a=(e.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>a&&(e.inclusive?i.minimum=e.value:i.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),F6e=Ar("$ZodCheckMultipleOf",(t,e)=>{Cu.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):BUe(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),B6e=Ar("$ZodCheckNumberFormat",(t,e)=>{var c;Cu.init(t,e),e.format=e.format||"float64";const r=(c=e.format)==null?void 0:c.includes("int"),n=r?"int":"number",[i,a]=qUe[e.format];t._zod.onattach.push(s=>{const f=s._zod.bag;f.format=e.format,f.minimum=i,f.maximum=a,r&&(f.pattern=R6e)}),t._zod.check=s=>{const f=s.value;if(r){if(!Number.isInteger(f)){s.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:f,inst:t});return}if(!Number.isSafeInteger(f)){f>0?s.issues.push({input:f,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):s.issues.push({input:f,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}fa&&s.issues.push({origin:"number",input:f,code:"too_big",maximum:a,inclusive:!0,inst:t,continue:!e.abort})}}),z6e=Ar("$ZodCheckMaxLength",(t,e)=>{var r;Cu.init(t,e),(r=t._zod.def).when??(r.when=n=>{const i=n.value;return!b9(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{const i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{const i=n.value;if(i.length<=e.maximum)return;const c=S9(i);n.issues.push({origin:c,code:"too_big",maximum:e.maximum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),$6e=Ar("$ZodCheckMinLength",(t,e)=>{var r;Cu.init(t,e),(r=t._zod.def).when??(r.when=n=>{const i=n.value;return!b9(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{const i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>i&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{const i=n.value;if(i.length>=e.minimum)return;const c=S9(i);n.issues.push({origin:c,code:"too_small",minimum:e.minimum,inclusive:!0,input:i,inst:t,continue:!e.abort})}}),U6e=Ar("$ZodCheckLengthEquals",(t,e)=>{var r;Cu.init(t,e),(r=t._zod.def).when??(r.when=n=>{const i=n.value;return!b9(i)&&i.length!==void 0}),t._zod.onattach.push(n=>{const i=n._zod.bag;i.minimum=e.length,i.maximum=e.length,i.length=e.length}),t._zod.check=n=>{const i=n.value,a=i.length;if(a===e.length)return;const c=S9(i),s=a>e.length;n.issues.push({origin:c,...s?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),PO=Ar("$ZodCheckStringFormat",(t,e)=>{var r,n;Cu.init(t,e),t._zod.onattach.push(i=>{const a=i._zod.bag;a.format=e.format,e.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=i=>{e.pattern.lastIndex=0,!e.pattern.test(i.value)&&i.issues.push({origin:"string",code:"invalid_format",format:e.format,input:i.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),V6e=Ar("$ZodCheckRegex",(t,e)=>{PO.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),q6e=Ar("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=M6e),PO.init(t,e)}),G6e=Ar("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=O6e),PO.init(t,e)}),H6e=Ar("$ZodCheckIncludes",(t,e)=>{Cu.init(t,e);const r=y1(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(i=>{const a=i._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(n)}),t._zod.check=i=>{i.value.includes(e.includes,e.position)||i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:i.value,inst:t,continue:!e.abort})}}),W6e=Ar("$ZodCheckStartsWith",(t,e)=>{Cu.init(t,e);const r=new RegExp(`^${y1(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{const i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),K6e=Ar("$ZodCheckEndsWith",(t,e)=>{Cu.init(t,e);const r=new RegExp(`.*${y1(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{const i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}}),Y6e=Ar("$ZodCheckOverwrite",(t,e)=>{Cu.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});class Z6e{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const n=e.split(` `).filter(c=>c),i=Math.min(...n.map(c=>c.length-c.trimStart().length)),a=n.map(c=>c.slice(i)).map(c=>" ".repeat(this.indent*2)+c);for(const c of a)this.content.push(c)}compile(){const e=Function,r=this==null?void 0:this.args,i=[...((this==null?void 0:this.content)??[""]).map(a=>` ${a}`)];return new e(...r,i.join(` `))}}const X6e={major:4,minor:4,patch:3},mo=Ar("$ZodType",(t,e)=>{var i;var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=X6e;const n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(const a of n)for(const c of a._zod.onattach)c(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),(i=t._zod.deferred)==null||i.push(()=>{t._zod.run=t._zod.parse});else{const a=(s,f,m)=>{let x=uw(s),_;for(const T of f){if(T._zod.def.when){if(QUe(s)||!T._zod.def.when(s))continue}else if(x)continue;const E=s.issues.length,C=T._zod.check(s);if(C instanceof Promise&&(m==null?void 0:m.async)===!1)throw new Rw;if(_||C instanceof Promise)_=(_??Promise.resolve()).then(async()=>{await C,s.issues.length!==E&&(x||(x=uw(s,E)))});else{if(s.issues.length===E)continue;x||(x=uw(s,E))}}return _?_.then(()=>s):s},c=(s,f,m)=>{if(uw(s))return s.aborted=!0,s;const x=a(f,n,m);if(x instanceof Promise){if(m.async===!1)throw new Rw;return x.then(_=>t._zod.parse(_,m))}return t._zod.parse(x,m)};t._zod.run=(s,f)=>{if(f.skipChecks)return t._zod.parse(s,f);if(f.direction==="backward"){const x=t._zod.parse({value:s.value,issues:[]},{...f,skipChecks:!0});return x instanceof Promise?x.then(_=>c(_,s,f)):c(x,s,f)}const m=t._zod.parse(s,f);if(m instanceof Promise){if(f.async===!1)throw new Rw;return m.then(x=>a(x,n,f))}return a(m,n,f)}}Ys(t,"~standard",()=>({validate:a=>{var c;try{const s=t6e(t,a);return s.success?{value:s.data}:{issues:(c=s.error)==null?void 0:c.issues}}catch{return r6e(t,a).then(f=>{var m;return f.success?{value:f.data}:{issues:(m=f.error)==null?void 0:m.issues}})}},vendor:"zod",version:1}))}),A9=Ar("$ZodString",(t,e)=>{var r;mo.init(t,e),t._zod.pattern=[...((r=t==null?void 0:t._zod.bag)==null?void 0:r.patterns)??[]].pop()??N6e(t._zod.bag),t._zod.parse=(n,i)=>{if(e.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:t}),n}}),Ua=Ar("$ZodStringFormat",(t,e)=>{PO.init(t,e),A9.init(t,e)}),Q6e=Ar("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=x6e),Ua.init(t,e)}),J6e=Ar("$ZodUUID",(t,e)=>{if(e.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=Wee(n))}else e.pattern??(e.pattern=Wee());Ua.init(t,e)}),eVe=Ar("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=_6e),Ua.init(t,e)}),tVe=Ar("$ZodURL",(t,e)=>{Ua.init(t,e),t._zod.check=r=>{var n;try{const i=r.value.trim();if(!e.normalize&&((n=e.protocol)==null?void 0:n.source)===k6e.source&&!/^https?:\/\//i.test(i)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:t,continue:!e.abort});return}const a=new URL(i);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(a.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(a.protocol.endsWith(":")?a.protocol.slice(0,-1):a.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=a.href:r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),rVe=Ar("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=b6e()),Ua.init(t,e)}),nVe=Ar("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=g6e),Ua.init(t,e)}),iVe=Ar("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=d6e),Ua.init(t,e)}),sVe=Ar("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=h6e),Ua.init(t,e)}),aVe=Ar("$ZodULID",(t,e)=>{e.pattern??(e.pattern=f6e),Ua.init(t,e)}),oVe=Ar("$ZodXID",(t,e)=>{e.pattern??(e.pattern=p6e),Ua.init(t,e)}),lVe=Ar("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=m6e),Ua.init(t,e)}),cVe=Ar("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=P6e(e)),Ua.init(t,e)}),uVe=Ar("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=I6e),Ua.init(t,e)}),dVe=Ar("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=j6e(e)),Ua.init(t,e)}),hVe=Ar("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=y6e),Ua.init(t,e)}),fVe=Ar("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=w6e),Ua.init(t,e),t._zod.bag.format="ipv4"}),pVe=Ar("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=S6e),Ua.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),mVe=Ar("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=T6e),Ua.init(t,e)}),gVe=Ar("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=E6e),Ua.init(t,e),t._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[i,a]=n;if(!a)throw new Error;const c=Number(a);if(`${c}`!==a)throw new Error;if(c<0||c>128)throw new Error;new URL(`http://[${i}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function Lye(t){if(t==="")return!0;if(/\s/.test(t)||t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}const yVe=Ar("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=A6e),Ua.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{Lye(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function xVe(t){if(!Cye.test(t))return!1;const e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return Lye(r)}const _Ve=Ar("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=Cye),Ua.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{xVe(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),vVe=Ar("$ZodE164",(t,e)=>{e.pattern??(e.pattern=C6e),Ua.init(t,e)});function bVe(t,e=null){try{const r=t.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const i=JSON.parse(atob(n));return!("typ"in i&&(i==null?void 0:i.typ)!=="JWT"||!i.alg||e&&(!("alg"in i)||i.alg!==e))}catch{return!1}}const wVe=Ar("$ZodJWT",(t,e)=>{Ua.init(t,e),t._zod.check=r=>{bVe(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),Dye=Ar("$ZodNumber",(t,e)=>{mo.init(t,e),t._zod.pattern=t._zod.bag.pattern??L6e,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}const i=r.value;if(typeof i=="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;const a=typeof i=="number"?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:t,...a?{received:a}:{}}),r}}),SVe=Ar("$ZodNumberFormat",(t,e)=>{B6e.init(t,e),Dye.init(t,e)}),TVe=Ar("$ZodBoolean",(t,e)=>{mo.init(t,e),t._zod.pattern=D6e,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}const i=r.value;return typeof i=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:t}),r}}),EVe=Ar("$ZodUnknown",(t,e)=>{mo.init(t,e),t._zod.parse=r=>r}),AVe=Ar("$ZodNever",(t,e)=>{mo.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function Kee(t,e,r){t.issues.length&&e.issues.push(...Tye(r,t.issues)),e.value[r]=t.value}const kVe=Ar("$ZodArray",(t,e)=>{mo.init(t,e),t._zod.parse=(r,n)=>{const i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:t}),r;r.value=Array(i.length);const a=[];for(let c=0;cKee(m,r,c))):Kee(f,r,c)}return a.length?Promise.all(a).then(()=>r):r}});function ZL(t,e,r,n,i,a){const c=r in n;if(t.issues.length){if(i&&a&&!c)return;e.issues.push(...Tye(r,t.issues))}if(!c&&!i){t.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}t.value===void 0?c&&(e.value[r]=void 0):e.value[r]=t.value}function Mye(t){var n,i,a,c;const e=Object.keys(t.shape);for(const s of e)if(!((c=(a=(i=(n=t.shape)==null?void 0:n[s])==null?void 0:i._zod)==null?void 0:a.traits)!=null&&c.has("$ZodType")))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const r=VUe(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function Oye(t,e,r,n,i,a){const c=[],s=i.keySet,f=i.catchall._zod,m=f.def.type,x=f.optin==="optional",_=f.optout==="optional";for(const T in e){if(T==="__proto__"||s.has(T))continue;if(m==="never"){c.push(T);continue}const E=f.run({value:e[T],issues:[]},n);E instanceof Promise?t.push(E.then(C=>ZL(C,r,T,e,x,_))):ZL(E,r,T,e,x,_)}return c.length&&r.issues.push({code:"unrecognized_keys",keys:c,input:e,inst:a}),t.length?Promise.all(t).then(()=>r):r}const CVe=Ar("$ZodObject",(t,e)=>{mo.init(t,e);const r=Object.getOwnPropertyDescriptor(e,"shape");if(!(r!=null&&r.get)){const s=e.shape;Object.defineProperty(e,"shape",{get:()=>{const f={...s};return Object.defineProperty(e,"shape",{value:f}),f}})}const n=v9(()=>Mye(e));Ys(t._zod,"propValues",()=>{const s=e.shape,f={};for(const m in s){const x=s[m]._zod;if(x.values){f[m]??(f[m]=new Set);for(const _ of x.values)f[m].add(_)}}return f});const i=YL,a=e.catchall;let c;t._zod.parse=(s,f)=>{c??(c=n.value);const m=s.value;if(!i(m))return s.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),s;s.value={};const x=[],_=c.shape;for(const T of c.keys){const E=_[T],C=E._zod.optin==="optional",N=E._zod.optout==="optional",L=E._zod.run({value:m[T],issues:[]},f);L instanceof Promise?x.push(L.then(M=>ZL(M,s,T,m,C,N))):ZL(L,s,T,m,C,N)}return a?Oye(x,m,s,f,n.value,t):x.length?Promise.all(x).then(()=>s):s}}),IVe=Ar("$ZodObjectJIT",(t,e)=>{CVe.init(t,e);const r=t._zod.parse,n=v9(()=>Mye(e)),i=T=>{var B,V;const E=new Z6e(["shape","payload","ctx"]),C=n.value,N=G=>{const W=Hee(G);return`shape[${W}]._zod.run({ value: input[${W}], issues: [] }, ctx)`};E.write("const input = payload.value;");const L=Object.create(null);let M=0;for(const G of C.keys)L[G]=`key_${M++}`;E.write("const newResult = {};");for(const G of C.keys){const W=L[G],Z=Hee(G),Q=T[G],se=((B=Q==null?void 0:Q._zod)==null?void 0:B.optin)==="optional",ie=((V=Q==null?void 0:Q._zod)==null?void 0:V.optout)==="optional";E.write(`const ${W} = ${N(G)};`),se&&ie?E.write(` if (${W}.issues.length) { if (${Z} in input) { payload.issues = payload.issues.concat(${W}.issues.map(iss => ({ ...iss, path: iss.path ? [${Z}, ...iss.path] : [${Z}] }))); } } if (${W}.value === undefined) { if (${Z} in input) { newResult[${Z}] = undefined; } } else { newResult[${Z}] = ${W}.value; } `):se?E.write(` if (${W}.issues.length) { payload.issues = payload.issues.concat(${W}.issues.map(iss => ({ ...iss, path: iss.path ? [${Z}, ...iss.path] : [${Z}] }))); } if (${W}.value === undefined) { if (${Z} in input) { newResult[${Z}] = undefined; } } else { newResult[${Z}] = ${W}.value; } `):E.write(` const ${W}_present = ${Z} in input; if (${W}.issues.length) { payload.issues = payload.issues.concat(${W}.issues.map(iss => ({ ...iss, path: iss.path ? [${Z}, ...iss.path] : [${Z}] }))); } if (!${W}_present && !${W}.issues.length) { payload.issues.push({ code: "invalid_type", expected: "nonoptional", input: undefined, path: [${Z}] }); } if (${W}_present) { if (${W}.value === undefined) { newResult[${Z}] = undefined; } else { newResult[${Z}] = ${W}.value; } } `)}E.write("payload.value = newResult;"),E.write("return payload;");const D=E.compile();return(G,W)=>D(T,G,W)};let a;const c=YL,s=!_9.jitless,m=s&&$Ue.value,x=e.catchall;let _;t._zod.parse=(T,E)=>{_??(_=n.value);const C=T.value;return c(C)?s&&m&&(E==null?void 0:E.async)===!1&&E.jitless!==!0?(a||(a=i(e.shape)),T=a(T,E),x?Oye([],C,T,E,_,t):T):r(T,E):(T.issues.push({expected:"object",code:"invalid_type",input:C,inst:t}),T)}});function Yee(t,e,r,n){for(const a of t)if(a.issues.length===0)return e.value=a.value,e;const i=t.filter(a=>!uw(a));return i.length===1?(e.value=i[0].value,i[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(a=>a.issues.map(c=>T_(c,n,S_())))}),e)}const jVe=Ar("$ZodUnion",(t,e)=>{mo.init(t,e),Ys(t._zod,"optin",()=>e.options.some(n=>n._zod.optin==="optional")?"optional":void 0),Ys(t._zod,"optout",()=>e.options.some(n=>n._zod.optout==="optional")?"optional":void 0),Ys(t._zod,"values",()=>{if(e.options.every(n=>n._zod.values))return new Set(e.options.flatMap(n=>Array.from(n._zod.values)))}),Ys(t._zod,"pattern",()=>{if(e.options.every(n=>n._zod.pattern)){const n=e.options.map(i=>i._zod.pattern);return new RegExp(`^(${n.map(i=>w9(i.source)).join("|")})$`)}});const r=e.options.length===1?e.options[0]._zod.run:null;t._zod.parse=(n,i)=>{if(r)return r(n,i);let a=!1;const c=[];for(const s of e.options){const f=s._zod.run({value:n.value,issues:[]},i);if(f instanceof Promise)c.push(f),a=!0;else{if(f.issues.length===0)return f;c.push(f)}}return a?Promise.all(c).then(s=>Yee(s,n,t,i)):Yee(c,n,t,i)}}),PVe=Ar("$ZodIntersection",(t,e)=>{mo.init(t,e),t._zod.parse=(r,n)=>{const i=r.value,a=e.left._zod.run({value:i,issues:[]},n),c=e.right._zod.run({value:i,issues:[]},n);return a instanceof Promise||c instanceof Promise?Promise.all([a,c]).then(([f,m])=>Zee(r,f,m)):Zee(r,a,c)}});function m6(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(ok(t)&&ok(e)){const r=Object.keys(e),n=Object.keys(t).filter(a=>r.indexOf(a)!==-1),i={...t,...e};for(const a of n){const c=m6(t[a],e[a]);if(!c.valid)return{valid:!1,mergeErrorPath:[a,...c.mergeErrorPath]};i[a]=c.data}return{valid:!0,data:i}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(a.length&&i&&t.issues.push({...i,keys:a}),uw(t))return t;const c=m6(e.value,r.value);if(!c.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`);return t.value=c.data,t}const NVe=Ar("$ZodEnum",(t,e)=>{mo.init(t,e);const r=bye(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(i=>UUe.has(typeof i)).map(i=>typeof i=="string"?y1(i):i.toString()).join("|")})$`),t._zod.parse=(i,a)=>{const c=i.value;return n.has(c)||i.issues.push({code:"invalid_value",values:r,input:c,inst:t}),i}}),RVe=Ar("$ZodLiteral",(t,e)=>{if(mo.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");const r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?y1(n):n?y1(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,i)=>{const a=n.value;return r.has(a)||n.issues.push({code:"invalid_value",values:e.values,input:a,inst:t}),n}}),LVe=Ar("$ZodTransform",(t,e)=>{mo.init(t,e),t._zod.optin="optional",t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new vye(t.constructor.name);const i=e.transform(r.value,r);if(n.async)return(i instanceof Promise?i:Promise.resolve(i)).then(c=>(r.value=c,r.fallback=!0,r));if(i instanceof Promise)throw new Rw;return r.value=i,r.fallback=!0,r}});function Xee(t,e){return e===void 0&&(t.issues.length||t.fallback)?{issues:[],value:void 0}:t}const Fye=Ar("$ZodOptional",(t,e)=>{mo.init(t,e),t._zod.optin="optional",t._zod.optout="optional",Ys(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),Ys(t._zod,"pattern",()=>{const r=e.innerType._zod.pattern;return r?new RegExp(`^(${w9(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){const i=r.value,a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(c=>Xee(c,i)):Xee(a,i)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),DVe=Ar("$ZodExactOptional",(t,e)=>{Fye.init(t,e),Ys(t._zod,"values",()=>e.innerType._zod.values),Ys(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),MVe=Ar("$ZodNullable",(t,e)=>{mo.init(t,e),Ys(t._zod,"optin",()=>e.innerType._zod.optin),Ys(t._zod,"optout",()=>e.innerType._zod.optout),Ys(t._zod,"pattern",()=>{const r=e.innerType._zod.pattern;return r?new RegExp(`^(${w9(r.source)}|null)$`):void 0}),Ys(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),OVe=Ar("$ZodDefault",(t,e)=>{mo.init(t,e),t._zod.optin="optional",Ys(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;const i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>Qee(a,e)):Qee(i,e)}});function Qee(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}const FVe=Ar("$ZodPrefault",(t,e)=>{mo.init(t,e),t._zod.optin="optional",Ys(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),BVe=Ar("$ZodNonOptional",(t,e)=>{mo.init(t,e),Ys(t._zod,"values",()=>{const r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{const i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>Jee(a,t)):Jee(i,t)}});function Jee(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}const zVe=Ar("$ZodCatch",(t,e)=>{mo.init(t,e),t._zod.optin="optional",Ys(t._zod,"optout",()=>e.innerType._zod.optout),Ys(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);const i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(c=>T_(c,n,S_()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>T_(a,n,S_()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),$Ve=Ar("$ZodPipe",(t,e)=>{mo.init(t,e),Ys(t._zod,"values",()=>e.in._zod.values),Ys(t._zod,"optin",()=>e.in._zod.optin),Ys(t._zod,"optout",()=>e.out._zod.optout),Ys(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){const a=e.out._zod.run(r,n);return a instanceof Promise?a.then(c=>cN(c,e.in,n)):cN(a,e.in,n)}const i=e.in._zod.run(r,n);return i instanceof Promise?i.then(a=>cN(a,e.out,n)):cN(i,e.out,n)}});function cN(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues,fallback:t.fallback},r)}const UVe=Ar("$ZodReadonly",(t,e)=>{mo.init(t,e),Ys(t._zod,"propValues",()=>e.innerType._zod.propValues),Ys(t._zod,"values",()=>e.innerType._zod.values),Ys(t._zod,"optin",()=>{var r,n;return(n=(r=e.innerType)==null?void 0:r._zod)==null?void 0:n.optin}),Ys(t._zod,"optout",()=>{var r,n;return(n=(r=e.innerType)==null?void 0:r._zod)==null?void 0:n.optout}),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);const i=e.innerType._zod.run(r,n);return i instanceof Promise?i.then(ete):ete(i)}});function ete(t){return t.value=Object.freeze(t.value),t}const VVe=Ar("$ZodCustom",(t,e)=>{Cu.init(t,e),mo.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{const n=r.value,i=e.fn(n);if(i instanceof Promise)return i.then(a=>tte(a,r,n,t));tte(i,r,n,t)}});function tte(t,e,r,n){if(!t){const i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(i.params=n._zod.def.params),e.issues.push(lk(i))}}var rte;class qVe{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){const n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){const r=e._zod.parent;if(r){const n={...this.get(r)??{}};delete n.id;const i={...n,...this._map.get(e)};return Object.keys(i).length?i:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function GVe(){return new qVe}(rte=globalThis).__zod_globalRegistry??(rte.__zod_globalRegistry=GVe());const q2=globalThis.__zod_globalRegistry;function HVe(t,e){return new t({type:"string",...zn(e)})}function WVe(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...zn(e)})}function nte(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...zn(e)})}function KVe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...zn(e)})}function YVe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...zn(e)})}function ZVe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...zn(e)})}function XVe(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...zn(e)})}function QVe(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...zn(e)})}function JVe(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...zn(e)})}function e8e(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...zn(e)})}function t8e(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...zn(e)})}function r8e(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...zn(e)})}function n8e(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...zn(e)})}function i8e(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...zn(e)})}function s8e(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...zn(e)})}function a8e(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...zn(e)})}function o8e(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...zn(e)})}function l8e(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...zn(e)})}function c8e(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...zn(e)})}function u8e(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...zn(e)})}function d8e(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...zn(e)})}function h8e(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...zn(e)})}function f8e(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...zn(e)})}function p8e(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...zn(e)})}function m8e(t,e){return new t({type:"string",format:"date",check:"string_format",...zn(e)})}function g8e(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...zn(e)})}function y8e(t,e){return new t({type:"string",format:"duration",check:"string_format",...zn(e)})}function x8e(t,e){return new t({type:"number",checks:[],...zn(e)})}function _8e(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...zn(e)})}function v8e(t,e){return new t({type:"boolean",...zn(e)})}function b8e(t){return new t({type:"unknown"})}function w8e(t,e){return new t({type:"never",...zn(e)})}function ite(t,e){return new Nye({check:"less_than",...zn(e),value:t,inclusive:!1})}function AB(t,e){return new Nye({check:"less_than",...zn(e),value:t,inclusive:!0})}function ste(t,e){return new Rye({check:"greater_than",...zn(e),value:t,inclusive:!1})}function kB(t,e){return new Rye({check:"greater_than",...zn(e),value:t,inclusive:!0})}function ate(t,e){return new F6e({check:"multiple_of",...zn(e),value:t})}function Bye(t,e){return new z6e({check:"max_length",...zn(e),maximum:t})}function XL(t,e){return new $6e({check:"min_length",...zn(e),minimum:t})}function zye(t,e){return new U6e({check:"length_equals",...zn(e),length:t})}function S8e(t,e){return new V6e({check:"string_format",format:"regex",...zn(e),pattern:t})}function T8e(t){return new q6e({check:"string_format",format:"lowercase",...zn(t)})}function E8e(t){return new G6e({check:"string_format",format:"uppercase",...zn(t)})}function A8e(t,e){return new H6e({check:"string_format",format:"includes",...zn(e),includes:t})}function k8e(t,e){return new W6e({check:"string_format",format:"starts_with",...zn(e),prefix:t})}function C8e(t,e){return new K6e({check:"string_format",format:"ends_with",...zn(e),suffix:t})}function vS(t){return new Y6e({check:"overwrite",tx:t})}function I8e(t){return vS(e=>e.normalize(t))}function j8e(){return vS(t=>t.trim())}function P8e(){return vS(t=>t.toLowerCase())}function N8e(){return vS(t=>t.toUpperCase())}function R8e(){return vS(t=>zUe(t))}function L8e(t,e,r){return new t({type:"array",element:e,...zn(r)})}function D8e(t,e,r){return new t({type:"custom",check:"custom",fn:e,...zn(r)})}function M8e(t,e){const r=O8e(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(lk(i,n.value,r._zod.def));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=r),a.continue??(a.continue=!r._zod.def.abort),n.issues.push(lk(a))}},t(n.value,n)),e);return r}function O8e(t,e){const r=new Cu({check:"custom",...zn(e)});return r._zod.check=t,r}function $ye(t){let e=(t==null?void 0:t.target)??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:(t==null?void 0:t.metadata)??q2,target:e,unrepresentable:(t==null?void 0:t.unrepresentable)??"throw",override:(t==null?void 0:t.override)??(()=>{}),io:(t==null?void 0:t.io)??"output",counter:0,seen:new Map,cycles:(t==null?void 0:t.cycles)??"ref",reused:(t==null?void 0:t.reused)??"inline",external:(t==null?void 0:t.external)??void 0}}function Ql(t,e,r={path:[],schemaPath:[]}){var x,_;var n;const i=t._zod.def,a=e.seen.get(t);if(a)return a.count++,r.schemaPath.includes(t)&&(a.cycle=r.path),a.schema;const c={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,c);const s=(_=(x=t._zod).toJSONSchema)==null?void 0:_.call(x);if(s)c.schema=s;else{const T={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,c.schema,T);else{const C=c.schema,N=e.processors[i.type];if(!N)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);N(t,e,C,T)}const E=t._zod.parent;E&&(c.ref||(c.ref=E),Ql(E,e,T),e.seen.get(E).isParent=!0)}const f=e.metadataRegistry.get(t);return f&&Object.assign(c.schema,f),e.io==="input"&&Lc(t)&&(delete c.schema.examples,delete c.schema.default),e.io==="input"&&"_prefault"in c.schema&&((n=c.schema).default??(n.default=c.schema._prefault)),delete c.schema._prefault,e.seen.get(t).schema}function Uye(t,e){var c,s,f,m;const r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const x of t.seen.entries()){const _=(c=t.metadataRegistry.get(x[0]))==null?void 0:c.id;if(_){const T=n.get(_);if(T&&T!==x[0])throw new Error(`Duplicate schema id "${_}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(_,x[0])}}const i=x=>{var N;const _=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){const L=(N=t.external.registry.get(x[0]))==null?void 0:N.id,M=t.external.uri??(B=>B);if(L)return{ref:M(L)};const D=x[1].defId??x[1].schema.id??`schema${t.counter++}`;return x[1].defId=D,{defId:D,ref:`${M("__shared")}#/${_}/${D}`}}if(x[1]===r)return{ref:"#"};const E=`#/${_}/`,C=x[1].schema.id??`__schema${t.counter++}`;return{defId:C,ref:E+C}},a=x=>{if(x[1].schema.$ref)return;const _=x[1],{ref:T,defId:E}=i(x);_.def={..._.schema},E&&(_.defId=E);const C=_.schema;for(const N in C)delete C[N];C.$ref=T};if(t.cycles==="throw")for(const x of t.seen.entries()){const _=x[1];if(_.cycle)throw new Error(`Cycle detected: #/${(s=_.cycle)==null?void 0:s.join("/")}/ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const x of t.seen.entries()){const _=x[1];if(e===x[0]){a(x);continue}if(t.external){const E=(f=t.external.registry.get(x[0]))==null?void 0:f.id;if(e!==x[0]&&E){a(x);continue}}if((m=t.metadataRegistry.get(x[0]))==null?void 0:m.id){a(x);continue}if(_.cycle){a(x);continue}if(_.count>1&&t.reused==="ref"){a(x);continue}}}function Vye(t,e){var s,f,m,x;const r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=_=>{const T=t.seen.get(_);if(T.ref===null)return;const E=T.def??T.schema,C={...E},N=T.ref;if(T.ref=null,N){n(N);const M=t.seen.get(N),D=M.schema;if(D.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(E.allOf=E.allOf??[],E.allOf.push(D)):Object.assign(E,D),Object.assign(E,C),_._zod.parent===N)for(const V in E)V==="$ref"||V==="allOf"||V in C||delete E[V];if(D.$ref&&M.def)for(const V in E)V==="$ref"||V==="allOf"||V in M.def&&JSON.stringify(E[V])===JSON.stringify(M.def[V])&&delete E[V]}const L=_._zod.parent;if(L&&L!==N){n(L);const M=t.seen.get(L);if(M!=null&&M.schema.$ref&&(E.$ref=M.schema.$ref,M.def))for(const D in E)D==="$ref"||D==="allOf"||D in M.def&&JSON.stringify(E[D])===JSON.stringify(M.def[D])&&delete E[D]}t.override({zodSchema:_,jsonSchema:E,path:T.path??[]})};for(const _ of[...t.seen.entries()].reverse())n(_[0]);const i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,(s=t.external)!=null&&s.uri){const _=(f=t.external.registry.get(e))==null?void 0:f.id;if(!_)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(_)}Object.assign(i,r.def??r.schema);const a=(m=t.metadataRegistry.get(e))==null?void 0:m.id;a!==void 0&&i.id===a&&delete i.id;const c=((x=t.external)==null?void 0:x.defs)??{};for(const _ of t.seen.entries()){const T=_[1];T.def&&T.defId&&(T.def.id===T.defId&&delete T.def.id,c[T.defId]=T.def)}t.external||Object.keys(c).length>0&&(t.target==="draft-2020-12"?i.$defs=c:i.definitions=c);try{const _=JSON.parse(JSON.stringify(i));return Object.defineProperty(_,"~standard",{value:{...e["~standard"],jsonSchema:{input:QL(e,"input",t.processors),output:QL(e,"output",t.processors)}},enumerable:!1,writable:!1}),_}catch{throw new Error("Error converting schema to JSON.")}}function Lc(t,e){const r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);const n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Lc(n.element,r);if(n.type==="set")return Lc(n.valueType,r);if(n.type==="lazy")return Lc(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Lc(n.innerType,r);if(n.type==="intersection")return Lc(n.left,r)||Lc(n.right,r);if(n.type==="record"||n.type==="map")return Lc(n.keyType,r)||Lc(n.valueType,r);if(n.type==="pipe")return t._zod.traits.has("$ZodCodec")?!0:Lc(n.in,r)||Lc(n.out,r);if(n.type==="object"){for(const i in n.shape)if(Lc(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(const i of n.options)if(Lc(i,r))return!0;return!1}if(n.type==="tuple"){for(const i of n.items)if(Lc(i,r))return!0;return!!(n.rest&&Lc(n.rest,r))}return!1}const F8e=(t,e={})=>r=>{const n=$ye({...r,processors:e});return Ql(t,n),Uye(n,t),Vye(n,t)},QL=(t,e,r={})=>n=>{const{libraryOptions:i,target:a}=n??{},c=$ye({...i??{},target:a,io:e,processors:r});return Ql(t,c),Uye(c,t),Vye(c,t)},B8e={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},z8e=(t,e,r,n)=>{const i=r;i.type="string";const{minimum:a,maximum:c,format:s,patterns:f,contentEncoding:m}=t._zod.bag;if(typeof a=="number"&&(i.minLength=a),typeof c=="number"&&(i.maxLength=c),s&&(i.format=B8e[s]??s,i.format===""&&delete i.format,s==="time"&&delete i.format),m&&(i.contentEncoding=m),f&&f.size>0){const x=[...f];x.length===1?i.pattern=x[0].source:x.length>1&&(i.allOf=[...x.map(_=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:_.source}))])}},$8e=(t,e,r,n)=>{const i=r,{minimum:a,maximum:c,format:s,multipleOf:f,exclusiveMaximum:m,exclusiveMinimum:x}=t._zod.bag;typeof s=="string"&&s.includes("int")?i.type="integer":i.type="number";const _=typeof x=="number"&&x>=(a??Number.NEGATIVE_INFINITY),T=typeof m=="number"&&m<=(c??Number.POSITIVE_INFINITY),E=e.target==="draft-04"||e.target==="openapi-3.0";_?E?(i.minimum=x,i.exclusiveMinimum=!0):i.exclusiveMinimum=x:typeof a=="number"&&(i.minimum=a),T?E?(i.maximum=m,i.exclusiveMaximum=!0):i.exclusiveMaximum=m:typeof c=="number"&&(i.maximum=c),typeof f=="number"&&(i.multipleOf=f)},U8e=(t,e,r,n)=>{r.type="boolean"},V8e=(t,e,r,n)=>{r.not={}},q8e=(t,e,r,n)=>{},G8e=(t,e,r,n)=>{const i=t._zod.def,a=bye(i.entries);a.every(c=>typeof c=="number")&&(r.type="number"),a.every(c=>typeof c=="string")&&(r.type="string"),r.enum=a},H8e=(t,e,r,n)=>{const i=t._zod.def,a=[];for(const c of i.values)if(c===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof c=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");a.push(Number(c))}else a.push(c);if(a.length!==0)if(a.length===1){const c=a[0];r.type=c===null?"null":typeof c,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[c]:r.const=c}else a.every(c=>typeof c=="number")&&(r.type="number"),a.every(c=>typeof c=="string")&&(r.type="string"),a.every(c=>typeof c=="boolean")&&(r.type="boolean"),a.every(c=>c===null)&&(r.type="null"),r.enum=a},W8e=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},K8e=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Y8e=(t,e,r,n)=>{const i=r,a=t._zod.def,{minimum:c,maximum:s}=t._zod.bag;typeof c=="number"&&(i.minItems=c),typeof s=="number"&&(i.maxItems=s),i.type="array",i.items=Ql(a.element,e,{...n,path:[...n.path,"items"]})},Z8e=(t,e,r,n)=>{var m;const i=r,a=t._zod.def;i.type="object",i.properties={};const c=a.shape;for(const x in c)i.properties[x]=Ql(c[x],e,{...n,path:[...n.path,"properties",x]});const s=new Set(Object.keys(c)),f=new Set([...s].filter(x=>{const _=a.shape[x]._zod;return e.io==="input"?_.optin===void 0:_.optout===void 0}));f.size>0&&(i.required=Array.from(f)),((m=a.catchall)==null?void 0:m._zod.def.type)==="never"?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Ql(a.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},X8e=(t,e,r,n)=>{const i=t._zod.def,a=i.inclusive===!1,c=i.options.map((s,f)=>Ql(s,e,{...n,path:[...n.path,a?"oneOf":"anyOf",f]}));a?r.oneOf=c:r.anyOf=c},Q8e=(t,e,r,n)=>{const i=t._zod.def,a=Ql(i.left,e,{...n,path:[...n.path,"allOf",0]}),c=Ql(i.right,e,{...n,path:[...n.path,"allOf",1]}),s=m=>"allOf"in m&&Object.keys(m).length===1,f=[...s(a)?a.allOf:[a],...s(c)?c.allOf:[c]];r.allOf=f},J8e=(t,e,r,n)=>{const i=t._zod.def,a=Ql(i.innerType,e,n),c=e.seen.get(t);e.target==="openapi-3.0"?(c.ref=i.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]},eqe=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType},tqe=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},rqe=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},nqe=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType;let c;try{c=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=c},iqe=(t,e,r,n)=>{const i=t._zod.def,a=i.in._zod.traits.has("$ZodTransform"),c=e.io==="input"?a?i.out:i.in:i.out;Ql(c,e,n);const s=e.seen.get(t);s.ref=c},sqe=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType,r.readOnly=!0},qye=(t,e,r,n)=>{const i=t._zod.def;Ql(i.innerType,e,n);const a=e.seen.get(t);a.ref=i.innerType},aqe=Ar("ZodISODateTime",(t,e)=>{cVe.init(t,e),no.init(t,e)});function oqe(t){return p8e(aqe,t)}const lqe=Ar("ZodISODate",(t,e)=>{uVe.init(t,e),no.init(t,e)});function cqe(t){return m8e(lqe,t)}const uqe=Ar("ZodISOTime",(t,e)=>{dVe.init(t,e),no.init(t,e)});function dqe(t){return g8e(uqe,t)}const hqe=Ar("ZodISODuration",(t,e)=>{hVe.init(t,e),no.init(t,e)});function fqe(t){return y8e(hqe,t)}const Gye=(t,e)=>{Aye.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>e6e(t,r)},flatten:{value:r=>JUe(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,p6,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,p6,2)}},isEmpty:{get(){return t.issues.length===0}}})},pqe=Ar("ZodError",Gye),nh=Ar("ZodError",Gye,{Parent:Error}),mqe=T9(nh),gqe=E9(nh),yqe=IO(nh),xqe=jO(nh),_qe=n6e(nh),vqe=i6e(nh),bqe=s6e(nh),wqe=a6e(nh),Sqe=o6e(nh),Tqe=l6e(nh),Eqe=c6e(nh),Aqe=u6e(nh),ote=new WeakMap;function BC(t,e,r){const n=Object.getPrototypeOf(t);let i=ote.get(n);if(i||(i=new Set,ote.set(n,i)),!i.has(e)){i.add(e);for(const a in r){const c=r[a];Object.defineProperty(n,a,{configurable:!0,enumerable:!1,get(){const s=c.bind(this);return Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:s}),s},set(s){Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:s})}})}}}const go=Ar("ZodType",(t,e)=>(mo.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:QL(t,"input"),output:QL(t,"output")}}),t.toJSONSchema=F8e(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.parse=(r,n)=>mqe(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>yqe(t,r,n),t.parseAsync=async(r,n)=>gqe(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>xqe(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>_qe(t,r,n),t.decode=(r,n)=>vqe(t,r,n),t.encodeAsync=async(r,n)=>bqe(t,r,n),t.decodeAsync=async(r,n)=>wqe(t,r,n),t.safeEncode=(r,n)=>Sqe(t,r,n),t.safeDecode=(r,n)=>Tqe(t,r,n),t.safeEncodeAsync=async(r,n)=>Eqe(t,r,n),t.safeDecodeAsync=async(r,n)=>Aqe(t,r,n),BC(t,"ZodType",{check(...r){const n=this.def;return this.clone(rx(n,{checks:[...n.checks??[],...r.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return nx(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(bGe(r,n))},superRefine(r,n){return this.check(wGe(r,n))},overwrite(r){return this.check(vS(r))},optional(){return dte(this)},exactOptional(){return lGe(this)},nullable(){return hte(this)},nullish(){return dte(hte(this))},nonoptional(r){return pGe(this,r)},array(){return Qqe(this)},or(r){return tGe([this,r])},and(r){return nGe(this,r)},transform(r){return fte(this,aGe(r))},default(r){return dGe(this,r)},prefault(r){return fGe(this,r)},catch(r){return gGe(this,r)},pipe(r){return fte(this,r)},readonly(){return _Ge(this)},describe(r){const n=this.clone();return q2.add(n,{description:r}),n},meta(...r){if(r.length===0)return q2.get(this);const n=this.clone();return q2.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(t,"description",{get(){var r;return(r=q2.get(t))==null?void 0:r.description},configurable:!0}),t)),Hye=Ar("_ZodString",(t,e)=>{A9.init(t,e),go.init(t,e),t._zod.processJSONSchema=(n,i,a)=>z8e(t,n,i);const r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,BC(t,"_ZodString",{regex(...n){return this.check(S8e(...n))},includes(...n){return this.check(A8e(...n))},startsWith(...n){return this.check(k8e(...n))},endsWith(...n){return this.check(C8e(...n))},min(...n){return this.check(XL(...n))},max(...n){return this.check(Bye(...n))},length(...n){return this.check(zye(...n))},nonempty(...n){return this.check(XL(1,...n))},lowercase(n){return this.check(T8e(n))},uppercase(n){return this.check(E8e(n))},trim(){return this.check(j8e())},normalize(...n){return this.check(I8e(...n))},toLowerCase(){return this.check(P8e())},toUpperCase(){return this.check(N8e())},slugify(){return this.check(R8e())}})}),kqe=Ar("ZodString",(t,e)=>{A9.init(t,e),Hye.init(t,e),t.email=r=>t.check(WVe(Cqe,r)),t.url=r=>t.check(QVe(Iqe,r)),t.jwt=r=>t.check(f8e(qqe,r)),t.emoji=r=>t.check(JVe(jqe,r)),t.guid=r=>t.check(nte(lte,r)),t.uuid=r=>t.check(KVe(uN,r)),t.uuidv4=r=>t.check(YVe(uN,r)),t.uuidv6=r=>t.check(ZVe(uN,r)),t.uuidv7=r=>t.check(XVe(uN,r)),t.nanoid=r=>t.check(e8e(Pqe,r)),t.guid=r=>t.check(nte(lte,r)),t.cuid=r=>t.check(t8e(Nqe,r)),t.cuid2=r=>t.check(r8e(Rqe,r)),t.ulid=r=>t.check(n8e(Lqe,r)),t.base64=r=>t.check(u8e($qe,r)),t.base64url=r=>t.check(d8e(Uqe,r)),t.xid=r=>t.check(i8e(Dqe,r)),t.ksuid=r=>t.check(s8e(Mqe,r)),t.ipv4=r=>t.check(a8e(Oqe,r)),t.ipv6=r=>t.check(o8e(Fqe,r)),t.cidrv4=r=>t.check(l8e(Bqe,r)),t.cidrv6=r=>t.check(c8e(zqe,r)),t.e164=r=>t.check(h8e(Vqe,r)),t.datetime=r=>t.check(oqe(r)),t.date=r=>t.check(cqe(r)),t.time=r=>t.check(dqe(r)),t.duration=r=>t.check(fqe(r))});function co(t){return HVe(kqe,t)}const no=Ar("ZodStringFormat",(t,e)=>{Ua.init(t,e),Hye.init(t,e)}),Cqe=Ar("ZodEmail",(t,e)=>{eVe.init(t,e),no.init(t,e)}),lte=Ar("ZodGUID",(t,e)=>{Q6e.init(t,e),no.init(t,e)}),uN=Ar("ZodUUID",(t,e)=>{J6e.init(t,e),no.init(t,e)}),Iqe=Ar("ZodURL",(t,e)=>{tVe.init(t,e),no.init(t,e)}),jqe=Ar("ZodEmoji",(t,e)=>{rVe.init(t,e),no.init(t,e)}),Pqe=Ar("ZodNanoID",(t,e)=>{nVe.init(t,e),no.init(t,e)}),Nqe=Ar("ZodCUID",(t,e)=>{iVe.init(t,e),no.init(t,e)}),Rqe=Ar("ZodCUID2",(t,e)=>{sVe.init(t,e),no.init(t,e)}),Lqe=Ar("ZodULID",(t,e)=>{aVe.init(t,e),no.init(t,e)}),Dqe=Ar("ZodXID",(t,e)=>{oVe.init(t,e),no.init(t,e)}),Mqe=Ar("ZodKSUID",(t,e)=>{lVe.init(t,e),no.init(t,e)}),Oqe=Ar("ZodIPv4",(t,e)=>{fVe.init(t,e),no.init(t,e)}),Fqe=Ar("ZodIPv6",(t,e)=>{pVe.init(t,e),no.init(t,e)}),Bqe=Ar("ZodCIDRv4",(t,e)=>{mVe.init(t,e),no.init(t,e)}),zqe=Ar("ZodCIDRv6",(t,e)=>{gVe.init(t,e),no.init(t,e)}),$qe=Ar("ZodBase64",(t,e)=>{yVe.init(t,e),no.init(t,e)}),Uqe=Ar("ZodBase64URL",(t,e)=>{_Ve.init(t,e),no.init(t,e)}),Vqe=Ar("ZodE164",(t,e)=>{vVe.init(t,e),no.init(t,e)}),qqe=Ar("ZodJWT",(t,e)=>{wVe.init(t,e),no.init(t,e)}),Wye=Ar("ZodNumber",(t,e)=>{Dye.init(t,e),go.init(t,e),t._zod.processJSONSchema=(n,i,a)=>$8e(t,n,i),BC(t,"ZodNumber",{gt(n,i){return this.check(ste(n,i))},gte(n,i){return this.check(kB(n,i))},min(n,i){return this.check(kB(n,i))},lt(n,i){return this.check(ite(n,i))},lte(n,i){return this.check(AB(n,i))},max(n,i){return this.check(AB(n,i))},int(n){return this.check(cte(n))},safe(n){return this.check(cte(n))},positive(n){return this.check(ste(0,n))},nonnegative(n){return this.check(kB(0,n))},negative(n){return this.check(ite(0,n))},nonpositive(n){return this.check(AB(0,n))},multipleOf(n,i){return this.check(ate(n,i))},step(n,i){return this.check(ate(n,i))},finite(){return this}});const r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function hA(t){return x8e(Wye,t)}const Gqe=Ar("ZodNumberFormat",(t,e)=>{SVe.init(t,e),Wye.init(t,e)});function cte(t){return _8e(Gqe,t)}const Hqe=Ar("ZodBoolean",(t,e)=>{TVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>U8e(t,r,n)});function Wqe(t){return v8e(Hqe,t)}const Kqe=Ar("ZodUnknown",(t,e)=>{EVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>q8e()});function ute(){return b8e(Kqe)}const Yqe=Ar("ZodNever",(t,e)=>{AVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>V8e(t,r,n)});function Zqe(t){return w8e(Yqe,t)}const Xqe=Ar("ZodArray",(t,e)=>{kVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Y8e(t,r,n,i),t.element=e.element,BC(t,"ZodArray",{min(r,n){return this.check(XL(r,n))},nonempty(r){return this.check(XL(1,r))},max(r,n){return this.check(Bye(r,n))},length(r,n){return this.check(zye(r,n))},unwrap(){return this.element}})});function Qqe(t,e){return L8e(Xqe,t,e)}const Jqe=Ar("ZodObject",(t,e)=>{IVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Z8e(t,r,n,i),Ys(t,"shape",()=>e.shape),BC(t,"ZodObject",{keyof(){return k9(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ute()})},loose(){return this.clone({...this._zod.def,catchall:ute()})},strict(){return this.clone({...this._zod.def,catchall:Zqe()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return WUe(this,r)},safeExtend(r){return KUe(this,r)},merge(r){return YUe(this,r)},pick(r){return GUe(this,r)},omit(r){return HUe(this,r)},partial(...r){return ZUe(Kye,this,r[0])},required(...r){return XUe(Yye,this,r[0])}})});function bS(t,e){const r={type:"object",shape:t??{},...zn(e)};return new Jqe(r)}const eGe=Ar("ZodUnion",(t,e)=>{jVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>X8e(t,r,n,i),t.options=e.options});function tGe(t,e){return new eGe({type:"union",options:t,...zn(e)})}const rGe=Ar("ZodIntersection",(t,e)=>{PVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Q8e(t,r,n,i)});function nGe(t,e){return new rGe({type:"intersection",left:t,right:e})}const g6=Ar("ZodEnum",(t,e)=>{NVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(n,i,a)=>G8e(t,n,i),t.enum=e.entries,t.options=Object.values(e.entries);const r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{const a={};for(const c of n)if(r.has(c))a[c]=e.entries[c];else throw new Error(`Key ${c} not found in enum`);return new g6({...e,checks:[],...zn(i),entries:a})},t.exclude=(n,i)=>{const a={...e.entries};for(const c of n)if(r.has(c))delete a[c];else throw new Error(`Key ${c} not found in enum`);return new g6({...e,checks:[],...zn(i),entries:a})}});function k9(t,e){const r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new g6({type:"enum",entries:r,...zn(e)})}const iGe=Ar("ZodLiteral",(t,e)=>{RVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>H8e(t,r,n),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function JL(t,e){return new iGe({type:"literal",values:Array.isArray(t)?t:[t],...zn(e)})}const sGe=Ar("ZodTransform",(t,e)=>{LVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>K8e(t,r),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new vye(t.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(lk(a,r.value,e));else{const c=a;c.fatal&&(c.continue=!1),c.code??(c.code="custom"),c.input??(c.input=r.value),c.inst??(c.inst=t),r.issues.push(lk(c))}};const i=e.transform(r.value,r);return i instanceof Promise?i.then(a=>(r.value=a,r.fallback=!0,r)):(r.value=i,r.fallback=!0,r)}});function aGe(t){return new sGe({type:"transform",transform:t})}const Kye=Ar("ZodOptional",(t,e)=>{Fye.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>qye(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function dte(t){return new Kye({type:"optional",innerType:t})}const oGe=Ar("ZodExactOptional",(t,e)=>{DVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>qye(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function lGe(t){return new oGe({type:"optional",innerType:t})}const cGe=Ar("ZodNullable",(t,e)=>{MVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>J8e(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function hte(t){return new cGe({type:"nullable",innerType:t})}const uGe=Ar("ZodDefault",(t,e)=>{OVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tqe(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function dGe(t,e){return new uGe({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():Sye(e)}})}const hGe=Ar("ZodPrefault",(t,e)=>{FVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rqe(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function fGe(t,e){return new hGe({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():Sye(e)}})}const Yye=Ar("ZodNonOptional",(t,e)=>{BVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>eqe(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function pGe(t,e){return new Yye({type:"nonoptional",innerType:t,...zn(e)})}const mGe=Ar("ZodCatch",(t,e)=>{zVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>nqe(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function gGe(t,e){return new mGe({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}const yGe=Ar("ZodPipe",(t,e)=>{$Ve.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>iqe(t,r,n,i),t.in=e.in,t.out=e.out});function fte(t,e){return new yGe({type:"pipe",in:t,out:e})}const xGe=Ar("ZodReadonly",(t,e)=>{UVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>sqe(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function _Ge(t){return new xGe({type:"readonly",innerType:t})}const vGe=Ar("ZodCustom",(t,e)=>{VVe.init(t,e),go.init(t,e),t._zod.processJSONSchema=(r,n,i)=>W8e(t,r)});function bGe(t,e={}){return D8e(vGe,t,e)}function wGe(t,e){return M8e(t,e)}var SGe="Label",Zye=P.forwardRef((t,e)=>o.jsx(rn.label,{...t,ref:e,onMouseDown:r=>{var i;r.target.closest("button, input, select, textarea")||((i=t.onMouseDown)==null||i.call(t,r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));Zye.displayName=SGe;var Xye=Zye;const TGe=nS("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Fr=P.forwardRef(({className:t,...e},r)=>o.jsx(Xye,{ref:r,className:ir(TGe(),t),...e}));Fr.displayName=Xye.displayName;const C9=xUe,Qye=P.createContext({}),tl=({...t})=>o.jsx(Qye.Provider,{value:{name:t.name},children:o.jsx(wUe,{...t})}),NO=()=>{const t=P.useContext(Qye),e=P.useContext(Jye),{getFieldState:r,formState:n}=CO(),i=r(t.name,n);if(!t)throw new Error("useFormField should be used within ");const{id:a}=e;return{id:a,name:t.name,formItemId:`${a}-form-item`,formDescriptionId:`${a}-form-item-description`,formMessageId:`${a}-form-item-message`,...i}},Jye=P.createContext({}),Fo=P.forwardRef(({className:t,...e},r)=>{const n=P.useId();return o.jsx(Jye.Provider,{value:{id:n},children:o.jsx("div",{ref:r,className:ir("space-y-2",t),...e})})});Fo.displayName="FormItem";const Bo=P.forwardRef(({className:t,...e},r)=>{const{error:n,formItemId:i}=NO();return o.jsx(Fr,{ref:r,className:ir(n&&"text-destructive",t),htmlFor:i,...e})});Bo.displayName="FormLabel";const zo=P.forwardRef(({...t},e)=>{const{error:r,formItemId:n,formDescriptionId:i,formMessageId:a}=NO();return o.jsx(Jde,{ref:e,id:n,"aria-describedby":r?`${i} ${a}`:`${i}`,"aria-invalid":!!r,...t})});zo.displayName="FormControl";const ER=P.forwardRef(({className:t,...e},r)=>{const{formDescriptionId:n}=NO();return o.jsx("p",{ref:r,id:n,className:ir("text-sm text-muted-foreground",t),...e})});ER.displayName="FormDescription";const Gh=P.forwardRef(({className:t,children:e,...r},n)=>{const{error:i,formMessageId:a}=NO(),c=i?String(i==null?void 0:i.message):e;return c?o.jsx("p",{ref:n,id:a,className:ir("text-sm font-medium text-destructive",t),...r,children:c}):null});Gh.displayName="FormMessage";const Hr=P.forwardRef(({className:t,type:e,...r},n)=>o.jsx("input",{type:e,className:ir("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:n,...r}));Hr.displayName="Input";function zC(t){const e=P.useRef({value:t,previous:t});return P.useMemo(()=>(e.current.value!==t&&(e.current.previous=e.current.value,e.current.value=t),e.current.previous),[t])}var EGe=[" ","Enter","ArrowUp","ArrowDown"],AGe=[" ","Enter"],E_="Select",[RO,LO,kGe]=yC(E_),[wS,F$t]=Go(E_,[kGe,ex]),DO=ex(),[CGe,ix]=wS(E_),[IGe,jGe]=wS(E_),exe=t=>{const{__scopeSelect:e,children:r,open:n,defaultOpen:i,onOpenChange:a,value:c,defaultValue:s,onValueChange:f,dir:m,name:x,autoComplete:_,disabled:T,required:E,form:C}=t,N=DO(e),[L,M]=P.useState(null),[D,B]=P.useState(null),[V,G]=P.useState(!1),W=B_(m),[Z,Q]=sd({prop:n,defaultProp:i??!1,onChange:a,caller:E_}),[se,ie]=sd({prop:c,defaultProp:s,onChange:f,caller:E_}),ue=P.useRef(null),be=L?C||!!L.closest("form"):!0,[Te,we]=P.useState(new Set),Oe=Array.from(Te).map(Ae=>Ae.props.value).join(";");return o.jsx(rO,{...N,children:o.jsxs(CGe,{required:E,scope:e,trigger:L,onTriggerChange:M,valueNode:D,onValueNodeChange:B,valueNodeHasChildren:V,onValueNodeHasChildrenChange:G,contentId:Cl(),value:se,onValueChange:ie,open:Z,onOpenChange:Q,dir:W,triggerPointerDownPosRef:ue,disabled:T,children:[o.jsx(RO.Provider,{scope:e,children:o.jsx(IGe,{scope:t.__scopeSelect,onNativeOptionAdd:P.useCallback(Ae=>{we(Se=>new Set(Se).add(Ae))},[]),onNativeOptionRemove:P.useCallback(Ae=>{we(Se=>{const ge=new Set(Se);return ge.delete(Ae),ge})},[]),children:r})}),be?o.jsxs(Exe,{"aria-hidden":!0,required:E,tabIndex:-1,name:x,autoComplete:_,value:se,onChange:Ae=>ie(Ae.target.value),disabled:T,form:C,children:[se===void 0?o.jsx("option",{value:""}):null,Array.from(Te)]},Oe):null]})})};exe.displayName=E_;var txe="SelectTrigger",rxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,disabled:n=!1,...i}=t,a=DO(r),c=ix(txe,r),s=c.disabled||n,f=Gn(e,c.onTriggerChange),m=LO(r),x=P.useRef("touch"),[_,T,E]=kxe(N=>{const L=m().filter(B=>!B.disabled),M=L.find(B=>B.value===c.value),D=Cxe(L,N,M);D!==void 0&&c.onValueChange(D.value)}),C=N=>{s||(c.onOpenChange(!0),E()),N&&(c.triggerPointerDownPosRef.current={x:Math.round(N.pageX),y:Math.round(N.pageY)})};return o.jsx(PC,{asChild:!0,...a,children:o.jsx(rn.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":Axe(c.value)?"":void 0,...i,ref:f,onClick:Or(i.onClick,N=>{N.currentTarget.focus(),x.current!=="mouse"&&C(N)}),onPointerDown:Or(i.onPointerDown,N=>{x.current=N.pointerType;const L=N.target;L.hasPointerCapture(N.pointerId)&&L.releasePointerCapture(N.pointerId),N.button===0&&N.ctrlKey===!1&&N.pointerType==="mouse"&&(C(N),N.preventDefault())}),onKeyDown:Or(i.onKeyDown,N=>{const L=_.current!=="";!(N.ctrlKey||N.altKey||N.metaKey)&&N.key.length===1&&T(N.key),!(L&&N.key===" ")&&EGe.includes(N.key)&&(C(),N.preventDefault())})})})});rxe.displayName=txe;var nxe="SelectValue",ixe=P.forwardRef((t,e)=>{const{__scopeSelect:r,className:n,style:i,children:a,placeholder:c="",...s}=t,f=ix(nxe,r),{onValueNodeHasChildrenChange:m}=f,x=a!==void 0,_=Gn(e,f.onValueNodeChange);return jo(()=>{m(x)},[m,x]),o.jsx(rn.span,{...s,ref:_,style:{pointerEvents:"none"},children:Axe(f.value)?o.jsx(o.Fragment,{children:c}):a})});ixe.displayName=nxe;var PGe="SelectIcon",sxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,children:n,...i}=t;return o.jsx(rn.span,{"aria-hidden":!0,...i,ref:e,children:n||"▼"})});sxe.displayName=PGe;var NGe="SelectPortal",axe=t=>o.jsx(rS,{asChild:!0,...t});axe.displayName=NGe;var A_="SelectContent",oxe=P.forwardRef((t,e)=>{const r=ix(A_,t.__scopeSelect),[n,i]=P.useState();if(jo(()=>{i(new DocumentFragment)},[]),!r.open){const a=n;return a?Fm.createPortal(o.jsx(lxe,{scope:t.__scopeSelect,children:o.jsx(RO.Slot,{scope:t.__scopeSelect,children:o.jsx("div",{children:t.children})})}),a):null}return o.jsx(cxe,{...t,ref:e})});oxe.displayName=A_;var Ih=10,[lxe,sx]=wS(A_),RGe="SelectContentImpl",LGe=My("SelectContent.RemoveScroll"),cxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,position:n="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:c,side:s,sideOffset:f,align:m,alignOffset:x,arrowPadding:_,collisionBoundary:T,collisionPadding:E,sticky:C,hideWhenDetached:N,avoidCollisions:L,...M}=t,D=ix(A_,r),[B,V]=P.useState(null),[G,W]=P.useState(null),Z=Gn(e,St=>V(St)),[Q,se]=P.useState(null),[ie,ue]=P.useState(null),be=LO(r),[Te,we]=P.useState(!1),Oe=P.useRef(!1);P.useEffect(()=>{if(B)return YM(B)},[B]),WM();const Ae=P.useCallback(St=>{const[Xt,..._t]=be().map(vt=>vt.ref.current),[Rt]=_t.slice(-1),er=document.activeElement;for(const vt of St)if(vt===er||(vt==null||vt.scrollIntoView({block:"nearest"}),vt===Xt&&G&&(G.scrollTop=0),vt===Rt&&G&&(G.scrollTop=G.scrollHeight),vt==null||vt.focus(),document.activeElement!==er))return},[be,G]),Se=P.useCallback(()=>Ae([Q,B]),[Ae,Q,B]);P.useEffect(()=>{Te&&Se()},[Te,Se]);const{onOpenChange:ge,triggerPointerDownPosRef:je}=D;P.useEffect(()=>{if(B){let St={x:0,y:0};const Xt=Rt=>{var er,vt;St={x:Math.abs(Math.round(Rt.pageX)-(((er=je.current)==null?void 0:er.x)??0)),y:Math.abs(Math.round(Rt.pageY)-(((vt=je.current)==null?void 0:vt.y)??0))}},_t=Rt=>{St.x<=10&&St.y<=10?Rt.preventDefault():B.contains(Rt.target)||ge(!1),document.removeEventListener("pointermove",Xt),je.current=null};return je.current!==null&&(document.addEventListener("pointermove",Xt),document.addEventListener("pointerup",_t,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Xt),document.removeEventListener("pointerup",_t,{capture:!0})}}},[B,ge,je]),P.useEffect(()=>{const St=()=>ge(!1);return window.addEventListener("blur",St),window.addEventListener("resize",St),()=>{window.removeEventListener("blur",St),window.removeEventListener("resize",St)}},[ge]);const[_e,xe]=kxe(St=>{const Xt=be().filter(er=>!er.disabled),_t=Xt.find(er=>er.ref.current===document.activeElement),Rt=Cxe(Xt,St,_t);Rt&&setTimeout(()=>Rt.ref.current.focus())}),Pe=P.useCallback((St,Xt,_t)=>{const Rt=!Oe.current&&!_t;(D.value!==void 0&&D.value===Xt||Rt)&&(se(St),Rt&&(Oe.current=!0))},[D.value]),Ze=P.useCallback(()=>B==null?void 0:B.focus(),[B]),at=P.useCallback((St,Xt,_t)=>{const Rt=!Oe.current&&!_t;(D.value!==void 0&&D.value===Xt||Rt)&&ue(St)},[D.value]),lt=n==="popper"?y6:uxe,xt=lt===y6?{side:s,sideOffset:f,align:m,alignOffset:x,arrowPadding:_,collisionBoundary:T,collisionPadding:E,sticky:C,hideWhenDetached:N,avoidCollisions:L}:{};return o.jsx(lxe,{scope:r,content:B,viewport:G,onViewportChange:W,itemRefCallback:Pe,selectedItem:Q,onItemLeave:Ze,itemTextRefCallback:at,focusSelectedItem:Se,selectedItemText:ie,position:n,isPositioned:Te,searchRef:_e,children:o.jsx(EC,{as:LGe,allowPinchZoom:!0,children:o.jsx(TC,{asChild:!0,trapped:D.open,onMountAutoFocus:St=>{St.preventDefault()},onUnmountAutoFocus:Or(i,St=>{var Xt;(Xt=D.trigger)==null||Xt.focus({preventScroll:!0}),St.preventDefault()}),children:o.jsx(O_,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:c,onFocusOutside:St=>St.preventDefault(),onDismiss:()=>D.onOpenChange(!1),children:o.jsx(lt,{role:"listbox",id:D.contentId,"data-state":D.open?"open":"closed",dir:D.dir,onContextMenu:St=>St.preventDefault(),...M,...xt,onPlaced:()=>we(!0),ref:Z,style:{display:"flex",flexDirection:"column",outline:"none",...M.style},onKeyDown:Or(M.onKeyDown,St=>{const Xt=St.ctrlKey||St.altKey||St.metaKey;if(St.key==="Tab"&&St.preventDefault(),!Xt&&St.key.length===1&&xe(St.key),["ArrowUp","ArrowDown","Home","End"].includes(St.key)){let Rt=be().filter(er=>!er.disabled).map(er=>er.ref.current);if(["ArrowUp","End"].includes(St.key)&&(Rt=Rt.slice().reverse()),["ArrowUp","ArrowDown"].includes(St.key)){const er=St.target,vt=Rt.indexOf(er);Rt=Rt.slice(vt+1)}setTimeout(()=>Ae(Rt)),St.preventDefault()}})})})})})})});cxe.displayName=RGe;var DGe="SelectItemAlignedPosition",uxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,onPlaced:n,...i}=t,a=ix(A_,r),c=sx(A_,r),[s,f]=P.useState(null),[m,x]=P.useState(null),_=Gn(e,Z=>x(Z)),T=LO(r),E=P.useRef(!1),C=P.useRef(!0),{viewport:N,selectedItem:L,selectedItemText:M,focusSelectedItem:D}=c,B=P.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&m&&N&&L&&M){const Z=a.trigger.getBoundingClientRect(),Q=m.getBoundingClientRect(),se=a.valueNode.getBoundingClientRect(),ie=M.getBoundingClientRect();if(a.dir!=="rtl"){const er=ie.left-Q.left,vt=se.left-er,xr=Z.left-vt,_r=Z.width+xr,tn=Math.max(_r,Q.width),or=window.innerWidth-Ih,Sr=ak(vt,[Ih,Math.max(Ih,or-tn)]);s.style.minWidth=_r+"px",s.style.left=Sr+"px"}else{const er=Q.right-ie.right,vt=window.innerWidth-se.right-er,xr=window.innerWidth-Z.right-vt,_r=Z.width+xr,tn=Math.max(_r,Q.width),or=window.innerWidth-Ih,Sr=ak(vt,[Ih,Math.max(Ih,or-tn)]);s.style.minWidth=_r+"px",s.style.right=Sr+"px"}const ue=T(),be=window.innerHeight-Ih*2,Te=N.scrollHeight,we=window.getComputedStyle(m),Oe=parseInt(we.borderTopWidth,10),Ae=parseInt(we.paddingTop,10),Se=parseInt(we.borderBottomWidth,10),ge=parseInt(we.paddingBottom,10),je=Oe+Ae+Te+ge+Se,_e=Math.min(L.offsetHeight*5,je),xe=window.getComputedStyle(N),Pe=parseInt(xe.paddingTop,10),Ze=parseInt(xe.paddingBottom,10),at=Z.top+Z.height/2-Ih,lt=be-at,xt=L.offsetHeight/2,St=L.offsetTop+xt,Xt=Oe+Ae+St,_t=je-Xt;if(Xt<=at){const er=ue.length>0&&L===ue[ue.length-1].ref.current;s.style.bottom="0px";const vt=m.clientHeight-N.offsetTop-N.offsetHeight,xr=Math.max(lt,xt+(er?Ze:0)+vt+Se),_r=Xt+xr;s.style.height=_r+"px"}else{const er=ue.length>0&&L===ue[0].ref.current;s.style.top="0px";const xr=Math.max(at,Oe+N.offsetTop+(er?Pe:0)+xt)+_t;s.style.height=xr+"px",N.scrollTop=Xt-at+N.offsetTop}s.style.margin=`${Ih}px 0`,s.style.minHeight=_e+"px",s.style.maxHeight=be+"px",n==null||n(),requestAnimationFrame(()=>E.current=!0)}},[T,a.trigger,a.valueNode,s,m,N,L,M,a.dir,n]);jo(()=>B(),[B]);const[V,G]=P.useState();jo(()=>{m&&G(window.getComputedStyle(m).zIndex)},[m]);const W=P.useCallback(Z=>{Z&&C.current===!0&&(B(),D==null||D(),C.current=!1)},[B,D]);return o.jsx(OGe,{scope:r,contentWrapper:s,shouldExpandOnScrollRef:E,onScrollButtonChange:W,children:o.jsx("div",{ref:f,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:V},children:o.jsx(rn.div,{...i,ref:_,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});uxe.displayName=DGe;var MGe="SelectPopperPosition",y6=P.forwardRef((t,e)=>{const{__scopeSelect:r,align:n="start",collisionPadding:i=Ih,...a}=t,c=DO(r);return o.jsx(nO,{...c,...a,ref:e,align:n,collisionPadding:i,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});y6.displayName=MGe;var[OGe,I9]=wS(A_,{}),x6="SelectViewport",dxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,nonce:n,...i}=t,a=sx(x6,r),c=I9(x6,r),s=Gn(e,a.onViewportChange),f=P.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),o.jsx(RO.Slot,{scope:r,children:o.jsx(rn.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:Or(i.onScroll,m=>{const x=m.currentTarget,{contentWrapper:_,shouldExpandOnScrollRef:T}=c;if(T!=null&&T.current&&_){const E=Math.abs(f.current-x.scrollTop);if(E>0){const C=window.innerHeight-Ih*2,N=parseFloat(_.style.minHeight),L=parseFloat(_.style.height),M=Math.max(N,L);if(M0?V:0,_.style.justifyContent="flex-end")}}}f.current=x.scrollTop})})})]})});dxe.displayName=x6;var hxe="SelectGroup",[FGe,BGe]=wS(hxe),fxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,...n}=t,i=Cl();return o.jsx(FGe,{scope:r,id:i,children:o.jsx(rn.div,{role:"group","aria-labelledby":i,...n,ref:e})})});fxe.displayName=hxe;var pxe="SelectLabel",mxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,...n}=t,i=BGe(pxe,r);return o.jsx(rn.div,{id:i.id,...n,ref:e})});mxe.displayName=pxe;var eD="SelectItem",[zGe,gxe]=wS(eD),yxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,value:n,disabled:i=!1,textValue:a,...c}=t,s=ix(eD,r),f=sx(eD,r),m=s.value===n,[x,_]=P.useState(a??""),[T,E]=P.useState(!1),C=Gn(e,D=>{var B;return(B=f.itemRefCallback)==null?void 0:B.call(f,D,n,i)}),N=Cl(),L=P.useRef("touch"),M=()=>{i||(s.onValueChange(n),s.onOpenChange(!1))};if(n==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx(zGe,{scope:r,value:n,disabled:i,textId:N,isSelected:m,onItemTextChange:P.useCallback(D=>{_(B=>B||((D==null?void 0:D.textContent)??"").trim())},[]),children:o.jsx(RO.ItemSlot,{scope:r,value:n,disabled:i,textValue:x,children:o.jsx(rn.div,{role:"option","aria-labelledby":N,"data-highlighted":T?"":void 0,"aria-selected":m&&T,"data-state":m?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...c,ref:C,onFocus:Or(c.onFocus,()=>E(!0)),onBlur:Or(c.onBlur,()=>E(!1)),onClick:Or(c.onClick,()=>{L.current!=="mouse"&&M()}),onPointerUp:Or(c.onPointerUp,()=>{L.current==="mouse"&&M()}),onPointerDown:Or(c.onPointerDown,D=>{L.current=D.pointerType}),onPointerMove:Or(c.onPointerMove,D=>{var B;L.current=D.pointerType,i?(B=f.onItemLeave)==null||B.call(f):L.current==="mouse"&&D.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Or(c.onPointerLeave,D=>{var B;D.currentTarget===document.activeElement&&((B=f.onItemLeave)==null||B.call(f))}),onKeyDown:Or(c.onKeyDown,D=>{var V;((V=f.searchRef)==null?void 0:V.current)!==""&&D.key===" "||(AGe.includes(D.key)&&M(),D.key===" "&&D.preventDefault())})})})})});yxe.displayName=eD;var G2="SelectItemText",xxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,className:n,style:i,...a}=t,c=ix(G2,r),s=sx(G2,r),f=gxe(G2,r),m=jGe(G2,r),[x,_]=P.useState(null),T=Gn(e,M=>_(M),f.onItemTextChange,M=>{var D;return(D=s.itemTextRefCallback)==null?void 0:D.call(s,M,f.value,f.disabled)}),E=x==null?void 0:x.textContent,C=P.useMemo(()=>o.jsx("option",{value:f.value,disabled:f.disabled,children:E},f.value),[f.disabled,f.value,E]),{onNativeOptionAdd:N,onNativeOptionRemove:L}=m;return jo(()=>(N(C),()=>L(C)),[N,L,C]),o.jsxs(o.Fragment,{children:[o.jsx(rn.span,{id:f.textId,...a,ref:T}),f.isSelected&&c.valueNode&&!c.valueNodeHasChildren?Fm.createPortal(a.children,c.valueNode):null]})});xxe.displayName=G2;var _xe="SelectItemIndicator",vxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,...n}=t;return gxe(_xe,r).isSelected?o.jsx(rn.span,{"aria-hidden":!0,...n,ref:e}):null});vxe.displayName=_xe;var _6="SelectScrollUpButton",bxe=P.forwardRef((t,e)=>{const r=sx(_6,t.__scopeSelect),n=I9(_6,t.__scopeSelect),[i,a]=P.useState(!1),c=Gn(e,n.onScrollButtonChange);return jo(()=>{if(r.viewport&&r.isPositioned){let s=function(){const m=f.scrollTop>0;a(m)};const f=r.viewport;return s(),f.addEventListener("scroll",s),()=>f.removeEventListener("scroll",s)}},[r.viewport,r.isPositioned]),i?o.jsx(Sxe,{...t,ref:c,onAutoScroll:()=>{const{viewport:s,selectedItem:f}=r;s&&f&&(s.scrollTop=s.scrollTop-f.offsetHeight)}}):null});bxe.displayName=_6;var v6="SelectScrollDownButton",wxe=P.forwardRef((t,e)=>{const r=sx(v6,t.__scopeSelect),n=I9(v6,t.__scopeSelect),[i,a]=P.useState(!1),c=Gn(e,n.onScrollButtonChange);return jo(()=>{if(r.viewport&&r.isPositioned){let s=function(){const m=f.scrollHeight-f.clientHeight,x=Math.ceil(f.scrollTop)f.removeEventListener("scroll",s)}},[r.viewport,r.isPositioned]),i?o.jsx(Sxe,{...t,ref:c,onAutoScroll:()=>{const{viewport:s,selectedItem:f}=r;s&&f&&(s.scrollTop=s.scrollTop+f.offsetHeight)}}):null});wxe.displayName=v6;var Sxe=P.forwardRef((t,e)=>{const{__scopeSelect:r,onAutoScroll:n,...i}=t,a=sx("SelectScrollButton",r),c=P.useRef(null),s=LO(r),f=P.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return P.useEffect(()=>()=>f(),[f]),jo(()=>{var x;const m=s().find(_=>_.ref.current===document.activeElement);(x=m==null?void 0:m.ref.current)==null||x.scrollIntoView({block:"nearest"})},[s]),o.jsx(rn.div,{"aria-hidden":!0,...i,ref:e,style:{flexShrink:0,...i.style},onPointerDown:Or(i.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(n,50))}),onPointerMove:Or(i.onPointerMove,()=>{var m;(m=a.onItemLeave)==null||m.call(a),c.current===null&&(c.current=window.setInterval(n,50))}),onPointerLeave:Or(i.onPointerLeave,()=>{f()})})}),$Ge="SelectSeparator",Txe=P.forwardRef((t,e)=>{const{__scopeSelect:r,...n}=t;return o.jsx(rn.div,{"aria-hidden":!0,...n,ref:e})});Txe.displayName=$Ge;var b6="SelectArrow",UGe=P.forwardRef((t,e)=>{const{__scopeSelect:r,...n}=t,i=DO(r),a=ix(b6,r),c=sx(b6,r);return a.open&&c.position==="popper"?o.jsx(iO,{...i,...n,ref:e}):null});UGe.displayName=b6;var VGe="SelectBubbleInput",Exe=P.forwardRef(({__scopeSelect:t,value:e,...r},n)=>{const i=P.useRef(null),a=Gn(n,i),c=zC(e);return P.useEffect(()=>{const s=i.current;if(!s)return;const f=window.HTMLSelectElement.prototype,x=Object.getOwnPropertyDescriptor(f,"value").set;if(c!==e&&x){const _=new Event("change",{bubbles:!0});x.call(s,e),s.dispatchEvent(_)}},[c,e]),o.jsx(rn.select,{...r,style:{...she,...r.style},ref:a,defaultValue:e})});Exe.displayName=VGe;function Axe(t){return t===""||t===void 0}function kxe(t){const e=ho(t),r=P.useRef(""),n=P.useRef(0),i=P.useCallback(c=>{const s=r.current+c;e(s),function f(m){r.current=m,window.clearTimeout(n.current),m!==""&&(n.current=window.setTimeout(()=>f(""),1e3))}(s)},[e]),a=P.useCallback(()=>{r.current="",window.clearTimeout(n.current)},[]);return P.useEffect(()=>()=>window.clearTimeout(n.current),[]),[r,i,a]}function Cxe(t,e,r){const i=e.length>1&&Array.from(e).every(m=>m===e[0])?e[0]:e,a=r?t.indexOf(r):-1;let c=qGe(t,Math.max(a,0));i.length===1&&(c=c.filter(m=>m!==r));const f=c.find(m=>m.textValue.toLowerCase().startsWith(i.toLowerCase()));return f!==r?f:void 0}function qGe(t,e){return t.map((r,n)=>t[(e+n)%t.length])}var GGe=exe,Ixe=rxe,HGe=ixe,WGe=sxe,KGe=axe,jxe=oxe,YGe=dxe,ZGe=fxe,Pxe=mxe,Nxe=yxe,XGe=xxe,QGe=vxe,Rxe=bxe,Lxe=wxe,Dxe=Txe;const Fa=GGe,B$t=ZGe,Ba=HGe,Ca=P.forwardRef(({className:t,children:e,...r},n)=>o.jsxs(Ixe,{ref:n,className:ir("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...r,children:[e,o.jsx(WGe,{asChild:!0,children:o.jsx(Yd,{className:"h-4 w-4 opacity-50"})})]}));Ca.displayName=Ixe.displayName;const Mxe=P.forwardRef(({className:t,...e},r)=>o.jsx(Rxe,{ref:r,className:ir("flex cursor-default items-center justify-center py-1",t),...e,children:o.jsx(kRe,{className:"h-4 w-4"})}));Mxe.displayName=Rxe.displayName;const Oxe=P.forwardRef(({className:t,...e},r)=>o.jsx(Lxe,{ref:r,className:ir("flex cursor-default items-center justify-center py-1",t),...e,children:o.jsx(Yd,{className:"h-4 w-4"})}));Oxe.displayName=Lxe.displayName;const Ia=P.forwardRef(({className:t,children:e,position:r="popper",...n},i)=>o.jsx(KGe,{children:o.jsxs(jxe,{ref:i,className:ir("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:r,...n,children:[o.jsx(Mxe,{}),o.jsx(YGe,{className:ir("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:e}),o.jsx(Oxe,{})]})}));Ia.displayName=jxe.displayName;const JGe=P.forwardRef(({className:t,...e},r)=>o.jsx(Pxe,{ref:r,className:ir("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...e}));JGe.displayName=Pxe.displayName;const xn=P.forwardRef(({className:t,children:e,...r},n)=>o.jsxs(Nxe,{ref:n,className:ir("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",t),...r,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(QGe,{children:o.jsx(Ao,{className:"h-4 w-4"})})}),o.jsx(XGe,{children:e})]}));xn.displayName=Nxe.displayName;const e9e=P.forwardRef(({className:t,...e},r)=>o.jsx(Dxe,{ref:r,className:ir("-mx-1 my-1 h-px bg-muted",t),...e}));e9e.displayName=Dxe.displayName;const t9e=bS({category:k9(["general","technology","crm","marketing"]),subject:co().min(5,"Subject must be at least 5 characters").max(200),description:co().min(20,"Please provide more details (at least 20 characters)").max(2e3)}),r9e={general:"General Support",technology:"Technology Support",crm:"CRM Support",marketing:"Marketing Support"};function n9e({trigger:t}){const[e,r]=P.useState(!1),[n,i]=P.useState(!1),{user:a}=$n(),c=y9({resolver:x9(t9e),defaultValues:{category:"general",subject:"",description:""}}),s=async f=>{if(!a){Jt.error("You must be logged in to submit a ticket");return}i(!0);try{const{error:m}=await De.from("support_tickets").insert({user_id:a.id,category:f.category,subject:f.subject,description:f.description});if(m)throw m;try{await De.functions.invoke("support-ticket-notify",{body:{category:r9e[f.category],subject:f.subject}})}catch(x){console.log("Notification send attempted:",x)}Jt.success("Support ticket submitted successfully!"),c.reset(),r(!1)}catch(m){console.error("Error submitting ticket:",m),Jt.error("Failed to submit ticket. Please try again.")}finally{i(!1)}};return o.jsxs(ro,{open:e,onOpenChange:r,children:[o.jsx(Bge,{asChild:!0,children:t||o.jsxs(Kt,{variant:"ghost",size:"icon",className:"relative",children:[o.jsx(VRe,{className:"h-5 w-5"}),o.jsx("span",{className:"sr-only",children:"Support"})]})}),o.jsxs(za,{className:"sm:max-w-[500px]",children:[o.jsxs(cl,{children:[o.jsx(qo,{children:"Need Help?"}),o.jsx(ad,{children:"Submit a support ticket and we'll get back to you as soon as possible."})]}),o.jsxs("div",{className:"flex items-center gap-2 p-3 bg-muted rounded-lg mb-4",children:[o.jsx(Ui,{className:"h-4 w-4 text-muted-foreground"}),o.jsxs("span",{className:"text-sm text-muted-foreground",children:["You can also text us at: ",o.jsx("span",{className:"font-medium text-foreground",children:"1-866-527-8668"})]})]}),o.jsx(C9,{...c,children:o.jsxs("form",{onSubmit:c.handleSubmit(s),className:"space-y-4",children:[o.jsx(tl,{control:c.control,name:"category",render:({field:f})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Category"}),o.jsxs(Fa,{onValueChange:f.onChange,defaultValue:f.value,children:[o.jsx(zo,{children:o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select a category"})})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"general",children:"General Support"}),o.jsx(xn,{value:"technology",children:"Technology Support"}),o.jsx(xn,{value:"crm",children:"CRM Support"}),o.jsx(xn,{value:"marketing",children:"Marketing Support"})]})]}),o.jsx(Gh,{})]})}),o.jsx(tl,{control:c.control,name:"subject",render:({field:f})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Subject"}),o.jsx(zo,{children:o.jsx(Hr,{placeholder:"Brief description of your issue",...f})}),o.jsx(Gh,{})]})}),o.jsx(tl,{control:c.control,name:"description",render:({field:f})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Description"}),o.jsx(zo,{children:o.jsx(ud,{placeholder:"Please describe your issue in detail...",className:"min-h-[120px]",...f})}),o.jsx(Gh,{})]})}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(Kt,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),o.jsx(Kt,{type:"submit",disabled:n,children:n?"Submitting...":"Submit Ticket"})]})]})})]})]})}function Ln(t){const e=Object.prototype.toString.call(t);return t instanceof Date||typeof t=="object"&&e==="[object Date]"?new t.constructor(+t):typeof t=="number"||e==="[object Number]"||typeof t=="string"||e==="[object String]"?new Date(t):new Date(NaN)}function Ks(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}function Sl(t,e){const r=Ln(t);return isNaN(e)?Ks(t,NaN):(e&&r.setDate(r.getDate()+e),r)}function od(t,e){const r=Ln(t);if(isNaN(e))return Ks(t,NaN);if(!e)return r;const n=r.getDate(),i=Ks(t,r.getTime());i.setMonth(r.getMonth()+e+1,0);const a=i.getDate();return n>=a?i:(r.setFullYear(i.getFullYear(),i.getMonth(),n),r)}const j9=6048e5,i9e=864e5,P9=6e4,N9=36e5,s9e=1e3,dN=43200,pte=1440;let a9e={};function ax(){return a9e}function yc(t,e){var s,f,m,x;const r=ax(),n=(e==null?void 0:e.weekStartsOn)??((f=(s=e==null?void 0:e.locale)==null?void 0:s.options)==null?void 0:f.weekStartsOn)??r.weekStartsOn??((x=(m=r.locale)==null?void 0:m.options)==null?void 0:x.weekStartsOn)??0,i=Ln(t),a=i.getDay(),c=(a=i.getTime()?r+1:e.getTime()>=c.getTime()?r:r-1}function Vy(t){const e=Ln(t);return e.setHours(0,0,0,0),e}function qy(t){const e=Ln(t),r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return r.setUTCFullYear(e.getFullYear()),+t-+r}function Hh(t,e){const r=Vy(t),n=Vy(e),i=+r-qy(r),a=+n-qy(n);return Math.round((i-a)/i9e)}function o9e(t){const e=Fxe(t),r=Ks(t,0);return r.setFullYear(e,0,4),r.setHours(0,0,0,0),Nm(r)}function w6(t,e){const r=e*7;return Sl(t,r)}function l9e(t,e){return od(t,e*12)}function c9e(t){let e;return t.forEach(function(r){const n=Ln(r);(e===void 0||e{const n=Ln(r);(!e||e>n||isNaN(+n))&&(e=n)}),e||new Date(NaN)}function AR(t,e){const r=Ln(t),n=Ln(e),i=r.getTime()-n.getTime();return i<0?-1:i>0?1:i}function R9(t){return Ks(t,Date.now())}function Wl(t,e){const r=Vy(t),n=Vy(e);return+r==+n}function L9(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function S6(t){if(!L9(t)&&typeof t!="number")return!1;const e=Ln(t);return!isNaN(Number(e))}function x1(t,e){const r=Ln(t),n=Ln(e),i=r.getFullYear()-n.getFullYear(),a=r.getMonth()-n.getMonth();return i*12+a}function d9e(t,e,r){const n=yc(t,r),i=yc(e,r),a=+n-qy(n),c=+i-qy(i);return Math.round((a-c)/j9)}function h9e(t,e){const r=Ln(t),n=Ln(e),i=mte(r,n),a=Math.abs(Hh(r,n));r.setDate(r.getDate()-i*a);const c=+(mte(r,n)===-i),s=i*(a-c);return s===0?0:s}function mte(t,e){const r=t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()||t.getHours()-e.getHours()||t.getMinutes()-e.getMinutes()||t.getSeconds()-e.getSeconds()||t.getMilliseconds()-e.getMilliseconds();return r<0?-1:r>0?1:r}function f9e(t){return e=>{const n=(t?Math[t]:Math.trunc)(e);return n===0?0:n}}function p9e(t,e){return+Ln(t)-+Ln(e)}function m9e(t){const e=Ln(t);return e.setHours(23,59,59,999),e}function $C(t){const e=Ln(t),r=e.getMonth();return e.setFullYear(e.getFullYear(),r+1,0),e.setHours(23,59,59,999),e}function g9e(t){const e=Ln(t);return+m9e(e)==+$C(e)}function y9e(t,e){const r=Ln(t),n=Ln(e),i=AR(r,n),a=Math.abs(x1(r,n));let c;if(a<1)c=0;else{r.getMonth()===1&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-i*a);let s=AR(r,n)===-i;g9e(Ln(t))&&a===1&&AR(t,n)===1&&(s=!1),c=i*(a-Number(s))}return c===0?0:c}function x9e(t,e,r){const n=p9e(t,e)/1e3;return f9e(r==null?void 0:r.roundingMethod)(n)}function _9e(t,e){const r=Ln(t.start),n=Ln(t.end);let i=+r>+n;const a=i?+r:+n,c=i?n:r;c.setHours(0,0,0,0);let s=1;const f=[];for(;+c<=a;)f.push(Ln(c)),c.setDate(c.getDate()+s),c.setHours(0,0,0,0);return i?f.reverse():f}function Zc(t){const e=Ln(t);return e.setDate(1),e.setHours(0,0,0,0),e}function Bxe(t){const e=Ln(t),r=Ks(t,0);return r.setFullYear(e.getFullYear(),0,1),r.setHours(0,0,0,0),r}function MO(t,e){var s,f,m,x;const r=ax(),n=(e==null?void 0:e.weekStartsOn)??((f=(s=e==null?void 0:e.locale)==null?void 0:s.options)==null?void 0:f.weekStartsOn)??r.weekStartsOn??((x=(m=r.locale)==null?void 0:m.options)==null?void 0:x.weekStartsOn)??0,i=Ln(t),a=i.getDay(),c=(a{let n;const i=v9e[t];return typeof i=="string"?n=i:e===1?n=i.one:n=i.other.replace("{{count}}",e.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n};function CB(t){return(e={})=>{const r=e.width?String(e.width):t.defaultWidth;return t.formats[r]||t.formats[t.defaultWidth]}}const w9e={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},S9e={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},T9e={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},E9e={date:CB({formats:w9e,defaultWidth:"full"}),time:CB({formats:S9e,defaultWidth:"full"}),dateTime:CB({formats:T9e,defaultWidth:"full"})},A9e={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},k9e=(t,e,r,n)=>A9e[t];function p2(t){return(e,r)=>{const n=r!=null&&r.context?String(r.context):"standalone";let i;if(n==="formatting"&&t.formattingValues){const c=t.defaultFormattingWidth||t.defaultWidth,s=r!=null&&r.width?String(r.width):c;i=t.formattingValues[s]||t.formattingValues[c]}else{const c=t.defaultWidth,s=r!=null&&r.width?String(r.width):t.defaultWidth;i=t.values[s]||t.values[c]}const a=t.argumentCallback?t.argumentCallback(e):e;return i[a]}}const C9e={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},I9e={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},j9e={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},P9e={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},N9e={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},R9e={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},L9e=(t,e)=>{const r=Number(t),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},D9e={ordinalNumber:L9e,era:p2({values:C9e,defaultWidth:"wide"}),quarter:p2({values:I9e,defaultWidth:"wide",argumentCallback:t=>t-1}),month:p2({values:j9e,defaultWidth:"wide"}),day:p2({values:P9e,defaultWidth:"wide"}),dayPeriod:p2({values:N9e,defaultWidth:"wide",formattingValues:R9e,defaultFormattingWidth:"wide"})};function m2(t){return(e,r={})=>{const n=r.width,i=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],a=e.match(i);if(!a)return null;const c=a[0],s=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],f=Array.isArray(s)?O9e(s,_=>_.test(c)):M9e(s,_=>_.test(c));let m;m=t.valueCallback?t.valueCallback(f):f,m=r.valueCallback?r.valueCallback(m):m;const x=e.slice(c.length);return{value:m,rest:x}}}function M9e(t,e){for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return r}function O9e(t,e){for(let r=0;r{const n=e.match(t.matchPattern);if(!n)return null;const i=n[0],a=e.match(t.parsePattern);if(!a)return null;let c=t.valueCallback?t.valueCallback(a[0]):a[0];c=r.valueCallback?r.valueCallback(c):c;const s=e.slice(i.length);return{value:c,rest:s}}}const B9e=/^(\d+)(th|st|nd|rd)?/i,z9e=/\d+/i,$9e={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},U9e={any:[/^b/i,/^(a|c)/i]},V9e={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},q9e={any:[/1/i,/2/i,/3/i,/4/i]},G9e={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},H9e={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},W9e={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},K9e={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Y9e={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Z9e={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},X9e={ordinalNumber:F9e({matchPattern:B9e,parsePattern:z9e,valueCallback:t=>parseInt(t,10)}),era:m2({matchPatterns:$9e,defaultMatchWidth:"wide",parsePatterns:U9e,defaultParseWidth:"any"}),quarter:m2({matchPatterns:V9e,defaultMatchWidth:"wide",parsePatterns:q9e,defaultParseWidth:"any",valueCallback:t=>t+1}),month:m2({matchPatterns:G9e,defaultMatchWidth:"wide",parsePatterns:H9e,defaultParseWidth:"any"}),day:m2({matchPatterns:W9e,defaultMatchWidth:"wide",parsePatterns:K9e,defaultParseWidth:"any"}),dayPeriod:m2({matchPatterns:Y9e,defaultMatchWidth:"any",parsePatterns:Z9e,defaultParseWidth:"any"})},OO={code:"en-US",formatDistance:b9e,formatLong:E9e,formatRelative:k9e,localize:D9e,match:X9e,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Q9e(t){const e=Ln(t);return Hh(e,Bxe(e))+1}function D9(t){const e=Ln(t),r=+Nm(e)-+o9e(e);return Math.round(r/j9)+1}function M9(t,e){var x,_,T,E;const r=Ln(t),n=r.getFullYear(),i=ax(),a=(e==null?void 0:e.firstWeekContainsDate)??((_=(x=e==null?void 0:e.locale)==null?void 0:x.options)==null?void 0:_.firstWeekContainsDate)??i.firstWeekContainsDate??((E=(T=i.locale)==null?void 0:T.options)==null?void 0:E.firstWeekContainsDate)??1,c=Ks(t,0);c.setFullYear(n+1,0,a),c.setHours(0,0,0,0);const s=yc(c,e),f=Ks(t,0);f.setFullYear(n,0,a),f.setHours(0,0,0,0);const m=yc(f,e);return r.getTime()>=s.getTime()?n+1:r.getTime()>=m.getTime()?n:n-1}function J9e(t,e){var s,f,m,x;const r=ax(),n=(e==null?void 0:e.firstWeekContainsDate)??((f=(s=e==null?void 0:e.locale)==null?void 0:s.options)==null?void 0:f.firstWeekContainsDate)??r.firstWeekContainsDate??((x=(m=r.locale)==null?void 0:m.options)==null?void 0:x.firstWeekContainsDate)??1,i=M9(t,e),a=Ks(t,0);return a.setFullYear(i,0,n),a.setHours(0,0,0,0),yc(a,e)}function O9(t,e){const r=Ln(t),n=+yc(r,e)-+J9e(r,e);return Math.round(n/j9)+1}function Bs(t,e){const r=t<0?"-":"",n=Math.abs(t).toString().padStart(e,"0");return r+n}const Dg={y(t,e){const r=t.getFullYear(),n=r>0?r:1-r;return Bs(e==="yy"?n%100:n,e.length)},M(t,e){const r=t.getMonth();return e==="M"?String(r+1):Bs(r+1,2)},d(t,e){return Bs(t.getDate(),e.length)},a(t,e){const r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h(t,e){return Bs(t.getHours()%12||12,e.length)},H(t,e){return Bs(t.getHours(),e.length)},m(t,e){return Bs(t.getMinutes(),e.length)},s(t,e){return Bs(t.getSeconds(),e.length)},S(t,e){const r=e.length,n=t.getMilliseconds(),i=Math.trunc(n*Math.pow(10,r-3));return Bs(i,e.length)}},Lb={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},gte={G:function(t,e,r){const n=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});case"GGGG":default:return r.era(n,{width:"wide"})}},y:function(t,e,r){if(e==="yo"){const n=t.getFullYear(),i=n>0?n:1-n;return r.ordinalNumber(i,{unit:"year"})}return Dg.y(t,e)},Y:function(t,e,r,n){const i=M9(t,n),a=i>0?i:1-i;if(e==="YY"){const c=a%100;return Bs(c,2)}return e==="Yo"?r.ordinalNumber(a,{unit:"year"}):Bs(a,e.length)},R:function(t,e){const r=Fxe(t);return Bs(r,e.length)},u:function(t,e){const r=t.getFullYear();return Bs(r,e.length)},Q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return Bs(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(t,e,r){const n=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return Bs(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(t,e,r){const n=t.getMonth();switch(e){case"M":case"MM":return Dg.M(t,e);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(t,e,r){const n=t.getMonth();switch(e){case"L":return String(n+1);case"LL":return Bs(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(t,e,r,n){const i=O9(t,n);return e==="wo"?r.ordinalNumber(i,{unit:"week"}):Bs(i,e.length)},I:function(t,e,r){const n=D9(t);return e==="Io"?r.ordinalNumber(n,{unit:"week"}):Bs(n,e.length)},d:function(t,e,r){return e==="do"?r.ordinalNumber(t.getDate(),{unit:"date"}):Dg.d(t,e)},D:function(t,e,r){const n=Q9e(t);return e==="Do"?r.ordinalNumber(n,{unit:"dayOfYear"}):Bs(n,e.length)},E:function(t,e,r){const n=t.getDay();switch(e){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});case"EEEE":default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(t,e,r,n){const i=t.getDay(),a=(i-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(a);case"ee":return Bs(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(i,{width:"short",context:"formatting"});case"eeee":default:return r.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,r,n){const i=t.getDay(),a=(i-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(a);case"cc":return Bs(a,e.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(i,{width:"narrow",context:"standalone"});case"cccccc":return r.day(i,{width:"short",context:"standalone"});case"cccc":default:return r.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,r){const n=t.getDay(),i=n===0?7:n;switch(e){case"i":return String(i);case"ii":return Bs(i,e.length);case"io":return r.ordinalNumber(i,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});case"iiii":default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(t,e,r){const i=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(t,e,r){const n=t.getHours();let i;switch(n===12?i=Lb.noon:n===0?i=Lb.midnight:i=n/12>=1?"pm":"am",e){case"b":case"bb":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,e,r){const n=t.getHours();let i;switch(n>=17?i=Lb.evening:n>=12?i=Lb.afternoon:n>=4?i=Lb.morning:i=Lb.night,e){case"B":case"BB":case"BBB":return r.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,e,r){if(e==="ho"){let n=t.getHours()%12;return n===0&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return Dg.h(t,e)},H:function(t,e,r){return e==="Ho"?r.ordinalNumber(t.getHours(),{unit:"hour"}):Dg.H(t,e)},K:function(t,e,r){const n=t.getHours()%12;return e==="Ko"?r.ordinalNumber(n,{unit:"hour"}):Bs(n,e.length)},k:function(t,e,r){let n=t.getHours();return n===0&&(n=24),e==="ko"?r.ordinalNumber(n,{unit:"hour"}):Bs(n,e.length)},m:function(t,e,r){return e==="mo"?r.ordinalNumber(t.getMinutes(),{unit:"minute"}):Dg.m(t,e)},s:function(t,e,r){return e==="so"?r.ordinalNumber(t.getSeconds(),{unit:"second"}):Dg.s(t,e)},S:function(t,e){return Dg.S(t,e)},X:function(t,e,r){const n=t.getTimezoneOffset();if(n===0)return"Z";switch(e){case"X":return xte(n);case"XXXX":case"XX":return N0(n);case"XXXXX":case"XXX":default:return N0(n,":")}},x:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"x":return xte(n);case"xxxx":case"xx":return N0(n);case"xxxxx":case"xxx":default:return N0(n,":")}},O:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+yte(n,":");case"OOOO":default:return"GMT"+N0(n,":")}},z:function(t,e,r){const n=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+yte(n,":");case"zzzz":default:return"GMT"+N0(n,":")}},t:function(t,e,r){const n=Math.trunc(t.getTime()/1e3);return Bs(n,e.length)},T:function(t,e,r){const n=t.getTime();return Bs(n,e.length)}};function yte(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),i=Math.trunc(n/60),a=n%60;return a===0?r+String(i):r+String(i)+e+Bs(a,2)}function xte(t,e){return t%60===0?(t>0?"-":"+")+Bs(Math.abs(t)/60,2):N0(t,e)}function N0(t,e=""){const r=t>0?"-":"+",n=Math.abs(t),i=Bs(Math.trunc(n/60),2),a=Bs(n%60,2);return r+i+e+a}const _te=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},$xe=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},e7e=(t,e)=>{const r=t.match(/(P+)(p+)?/)||[],n=r[1],i=r[2];if(!i)return _te(t,e);let a;switch(n){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;case"PPPP":default:a=e.dateTime({width:"full"});break}return a.replace("{{date}}",_te(n,e)).replace("{{time}}",$xe(i,e))},T6={p:$xe,P:e7e},t7e=/^D+$/,r7e=/^Y+$/,n7e=["D","DD","YY","YYYY"];function Uxe(t){return t7e.test(t)}function Vxe(t){return r7e.test(t)}function E6(t,e,r){const n=i7e(t,e,r);if(console.warn(n),n7e.includes(t))throw new RangeError(n)}function i7e(t,e,r){const n=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${n} to the input \`${r}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const s7e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,a7e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,o7e=/^'([^]*?)'?$/,l7e=/''/g,c7e=/[a-zA-Z]/;function Di(t,e,r){var x,_,T,E,C,N,L,M;const n=ax(),i=(r==null?void 0:r.locale)??n.locale??OO,a=(r==null?void 0:r.firstWeekContainsDate)??((_=(x=r==null?void 0:r.locale)==null?void 0:x.options)==null?void 0:_.firstWeekContainsDate)??n.firstWeekContainsDate??((E=(T=n.locale)==null?void 0:T.options)==null?void 0:E.firstWeekContainsDate)??1,c=(r==null?void 0:r.weekStartsOn)??((N=(C=r==null?void 0:r.locale)==null?void 0:C.options)==null?void 0:N.weekStartsOn)??n.weekStartsOn??((M=(L=n.locale)==null?void 0:L.options)==null?void 0:M.weekStartsOn)??0,s=Ln(t);if(!S6(s))throw new RangeError("Invalid time value");let f=e.match(a7e).map(D=>{const B=D[0];if(B==="p"||B==="P"){const V=T6[B];return V(D,i.formatLong)}return D}).join("").match(s7e).map(D=>{if(D==="''")return{isToken:!1,value:"'"};const B=D[0];if(B==="'")return{isToken:!1,value:u7e(D)};if(gte[B])return{isToken:!0,value:D};if(B.match(c7e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+B+"`");return{isToken:!1,value:D}});i.localize.preprocessor&&(f=i.localize.preprocessor(s,f));const m={firstWeekContainsDate:a,weekStartsOn:c,locale:i};return f.map(D=>{if(!D.isToken)return D.value;const B=D.value;(!(r!=null&&r.useAdditionalWeekYearTokens)&&Vxe(B)||!(r!=null&&r.useAdditionalDayOfYearTokens)&&Uxe(B))&&E6(B,e,String(t));const V=gte[B[0]];return V(s,B,i.localize,m)}).join("")}function u7e(t){const e=t.match(o7e);return e?e[1].replace(l7e,"'"):t}function d7e(t,e,r){const n=ax(),i=(r==null?void 0:r.locale)??n.locale??OO,a=2520,c=AR(t,e);if(isNaN(c))throw new RangeError("Invalid time value");const s=Object.assign({},r,{addSuffix:r==null?void 0:r.addSuffix,comparison:c});let f,m;c>0?(f=Ln(e),m=Ln(t)):(f=Ln(t),m=Ln(e));const x=x9e(m,f),_=(qy(m)-qy(f))/1e3,T=Math.round((x-_)/60);let E;if(T<2)return r!=null&&r.includeSeconds?x<5?i.formatDistance("lessThanXSeconds",5,s):x<10?i.formatDistance("lessThanXSeconds",10,s):x<20?i.formatDistance("lessThanXSeconds",20,s):x<40?i.formatDistance("halfAMinute",0,s):x<60?i.formatDistance("lessThanXMinutes",1,s):i.formatDistance("xMinutes",1,s):T===0?i.formatDistance("lessThanXMinutes",1,s):i.formatDistance("xMinutes",T,s);if(T<45)return i.formatDistance("xMinutes",T,s);if(T<90)return i.formatDistance("aboutXHours",1,s);if(Tn.getTime()}function F9(t,e){const r=Ln(t),n=Ln(e);return+r<+n}function x7e(t,e){const r=e instanceof Date?Ks(e,0):new e(0);return r.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),r.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()),r}const _7e=10;class Gxe{constructor(){cn(this,"subPriority",0)}validate(e,r){return!0}}class v7e extends Gxe{constructor(e,r,n,i,a){super(),this.value=e,this.validateValue=r,this.setValue=n,this.priority=i,a&&(this.subPriority=a)}validate(e,r){return this.validateValue(e,this.value,r)}set(e,r,n){return this.setValue(e,r,this.value,n)}}class b7e extends Gxe{constructor(){super(...arguments);cn(this,"priority",_7e);cn(this,"subPriority",-1)}set(r,n){return n.timestampIsSet?r:Ks(r,x7e(r,Date))}}class ks{run(e,r,n,i){const a=this.parse(e,r,n,i);return a?{setter:new v7e(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}validate(e,r,n){return!0}}class w7e extends ks{constructor(){super(...arguments);cn(this,"priority",140);cn(this,"incompatibleTokens",["R","u","t","T"])}parse(r,n,i){switch(n){case"G":case"GG":case"GGG":return i.era(r,{width:"abbreviated"})||i.era(r,{width:"narrow"});case"GGGGG":return i.era(r,{width:"narrow"});case"GGGG":default:return i.era(r,{width:"wide"})||i.era(r,{width:"abbreviated"})||i.era(r,{width:"narrow"})}}set(r,n,i){return n.era=i,r.setFullYear(i,0,1),r.setHours(0,0,0,0),r}}const ko={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Uf={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function Co(t,e){return t&&{value:e(t.value),rest:t.rest}}function Qa(t,e){const r=e.match(t);return r?{value:parseInt(r[0],10),rest:e.slice(r[0].length)}:null}function Vf(t,e){const r=e.match(t);if(!r)return null;if(r[0]==="Z")return{value:0,rest:e.slice(1)};const n=r[1]==="+"?1:-1,i=r[2]?parseInt(r[2],10):0,a=r[3]?parseInt(r[3],10):0,c=r[5]?parseInt(r[5],10):0;return{value:n*(i*N9+a*P9+c*s9e),rest:e.slice(r[0].length)}}function Hxe(t){return Qa(ko.anyDigitsSigned,t)}function po(t,e){switch(t){case 1:return Qa(ko.singleDigit,e);case 2:return Qa(ko.twoDigits,e);case 3:return Qa(ko.threeDigits,e);case 4:return Qa(ko.fourDigits,e);default:return Qa(new RegExp("^\\d{1,"+t+"}"),e)}}function tD(t,e){switch(t){case 1:return Qa(ko.singleDigitSigned,e);case 2:return Qa(ko.twoDigitsSigned,e);case 3:return Qa(ko.threeDigitsSigned,e);case 4:return Qa(ko.fourDigitsSigned,e);default:return Qa(new RegExp("^-?\\d{1,"+t+"}"),e)}}function B9(t){switch(t){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function Wxe(t,e){const r=e>0,n=r?e:1-e;let i;if(n<=50)i=t||100;else{const a=n+50,c=Math.trunc(a/100)*100,s=t>=a%100;i=t+c-(s?100:0)}return r?i:1-i}function Kxe(t){return t%400===0||t%4===0&&t%100!==0}class S7e extends ks{constructor(){super(...arguments);cn(this,"priority",130);cn(this,"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"])}parse(r,n,i){const a=c=>({year:c,isTwoDigitYear:n==="yy"});switch(n){case"y":return Co(po(4,r),a);case"yo":return Co(i.ordinalNumber(r,{unit:"year"}),a);default:return Co(po(n.length,r),a)}}validate(r,n){return n.isTwoDigitYear||n.year>0}set(r,n,i){const a=r.getFullYear();if(i.isTwoDigitYear){const s=Wxe(i.year,a);return r.setFullYear(s,0,1),r.setHours(0,0,0,0),r}const c=!("era"in n)||n.era===1?i.year:1-i.year;return r.setFullYear(c,0,1),r.setHours(0,0,0,0),r}}class T7e extends ks{constructor(){super(...arguments);cn(this,"priority",130);cn(this,"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"])}parse(r,n,i){const a=c=>({year:c,isTwoDigitYear:n==="YY"});switch(n){case"Y":return Co(po(4,r),a);case"Yo":return Co(i.ordinalNumber(r,{unit:"year"}),a);default:return Co(po(n.length,r),a)}}validate(r,n){return n.isTwoDigitYear||n.year>0}set(r,n,i,a){const c=M9(r,a);if(i.isTwoDigitYear){const f=Wxe(i.year,c);return r.setFullYear(f,0,a.firstWeekContainsDate),r.setHours(0,0,0,0),yc(r,a)}const s=!("era"in n)||n.era===1?i.year:1-i.year;return r.setFullYear(s,0,a.firstWeekContainsDate),r.setHours(0,0,0,0),yc(r,a)}}class E7e extends ks{constructor(){super(...arguments);cn(this,"priority",130);cn(this,"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"])}parse(r,n){return tD(n==="R"?4:n.length,r)}set(r,n,i){const a=Ks(r,0);return a.setFullYear(i,0,4),a.setHours(0,0,0,0),Nm(a)}}class A7e extends ks{constructor(){super(...arguments);cn(this,"priority",130);cn(this,"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"])}parse(r,n){return tD(n==="u"?4:n.length,r)}set(r,n,i){return r.setFullYear(i,0,1),r.setHours(0,0,0,0),r}}class k7e extends ks{constructor(){super(...arguments);cn(this,"priority",120);cn(this,"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"])}parse(r,n,i){switch(n){case"Q":case"QQ":return po(n.length,r);case"Qo":return i.ordinalNumber(r,{unit:"quarter"});case"QQQ":return i.quarter(r,{width:"abbreviated",context:"formatting"})||i.quarter(r,{width:"narrow",context:"formatting"});case"QQQQQ":return i.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return i.quarter(r,{width:"wide",context:"formatting"})||i.quarter(r,{width:"abbreviated",context:"formatting"})||i.quarter(r,{width:"narrow",context:"formatting"})}}validate(r,n){return n>=1&&n<=4}set(r,n,i){return r.setMonth((i-1)*3,1),r.setHours(0,0,0,0),r}}class C7e extends ks{constructor(){super(...arguments);cn(this,"priority",120);cn(this,"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"])}parse(r,n,i){switch(n){case"q":case"qq":return po(n.length,r);case"qo":return i.ordinalNumber(r,{unit:"quarter"});case"qqq":return i.quarter(r,{width:"abbreviated",context:"standalone"})||i.quarter(r,{width:"narrow",context:"standalone"});case"qqqqq":return i.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return i.quarter(r,{width:"wide",context:"standalone"})||i.quarter(r,{width:"abbreviated",context:"standalone"})||i.quarter(r,{width:"narrow",context:"standalone"})}}validate(r,n){return n>=1&&n<=4}set(r,n,i){return r.setMonth((i-1)*3,1),r.setHours(0,0,0,0),r}}class I7e extends ks{constructor(){super(...arguments);cn(this,"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]);cn(this,"priority",110)}parse(r,n,i){const a=c=>c-1;switch(n){case"M":return Co(Qa(ko.month,r),a);case"MM":return Co(po(2,r),a);case"Mo":return Co(i.ordinalNumber(r,{unit:"month"}),a);case"MMM":return i.month(r,{width:"abbreviated",context:"formatting"})||i.month(r,{width:"narrow",context:"formatting"});case"MMMMM":return i.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return i.month(r,{width:"wide",context:"formatting"})||i.month(r,{width:"abbreviated",context:"formatting"})||i.month(r,{width:"narrow",context:"formatting"})}}validate(r,n){return n>=0&&n<=11}set(r,n,i){return r.setMonth(i,1),r.setHours(0,0,0,0),r}}class j7e extends ks{constructor(){super(...arguments);cn(this,"priority",110);cn(this,"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"])}parse(r,n,i){const a=c=>c-1;switch(n){case"L":return Co(Qa(ko.month,r),a);case"LL":return Co(po(2,r),a);case"Lo":return Co(i.ordinalNumber(r,{unit:"month"}),a);case"LLL":return i.month(r,{width:"abbreviated",context:"standalone"})||i.month(r,{width:"narrow",context:"standalone"});case"LLLLL":return i.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return i.month(r,{width:"wide",context:"standalone"})||i.month(r,{width:"abbreviated",context:"standalone"})||i.month(r,{width:"narrow",context:"standalone"})}}validate(r,n){return n>=0&&n<=11}set(r,n,i){return r.setMonth(i,1),r.setHours(0,0,0,0),r}}function P7e(t,e,r){const n=Ln(t),i=O9(n,r)-e;return n.setDate(n.getDate()-i*7),n}class N7e extends ks{constructor(){super(...arguments);cn(this,"priority",100);cn(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"])}parse(r,n,i){switch(n){case"w":return Qa(ko.week,r);case"wo":return i.ordinalNumber(r,{unit:"week"});default:return po(n.length,r)}}validate(r,n){return n>=1&&n<=53}set(r,n,i,a){return yc(P7e(r,i,a),a)}}function R7e(t,e){const r=Ln(t),n=D9(r)-e;return r.setDate(r.getDate()-n*7),r}class L7e extends ks{constructor(){super(...arguments);cn(this,"priority",100);cn(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"])}parse(r,n,i){switch(n){case"I":return Qa(ko.week,r);case"Io":return i.ordinalNumber(r,{unit:"week"});default:return po(n.length,r)}}validate(r,n){return n>=1&&n<=53}set(r,n,i){return Nm(R7e(r,i))}}const D7e=[31,28,31,30,31,30,31,31,30,31,30,31],M7e=[31,29,31,30,31,30,31,31,30,31,30,31];class O7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"subPriority",1);cn(this,"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"])}parse(r,n,i){switch(n){case"d":return Qa(ko.date,r);case"do":return i.ordinalNumber(r,{unit:"date"});default:return po(n.length,r)}}validate(r,n){const i=r.getFullYear(),a=Kxe(i),c=r.getMonth();return a?n>=1&&n<=M7e[c]:n>=1&&n<=D7e[c]}set(r,n,i){return r.setDate(i),r.setHours(0,0,0,0),r}}class F7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"subpriority",1);cn(this,"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"])}parse(r,n,i){switch(n){case"D":case"DD":return Qa(ko.dayOfYear,r);case"Do":return i.ordinalNumber(r,{unit:"date"});default:return po(n.length,r)}}validate(r,n){const i=r.getFullYear();return Kxe(i)?n>=1&&n<=366:n>=1&&n<=365}set(r,n,i){return r.setMonth(0,i),r.setHours(0,0,0,0),r}}function z9(t,e,r){var _,T,E,C;const n=ax(),i=(r==null?void 0:r.weekStartsOn)??((T=(_=r==null?void 0:r.locale)==null?void 0:_.options)==null?void 0:T.weekStartsOn)??n.weekStartsOn??((C=(E=n.locale)==null?void 0:E.options)==null?void 0:C.weekStartsOn)??0,a=Ln(t),c=a.getDay(),f=(e%7+7)%7,m=7-i,x=e<0||e>6?e-(c+m)%7:(f+m)%7-(c+m)%7;return Sl(a,x)}class B7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"incompatibleTokens",["D","i","e","c","t","T"])}parse(r,n,i){switch(n){case"E":case"EE":case"EEE":return i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"});case"EEEEE":return i.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"});case"EEEE":default:return i.day(r,{width:"wide",context:"formatting"})||i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"})}}validate(r,n){return n>=0&&n<=6}set(r,n,i,a){return r=z9(r,i,a),r.setHours(0,0,0,0),r}}class z7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"])}parse(r,n,i,a){const c=s=>{const f=Math.floor((s-1)/7)*7;return(s+a.weekStartsOn+6)%7+f};switch(n){case"e":case"ee":return Co(po(n.length,r),c);case"eo":return Co(i.ordinalNumber(r,{unit:"day"}),c);case"eee":return i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"});case"eeeee":return i.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"});case"eeee":default:return i.day(r,{width:"wide",context:"formatting"})||i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"})}}validate(r,n){return n>=0&&n<=6}set(r,n,i,a){return r=z9(r,i,a),r.setHours(0,0,0,0),r}}class $7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"])}parse(r,n,i,a){const c=s=>{const f=Math.floor((s-1)/7)*7;return(s+a.weekStartsOn+6)%7+f};switch(n){case"c":case"cc":return Co(po(n.length,r),c);case"co":return Co(i.ordinalNumber(r,{unit:"day"}),c);case"ccc":return i.day(r,{width:"abbreviated",context:"standalone"})||i.day(r,{width:"short",context:"standalone"})||i.day(r,{width:"narrow",context:"standalone"});case"ccccc":return i.day(r,{width:"narrow",context:"standalone"});case"cccccc":return i.day(r,{width:"short",context:"standalone"})||i.day(r,{width:"narrow",context:"standalone"});case"cccc":default:return i.day(r,{width:"wide",context:"standalone"})||i.day(r,{width:"abbreviated",context:"standalone"})||i.day(r,{width:"short",context:"standalone"})||i.day(r,{width:"narrow",context:"standalone"})}}validate(r,n){return n>=0&&n<=6}set(r,n,i,a){return r=z9(r,i,a),r.setHours(0,0,0,0),r}}function U7e(t,e){const r=Ln(t),n=p7e(r),i=e-n;return Sl(r,i)}class V7e extends ks{constructor(){super(...arguments);cn(this,"priority",90);cn(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"])}parse(r,n,i){const a=c=>c===0?7:c;switch(n){case"i":case"ii":return po(n.length,r);case"io":return i.ordinalNumber(r,{unit:"day"});case"iii":return Co(i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"}),a);case"iiiii":return Co(i.day(r,{width:"narrow",context:"formatting"}),a);case"iiiiii":return Co(i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"}),a);case"iiii":default:return Co(i.day(r,{width:"wide",context:"formatting"})||i.day(r,{width:"abbreviated",context:"formatting"})||i.day(r,{width:"short",context:"formatting"})||i.day(r,{width:"narrow",context:"formatting"}),a)}}validate(r,n){return n>=1&&n<=7}set(r,n,i){return r=U7e(r,i),r.setHours(0,0,0,0),r}}class q7e extends ks{constructor(){super(...arguments);cn(this,"priority",80);cn(this,"incompatibleTokens",["b","B","H","k","t","T"])}parse(r,n,i){switch(n){case"a":case"aa":case"aaa":return i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaaa":return i.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return i.dayPeriod(r,{width:"wide",context:"formatting"})||i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"})}}set(r,n,i){return r.setHours(B9(i),0,0,0),r}}class G7e extends ks{constructor(){super(...arguments);cn(this,"priority",80);cn(this,"incompatibleTokens",["a","B","H","k","t","T"])}parse(r,n,i){switch(n){case"b":case"bb":case"bbb":return i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbbb":return i.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return i.dayPeriod(r,{width:"wide",context:"formatting"})||i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"})}}set(r,n,i){return r.setHours(B9(i),0,0,0),r}}class H7e extends ks{constructor(){super(...arguments);cn(this,"priority",80);cn(this,"incompatibleTokens",["a","b","t","T"])}parse(r,n,i){switch(n){case"B":case"BB":case"BBB":return i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBBB":return i.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return i.dayPeriod(r,{width:"wide",context:"formatting"})||i.dayPeriod(r,{width:"abbreviated",context:"formatting"})||i.dayPeriod(r,{width:"narrow",context:"formatting"})}}set(r,n,i){return r.setHours(B9(i),0,0,0),r}}class W7e extends ks{constructor(){super(...arguments);cn(this,"priority",70);cn(this,"incompatibleTokens",["H","K","k","t","T"])}parse(r,n,i){switch(n){case"h":return Qa(ko.hour12h,r);case"ho":return i.ordinalNumber(r,{unit:"hour"});default:return po(n.length,r)}}validate(r,n){return n>=1&&n<=12}set(r,n,i){const a=r.getHours()>=12;return a&&i<12?r.setHours(i+12,0,0,0):!a&&i===12?r.setHours(0,0,0,0):r.setHours(i,0,0,0),r}}class K7e extends ks{constructor(){super(...arguments);cn(this,"priority",70);cn(this,"incompatibleTokens",["a","b","h","K","k","t","T"])}parse(r,n,i){switch(n){case"H":return Qa(ko.hour23h,r);case"Ho":return i.ordinalNumber(r,{unit:"hour"});default:return po(n.length,r)}}validate(r,n){return n>=0&&n<=23}set(r,n,i){return r.setHours(i,0,0,0),r}}class Y7e extends ks{constructor(){super(...arguments);cn(this,"priority",70);cn(this,"incompatibleTokens",["h","H","k","t","T"])}parse(r,n,i){switch(n){case"K":return Qa(ko.hour11h,r);case"Ko":return i.ordinalNumber(r,{unit:"hour"});default:return po(n.length,r)}}validate(r,n){return n>=0&&n<=11}set(r,n,i){return r.getHours()>=12&&i<12?r.setHours(i+12,0,0,0):r.setHours(i,0,0,0),r}}class Z7e extends ks{constructor(){super(...arguments);cn(this,"priority",70);cn(this,"incompatibleTokens",["a","b","h","H","K","t","T"])}parse(r,n,i){switch(n){case"k":return Qa(ko.hour24h,r);case"ko":return i.ordinalNumber(r,{unit:"hour"});default:return po(n.length,r)}}validate(r,n){return n>=1&&n<=24}set(r,n,i){const a=i<=24?i%24:i;return r.setHours(a,0,0,0),r}}class X7e extends ks{constructor(){super(...arguments);cn(this,"priority",60);cn(this,"incompatibleTokens",["t","T"])}parse(r,n,i){switch(n){case"m":return Qa(ko.minute,r);case"mo":return i.ordinalNumber(r,{unit:"minute"});default:return po(n.length,r)}}validate(r,n){return n>=0&&n<=59}set(r,n,i){return r.setMinutes(i,0,0),r}}class Q7e extends ks{constructor(){super(...arguments);cn(this,"priority",50);cn(this,"incompatibleTokens",["t","T"])}parse(r,n,i){switch(n){case"s":return Qa(ko.second,r);case"so":return i.ordinalNumber(r,{unit:"second"});default:return po(n.length,r)}}validate(r,n){return n>=0&&n<=59}set(r,n,i){return r.setSeconds(i,0),r}}class J7e extends ks{constructor(){super(...arguments);cn(this,"priority",30);cn(this,"incompatibleTokens",["t","T"])}parse(r,n){const i=a=>Math.trunc(a*Math.pow(10,-n.length+3));return Co(po(n.length,r),i)}set(r,n,i){return r.setMilliseconds(i),r}}class eHe extends ks{constructor(){super(...arguments);cn(this,"priority",10);cn(this,"incompatibleTokens",["t","T","x"])}parse(r,n){switch(n){case"X":return Vf(Uf.basicOptionalMinutes,r);case"XX":return Vf(Uf.basic,r);case"XXXX":return Vf(Uf.basicOptionalSeconds,r);case"XXXXX":return Vf(Uf.extendedOptionalSeconds,r);case"XXX":default:return Vf(Uf.extended,r)}}set(r,n,i){return n.timestampIsSet?r:Ks(r,r.getTime()-qy(r)-i)}}class tHe extends ks{constructor(){super(...arguments);cn(this,"priority",10);cn(this,"incompatibleTokens",["t","T","X"])}parse(r,n){switch(n){case"x":return Vf(Uf.basicOptionalMinutes,r);case"xx":return Vf(Uf.basic,r);case"xxxx":return Vf(Uf.basicOptionalSeconds,r);case"xxxxx":return Vf(Uf.extendedOptionalSeconds,r);case"xxx":default:return Vf(Uf.extended,r)}}set(r,n,i){return n.timestampIsSet?r:Ks(r,r.getTime()-qy(r)-i)}}class rHe extends ks{constructor(){super(...arguments);cn(this,"priority",40);cn(this,"incompatibleTokens","*")}parse(r){return Hxe(r)}set(r,n,i){return[Ks(r,i*1e3),{timestampIsSet:!0}]}}class nHe extends ks{constructor(){super(...arguments);cn(this,"priority",20);cn(this,"incompatibleTokens","*")}parse(r){return Hxe(r)}set(r,n,i){return[Ks(r,i),{timestampIsSet:!0}]}}const iHe={G:new w7e,y:new S7e,Y:new T7e,R:new E7e,u:new A7e,Q:new k7e,q:new C7e,M:new I7e,L:new j7e,w:new N7e,I:new L7e,d:new O7e,D:new F7e,E:new B7e,e:new z7e,c:new $7e,i:new V7e,a:new q7e,b:new G7e,B:new H7e,h:new W7e,H:new K7e,K:new Y7e,k:new Z7e,m:new X7e,s:new Q7e,S:new J7e,X:new eHe,x:new tHe,t:new rHe,T:new nHe},sHe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,aHe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,oHe=/^'([^]*?)'?$/,lHe=/''/g,cHe=/\S/,uHe=/[a-zA-Z]/;function dHe(t,e,r,n){var N,L,M,D;const i=f7e(),a=i.locale??OO,c=i.firstWeekContainsDate??((L=(N=i.locale)==null?void 0:N.options)==null?void 0:L.firstWeekContainsDate)??1,s=i.weekStartsOn??((D=(M=i.locale)==null?void 0:M.options)==null?void 0:D.weekStartsOn)??0;if(e==="")return t===""?Ln(r):Ks(r,NaN);const f={firstWeekContainsDate:c,weekStartsOn:s,locale:a},m=[new b7e],x=e.match(aHe).map(B=>{const V=B[0];if(V in T6){const G=T6[V];return G(B,a.formatLong)}return B}).join("").match(sHe),_=[];for(let B of x){Vxe(B)&&E6(B,e,t),Uxe(B)&&E6(B,e,t);const V=B[0],G=iHe[V];if(G){const{incompatibleTokens:W}=G;if(Array.isArray(W)){const Q=_.find(se=>W.includes(se.token)||se.token===V);if(Q)throw new RangeError(`The format string mustn't contain \`${Q.fullToken}\` and \`${B}\` at the same time`)}else if(G.incompatibleTokens==="*"&&_.length>0)throw new RangeError(`The format string mustn't contain \`${B}\` and any other token at the same time`);_.push({token:V,fullToken:B});const Z=G.run(t,B,a.match,f);if(!Z)return Ks(r,NaN);m.push(Z.setter),t=Z.rest}else{if(V.match(uHe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+V+"`");if(B==="''"?B="'":V==="'"&&(B=hHe(B)),t.indexOf(B)===0)t=t.slice(B.length);else return Ks(r,NaN)}}if(t.length>0&&cHe.test(t))return Ks(r,NaN);const T=m.map(B=>B.priority).sort((B,V)=>V-B).filter((B,V,G)=>G.indexOf(B)===V).map(B=>m.filter(V=>V.priority===B).sort((V,G)=>G.subPriority-V.subPriority)).map(B=>B[0]);let E=Ln(r);if(isNaN(E.getTime()))return Ks(r,NaN);const C={};for(const B of T){if(!B.validate(E,f))return Ks(r,NaN);const V=B.set(E,C,f);Array.isArray(V)?(E=V[0],Object.assign(C,V[1])):E=V}return Ks(r,E)}function hHe(t){return t.match(oHe)[1].replace(lHe,"'")}function _1(t){return+Ln(t)2)return e;if(/:/.test(r[0])?n=r[0]:(e.date=r[0],n=r[1],hN.timeZoneDelimiter.test(e.date)&&(e.date=t.split(hN.timeZoneDelimiter)[0],n=t.substr(e.date.length,t.length))),n){const i=hN.timezone.exec(n);i?(e.time=n.replace(i[1],""),e.timezone=i[1]):e.time=n}return e}function vHe(t,e){const r=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),n=t.match(r);if(!n)return{year:NaN,restDateString:""};const i=n[1]?parseInt(n[1]):null,a=n[2]?parseInt(n[2]):null;return{year:a===null?i:a*100,restDateString:t.slice((n[1]||n[2]).length)}}function bHe(t,e){if(e===null)return new Date(NaN);const r=t.match(gHe);if(!r)return new Date(NaN);const n=!!r[4],i=g2(r[1]),a=g2(r[2])-1,c=g2(r[3]),s=g2(r[4]),f=g2(r[5])-1;if(n)return CHe(e,s,f)?THe(e,s,f):new Date(NaN);{const m=new Date(0);return!AHe(e,a,c)||!kHe(e,i)?new Date(NaN):(m.setUTCFullYear(e,a,Math.max(i,c)),m)}}function g2(t){return t?parseInt(t):1}function wHe(t){const e=t.match(yHe);if(!e)return NaN;const r=jB(e[1]),n=jB(e[2]),i=jB(e[3]);return IHe(r,n,i)?r*N9+n*P9+i*1e3:NaN}function jB(t){return t&&parseFloat(t.replace(",","."))||0}function SHe(t){if(t==="Z")return 0;const e=t.match(xHe);if(!e)return 0;const r=e[1]==="+"?-1:1,n=parseInt(e[2]),i=e[3]&&parseInt(e[3])||0;return jHe(n,i)?r*(n*N9+i*P9):NaN}function THe(t,e,r){const n=new Date(0);n.setUTCFullYear(t,0,4);const i=n.getUTCDay()||7,a=(e-1)*7+r+1-i;return n.setUTCDate(n.getUTCDate()+a),n}const EHe=[31,null,31,30,31,30,31,31,30,31,30,31];function Yxe(t){return t%400===0||t%4===0&&t%100!==0}function AHe(t,e,r){return e>=0&&e<=11&&r>=1&&r<=(EHe[e]||(Yxe(t)?29:28))}function kHe(t,e){return e>=1&&e<=(Yxe(t)?366:365)}function CHe(t,e,r){return e>=1&&e<=53&&r>=0&&r<=6}function IHe(t,e,r){return t===24?e===0&&r===0:r>=0&&r<60&&e>=0&&e<60&&t>=0&&t<25}function jHe(t,e){return e>=0&&e<=59}function PB(t,e){const r=Ln(t),n=r.getFullYear(),i=r.getDate(),a=Ks(t,0);a.setFullYear(n,e,15),a.setHours(0,0,0,0);const c=h7e(a);return r.setMonth(e,Math.min(i,c)),r}function vte(t,e){const r=Ln(t);return isNaN(+r)?Ks(t,NaN):(r.setFullYear(e),r)}function PHe(t,e){return od(t,-e)}const NHe=()=>{const{user:t}=$n(),e=$a(),[r,n]=P.useState([]),[i,a]=P.useState(0),[c,s]=P.useState(!1),[f,m]=P.useState(null),x=P.useRef(null);P.useEffect(()=>{x.current=f},[f]),P.useEffect(()=>{if(!t)return;const N=`notification_last_read_${t.id}`,L=localStorage.getItem(N);L&&!x.current&&(x.current=L,m(L));const M=`nb_cache_${t.id}`,D=60*1e3,B=async()=>{try{const Q=sessionStorage.getItem(M);if(Q){const se=JSON.parse(Q);if(se.ts&&Date.now()-se.ts{n(W);const Z=x.current?new Date(x.current):null,Q=W.filter(se=>Z?new Date(se.created_at)>Z:!0);a(Q.length)};B();const G=De.channel("push-notifications").on("postgres_changes",{event:"INSERT",schema:"public",table:"push_notifications"},W=>{const Z=W.new;n(se=>{const ie=[Z,...se].slice(0,20);try{sessionStorage.setItem(M,JSON.stringify({ts:Date.now(),data:ie}))}catch{}return ie});const Q=x.current?new Date(x.current):null;(!Q||new Date(Z.created_at)>Q)&&a(se=>se+1),Notification.permission==="granted"&&new Notification(Z.title,{body:Z.body,icon:"/favicon.ico"})}).subscribe();return()=>{De.removeChannel(G)}},[t]);const _=N=>{const L=N.toLowerCase();return L.includes("community")||L.includes("post")?rp:L.includes("academy")||L.includes("video")?AL:L.includes("template")?qM:L.includes("event")?fo:L.includes("newsletter")?zhe:L.includes("brokerage")?khe:L.includes("swag")||L.includes("social")?Yh:L.includes("toolbox")||L.includes("tool")?hG:L.includes("brief")?Es:rp},T=N=>{s(!1),N.url&&N.url!=="/"&&e(N.url)},E=()=>{if(!t)return;const N=new Date().toISOString(),L=`notification_last_read_${t.id}`;localStorage.setItem(L,N),m(N),a(0)},C=N=>{s(N),N&&i>0&&E()};return o.jsxs(wO,{open:c,onOpenChange:C,children:[o.jsx(SO,{asChild:!0,children:o.jsxs(Kt,{variant:"ghost",size:"icon",className:"relative",children:[o.jsx(vC,{className:"h-5 w-5"}),i>0&&o.jsx(hs,{variant:"destructive",className:"absolute -top-1 -right-1 h-5 w-5 flex items-center justify-center p-0 text-xs",children:i>9?"9+":i})]})}),o.jsxs(OC,{align:"end",className:"w-80",children:[o.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b",children:[o.jsx("span",{className:"font-semibold",children:"Notifications"}),r.length>0&&o.jsx(Kt,{variant:"ghost",size:"sm",className:"text-xs h-6",onClick:E,children:"Mark all read"})]}),o.jsx(pp,{className:"h-[300px]",children:r.length===0?o.jsx("div",{className:"p-4 text-center text-muted-foreground text-sm",children:"No notifications yet"}):r.map(N=>{const L=_(N.title);return o.jsxs(Od,{className:"group flex items-start gap-3 p-3 cursor-pointer data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",onClick:()=>T(N),children:[o.jsx("div",{className:"flex-shrink-0 mt-0.5",children:o.jsx(L,{className:"h-4 w-4 text-primary"})}),o.jsxs("div",{className:"flex flex-col gap-1 min-w-0",children:[o.jsx("span",{className:"font-medium text-sm",children:N.title}),o.jsx("span",{className:"text-xs text-muted-foreground line-clamp-2 group-data-[highlighted]:text-accent-foreground/80",children:N.body}),o.jsx("span",{className:"text-xs text-muted-foreground group-data-[highlighted]:text-accent-foreground/80",children:qxe(new Date(N.created_at),{addSuffix:!0})})]})]},N.id)})})]})]})};function RHe(t){return t!=null&&t.length?t.find(e=>e.is_active&&e.mls_provider_id&&!e.no_mls_mode)||t[0]:null}function Zxe(){const{user:t}=$n(),{data:e,isLoading:r}=br({queryKey:["agent-lead-site",t==null?void 0:t.id],queryFn:async()=>{const{data:n,error:i}=await De.from("lead_sites").select("id, subdomain_slug, custom_domain, site_title, is_active, plan_tier, mls_provider_id, no_mls_mode, mls_agent_id, mls_agent_key, mls_office_id, mls_service_cities, mls_disclaimer_text, brokerage_legal_name").eq("agent_id",t.id).eq("is_active",!0).order("created_at",{ascending:!0}).limit(10);if(i)throw i;return RHe(n)},enabled:!!t,staleTime:5*60*1e3});return{leadSite:e??null,hasLeadSite:!!e,isFreePlan:(e==null?void 0:e.plan_tier)==="free_luxury",hasIdx:!!(e!=null&&e.mls_provider_id)&&!(e!=null&&e.no_mls_mode),isLoading:r,siteUrl:e?e.custom_domain?`https://${e.custom_domain}`:`https://${e.subdomain_slug}.thelocalmove.com`:null}}function Xxe(t=!0){const{user:e}=$n(),{data:r,isLoading:n}=br({queryKey:["free-lead-site-offer",e==null?void 0:e.id],enabled:!!e&&t,staleTime:5*60*1e3,queryFn:async()=>{const{data:i}=await De.from("profiles").select("brokerage_id").eq("id",e.id).maybeSingle();if(!(i!=null&&i.brokerage_id))return null;const{data:a}=await De.from("lead_site_brokerage_offers").select("*").eq("brokerage_id",i.brokerage_id).eq("enabled",!0).maybeSingle();return a??null}});return{offer:r??null,hasOffer:!!r,isLoading:n}}const LHe="coaching_access";function DHe(){const{user:t,loading:e,isAdmin:r,isCoach:n}=$n(),{data:i,isLoading:a}=br({queryKey:["coaching-access",t==null?void 0:t.id],enabled:!!t,staleTime:5*60*1e3,queryFn:async()=>{const[c,s]=await Promise.all([De.from("coaching_assignments").select("id").eq("agent_id",t.id).eq("status","active").limit(1),De.from("feature_entitlements").select("enabled, expires_at").eq("user_id",t.id).eq("feature_key",LHe).maybeSingle()]),f=(c.data||[]).length>0,m=s.data,x=!!(m!=null&&m.enabled)&&(!m.expires_at||new Date(m.expires_at).getTime()>Date.now());return{hasAssignment:f,entitled:x}}});return{hasAccess:!!(r||n||i!=null&&i.hasAssignment||i!=null&&i.entitled),hasAssignment:!!(i!=null&&i.hasAssignment),isLoading:e||a}}const Hi=De,z$t=[{value:"contract",label:"Under contract"},{value:"inspection",label:"Inspection / due diligence"},{value:"closing",label:"Closing"},{value:"closed",label:"Closed"}];function $$t(t){return t.total_items===0?"not_started":t.rejected_items>0?"changes_requested":t.approved_items>=t.total_items?"compliant":"in_review"}const U$t={not_started:"Not started",in_review:"In review",changes_requested:"Changes requested",compliant:"Compliant"};function MHe(){return br({queryKey:["transaction-admin-seats"],queryFn:async()=>{const{data:t}=await De.auth.getUser();if(!t.user)return[];const{data:e,error:r}=await Hi.from("brokerage_transaction_admins").select("brokerage_id").eq("user_id",t.user.id);if(r)throw r;return e||[]}})}function V$t(t){return br({queryKey:["transaction-admins",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("brokerage_transaction_admins").select("id, user_id, created_at").eq("brokerage_id",t);if(r)throw r;const n=e||[];if(n.length===0)return[];const{data:i}=await Hi.from("profiles").select("id, name, email").in("id",n.map(c=>c.user_id)),a=new Map((i||[]).map(c=>[c.id,{name:c.name??null,email:c.email??null}]));return n.map(c=>{var s,f;return{...c,name:((s=a.get(c.user_id))==null?void 0:s.name)??null,email:((f=a.get(c.user_id))==null?void 0:f.email)??null}})}})}function q$t(){const t=Ir();return kr({mutationFn:async({brokerageId:e,userId:r})=>{const{error:n}=await Hi.from("brokerage_transaction_admins").insert({brokerage_id:e,user_id:r});if(n)throw n},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["transaction-admins",r.brokerageId]})})}function G$t(){const t=Ir();return kr({mutationFn:async({id:e})=>{const{error:r}=await Hi.from("brokerage_transaction_admins").delete().eq("id",e);if(r)throw r},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["transaction-admins",r.brokerageId]})})}function H$t(t){return br({queryKey:["compliance-settings",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("brokerage_compliance_settings").select("*").eq("brokerage_id",t).maybeSingle();if(r)throw r;return e}})}function W$t(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await Hi.from("brokerage_compliance_settings").upsert(e,{onConflict:"brokerage_id"});if(r)throw r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["compliance-settings",r.brokerage_id]}),t.invalidateQueries({queryKey:["compliance-deals"]})}})}function K$t(t){return br({queryKey:["compliance-templates",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("brokerage_checklist_templates").select("*").eq("brokerage_id",t).order("created_at",{ascending:!0});if(r)throw r;return e||[]}})}function Y$t(t){return br({queryKey:["compliance-template-items",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("brokerage_checklist_template_items").select("*").eq("template_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e||[]}})}function Z$t(){const t=Ir();return kr({mutationFn:async e=>{if(e.id){const{error:i}=await Hi.from("brokerage_checklist_templates").update(e).eq("id",e.id);if(i)throw i;return e.id}const{data:r,error:n}=await Hi.from("brokerage_checklist_templates").insert(e).select("id").single();if(n)throw n;return r.id},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["compliance-templates",r.brokerage_id]})})}function X$t(){const t=Ir();return kr({mutationFn:async({id:e})=>{const{error:r}=await Hi.from("brokerage_checklist_templates").delete().eq("id",e);if(r)throw r},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["compliance-templates",r.brokerageId]})})}function Q$t(){const t=Ir();return kr({mutationFn:async e=>{if(e.id){const{error:n}=await Hi.from("brokerage_checklist_template_items").update(e).eq("id",e.id);if(n)throw n;return}const{error:r}=await Hi.from("brokerage_checklist_template_items").insert(e);if(r)throw r},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["compliance-template-items",r.template_id]})})}function J$t(){const t=Ir();return kr({mutationFn:async({id:e})=>{const{error:r}=await Hi.from("brokerage_checklist_template_items").delete().eq("id",e);if(r)throw r},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["compliance-template-items",r.templateId]})})}function eUt(t){return br({queryKey:["compliance-deals",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.rpc("get_brokerage_compliance_deals",{_brokerage_id:t});if(r)throw r;return e||[]}})}function tUt(t){return br({queryKey:["deal-compliance-items",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("deal_compliance_items").select("*").eq("deal_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e||[]}})}function rUt(t){return br({queryKey:["deal-compliance-events",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("deal_compliance_events").select("*").eq("deal_id",t).order("created_at",{ascending:!1}).limit(200);if(r)throw r;return e||[]}})}async function UC(t){var r;const{data:e}=await De.auth.getUser();await Hi.from("deal_compliance_events").insert({deal_id:t.dealId,brokerage_id:t.brokerageId??null,item_id:t.itemId??null,actor_user_id:((r=e.user)==null?void 0:r.id)??null,event_type:t.eventType,detail:t.detail??null})}function nUt(){const t=Ir();return kr({mutationFn:async({item:e,status:r,note:n})=>{var c;const{data:i}=await De.auth.getUser(),{error:a}=await Hi.from("deal_compliance_items").update({status:r,review_note:n??null,reviewed_by:((c=i.user)==null?void 0:c.id)??null,reviewed_at:new Date().toISOString()}).eq("id",e.id);if(a)throw a;await UC({dealId:e.deal_id,brokerageId:e.brokerage_id,itemId:e.id,eventType:r==="approved"?"item_approved":r==="rejected"?"item_rejected":"item_updated",detail:n?`${e.title}: ${n}`:e.title})},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-compliance-items",r.item.deal_id]}),t.invalidateQueries({queryKey:["deal-compliance-events",r.item.deal_id]}),t.invalidateQueries({queryKey:["compliance-deals"]})}})}function iUt(){const t=Ir();return kr({mutationFn:async({dealId:e,brokerageId:r,templateId:n,deal:i})=>{const{data:a,error:c}=await Hi.from("brokerage_checklist_template_items").select("*").eq("template_id",n).order("sort_order",{ascending:!0});if(c)throw c;const s=(x,_)=>{if(!x)return null;const[T,E,C]=x.split(/[-/T]/).map(Number);return new Date(Date.UTC(T,E-1,C+(_||0))).toISOString().slice(0,10)},f=(a||[]).map(x=>({deal_id:e,brokerage_id:r,template_item_id:x.id,title:x.title,description:x.description,phase:x.phase,requires_document:x.requires_document,required_for_closing:x.required_for_closing,due_date:x.due_anchor==="contract_date"?s(i==null?void 0:i.contract_date,x.due_offset_days):x.due_anchor==="target_close_date"?s(i==null?void 0:i.target_close_date,x.due_offset_days):null,sort_order:x.sort_order}));if(f.length===0)return;const{error:m}=await Hi.from("deal_compliance_items").insert(f);if(m)throw m;await UC({dealId:e,brokerageId:r,eventType:"checklist_applied",detail:`${f.length} items added`})},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-compliance-items",r.dealId]}),t.invalidateQueries({queryKey:["deal-compliance-events",r.dealId]}),t.invalidateQueries({queryKey:["compliance-deals"]})}})}function sUt(t){return br({queryKey:["deal-compliance-files",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("deal_files").select("id, deal_id, compliance_item_id, file_name, file_size, storage_path, version_no, is_current, created_at, owner_user_id").eq("deal_id",t).not("compliance_item_id","is",null).order("version_no",{ascending:!1});if(r)throw r;return e||[]}})}function aUt(){const t=Ir();return kr({mutationFn:async({item:e,file:r})=>{var _,T;const{data:n}=await De.auth.getUser(),i=(_=n.user)==null?void 0:_.id;if(!i)throw new Error("Not signed in");const{data:a}=await Hi.from("deal_files").select("id, version_no").eq("compliance_item_id",e.id).order("version_no",{ascending:!1}).limit(1),c=(((T=a==null?void 0:a[0])==null?void 0:T.version_no)||0)+1,s=r.name.split(".").pop(),f=`${i}/${e.deal_id}/${crypto.randomUUID()}.${s}`,{error:m}=await De.storage.from("deal-files").upload(f,r);if(m)throw m;a!=null&&a.length&&await Hi.from("deal_files").update({is_current:!1}).eq("compliance_item_id",e.id);const{error:x}=await Hi.from("deal_files").insert({deal_id:e.deal_id,owner_user_id:i,file_name:r.name,file_size:r.size,file_type:r.type||null,storage_path:f,compliance_item_id:e.id,version_no:c,is_current:!0});if(x)throw x;await Hi.from("deal_compliance_items").update({status:"submitted",review_note:null,reviewed_at:null,reviewed_by:null}).eq("id",e.id),await UC({dealId:e.deal_id,brokerageId:e.brokerage_id,itemId:e.id,eventType:"document_uploaded",detail:`${e.title} — ${r.name} (v${c})`})},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-compliance-files",r.item.deal_id]}),t.invalidateQueries({queryKey:["deal-compliance-items",r.item.deal_id]}),t.invalidateQueries({queryKey:["deal-compliance-events",r.item.deal_id]}),t.invalidateQueries({queryKey:["deal-files",r.item.deal_id]}),t.invalidateQueries({queryKey:["compliance-deals"]})}})}async function oUt(t){const{data:e,error:r}=await De.storage.from("deal-files").createSignedUrl(t,3600);if(r)throw r;window.open(e.signedUrl,"_blank","noopener,noreferrer")}function lUt(t){return br({queryKey:["deal-compliance-messages",t],enabled:!!t,refetchInterval:3e4,queryFn:async()=>{const{data:e,error:r}=await Hi.from("deal_compliance_messages").select("*").eq("deal_id",t).order("created_at",{ascending:!0});if(r)throw r;const n=e||[],i=Array.from(new Set(n.map(s=>s.sender_user_id)));if(i.length===0)return n;const{data:a}=await Hi.from("profiles").select("id, name").in("id",i),c=new Map((a||[]).map(s=>[s.id,s.name??null]));return n.map(s=>({...s,sender_name:c.get(s.sender_user_id)??null}))}})}function cUt(){const t=Ir();return kr({mutationFn:async({dealId:e,brokerageId:r,body:n,senderRole:i,itemId:a})=>{var x;const{data:c}=await De.auth.getUser(),s=(x=c.user)==null?void 0:x.id;if(!s)throw new Error("Not signed in");const{data:f,error:m}=await Hi.from("deal_compliance_messages").insert({deal_id:e,brokerage_id:r,sender_user_id:s,sender_role:i,item_id:a??null,body:n.trim()}).select("id").single();if(m)throw m;try{await De.functions.invoke("compliance-message-notify",{body:{messageId:f.id}})}catch(_){console.error("compliance message notify failed",_)}return f.id},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["deal-compliance-messages",r.dealId]})})}function uUt(){const t=Ir();return kr({mutationFn:async({dealId:e,senderRole:r})=>{const{error:n}=await Hi.from("deal_compliance_messages").update({read_at:new Date().toISOString()}).eq("deal_id",e).neq("sender_role",r).is("read_at",null);if(n)throw n},onSuccess:(e,r)=>t.invalidateQueries({queryKey:["deal-compliance-messages",r.dealId]})})}function dUt(t){return br({queryKey:["brokerage-agent-roster",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("profiles").select("id, name, email, avatar_url").eq("brokerage_id",t).order("name",{ascending:!0});if(r)throw r;return e||[]}})}function hUt(t){return br({queryKey:["agent-pipeline-stages",t],enabled:!!t,queryFn:async()=>{const e=async()=>{const{data:n,error:i}=await Hi.from("deal_pipeline_stages").select("id, name, sort_order, default_probability").eq("owner_user_id",t).order("sort_order",{ascending:!0});if(i)throw i;return n||[]};let r=await e();if(r.length===0){const{error:n}=await Hi.rpc("initialize_deal_pipeline_stages",{p_user_id:t});n||(r=await e())}return r}})}function fUt(){const t=Ir();return kr({mutationFn:async e=>{const r=e.price!=null&&e.commissionPercentage!=null?Math.round(e.price*(e.commissionPercentage/100)*100)/100:null,{data:n,error:i}=await Hi.from("deal_pipeline").insert({owner_user_id:e.ownerUserId,deal_name:e.dealName.trim(),deal_type:e.dealType,stage_id:e.stageId,property_address:e.propertyAddress||null,city:e.city||null,state:e.state||null,zip_code:e.zipCode||null,contract_date:e.contractDate||null,target_close_date:e.targetCloseDate||null,actual_close_date:e.actualCloseDate||null,expected_price:e.price??null,sale_price:e.actualCloseDate?e.price??null:null,commission_percentage:e.commissionPercentage??null,expected_commission:r,notes:e.notes||null}).select("id").single();if(i)throw i;const a=n.id;try{await Hi.rpc("ensure_deal_compliance",{_deal_id:a})}catch(c){console.error("ensure_deal_compliance failed",c)}return await UC({dealId:a,brokerageId:e.brokerageId,eventType:"deal_added_by_staff",detail:"Deal added by brokerage staff for the agent's pipeline"}),a},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["compliance-deals",r.brokerageId]}),t.invalidateQueries({queryKey:["deal-pipeline"]})}})}function pUt(t){return br({queryKey:["staff-deal-detail",t],enabled:!!t,queryFn:async()=>{const{data:e,error:r}=await Hi.from("deal_pipeline").select("id, owner_user_id, deal_name, deal_type, stage_id, property_address, city, state, zip_code, contract_date, target_close_date, actual_close_date, expected_price, sale_price, commission_percentage, notes").eq("id",t).maybeSingle();if(r)throw r;return e||null}})}function mUt(){const t=Ir();return kr({mutationFn:async e=>{const r=e.price!=null&&e.commissionPercentage!=null?Math.round(e.price*(e.commissionPercentage/100)*100)/100:null,{error:n}=await Hi.from("deal_pipeline").update({deal_name:e.dealName.trim(),deal_type:e.dealType,stage_id:e.stageId,property_address:e.propertyAddress||null,city:e.city||null,state:e.state||null,zip_code:e.zipCode||null,contract_date:e.contractDate||null,target_close_date:e.targetCloseDate||null,actual_close_date:e.actualCloseDate||null,expected_price:e.price??null,sale_price:e.actualCloseDate?e.price??null:null,commission_percentage:e.commissionPercentage??null,expected_commission:r,notes:e.notes||null}).eq("id",e.dealId);if(n)throw n;return await UC({dealId:e.dealId,brokerageId:e.brokerageId,eventType:"deal_updated_by_staff",detail:"Deal details updated by brokerage staff"}),e.dealId},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["compliance-deals",r.brokerageId]}),t.invalidateQueries({queryKey:["staff-deal-detail",r.dealId]}),t.invalidateQueries({queryKey:["deal-pipeline"]}),t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-compliance-events",r.dealId]})}})}const BO=[{id:"home",label:"Home",icon:Ohe,route:"/dashboard",accent:"nav-home"},{id:"crm",label:"CRM",icon:tp,description:"Contacts and follow-up",accent:"nav-crm"},{id:"deals",label:"Deals",icon:oG,description:"Pipeline, transactions and tasks",accent:"nav-deals"},{id:"listings",label:"Listings",icon:Eo,description:"Win and market listings",accent:"nav-listings"},{id:"marketing",label:"Marketing",icon:bC,description:"Content, email and video",accent:"nav-marketing"},{id:"websites",label:"Websites",icon:c1,description:"Your site and add-ons",accent:"nav-websites"},{id:"academy",label:"Learn",icon:HA,description:"Training, programs and coaching",accent:"nav-academy"},{id:"events",label:"Events",icon:qhe,route:"/events",accent:"nav-events"},{id:"apps",label:"Apps",icon:LRe,route:"/apps",accent:"nav-apps"},{id:"team",label:"Team",icon:El,route:"/team",description:"Your team hub — production, pond and resources",accent:"nav-team",visible:t=>t.isOnTeam&&!t.isAdmin&&!t.isBrokerageManager},{id:"brokerage",label:"Brokerage",icon:Mhe,description:"Your brokerage, teams and recruiting",accent:"nav-brokerage",visible:t=>!t.isAdmin&&(!!t.brokerageId||t.isBrokerageManager||t.isOnTeam)},{id:"more",label:"More",icon:jRe,description:"Community, marketplace and help",accent:"nav-more"}],Nc=t=>e=>e.hasPermission(t),OHe=[{id:"mission-control",label:"Mission Control",route:"/mission-control",icon:ERe,description:"Your daily relationship command center",primaryCategory:"crm",section:"Overview",visible:Nc("contacts"),searchKeywords:["agent os","mission control","dashboard"],displayOrder:10},{id:"client-portals",label:"Client Portals",route:"/mission-control/client-portals",icon:Es,description:"Private portals for buyers and sellers",primaryCategory:"crm",section:"Overview",searchKeywords:["portal","client portal"],displayOrder:20},{id:"contacts",label:"All Contacts",route:"/mission-control/contacts",icon:El,description:"Every contact in your database",primaryCategory:"crm",section:"Contacts",visible:Nc("contacts"),searchKeywords:["contacts","database","sphere","people"],displayOrder:30},{id:"relationship-report",label:"Relationship Report",route:"/mission-control/relationship-scorecard",icon:fJ,description:"See who needs attention next",primaryCategory:"crm",section:"Contacts",visible:Nc("contacts"),searchKeywords:["relationship","scorecard","report"],displayOrder:40},{id:"sphere-gaps",label:"Sphere Gaps",route:"/mission-control/sphere-gaps",icon:tLe,description:"Find missing info across your sphere",primaryCategory:"crm",section:"Contacts",visible:Nc("contacts"),searchKeywords:["gaps","missing data"],displayOrder:50},{id:"sent-emails",label:"Sent Emails",route:"/mission-control/sent-emails",icon:SL,description:"History of everything you have sent",primaryCategory:"crm",section:"Contacts",visible:Nc("contacts"),searchKeywords:["sent","email history"],displayOrder:60},{id:"connect-page",label:"Connect Page",route:"/mission-control/connect-page",icon:xJ,description:"Your shareable intake and link page",primaryCategory:"crm",section:"Contacts",visible:Nc("contacts"),searchKeywords:["connect","link in bio","intake"],displayOrder:70},{id:"property-intelligence",label:"Property Intelligence",route:"/mission-control/property-intelligence",icon:Eo,description:"Enrich property data for your contacts",primaryCategory:"crm",section:"Contacts",visible:t=>t.isAdmin,searchKeywords:["property","zillow","enrichment","intelligence","home value"],displayOrder:75},{id:"touchplans",label:"TouchPlans",route:"/mission-control/plans",icon:Xf,description:"Structured touch plans for your people",primaryCategory:"crm",section:"Follow-Up",visible:Nc("contacts"),searchKeywords:["touch plan","follow up plan"],displayOrder:80},{id:"smart-drips",label:"Smart Drips",route:"/mission-control/smart-drips",icon:kL,description:"Automated drip campaigns that pause when they reply",primaryCategory:"crm",section:"Follow-Up",badge:"beta",searchKeywords:["drip","automation","campaign"],displayOrder:90},{id:"email-templates",label:"Email Templates",route:"/email-campaigns/templates",icon:$i,description:"Reusable email templates",primaryCategory:"crm",section:"Follow-Up",searchKeywords:["email template"],displayOrder:100},{id:"signals",label:"Signals",route:"/mission-control/signals",icon:QRe,description:"Buying and selling signals from your database",primaryCategory:"crm",section:"Follow-Up",searchKeywords:["signals","intent","hot leads"],displayOrder:110},{id:"popbys",label:"Popbys",route:"/mission-control/popbys",icon:Yh,description:"Plan and log in-person pop-bys",primaryCategory:"crm",section:"Follow-Up",visible:Nc("popbys"),searchKeywords:["pop by","gifts","drop off"],displayOrder:120},{id:"pipeline",label:"Deal Pipeline",route:"/mission-control/pipeline",icon:oG,description:"Track every deal from lead to close",primaryCategory:"deals",section:"Pipeline",visible:Nc("pipeline"),searchKeywords:["pipeline","deals","kanban"],displayOrder:130},{id:"transactions",label:"Transactions",route:"/mission-control/transactions",icon:xU,description:"Closed and in-progress transactions",primaryCategory:"deals",section:"Pipeline",visible:Nc("pipeline"),searchKeywords:["transactions","closings"],displayOrder:140},{id:"forms",label:"Forms Library",route:"/mission-control/forms",icon:PRe,description:"Your PDF form templates, filled from any deal",primaryCategory:"deals",section:"Pipeline",visible:Nc("pipeline"),searchKeywords:["forms","pdf","templates","contracts","documents"],displayOrder:145},{id:"tasks",label:"Tasks",route:"/mission-control/tasks",icon:sLe,description:"Everything on your plate today",primaryCategory:"deals",section:"Pipeline",visible:Nc("pipeline"),searchKeywords:["tasks","to do"],displayOrder:150},{id:"scorecard",label:"Scorecard",route:"/mission-control/scorecard",icon:GA,description:"Your production numbers at a glance",primaryCategory:"deals",section:"Pipeline",visible:Nc("scorecard"),searchKeywords:["scorecard","production","goals"],displayOrder:160},{id:"my-calendar",label:"My Calendar",route:"/mission-control/calendar",icon:Xf,description:"Every appointment, deadline and task in one view",primaryCategory:"crm",section:"Overview",visible:()=>!0,searchKeywords:["calendar","schedule","agenda","google calendar","my calendar"],displayOrder:24},{id:"scheduler",label:"LevelUp Scheduler",route:"/mission-control/scheduler",icon:Xf,description:"Share your booking link and sync your calendar",primaryCategory:"crm",section:"Overview",toolId:"scheduler",visible:()=>!0,searchKeywords:["scheduler","booking","calendar","appointments"],displayOrder:25},{id:"listing-exchange",label:"Listing Exchange",route:"/mission-control/listings",icon:Eo,description:"Publish and browse member listings",primaryCategory:"listings",section:"Manage Listings",visible:Nc("listings"),searchKeywords:["listings","exchange","my listings"],displayOrder:10},{id:"listing-presentation-studio",label:"Listing Presentation Studio",route:"/apps/listing-presentation-studio",icon:ZRe,description:"Build a polished listing presentation PDF",primaryCategory:"listings",section:"Win the Listing",toolId:"listing-presentation-studio",searchKeywords:["listing presentation","pdf","pitch"],displayOrder:20},{id:"listing-revival",label:"Listing Revival",route:"/apps/listing-revival",icon:Rhe,description:"Win expired and withdrawn listings",primaryCategory:"listings",section:"Win the Listing",toolId:"listing-revival",searchKeywords:["expired","revival","withdrawn"],displayOrder:30},{id:"fsbo-breakthrough",label:"By-Owner Breakthrough",route:"/apps/fsbo-breakthrough",icon:Ma,description:"Convert for-sale-by-owner sellers",primaryCategory:"listings",section:"Win the Listing",toolId:"fsbo-breakthrough",searchKeywords:["fsbo","by owner"],displayOrder:40},{id:"cma",label:"CMA Reports",route:"/mission-control/cma",icon:Che,description:"Comparative market analysis for sellers",primaryCategory:"listings",section:"Win the Listing",toolId:"cma",visible:t=>t.hasLeadSiteMLS,searchKeywords:["cma","market analysis","pricing"],displayOrder:50},{id:"guest-book",label:"Guest Book",route:"/mission-control/guest-book",icon:xU,description:"Digital open house sign-in",primaryCategory:"listings",section:"Open Houses",toolId:"guest-book",searchKeywords:["open house","sign in","guest book"],displayOrder:60},{id:"listing-studio",label:"Listing Studio",route:"/mission-control/listing-studio",icon:yJ,description:"Marketing assets for a listing",primaryCategory:"listings",section:"Market the Listing",toolId:"listing-studio",searchKeywords:["listing marketing","flyer","just listed"],displayOrder:70},{id:"templates",label:"Templates",route:"/templates",icon:qM,description:"Ready-to-edit Canva templates",primaryCategory:"marketing",section:"Create",searchKeywords:["templates","canva","graphics"],displayOrder:10},{id:"staging-studio",label:"Staging Studio",route:"/apps/staging-studio",icon:iLe,description:"Virtually stage, declutter and brighten listing photos",primaryCategory:"marketing",section:"Create",toolId:"staging-studio",visible:t=>t.isAdmin||t.stagingStudioEnabled,searchKeywords:["staging","virtual staging","twilight","declutter","sky replacement","photo"],displayOrder:11},{id:"reviews",label:"Reviews",route:"/apps/reviews",icon:Xc,description:"Collect, showcase and reply to client reviews",primaryCategory:"marketing",section:"Create",searchKeywords:["reviews","agent reviews","google reviews","testimonials","reputation","review link","review page","ratings","video review"],displayOrder:12},{id:"marketing-studio",label:"Marketing Studio",route:"/marketing-studio",icon:yJ,description:"Create branded marketing assets",primaryCategory:"marketing",section:"Create",searchKeywords:["marketing studio","design","brand kit"],displayOrder:20},{id:"social-studio",label:"Social Studio",route:"/social-studio",icon:J4,description:"Post to all your social accounts from one composer",primaryCategory:"marketing",section:"Social & Content",searchKeywords:["social","posts","instagram","facebook","linkedin","google business","schedule","swag"],displayOrder:29},{id:"social-swag",label:"Social Swag",route:"/social-studio?tab=gallery",icon:J4,description:"Daily social posts you can publish in a tap",primaryCategory:"marketing",section:"Social & Content",searchKeywords:["social","posts","instagram","facebook"],displayOrder:30},{id:"weekly-reels",label:"Weekly Reels",route:"/weekly-reels",icon:gJ,description:"A fresh reel script every Monday",primaryCategory:"marketing",section:"Social & Content",toolId:"weekly-reels",visible:t=>t.hasWeeklyReels,searchKeywords:["reels","video script","instagram"],displayOrder:40},{id:"newsletter-pro",label:"Newsletter Pro",route:"/newsletters",icon:zhe,description:"Send a branded monthly newsletter",primaryCategory:"marketing",section:"Email & Mail",badge:"new",toolId:"newsletter-pro",searchKeywords:["newsletter","email marketing"],displayOrder:50},{id:"mass-emails",label:"Mass Emails",route:"/admin/email-campaigns",icon:$i,description:"Email your whole database at once",primaryCategory:"marketing",section:"Email & Mail",toolId:"mass-emails",searchKeywords:["mass email","campaign","blast"],displayOrder:60},{id:"direct-mail",label:"Mail Studio",route:"/mission-control/direct-mail",icon:SL,description:"Postcards & letters via your thanks.io account",primaryCategory:"marketing",section:"Email & Mail",toolId:"direct-mail",searchKeywords:["postcard","direct mail","farming","letter","thanks.io","mail studio"],displayOrder:70},{id:"card-studio",label:"Card Studio",route:"/mission-control/card-studio",icon:Yh,description:"Send digital celebration cards",primaryCategory:"marketing",section:"Email & Mail",toolId:"card-studio",searchKeywords:["cards","birthday","anniversary"],displayOrder:80},{id:"video-library",label:"Video Library",route:"/mission-control/video-library",icon:AL,description:"All of your recorded videos",primaryCategory:"marketing",section:"Video",visible:Nc("videos"),searchKeywords:["videos","library"],displayOrder:90},{id:"quickvid",label:"QuickVid",route:"/mission-control/video/record",icon:AL,description:"Record a personalized video in seconds",primaryCategory:"marketing",section:"Video",toolId:"quickvid",searchKeywords:["record video","video email","screen record"],displayOrder:100},{id:"reelflow",label:"ReelFlow",route:"/admin/beta/homereel",icon:gJ,description:"AI-assisted short-form video creation",primaryCategory:"marketing",section:"Video",toolId:"reelflow",searchKeywords:["reelflow","ai video","reels"],displayOrder:110},{id:"landing-pages",label:"Landing Pages",route:"/mission-control/landing-pages",icon:vJ,description:"Capture leads with focused landing pages",primaryCategory:"marketing",section:"Lead Capture",toolId:"landing-pages",searchKeywords:["landing page","lead capture","funnel"],displayOrder:120},{id:"buyer-match",label:"Buyer Match",route:"/mission-control/buyer-match",icon:vU,description:"Turn a buyer's wish list into seller conversations",primaryCategory:"marketing",section:"Lead Capture",searchKeywords:["buyer match","buyer needs","seller leads","wish list"],displayOrder:125},{id:"smart-card",label:"Smart Card",route:"/mission-control/my-card",icon:xJ,description:"Your digital business card",primaryCategory:"marketing",section:"Lead Capture",toolId:"smart-card",searchKeywords:["digital card","business card","qr"],displayOrder:130},{id:"my-websites",label:"My Websites",route:"/websites",icon:FRe,description:"Every site you can edit: yours, your company and your team",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite||t.isBrokerageManager||t.isTeamLeader||t.isAdmin,searchKeywords:["websites","my sites","edit website","company site","team site"],displayOrder:1},{id:"get-my-website",label:"Get My Website",route:"/get-my-website",icon:c1,description:"Claim the free site your brokerage offers",primaryCategory:"websites",section:"My Website",visible:t=>!t.hasLeadSite&&t.hasFreeSiteOffer,searchKeywords:["website","claim site","free site"],displayOrder:5},{id:"need-a-website",label:"Need a Website",route:"/need-a-website",icon:c1,description:"Request your free beta agent website",primaryCategory:"websites",section:"My Website",badge:"beta",visible:t=>!t.hasLeadSite&&!t.hasFreeSiteOffer,searchKeywords:["website","need a website","beta site","free website"],displayOrder:6},{id:"view-site",label:"View Site",route:t=>t.siteUrl||"#",icon:aG,description:"Open your live website",primaryCategory:"websites",section:"My Website",external:!0,openInNewTab:!0,visible:t=>t.hasLeadSite&&!!t.siteUrl,searchKeywords:["view site","live site"],displayOrder:10},{id:"edit-website",label:"Edit My Site",route:t=>`/my-website/${t.leadSiteId}/edit`,icon:HRe,description:"Site builder for pages, branding and content",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite&&!!t.leadSiteId,searchKeywords:["edit website","site builder","pages"],displayOrder:20},{id:"brokerage-website",label:"Edit Company Site",route:"/brokerage/website",icon:Eo,description:"Your company site: agents, listings, recruiting and leads",primaryCategory:"websites",section:"My Website",badge:"new",visible:t=>t.isBrokerageManager||t.isAdmin,searchKeywords:["website","company site","brokerage site","agents","roster"],displayOrder:24},{id:"team-website",label:"Edit Team Site",route:"/team/website",icon:El,description:"Your team site: members, listings and leads",primaryCategory:"websites",section:"My Website",badge:"new",visible:t=>t.isTeamLeader||t.isAdmin,searchKeywords:["team website","team site","team page"],displayOrder:26},{id:"mls-listings",label:"MLS Listings",route:"/my-website/mls-listings",icon:Ma,description:"Control which listings appear on your site",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite,searchKeywords:["mls","idx","listings on site"],displayOrder:30},{id:"market-reports",label:"Market Reports",route:"/my-website/market-report",icon:GA,description:"Monthly market reports for your areas",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite&&t.hasLeadSiteMLS,searchKeywords:["market report","stats"],displayOrder:40},{id:"website-activity",label:"Website Activity",route:"/mission-control/website-activity",icon:fJ,description:"See who is browsing your site",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite,searchKeywords:["website activity","visitors","analytics"],displayOrder:50},{id:"mobile-command",label:"Mobile Command",route:"/m",icon:J4,description:"The mobile-first agent console",primaryCategory:"websites",section:"My Website",visible:t=>t.hasLeadSite,searchKeywords:["mobile","command"],displayOrder:60},{id:"website-apps",label:"Website Apps",route:"/website-apps",icon:Es,description:"Lead magnets, video greeter and more",primaryCategory:"websites",section:"Website Add-Ons",toolId:"website-apps",searchKeywords:["widgets","lead magnet","video greeter"],displayOrder:70},{id:"levelup-u",label:"LevelUp U",route:"/levelup-u",icon:HA,description:"Structured courses and certifications",primaryCategory:"academy",section:"Learn",badge:"new",searchKeywords:["levelup u","courses","training"],displayOrder:10},{id:"academy",label:"Academy",route:"/academy",icon:o1,description:"On-demand training videos",primaryCategory:"academy",section:"Learn",searchKeywords:["academy","videos","training"],displayOrder:20},{id:"toolbox",label:"Toolbox",route:"/toolbox",icon:hG,description:"Scripts, checklists and downloads",primaryCategory:"academy",section:"Learn",searchKeywords:["toolbox","scripts","downloads"],displayOrder:30},{id:"events",label:"Events",route:"/events",icon:qhe,description:"Live trainings and member events",primaryCategory:"events",section:"Events",searchKeywords:["events","live","webinar"],displayOrder:10},{id:"programs",label:"Programs",route:"/programs",icon:vJ,description:"Cohort programs like Reel Estate 90",primaryCategory:"academy",section:"Programs & Coaching",searchKeywords:["programs","reel estate 90","cohort"],displayOrder:50},{id:"coaching",label:"Coaching",route:"/coaching",icon:HA,description:"Your coaching hub and calendar",primaryCategory:"academy",section:"Programs & Coaching",visible:t=>t.isCoach,searchKeywords:["coaching","coach hub"],displayOrder:60},{id:"my-coach",label:"Coaching",route:"/my-coach",icon:tp,description:"Sessions, goals and notes with your coach",primaryCategory:"academy",section:"Programs & Coaching",visible:t=>!t.isCoach&&(t.hasCoach||t.hasCoachingAccess),searchKeywords:["my coach","coaching","sessions","book session"],displayOrder:70},{id:"community",label:"Community",route:"/community",icon:rp,description:"Talk shop with other LevelUp members",primaryCategory:"more",section:"Community",badgeKey:"community",searchKeywords:["community","forum","posts"],displayOrder:10},{id:"wishlist",label:"Wishlist",route:"/wishlist",icon:zRe,description:"Request and vote on new features",primaryCategory:"more",section:"Community",badgeKey:"wishlist",searchKeywords:["wishlist","feature request"],displayOrder:20},{id:"facebook-group",label:"Facebook Group",route:"https://www.facebook.com/share/g/1CC6thti2V/",icon:sS,description:"Our private Facebook community",primaryCategory:"more",section:"Community",external:!0,openInNewTab:!0,searchKeywords:["facebook group"],displayOrder:30},{id:"marketplace",label:"Marketplace",route:"/marketplace",icon:Vhe,description:"Print and promo products",primaryCategory:"more",section:"The Goods",badge:"new",visible:t=>t.isMarketplaceEnabled,searchKeywords:["marketplace","shop","print"],displayOrder:40},{id:"reward-store",label:"Reward Store",route:"/reward-store",icon:EL,description:"Spend the points you have earned",primaryCategory:"more",section:"The Goods",searchKeywords:["rewards","points","store"],displayOrder:50},{id:"refer-friends",label:"Refer & Earn",route:"/refer-friends",icon:Yh,description:"Invite agents and earn rewards",primaryCategory:"more",section:"The Goods",searchKeywords:["referral","refer a friend"],displayOrder:60},{id:"support",label:"Support",route:"/support",icon:BRe,description:"Get help from the LevelUp team",primaryCategory:"more",section:"Help & Services",searchKeywords:["support","help","ticket"],displayOrder:70},{id:"additional-services",label:"Additional Services",route:"/additional-services",icon:Es,description:"Done-for-you services from LevelUp",primaryCategory:"more",section:"Help & Services",searchKeywords:["services","done for you"],displayOrder:80},{id:"integrations",label:"Integrations",route:"/mission-control/integrations",icon:wL,description:"Connect your CRM, calendar and socials",primaryCategory:"more",section:"Help & Services",searchKeywords:["integrations","connect","crm sync"],displayOrder:90},{id:"browser-extension",label:"Browser Extension",route:"/mission-control/browser-extension",icon:wL,description:"Install the LevelUp Chrome extension",primaryCategory:"more",section:"Help & Services",searchKeywords:["extension","chrome"],displayOrder:100},{id:"attract",label:"LevelUp Attract",route:"/attract",icon:Es,description:"Relationship-first attraction coach",primaryCategory:"more",section:"Help & Services",badge:"beta",visible:t=>t.email==="jeremy@relevelup.com",searchKeywords:["attract","recruiting"],displayOrder:110},{id:"admin-dashboard",label:"Admin Dashboard",route:"/admin",icon:Fy,description:"Manage members, content and settings",primaryCategory:"more",section:"Admin",visible:t=>t.isAdmin,searchKeywords:["admin"],displayOrder:120},{id:"agent-activation",label:"Agent Activation",route:"/admin/agent-activation",icon:kL,description:"Wake up dormant agents with branded email sequences",primaryCategory:"more",section:"Admin",visible:t=>t.isAdmin,searchKeywords:["activation","dormant","adoption","agents"],displayOrder:121},{id:"my-brokerage",label:"My Brokerage",route:"/my-brokerage",icon:Eo,description:"Your brokerage hub",primaryCategory:"brokerage",section:"My Brokerage",visible:t=>!!t.brokerageId&&!t.isAdmin,searchKeywords:["brokerage"],displayOrder:130},{id:"help-board",label:"Help Board",route:"/brokerage/help-board",icon:DRe,description:"Ask for showing and open house coverage",primaryCategory:"brokerage",section:"My Brokerage",visible:t=>!!t.brokerageId&&!t.isAdmin,searchKeywords:["help board","coverage"],displayOrder:140},{id:"brokerage-content",label:"Brokerage Content",route:"/brokerage-content",icon:o1,description:"Content shared by your brokerage",primaryCategory:"brokerage",section:"My Brokerage",visible:t=>!!t.brokerageId&&!t.isAdmin,searchKeywords:["brokerage content"],displayOrder:150},{id:"team-hub",label:"Team Hub",route:"/team",icon:El,description:"Production, leaderboard, pond and resources for your team",primaryCategory:"team",section:"My Team",searchKeywords:["team","leaderboard","production","team hub","standing"],displayOrder:155},{id:"my-team",label:"My Team",route:"/my-team",icon:El,description:"Your team roster and lead pond",primaryCategory:"brokerage",section:"My Team",visible:t=>t.isOnTeam&&!t.isBrokerageManager&&!t.isAdmin,searchKeywords:["team","lead pond"],displayOrder:160},{id:"manage-brokerages",label:"Manage Brokerages",route:"/brokerage/dashboard",icon:$he,description:"Brokerage manager dashboard",primaryCategory:"brokerage",section:"Manage Brokerage",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["manage brokerage"],displayOrder:170},{id:"brokerage-teams",label:"Teams",route:"/brokerage/teams",icon:El,description:"Teams, rosters and lead ponds",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["teams","pond"],displayOrder:180},{id:"brokerage-recruiting",label:"Recruiting",route:"/brokerage/recruiting",icon:bC,description:"Recruit and nurture agents",primaryCategory:"brokerage",section:"Manage Brokerage",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["recruiting"],displayOrder:190},{id:"brokerage-onboarding",label:"Agent Onboarding",route:"/brokerage/onboarding",icon:Q4,description:"Onboarding checklists, documents and agent notes",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["onboarding","checklist","documents","new agent"],displayOrder:195},{id:"brokerage-operations",label:"Operations",route:"/brokerage/operations",icon:Ohe,description:"Daily action feed, office task board and brokerage calendar",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>(t.isBrokerageManager||t.isTransactionAdmin)&&!t.isAdmin,searchKeywords:["operations","tasks","today","calendar","action items"],displayOrder:188},{id:"brokerage-commission-plans",label:"Financials",route:"/brokerage/commission-plans",icon:WRe,description:"Commission plans, company dollar and fee statements",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>(t.isBrokerageManager||t.isTransactionAdmin)&&!t.isAdmin,searchKeywords:["commission","split","cap","fees","agent plans"],displayOrder:195},{id:"brokerage-transactions",label:"Transactions & Compliance",route:"/brokerage/transactions",icon:Q4,description:"Review agent files, required documents and closing compliance",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>(t.isBrokerageManager||t.isTransactionAdmin)&&!t.isAdmin,searchKeywords:["compliance","transactions","documents","closing","paperless"],displayOrder:196},{id:"brokerage-vendors",label:"Vendors",route:"/brokerage/vendors",icon:vU,description:"Preferred vendor directory",primaryCategory:"brokerage",section:"Manage Brokerage",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["vendors"],displayOrder:200},{id:"brokerage-forms",label:"Brokerage Forms",route:"/brokerage/forms",icon:Im,description:"Official forms your agents can use",primaryCategory:"brokerage",section:"Manage Brokerage",badge:"new",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["forms","pdf","documents"],displayOrder:205},{id:"brokerage-resources",label:"Brokerage Resources",route:"/brokerage-resources",icon:khe,description:"Documents and links for your agents",primaryCategory:"brokerage",section:"Manage Brokerage",visible:t=>t.isBrokerageManager&&!t.isAdmin,searchKeywords:["resources"],displayOrder:210},{id:"my-partnership",label:"My Package",route:"/my-partnership",icon:Es,description:"What is included in your partnership package",primaryCategory:"more",section:"Account",visible:t=>t.isPartnershipMember,searchKeywords:["partnership","package","upgrade","exp luxury"],displayOrder:5},{id:"coaching-onboarding",label:"Coaching Onboarding",route:"/coaching/onboarding",icon:Q4,description:"Tell your coach about your business before session one",primaryCategory:"academy",section:"Coaching",visible:t=>t.hasCoachingOnboarding,searchKeywords:["coaching","onboarding","intake"],displayOrder:45}];function Qxe(t,e){return typeof t.route=="function"?t.route(e):t.route}function Jxe(){const{user:t,isAdmin:e,isBrokerageManager:r,isCoach:n,brokerageId:i}=$n(),{hasPermission:a}=xO(),{isInnerCircleEnabled:c,isMarketplaceEnabled:s,isFeatureEnabled:f}=TO(),{hasAccess:m}=i9(),{data:x,teams:_}=_S(),{leadSite:T,hasLeadSite:E,siteUrl:C}=Zxe(),{hasOffer:N}=Xxe(!E),L=Fge(),{hasAccess:M}=DHe(),{data:D}=MHe(),B=Ir(),{data:V}=br({queryKey:["my-coach-nav",t==null?void 0:t.id],enabled:!!(t!=null&&t.id),staleTime:5*60*1e3,queryFn:async()=>{const{data:Se}=await De.from("coaching_assignments").select("id").eq("agent_id",t.id).eq("status","active").limit(1);return(Se||[]).length>0}}),{data:G}=br({queryKey:["user-tool-favorites",t==null?void 0:t.id],enabled:!!(t!=null&&t.id),staleTime:60*1e3,queryFn:async()=>{const{data:Se}=await De.from("user_tool_favorites").select("tool_id").eq("user_id",t.id);return(Se||[]).map(ge=>ge.tool_id)}}),W=P.useMemo(()=>new Set(G||[]),[G]),Z=kr({mutationFn:async Se=>{t!=null&&t.id&&(W.has(Se)?await De.from("user_tool_favorites").delete().eq("user_id",t.id).eq("tool_id",Se):await De.from("user_tool_favorites").insert({user_id:t.id,tool_id:Se}))},onSuccess:()=>{B.invalidateQueries({queryKey:["user-tool-favorites"]}),B.invalidateQueries({queryKey:["app-catalog"]})}}),Q=P.useMemo(()=>{var Se,ge;return{isAdmin:!!e,isBrokerageManager:!!r,isTransactionAdmin:((D==null?void 0:D.length)||0)>0,isCoach:!!n,isOnTeam:!!x,isTeamLeader:(_||[]).some(je=>je.role==="team_leader"),hasCoach:!!V,brokerageId:i??null,hasPermission:a,isInnerCircleEnabled:!!c,stagingStudioEnabled:f("staging_studio_enabled"),isMarketplaceEnabled:!!s,hasWeeklyReels:!!m,hasLeadSite:!!E,hasLeadSiteMLS:!!(T!=null&&T.mls_provider_id),hasFreeSiteOffer:!!N,leadSiteId:(T==null?void 0:T.id)??null,siteUrl:C??null,email:(t==null?void 0:t.email)??null,isPartnershipMember:L.isMember,hasCoachingOnboarding:L.isMember&&!!((Se=L.pkg)!=null&&Se.includes_coaching),hasCoachingAccess:!!M||L.isMember&&!!((ge=L.pkg)!=null&&ge.includes_coaching)}},[e,r,D,n,x,_,V,i,a,c,s,f,m,E,T,N,C,t==null?void 0:t.email,L.isMember,L.pkg,M]),se=P.useMemo(()=>OHe.filter(Se=>Se.visible?Se.visible(Q):!0).map(Se=>{if(!L.isRestricted)return Se;const ge=B$e(Se);return!ge||L.hasFeature(ge)?Se:{...Se,locked:!0,route:`/upgrade/${ge}`}}).sort((Se,ge)=>Se.displayOrder-ge.displayOrder),[Q,L.isRestricted,L.features]),ie=P.useMemo(()=>BO.filter(Se=>Se.visible?Se.visible(Q):!0),[Q]),ue=P.useMemo(()=>ie.filter(Se=>!Se.route).map(Se=>{const ge=se.filter(xe=>xe.primaryCategory===Se.id),je=[],_e=new Map;for(const xe of ge)_e.has(xe.section)||(_e.set(xe.section,[]),je.push(xe.section)),_e.get(xe.section).push(xe);return{id:Se.id,label:Se.label,sections:je.map(xe=>({title:xe,items:_e.get(xe)}))}}),[se,ie]),be=P.useMemo(()=>new Map(ue.map(Se=>[Se.id,Se])),[ue]),Te=Se=>Se.toolId||`nav:${Se.id}`,we=Se=>W.has(Te(Se));return{ctx:Q,categories:ue,railCategories:ie,categoryMap:be,destinations:se,favorites:W,isFavorite:we,favoritesFor:Se=>se.filter(ge=>ge.primaryCategory===Se&&we(ge)),favoriteKey:Te,toggleFavorite:Se=>Z.mutate(Se),searchDestinations:Se=>{const ge=Se.trim().toLowerCase();return ge?se.map(_e=>{const xe=_e.label.toLowerCase(),Pe=(_e.description||"").toLowerCase(),Ze=(_e.searchKeywords||[]).join(" ").toLowerCase();let at=0;return xe===ge?at=100:xe.startsWith(ge)?at=80:xe.includes(ge)?at=60:Ze.includes(ge)?at=40:Pe.includes(ge)?at=20:_e.section.toLowerCase().includes(ge)&&(at=10),at&&we(_e)&&(at+=5),{d:_e,score:at}}).filter(_e=>_e.score>0).sort((_e,xe)=>xe.score-_e.score).map(_e=>_e.d):[]},routeFor:Se=>Qxe(Se,Q)}}var bte=1,FHe=.9,BHe=.8,zHe=.17,NB=.1,RB=.999,$He=.9999,UHe=.99,VHe=/[\\\/_+.#"@\[\(\{&]/,qHe=/[\\\/_+.#"@\[\(\{&]/g,GHe=/[\s-]/,e0e=/[\s-]/g;function A6(t,e,r,n,i,a,c){if(a===e.length)return i===t.length?bte:UHe;var s=`${i},${a}`;if(c[s]!==void 0)return c[s];for(var f=n.charAt(a),m=r.indexOf(f,i),x=0,_,T,E,C;m>=0;)_=A6(t,e,r,n,m+1,a+1,c),_>x&&(m===i?_*=bte:VHe.test(t.charAt(m-1))?(_*=BHe,E=t.slice(i,m-1).match(qHe),E&&i>0&&(_*=Math.pow(RB,E.length))):GHe.test(t.charAt(m-1))?(_*=FHe,C=t.slice(i,m-1).match(e0e),C&&i>0&&(_*=Math.pow(RB,C.length))):(_*=zHe,i>0&&(_*=Math.pow(RB,m-i))),t.charAt(m)!==e.charAt(a)&&(_*=$He)),(__&&(_=T*NB)),_>x&&(x=_),m=r.indexOf(f,m+1);return c[s]=x,x}function wte(t){return t.toLowerCase().replace(e0e," ")}function HHe(t,e,r){return t=r&&r.length>0?`${t+" "+r.join(" ")}`:t,A6(t,e,wte(t),wte(e),0,0,{})}var y2='[cmdk-group=""]',LB='[cmdk-group-items=""]',WHe='[cmdk-group-heading=""]',t0e='[cmdk-item=""]',Ste=`${t0e}:not([aria-disabled="true"])`,k6="cmdk-item-select",Kb="data-value",KHe=(t,e,r)=>HHe(t,e,r),r0e=P.createContext(void 0),VC=()=>P.useContext(r0e),n0e=P.createContext(void 0),$9=()=>P.useContext(n0e),i0e=P.createContext(void 0),s0e=P.forwardRef((t,e)=>{let r=Yb(()=>{var Pe,Ze;return{search:"",value:(Ze=(Pe=t.value)!=null?Pe:t.defaultValue)!=null?Ze:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=Yb(()=>new Set),i=Yb(()=>new Map),a=Yb(()=>new Map),c=Yb(()=>new Set),s=a0e(t),{label:f,children:m,value:x,onValueChange:_,filter:T,shouldFilter:E,loop:C,disablePointerSelection:N=!1,vimBindings:L=!0,...M}=t,D=Cl(),B=Cl(),V=Cl(),G=P.useRef(null),W=sWe();k_(()=>{if(x!==void 0){let Pe=x.trim();r.current.value=Pe,Z.emit()}},[x]),k_(()=>{W(6,Te)},[]);let Z=P.useMemo(()=>({subscribe:Pe=>(c.current.add(Pe),()=>c.current.delete(Pe)),snapshot:()=>r.current,setState:(Pe,Ze,at)=>{var lt,xt,St,Xt;if(!Object.is(r.current[Pe],Ze)){if(r.current[Pe]=Ze,Pe==="search")be(),ie(),W(1,ue);else if(Pe==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let _t=document.getElementById(V);_t?_t.focus():(lt=document.getElementById(D))==null||lt.focus()}if(W(7,()=>{var _t;r.current.selectedItemId=(_t=we())==null?void 0:_t.id,Z.emit()}),at||W(5,Te),((xt=s.current)==null?void 0:xt.value)!==void 0){let _t=Ze??"";(Xt=(St=s.current).onValueChange)==null||Xt.call(St,_t);return}}Z.emit()}},emit:()=>{c.current.forEach(Pe=>Pe())}}),[]),Q=P.useMemo(()=>({value:(Pe,Ze,at)=>{var lt;Ze!==((lt=a.current.get(Pe))==null?void 0:lt.value)&&(a.current.set(Pe,{value:Ze,keywords:at}),r.current.filtered.items.set(Pe,se(Ze,at)),W(2,()=>{ie(),Z.emit()}))},item:(Pe,Ze)=>(n.current.add(Pe),Ze&&(i.current.has(Ze)?i.current.get(Ze).add(Pe):i.current.set(Ze,new Set([Pe]))),W(3,()=>{be(),ie(),r.current.value||ue(),Z.emit()}),()=>{a.current.delete(Pe),n.current.delete(Pe),r.current.filtered.items.delete(Pe);let at=we();W(4,()=>{be(),(at==null?void 0:at.getAttribute("id"))===Pe&&ue(),Z.emit()})}),group:Pe=>(i.current.has(Pe)||i.current.set(Pe,new Set),()=>{a.current.delete(Pe),i.current.delete(Pe)}),filter:()=>s.current.shouldFilter,label:f||t["aria-label"],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:D,inputId:V,labelId:B,listInnerRef:G}),[]);function se(Pe,Ze){var at,lt;let xt=(lt=(at=s.current)==null?void 0:at.filter)!=null?lt:KHe;return Pe?xt(Pe,r.current.search,Ze):0}function ie(){if(!r.current.search||s.current.shouldFilter===!1)return;let Pe=r.current.filtered.items,Ze=[];r.current.filtered.groups.forEach(lt=>{let xt=i.current.get(lt),St=0;xt.forEach(Xt=>{let _t=Pe.get(Xt);St=Math.max(_t,St)}),Ze.push([lt,St])});let at=G.current;Oe().sort((lt,xt)=>{var St,Xt;let _t=lt.getAttribute("id"),Rt=xt.getAttribute("id");return((St=Pe.get(Rt))!=null?St:0)-((Xt=Pe.get(_t))!=null?Xt:0)}).forEach(lt=>{let xt=lt.closest(LB);xt?xt.appendChild(lt.parentElement===xt?lt:lt.closest(`${LB} > *`)):at.appendChild(lt.parentElement===at?lt:lt.closest(`${LB} > *`))}),Ze.sort((lt,xt)=>xt[1]-lt[1]).forEach(lt=>{var xt;let St=(xt=G.current)==null?void 0:xt.querySelector(`${y2}[${Kb}="${encodeURIComponent(lt[0])}"]`);St==null||St.parentElement.appendChild(St)})}function ue(){let Pe=Oe().find(at=>at.getAttribute("aria-disabled")!=="true"),Ze=Pe==null?void 0:Pe.getAttribute(Kb);Z.setState("value",Ze||void 0)}function be(){var Pe,Ze,at,lt;if(!r.current.search||s.current.shouldFilter===!1){r.current.filtered.count=n.current.size;return}r.current.filtered.groups=new Set;let xt=0;for(let St of n.current){let Xt=(Ze=(Pe=a.current.get(St))==null?void 0:Pe.value)!=null?Ze:"",_t=(lt=(at=a.current.get(St))==null?void 0:at.keywords)!=null?lt:[],Rt=se(Xt,_t);r.current.filtered.items.set(St,Rt),Rt>0&&xt++}for(let[St,Xt]of i.current)for(let _t of Xt)if(r.current.filtered.items.get(_t)>0){r.current.filtered.groups.add(St);break}r.current.filtered.count=xt}function Te(){var Pe,Ze,at;let lt=we();lt&&(((Pe=lt.parentElement)==null?void 0:Pe.firstChild)===lt&&((at=(Ze=lt.closest(y2))==null?void 0:Ze.querySelector(WHe))==null||at.scrollIntoView({block:"nearest"})),lt.scrollIntoView({block:"nearest"}))}function we(){var Pe;return(Pe=G.current)==null?void 0:Pe.querySelector(`${t0e}[aria-selected="true"]`)}function Oe(){var Pe;return Array.from(((Pe=G.current)==null?void 0:Pe.querySelectorAll(Ste))||[])}function Ae(Pe){let Ze=Oe()[Pe];Ze&&Z.setState("value",Ze.getAttribute(Kb))}function Se(Pe){var Ze;let at=we(),lt=Oe(),xt=lt.findIndex(Xt=>Xt===at),St=lt[xt+Pe];(Ze=s.current)!=null&&Ze.loop&&(St=xt+Pe<0?lt[lt.length-1]:xt+Pe===lt.length?lt[0]:lt[xt+Pe]),St&&Z.setState("value",St.getAttribute(Kb))}function ge(Pe){let Ze=we(),at=Ze==null?void 0:Ze.closest(y2),lt;for(;at&&!lt;)at=Pe>0?nWe(at,y2):iWe(at,y2),lt=at==null?void 0:at.querySelector(Ste);lt?Z.setState("value",lt.getAttribute(Kb)):Se(Pe)}let je=()=>Ae(Oe().length-1),_e=Pe=>{Pe.preventDefault(),Pe.metaKey?je():Pe.altKey?ge(1):Se(1)},xe=Pe=>{Pe.preventDefault(),Pe.metaKey?Ae(0):Pe.altKey?ge(-1):Se(-1)};return P.createElement(rn.div,{ref:e,tabIndex:-1,...M,"cmdk-root":"",onKeyDown:Pe=>{var Ze;(Ze=M.onKeyDown)==null||Ze.call(M,Pe);let at=Pe.nativeEvent.isComposing||Pe.keyCode===229;if(!(Pe.defaultPrevented||at))switch(Pe.key){case"n":case"j":{L&&Pe.ctrlKey&&_e(Pe);break}case"ArrowDown":{_e(Pe);break}case"p":case"k":{L&&Pe.ctrlKey&&xe(Pe);break}case"ArrowUp":{xe(Pe);break}case"Home":{Pe.preventDefault(),Ae(0);break}case"End":{Pe.preventDefault(),je();break}case"Enter":{Pe.preventDefault();let lt=we();if(lt){let xt=new Event(k6);lt.dispatchEvent(xt)}}}}},P.createElement("label",{"cmdk-label":"",htmlFor:Q.inputId,id:Q.labelId,style:oWe},f),zO(t,Pe=>P.createElement(n0e.Provider,{value:Z},P.createElement(r0e.Provider,{value:Q},Pe))))}),YHe=P.forwardRef((t,e)=>{var r,n;let i=Cl(),a=P.useRef(null),c=P.useContext(i0e),s=VC(),f=a0e(t),m=(n=(r=f.current)==null?void 0:r.forceMount)!=null?n:c==null?void 0:c.forceMount;k_(()=>{if(!m)return s.item(i,c==null?void 0:c.id)},[m]);let x=o0e(i,a,[t.value,t.children,a],t.keywords),_=$9(),T=Gy(W=>W.value&&W.value===x.current),E=Gy(W=>m||s.filter()===!1?!0:W.search?W.filtered.items.get(i)>0:!0);P.useEffect(()=>{let W=a.current;if(!(!W||t.disabled))return W.addEventListener(k6,C),()=>W.removeEventListener(k6,C)},[E,t.onSelect,t.disabled]);function C(){var W,Z;N(),(Z=(W=f.current).onSelect)==null||Z.call(W,x.current)}function N(){_.setState("value",x.current,!0)}if(!E)return null;let{disabled:L,value:M,onSelect:D,forceMount:B,keywords:V,...G}=t;return P.createElement(rn.div,{ref:Cm(a,e),...G,id:i,"cmdk-item":"",role:"option","aria-disabled":!!L,"aria-selected":!!T,"data-disabled":!!L,"data-selected":!!T,onPointerMove:L||s.getDisablePointerSelection()?void 0:N,onClick:L?void 0:C},t.children)}),ZHe=P.forwardRef((t,e)=>{let{heading:r,children:n,forceMount:i,...a}=t,c=Cl(),s=P.useRef(null),f=P.useRef(null),m=Cl(),x=VC(),_=Gy(E=>i||x.filter()===!1?!0:E.search?E.filtered.groups.has(c):!0);k_(()=>x.group(c),[]),o0e(c,s,[t.value,t.heading,f]);let T=P.useMemo(()=>({id:c,forceMount:i}),[i]);return P.createElement(rn.div,{ref:Cm(s,e),...a,"cmdk-group":"",role:"presentation",hidden:_?void 0:!0},r&&P.createElement("div",{ref:f,"cmdk-group-heading":"","aria-hidden":!0,id:m},r),zO(t,E=>P.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?m:void 0},P.createElement(i0e.Provider,{value:T},E))))}),XHe=P.forwardRef((t,e)=>{let{alwaysRender:r,...n}=t,i=P.useRef(null),a=Gy(c=>!c.search);return!r&&!a?null:P.createElement(rn.div,{ref:Cm(i,e),...n,"cmdk-separator":"",role:"separator"})}),QHe=P.forwardRef((t,e)=>{let{onValueChange:r,...n}=t,i=t.value!=null,a=$9(),c=Gy(m=>m.search),s=Gy(m=>m.selectedItemId),f=VC();return P.useEffect(()=>{t.value!=null&&a.setState("search",t.value)},[t.value]),P.createElement(rn.input,{ref:e,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":f.listId,"aria-labelledby":f.labelId,"aria-activedescendant":s,id:f.inputId,type:"text",value:i?t.value:c,onChange:m=>{i||a.setState("search",m.target.value),r==null||r(m.target.value)}})}),JHe=P.forwardRef((t,e)=>{let{children:r,label:n="Suggestions",...i}=t,a=P.useRef(null),c=P.useRef(null),s=Gy(m=>m.selectedItemId),f=VC();return P.useEffect(()=>{if(c.current&&a.current){let m=c.current,x=a.current,_,T=new ResizeObserver(()=>{_=requestAnimationFrame(()=>{let E=m.offsetHeight;x.style.setProperty("--cmdk-list-height",E.toFixed(1)+"px")})});return T.observe(m),()=>{cancelAnimationFrame(_),T.unobserve(m)}}},[]),P.createElement(rn.div,{ref:Cm(a,e),...i,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":s,"aria-label":n,id:f.listId},zO(t,m=>P.createElement("div",{ref:Cm(c,f.listInnerRef),"cmdk-list-sizer":""},m)))}),eWe=P.forwardRef((t,e)=>{let{open:r,onOpenChange:n,overlayClassName:i,contentClassName:a,container:c,...s}=t;return P.createElement(XM,{open:r,onOpenChange:n},P.createElement(QM,{container:c},P.createElement(lS,{"cmdk-overlay":"",className:i}),P.createElement(cS,{"aria-label":t.label,"cmdk-dialog":"",className:a},P.createElement(s0e,{ref:e,...s}))))}),tWe=P.forwardRef((t,e)=>Gy(r=>r.filtered.count===0)?P.createElement(rn.div,{ref:e,...t,"cmdk-empty":"",role:"presentation"}):null),rWe=P.forwardRef((t,e)=>{let{progress:r,children:n,label:i="Loading...",...a}=t;return P.createElement(rn.div,{ref:e,...a,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},zO(t,c=>P.createElement("div",{"aria-hidden":!0},c)))}),Iu=Object.assign(s0e,{List:JHe,Item:YHe,Input:QHe,Group:ZHe,Separator:XHe,Dialog:eWe,Empty:tWe,Loading:rWe});function nWe(t,e){let r=t.nextElementSibling;for(;r;){if(r.matches(e))return r;r=r.nextElementSibling}}function iWe(t,e){let r=t.previousElementSibling;for(;r;){if(r.matches(e))return r;r=r.previousElementSibling}}function a0e(t){let e=P.useRef(t);return k_(()=>{e.current=t}),e}var k_=typeof window>"u"?P.useEffect:P.useLayoutEffect;function Yb(t){let e=P.useRef();return e.current===void 0&&(e.current=t()),e}function Gy(t){let e=$9(),r=()=>t(e.snapshot());return P.useSyncExternalStore(e.subscribe,r,r)}function o0e(t,e,r,n=[]){let i=P.useRef(),a=VC();return k_(()=>{var c;let s=(()=>{var m;for(let x of r){if(typeof x=="string")return x.trim();if(typeof x=="object"&&"current"in x)return x.current?(m=x.current.textContent)==null?void 0:m.trim():i.current}})(),f=n.map(m=>m.trim());a.value(t,s,f),(c=e.current)==null||c.setAttribute(Kb,s),i.current=s}),i}var sWe=()=>{let[t,e]=P.useState(),r=Yb(()=>new Map);return k_(()=>{r.current.forEach(n=>n()),r.current=new Map},[t]),(n,i)=>{r.current.set(n,i),e({})}};function aWe(t){let e=t.type;return typeof e=="function"?e(t.props):"render"in e?e.render(t.props):t}function zO({asChild:t,children:e},r){return t&&P.isValidElement(e)?P.cloneElement(aWe(e),{ref:e.ref},r(e.props.children)):r(e)}var oWe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const uk=P.forwardRef(({className:t,...e},r)=>o.jsx(Iu,{ref:r,className:ir("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...e}));uk.displayName=Iu.displayName;const lWe=({children:t,...e})=>o.jsx(ro,{...e,children:o.jsx(za,{className:"overflow-hidden p-0 shadow-lg",children:o.jsx(uk,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:t})})}),dk=P.forwardRef(({className:t,...e},r)=>o.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[o.jsx(x_,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),o.jsx(Iu.Input,{ref:r,className:ir("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...e})]}));dk.displayName=Iu.Input.displayName;const hk=P.forwardRef(({className:t,...e},r)=>o.jsx(Iu.List,{ref:r,className:ir("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...e}));hk.displayName=Iu.List.displayName;const fk=P.forwardRef((t,e)=>o.jsx(Iu.Empty,{ref:e,className:"py-6 text-center text-sm",...t}));fk.displayName=Iu.Empty.displayName;const v1=P.forwardRef(({className:t,...e},r)=>o.jsx(Iu.Group,{ref:r,className:ir("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...e}));v1.displayName=Iu.Group.displayName;const cWe=P.forwardRef(({className:t,...e},r)=>o.jsx(Iu.Separator,{ref:r,className:ir("-mx-1 h-px bg-border",t),...e}));cWe.displayName=Iu.Separator.displayName;const gy=P.forwardRef(({className:t,...e},r)=>o.jsx(Iu.Item,{ref:r,className:ir("group relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-primary/80 data-[selected=true]:text-primary-foreground data-[disabled=true]:opacity-50",t),...e}));gy.displayName=Iu.Item.displayName;const uWe={event:{label:"Events",icon:Xf,color:"bg-blue-500/10 text-blue-600"},template:{label:"Templates",icon:qM,color:"bg-purple-500/10 text-purple-600"},academy:{label:"Academy",icon:HA,color:"bg-amber-500/10 text-amber-600"},toolbox:{label:"Toolbox",icon:hG,color:"bg-green-500/10 text-green-600"},"social-swag":{label:"Social Swag",icon:Es,color:"bg-fuchsia-500/10 text-fuchsia-600"}},Tte=()=>{const[t,e]=P.useState(!1),[r,n]=P.useState(""),[i,a]=P.useState([]),[c,s]=P.useState(!1),f=$a(),{searchDestinations:m,isFavorite:x,routeFor:_}=Jxe(),T=r.trim()?m(r).slice(0,6):[];P.useEffect(()=>{const L=M=>{M.key==="k"&&(M.metaKey||M.ctrlKey)&&(M.preventDefault(),e(D=>!D))};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[]);const E=P.useCallback(async L=>{if(!L.trim()){a([]);return}s(!0);const M=`%${L}%`;try{const[D,B,V,G,W]=await Promise.all([De.from("events").select("id, title, description, event_date").eq("is_published",!0).or(`title.ilike.${M},description.ilike.${M}`).limit(5),De.from("canva_templates").select("id, name, description, publish_date").or(`name.ilike.${M},description.ilike.${M}`).limit(5),De.from("academy_videos").select("id, title, description, publish_date").eq("is_published",!0).or(`title.ilike.${M},description.ilike.${M}`).limit(5),De.from("resource_kits").select("id, name, description, publish_date").eq("is_published",!0).or(`name.ilike.${M},description.ilike.${M}`).limit(5),De.from("social_swag").select("id, title, description, publish_date").eq("is_published",!0).or(`title.ilike.${M},description.ilike.${M}`).limit(5)]),Z=[];D.data&&D.data.forEach(Q=>{Z.push({id:Q.id,title:Q.title,description:Q.description,type:"event",date:Q.event_date,path:`/event/${Q.id}`})}),B.data&&B.data.forEach(Q=>{Z.push({id:Q.id,title:Q.name,description:Q.description,type:"template",date:Q.publish_date,path:`/templates/${Q.id}`})}),V.data&&V.data.forEach(Q=>{Z.push({id:Q.id,title:Q.title,description:Q.description,type:"academy",date:Q.publish_date,path:`/academy/${Q.id}`})}),G.data&&G.data.forEach(Q=>{Z.push({id:Q.id,title:Q.name,description:Q.description,type:"toolbox",date:Q.publish_date,path:`/toolbox/${Q.id}`})}),W.data&&W.data.forEach(Q=>{Z.push({id:Q.id,title:Q.title,description:Q.description,type:"social-swag",date:Q.publish_date,path:`/social-swag/${Q.id}`})}),a(Z)}catch(D){console.error("Search error:",D)}finally{s(!1)}},[]);P.useEffect(()=>{const L=setTimeout(()=>{E(r)},300);return()=>clearTimeout(L)},[r,E]);const C=L=>{e(!1),n(""),f(L)},N=i.reduce((L,M)=>(L[M.type]||(L[M.type]=[]),L[M.type].push(M),L),{});return o.jsxs(o.Fragment,{children:[o.jsxs(Kt,{variant:"outline",className:"relative h-9 w-9 p-0 xl:h-9 xl:w-60 xl:justify-start xl:px-3 xl:py-2",onClick:()=>e(!0),children:[o.jsx(x_,{className:"h-4 w-4 xl:mr-2"}),o.jsx("span",{className:"hidden xl:inline-flex text-muted-foreground text-sm",children:"Search..."}),o.jsxs("kbd",{className:"pointer-events-none absolute right-1.5 top-1.5 hidden h-6 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 xl:flex",children:[o.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),o.jsxs(lWe,{open:t,onOpenChange:e,children:[o.jsx(dk,{placeholder:"Search events, templates, academy, toolbox, social swag...",value:r,onValueChange:n}),o.jsxs(hk,{children:[T.length>0&&o.jsx(v1,{heading:"Go to",children:T.map(L=>{const M=L.icon;return o.jsxs(gy,{value:`nav-${L.id}-${L.label}`,onSelect:()=>{const D=_(L);L.external||L.openInNewTab?(e(!1),n(""),window.open(D,"_blank","noopener,noreferrer")):C(D)},className:"flex items-start gap-3 py-3 cursor-pointer",children:[o.jsx("div",{className:"p-2 rounded-md bg-primary/10 text-primary",children:o.jsx(M,{className:"h-4 w-4"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"font-medium truncate flex items-center gap-1.5",children:[L.label,x(L)&&o.jsx(bL,{className:"h-3 w-3 fill-current text-primary"})]}),L.description&&o.jsx("div",{className:"text-sm text-muted-foreground truncate",children:L.description})]}),o.jsx(hs,{variant:"secondary",className:"text-xs shrink-0",children:L.section})]},`nav-${L.id}`)})}),c&&o.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Searching..."}),!c&&r&&i.length===0&&T.length===0&&o.jsxs(fk,{children:['No results found for "',r,'"']}),!c&&!r&&o.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Start typing to search pages, apps and content..."}),Object.entries(N).map(([L,M])=>{const D=uWe[L],B=D.icon;return o.jsx(v1,{heading:D.label,children:M.map(V=>o.jsxs(gy,{value:`${V.type}-${V.id}-${V.title}`,onSelect:()=>C(V.path),className:"flex items-start gap-3 py-3 cursor-pointer",children:[o.jsx("div",{className:`p-2 rounded-md ${D.color}`,children:o.jsx(B,{className:"h-4 w-4"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"font-medium truncate",children:V.title}),V.description&&o.jsx("div",{className:"text-sm text-muted-foreground truncate group-data-[selected=true]:text-primary-foreground/80",children:V.description})]}),o.jsxs("div",{className:"flex flex-col items-end gap-1 shrink-0",children:[o.jsx(hs,{variant:"secondary",className:"text-xs",children:D.label}),o.jsx("span",{className:"text-xs text-muted-foreground",children:qxe(new Date(V.date),{addSuffix:!0})})]})]},`${V.type}-${V.id}`))},L)})]})]})]})},dWe=({expiresAt:t,className:e,showUpgradeButton:r=!0})=>{const[n,i]=P.useState(null),a=$a();if(P.useEffect(()=>{const m=()=>{const _=new Date().getTime(),E=new Date(t).getTime()-_;if(E<=0){i({days:0,hours:0,minutes:0});return}const C=Math.floor(E/(1e3*60*60*24)),N=Math.floor(E%(1e3*60*60*24)/(1e3*60*60)),L=Math.floor(E%(1e3*60*60)/(1e3*60));i({days:C,hours:N,minutes:L})};m();const x=setInterval(m,6e4);return()=>clearInterval(x)},[t]),!n)return null;const c=n.days===0&&n.hours===0&&n.minutes===0,s=n.days<=1,f=n.days<=3&&!s;return c?o.jsxs("div",{className:ir("flex items-center justify-between gap-3 px-4 py-2 rounded-lg bg-destructive/10 border border-destructive/20",e),children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(SC,{className:"h-4 w-4 text-destructive"}),o.jsx("span",{className:"text-sm font-medium text-destructive",children:"Your free trial has expired"})]}),r&&o.jsxs(Kt,{size:"sm",onClick:()=>a("/subscription"),className:"bg-primary hover:bg-primary/90 text-xs h-7 px-3",children:[o.jsx(Es,{className:"h-3 w-3 mr-1"}),"Upgrade Now"]})]}):o.jsxs("div",{className:ir("flex items-center justify-between gap-3 px-4 py-2 rounded-lg border transition-colors",s?"bg-destructive/10 border-destructive/20":f?"bg-amber-500/10 border-amber-500/20":"bg-primary/10 border-primary/20",e),children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(pc,{className:ir("h-4 w-4",s?"text-destructive":f?"text-amber-500":"text-primary")}),o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:ir("text-sm font-medium",s?"text-destructive":f?"text-amber-600":"text-primary"),children:"Free Trial:"}),o.jsxs("div",{className:"flex items-center gap-1",children:[n.days>0&&o.jsxs("span",{className:ir("text-sm font-bold",s?"text-destructive":f?"text-amber-600":"text-primary"),children:[n.days,"d"]}),o.jsxs("span",{className:ir("text-sm font-bold",s?"text-destructive":f?"text-amber-600":"text-primary"),children:[n.hours,"h"]}),o.jsxs("span",{className:ir("text-sm font-bold",s?"text-destructive":f?"text-amber-600":"text-primary"),children:[n.minutes,"m"]}),o.jsx("span",{className:ir("text-xs",s?"text-destructive/70":f?"text-amber-600/70":"text-primary/70"),children:"remaining"})]})]})]}),r&&o.jsxs(Kt,{size:"sm",onClick:()=>a("/subscription"),variant:s?"destructive":f?"default":"outline",className:ir("text-xs h-7 px-3",f&&"bg-amber-500 hover:bg-amber-600 text-white"),children:[o.jsx(Es,{className:"h-3 w-3 mr-1"}),"Upgrade"]})]})},hWe=()=>{const t=$a();return o.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center p-4 overflow-y-auto",children:o.jsxs(qn,{className:"w-full max-w-2xl shadow-2xl border-destructive/20 my-8",children:[o.jsxs(Qu,{className:"text-center pb-2",children:[o.jsx("div",{className:"mx-auto mb-4 h-16 w-16 rounded-full bg-destructive/10 flex items-center justify-center",children:o.jsx(SC,{className:"h-8 w-8 text-destructive"})}),o.jsx(Ju,{className:"text-2xl",children:"Your Free Trial Has Ended"}),o.jsx(sk,{className:"text-base",children:"Your 7-day free trial has expired. Upgrade now to continue accessing all the powerful tools and resources LevelUp has to offer!"})]}),o.jsxs(ri,{className:"space-y-6",children:[o.jsxs("div",{className:"grid sm:grid-cols-2 gap-4",children:[o.jsx(qn,{className:"border-2 border-primary/20 hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>t("/subscription"),children:o.jsxs(ri,{className:"p-5 text-center",children:[o.jsx("div",{className:"mx-auto mb-3 h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:o.jsx(El,{className:"h-6 w-6 text-primary"})}),o.jsx("h3",{className:"font-semibold text-lg mb-1",children:"Individual Agent"}),o.jsxs("p",{className:"text-2xl font-bold text-primary mb-2",children:["$39",o.jsx("span",{className:"text-sm font-normal text-muted-foreground",children:"/mo"})]}),o.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Perfect for solo agents ready to level up"}),o.jsxs(Kt,{className:"w-full",onClick:e=>{e.stopPropagation(),t("/subscription")},children:[o.jsx(Es,{className:"h-4 w-4 mr-2"}),"Choose Individual"]})]})}),o.jsx(qn,{className:"border-2 border-amber-500/20 hover:border-amber-500/50 transition-colors cursor-pointer",onClick:()=>t("/subscription"),children:o.jsxs(ri,{className:"p-5 text-center",children:[o.jsx("div",{className:"mx-auto mb-3 h-12 w-12 rounded-full bg-amber-500/10 flex items-center justify-center",children:o.jsx(Eo,{className:"h-6 w-6 text-amber-600"})}),o.jsx("h3",{className:"font-semibold text-lg mb-1",children:"Brokerage"}),o.jsxs("p",{className:"text-2xl font-bold text-amber-600 mb-2",children:["$299",o.jsx("span",{className:"text-sm font-normal text-muted-foreground",children:"/mo"})]}),o.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"For teams and brokerages"}),o.jsxs(Kt,{variant:"outline",className:"w-full border-amber-500 text-amber-600 hover:bg-amber-50",onClick:e=>{e.stopPropagation(),t("/subscription")},children:[o.jsx(Eo,{className:"h-4 w-4 mr-2"}),"Choose Brokerage"]})]})})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("p",{className:"text-sm text-muted-foreground text-center",children:"With a full membership, you'll get:"}),o.jsxs("ul",{className:"text-sm space-y-1 text-muted-foreground grid sm:grid-cols-2 gap-x-4",children:[o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," Unlimited access to all marketing templates"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," Complete Academy training library"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," AI-powered tools and resources"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," Community forums and support"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," Exclusive member events and workshops"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"✓"})," Deal pipeline & scorecard tracking"]})]})]}),o.jsxs("div",{className:"bg-muted/50 rounded-lg p-4 space-y-3",children:[o.jsx("p",{className:"text-sm font-medium text-center",children:"Questions? Contact us:"}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:[o.jsxs("a",{href:"tel:1-866-527-8668",className:"flex items-center justify-center gap-2 text-primary hover:underline",children:[o.jsx(Ui,{className:"h-4 w-4"}),o.jsx("span",{children:"1-866-527-8668"})]}),o.jsxs("a",{href:"mailto:support@relevelup.com",className:"flex items-center justify-center gap-2 text-primary hover:underline",children:[o.jsx($i,{className:"h-4 w-4"}),o.jsx("span",{children:"support@relevelup.com"})]})]})]})]})]})})},fWe=({hasUnseenBrief:t,onClick:e,className:r})=>o.jsxs(gFe,{children:[o.jsx(yFe,{asChild:!0,children:o.jsxs(Kt,{variant:"ghost",size:"icon",onClick:e,className:ir("relative transition-colors",t&&"text-primary hover:text-primary",r),children:[o.jsx(bC,{className:"h-5 w-5"}),t&&o.jsx("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-primary animate-pulse"})]})}),o.jsx(wpe,{children:o.jsx("p",{children:"The LevelUp Brief"})})]});var $O="Checkbox",[pWe,gUt]=Go($O),[mWe,U9]=pWe($O);function gWe(t){const{__scopeCheckbox:e,checked:r,children:n,defaultChecked:i,disabled:a,form:c,name:s,onCheckedChange:f,required:m,value:x="on",internal_do_not_use_render:_}=t,[T,E]=sd({prop:r,defaultProp:i??!1,onChange:f,caller:$O}),[C,N]=P.useState(null),[L,M]=P.useState(null),D=P.useRef(!1),B=C?!!c||!!C.closest("form"):!0,V={checked:T,disabled:a,setChecked:E,control:C,setControl:N,name:s,form:c,value:x,hasConsumerStoppedPropagationRef:D,required:m,defaultChecked:Iy(i)?!1:i,isFormControl:B,bubbleInput:L,setBubbleInput:M};return o.jsx(mWe,{scope:e,...V,children:yWe(_)?_(V):n})}var l0e="CheckboxTrigger",c0e=P.forwardRef(({__scopeCheckbox:t,onKeyDown:e,onClick:r,...n},i)=>{const{control:a,value:c,disabled:s,checked:f,required:m,setControl:x,setChecked:_,hasConsumerStoppedPropagationRef:T,isFormControl:E,bubbleInput:C}=U9(l0e,t),N=Gn(i,x),L=P.useRef(f);return P.useEffect(()=>{const M=a==null?void 0:a.form;if(M){const D=()=>_(L.current);return M.addEventListener("reset",D),()=>M.removeEventListener("reset",D)}},[a,_]),o.jsx(rn.button,{type:"button",role:"checkbox","aria-checked":Iy(f)?"mixed":f,"aria-required":m,"data-state":p0e(f),"data-disabled":s?"":void 0,disabled:s,value:c,...n,ref:N,onKeyDown:Or(e,M=>{M.key==="Enter"&&M.preventDefault()}),onClick:Or(r,M=>{_(D=>Iy(D)?!0:!D),C&&E&&(T.current=M.isPropagationStopped(),T.current||M.stopPropagation())})})});c0e.displayName=l0e;var V9=P.forwardRef((t,e)=>{const{__scopeCheckbox:r,name:n,checked:i,defaultChecked:a,required:c,disabled:s,value:f,onCheckedChange:m,form:x,..._}=t;return o.jsx(gWe,{__scopeCheckbox:r,checked:i,defaultChecked:a,disabled:s,required:c,onCheckedChange:m,name:n,form:x,value:f,internal_do_not_use_render:({isFormControl:T})=>o.jsxs(o.Fragment,{children:[o.jsx(c0e,{..._,ref:e,__scopeCheckbox:r}),T&&o.jsx(f0e,{__scopeCheckbox:r})]})})});V9.displayName=$O;var u0e="CheckboxIndicator",d0e=P.forwardRef((t,e)=>{const{__scopeCheckbox:r,forceMount:n,...i}=t,a=U9(u0e,r);return o.jsx(ul,{present:n||Iy(a.checked)||a.checked===!0,children:o.jsx(rn.span,{"data-state":p0e(a.checked),"data-disabled":a.disabled?"":void 0,...i,ref:e,style:{pointerEvents:"none",...t.style}})})});d0e.displayName=u0e;var h0e="CheckboxBubbleInput",f0e=P.forwardRef(({__scopeCheckbox:t,...e},r)=>{const{control:n,hasConsumerStoppedPropagationRef:i,checked:a,defaultChecked:c,required:s,disabled:f,name:m,value:x,form:_,bubbleInput:T,setBubbleInput:E}=U9(h0e,t),C=Gn(r,E),N=zC(a),L=jC(n);P.useEffect(()=>{const D=T;if(!D)return;const B=window.HTMLInputElement.prototype,G=Object.getOwnPropertyDescriptor(B,"checked").set,W=!i.current;if(N!==a&&G){const Z=new Event("click",{bubbles:W});D.indeterminate=Iy(a),G.call(D,Iy(a)?!1:a),D.dispatchEvent(Z)}},[T,N,a,i]);const M=P.useRef(Iy(a)?!1:a);return o.jsx(rn.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??M.current,required:s,disabled:f,name:m,value:x,form:_,...e,tabIndex:-1,ref:C,style:{...e.style,...L,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});f0e.displayName=h0e;function yWe(t){return typeof t=="function"}function Iy(t){return t==="indeterminate"}function p0e(t){return Iy(t)?"indeterminate":t?"checked":"unchecked"}const qC=P.forwardRef(({className:t,...e},r)=>o.jsx(V9,{ref:r,className:ir("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...e,children:o.jsx(d0e,{className:ir("flex items-center justify-center text-current"),children:o.jsx(Ao,{className:"h-4 w-4"})})}));qC.displayName=V9.displayName;var q9="Radio",[xWe,m0e]=Go(q9),[_We,vWe]=xWe(q9),g0e=P.forwardRef((t,e)=>{const{__scopeRadio:r,name:n,checked:i=!1,required:a,disabled:c,value:s="on",onCheck:f,form:m,...x}=t,[_,T]=P.useState(null),E=Gn(e,L=>T(L)),C=P.useRef(!1),N=_?m||!!_.closest("form"):!0;return o.jsxs(_We,{scope:r,checked:i,disabled:c,children:[o.jsx(rn.button,{type:"button",role:"radio","aria-checked":i,"data-state":v0e(i),"data-disabled":c?"":void 0,disabled:c,value:s,...x,ref:E,onClick:Or(t.onClick,L=>{i||f==null||f(),N&&(C.current=L.isPropagationStopped(),C.current||L.stopPropagation())})}),N&&o.jsx(_0e,{control:_,bubbles:!C.current,name:n,value:s,checked:i,required:a,disabled:c,form:m,style:{transform:"translateX(-100%)"}})]})});g0e.displayName=q9;var y0e="RadioIndicator",x0e=P.forwardRef((t,e)=>{const{__scopeRadio:r,forceMount:n,...i}=t,a=vWe(y0e,r);return o.jsx(ul,{present:n||a.checked,children:o.jsx(rn.span,{"data-state":v0e(a.checked),"data-disabled":a.disabled?"":void 0,...i,ref:e})})});x0e.displayName=y0e;var bWe="RadioBubbleInput",_0e=P.forwardRef(({__scopeRadio:t,control:e,checked:r,bubbles:n=!0,...i},a)=>{const c=P.useRef(null),s=Gn(c,a),f=zC(r),m=jC(e);return P.useEffect(()=>{const x=c.current;if(!x)return;const _=window.HTMLInputElement.prototype,E=Object.getOwnPropertyDescriptor(_,"checked").set;if(f!==r&&E){const C=new Event("click",{bubbles:n});E.call(x,r),x.dispatchEvent(C)}},[f,r,n]),o.jsx(rn.input,{type:"radio","aria-hidden":!0,defaultChecked:r,...i,tabIndex:-1,ref:s,style:{...i.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_0e.displayName=bWe;function v0e(t){return t?"checked":"unchecked"}var wWe=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],UO="RadioGroup",[SWe,yUt]=Go(UO,[xS,m0e]),b0e=xS(),w0e=m0e(),[TWe,EWe]=SWe(UO),S0e=P.forwardRef((t,e)=>{const{__scopeRadioGroup:r,name:n,defaultValue:i,value:a,required:c=!1,disabled:s=!1,orientation:f,dir:m,loop:x=!0,onValueChange:_,...T}=t,E=b0e(r),C=B_(m),[N,L]=sd({prop:a,defaultProp:i??null,onChange:_,caller:UO});return o.jsx(TWe,{scope:r,name:n,required:c,disabled:s,value:N,onValueChange:L,children:o.jsx(WG,{asChild:!0,...E,orientation:f,dir:C,loop:x,children:o.jsx(rn.div,{role:"radiogroup","aria-required":c,"aria-orientation":f,"data-disabled":s?"":void 0,dir:C,...T,ref:e})})})});S0e.displayName=UO;var T0e="RadioGroupItem",E0e=P.forwardRef((t,e)=>{const{__scopeRadioGroup:r,disabled:n,...i}=t,a=EWe(T0e,r),c=a.disabled||n,s=b0e(r),f=w0e(r),m=P.useRef(null),x=Gn(e,m),_=a.value===i.value,T=P.useRef(!1);return P.useEffect(()=>{const E=N=>{wWe.includes(N.key)&&(T.current=!0)},C=()=>T.current=!1;return document.addEventListener("keydown",E),document.addEventListener("keyup",C),()=>{document.removeEventListener("keydown",E),document.removeEventListener("keyup",C)}},[]),o.jsx(KG,{asChild:!0,...s,focusable:!c,active:_,children:o.jsx(g0e,{disabled:c,required:a.required,checked:_,...f,...i,name:a.name,ref:x,onCheck:()=>a.onValueChange(i.value),onKeyDown:Or(E=>{E.key==="Enter"&&E.preventDefault()}),onFocus:Or(i.onFocus,()=>{var E;T.current&&((E=m.current)==null||E.click())})})})});E0e.displayName=T0e;var AWe="RadioGroupIndicator",A0e=P.forwardRef((t,e)=>{const{__scopeRadioGroup:r,...n}=t,i=w0e(r);return o.jsx(x0e,{...i,...n,ref:e})});A0e.displayName=AWe;var k0e=S0e,C0e=E0e,kWe=A0e;const I0e=P.forwardRef(({className:t,...e},r)=>o.jsx(k0e,{className:ir("grid gap-2",t),...e,ref:r}));I0e.displayName=k0e.displayName;const j0e=P.forwardRef(({className:t,...e},r)=>o.jsx(C0e,{ref:r,className:ir("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...e,children:o.jsx(kWe,{className:"flex items-center justify-center",children:o.jsx(l1,{className:"h-2.5 w-2.5 fill-current text-current"})})}));j0e.displayName=C0e.displayName;const CWe=({brief:t,open:e,onClose:r,onDismiss:n})=>{const{user:i}=$n(),[a,c]=P.useState({}),[s,f]=P.useState({}),[m,x]=P.useState([]);P.useEffect(()=>{e&&i&&t.polls.length>0&&_()},[e,i,t.polls]);const _=async()=>{if(!i)return;const L=t.polls.map(D=>D.id),{data:M}=await De.from("levelup_brief_poll_responses").select("poll_id, option_id").eq("user_id",i.id).in("poll_id",L);if(M){const D={};M.forEach(B=>{D[B.poll_id]||(D[B.poll_id]=[]),D[B.poll_id].push(B.option_id)}),f(D)}},T=(L,M)=>{c(D=>({...D,[L]:M}))},E=(L,M,D)=>{c(B=>{const V=B[L]||[];return D?{...B,[L]:[...V,M]}:{...B,[L]:V.filter(G=>G!==M)}})},C=async L=>{if(!i)return;const M=a[L];if(!M||Array.isArray(M)&&M.length===0){Jt.error("Please select an option");return}x(D=>[...D,L]);try{await De.from("levelup_brief_poll_responses").delete().eq("poll_id",L).eq("user_id",i.id);const D=Array.isArray(M)?M:[M],B=D.map(G=>({poll_id:L,option_id:G,user_id:i.id})),{error:V}=await De.from("levelup_brief_poll_responses").insert(B);if(V)throw V;f(G=>({...G,[L]:D})),Jt.success("Response submitted!")}catch(D){console.error("Error submitting poll response:",D),Jt.error("Failed to submit response")}finally{x(D=>D.filter(B=>B!==L))}},N=L=>(L.includes("mediadelivery.net")||L.includes("bunny"),L);return o.jsx(ro,{open:e,onOpenChange:L=>!L&&r(),children:o.jsxs(za,{className:"max-w-2xl max-h-[90vh] p-0 overflow-hidden [&>button]:hidden",children:[o.jsxs("div",{className:"bg-gradient-to-r from-primary to-primary/80 p-4 pr-12 text-primary-foreground relative",children:[o.jsx("button",{onClick:r,className:"absolute top-3 right-3 p-1.5 rounded-full bg-white/30 hover:bg-white/50 transition-colors","aria-label":"Close",children:o.jsx(Zs,{className:"h-5 w-5 text-white"})}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"p-2 bg-white/20 rounded-lg",children:o.jsx(bC,{className:"h-6 w-6"})}),o.jsxs("div",{children:[o.jsx(hs,{variant:"secondary",className:"mb-1 bg-white/20 text-white border-0",children:"The LevelUp Brief"}),o.jsx(qo,{className:"text-xl font-bold text-white",children:t.brief.title})]})]})]}),o.jsx(pp,{className:"max-h-[calc(90vh-240px)]",children:o.jsxs("div",{className:"p-6 space-y-6",children:[t.brief.description&&o.jsx("div",{className:"text-muted-foreground prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:t.brief.description}}),t.brief.video_url&&o.jsx("div",{className:"relative w-full aspect-video rounded-lg overflow-hidden bg-muted",children:o.jsx("iframe",{src:N(t.brief.video_url),className:"absolute inset-0 w-full h-full",allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0})}),t.brief.graphic_url&&!t.brief.video_url&&o.jsx("div",{className:"rounded-lg overflow-hidden bg-muted",children:t.brief.graphic_link_url?o.jsx("a",{href:t.brief.graphic_link_url,target:"_blank",rel:"noopener noreferrer",className:"block",children:o.jsx("img",{src:t.brief.graphic_url,alt:"Brief graphic",className:"w-full object-contain cursor-pointer hover:opacity-90 transition-opacity"})}):o.jsx("img",{src:t.brief.graphic_url,alt:"Brief graphic",className:"w-full object-contain"})}),t.links.length>0&&o.jsxs("div",{className:"space-y-3",children:[o.jsx("h4",{className:"font-semibold text-foreground",children:"Quick Links"}),o.jsx("div",{className:"flex flex-wrap gap-2",children:t.links.map(L=>o.jsxs(Kt,{variant:"outline",size:"sm",onClick:()=>window.open(L.url,"_blank"),className:"gap-2",children:[o.jsx(sS,{className:"h-4 w-4"}),L.title]},L.id))})]}),t.polls.map(L=>{var B,V;const M=((B=s[L.id])==null?void 0:B.length)>0,D=m.includes(L.id);return o.jsxs("div",{className:"space-y-3 p-4 bg-muted/50 rounded-lg border",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("h4",{className:"font-semibold text-foreground",children:L.question}),M&&o.jsxs(hs,{variant:"secondary",className:"gap-1",children:[o.jsx(gc,{className:"h-3 w-3"}),"Responded"]})]}),L.poll_type==="single"?o.jsx(I0e,{value:a[L.id]||((V=s[L.id])==null?void 0:V[0])||"",onValueChange:G=>T(L.id,G),className:"space-y-2",children:L.options.map(G=>o.jsxs("div",{className:"flex items-center space-x-2",children:[o.jsx(j0e,{value:G.id,id:G.id}),o.jsx(Fr,{htmlFor:G.id,className:"cursor-pointer",children:G.option_text})]},G.id))}):o.jsx("div",{className:"space-y-2",children:L.options.map(G=>{const Z=(a[L.id]||s[L.id]||[]).includes(G.id);return o.jsxs("div",{className:"flex items-center space-x-2",children:[o.jsx(qC,{id:G.id,checked:Z,onCheckedChange:Q=>E(L.id,G.id,Q)}),o.jsx(Fr,{htmlFor:G.id,className:"cursor-pointer",children:G.option_text})]},G.id)})}),o.jsx(Kt,{size:"sm",onClick:()=>C(L.id),disabled:D,children:D?"Submitting...":M?"Update Response":"Submit"})]},L.id)})]})}),o.jsxs("div",{className:"p-4 pb-[calc(1rem+env(safe-area-inset-bottom))] border-t bg-muted/30 flex flex-col items-center gap-2 sticky bottom-0 z-10",children:[o.jsx(Kt,{onClick:r,className:"w-full max-w-xs",children:"Got it!"}),o.jsx(Kt,{variant:"ghost",size:"sm",onClick:n,children:"Don't show again"})]})]})})},IWe=()=>{const{user:t}=$n(),[e,r]=P.useState(null),[n,i]=P.useState(!1),[a,c]=P.useState(!0),[s,f]=P.useState(!1),m=P.useCallback(async()=>{if(!t){c(!1);return}try{const{data:C,error:N}=await De.from("levelup_briefs").select("*").eq("is_published",!0).lte("publish_date",new Date().toISOString()).order("publish_date",{ascending:!1}).limit(1).single();if(N||!C){c(!1);return}const{data:L}=await De.from("levelup_brief_views").select("*").eq("brief_id",C.id).eq("user_id",t.id).maybeSingle(),[M,D]=await Promise.all([De.from("levelup_brief_links").select("*").eq("brief_id",C.id).order("sort_order"),De.from("levelup_brief_polls").select("*").eq("brief_id",C.id).order("sort_order")]),B=[];if(D.data)for(const Q of D.data){const{data:se}=await De.from("levelup_brief_poll_options").select("*").eq("poll_id",Q.id).order("sort_order");B.push({...Q,options:se||[]})}const V={brief:C,links:M.data||[],polls:B};r(V);const G=!!L,W=(L==null?void 0:L.dismissed_at)!=null,Z=localStorage.getItem(`brief-dismissed-${C.id}`)==="true";if(W||Z)f(!1),i(!1);else if(!G)i(!0),f(!0);else if(C.show_frequency==="every_login")i(!0),f(!0);else if(C.show_frequency==="daily"){const Q=new Date(L.viewed_at);(new Date().getTime()-Q.getTime())/(1e3*60*60)>=24&&(i(!0),f(!0))}else f(!1)}catch(C){console.error("Error fetching brief:",C)}finally{c(!1)}},[t]);P.useEffect(()=>{m()},[m]);const x=async()=>{if(!(!t||!e))try{const{data:C}=await De.from("levelup_brief_views").select("id").eq("brief_id",e.brief.id).eq("user_id",t.id).maybeSingle();C?await De.from("levelup_brief_views").update({viewed_at:new Date().toISOString()}).eq("id",C.id):await De.from("levelup_brief_views").insert({brief_id:e.brief.id,user_id:t.id})}catch(C){console.error("Error marking brief as viewed:",C)}};return{currentBrief:e,shouldShowPopup:n,hasUnseenBrief:s,loading:a,openBrief:()=>{i(!0)},closeBrief:()=>{i(!1),x()},dismissBrief:async()=>{if(!(!t||!e)){i(!1),f(!1);try{const{data:C,error:N}=await De.from("levelup_brief_views").select("id").eq("brief_id",e.brief.id).eq("user_id",t.id).maybeSingle();if(N&&console.error("Error checking existing brief view:",N),C){const{error:L}=await De.from("levelup_brief_views").update({dismissed_at:new Date().toISOString()}).eq("id",C.id).eq("user_id",t.id);L&&console.error("Error updating brief dismiss:",L)}else{const{error:L}=await De.from("levelup_brief_views").insert({brief_id:e.brief.id,user_id:t.id,dismissed_at:new Date().toISOString()});L&&console.error("Error inserting brief dismiss:",L)}localStorage.setItem(`brief-dismissed-${e.brief.id}`,"true")}catch(C){console.error("Error dismissing brief:",C),e&&localStorage.setItem(`brief-dismissed-${e.brief.id}`,"true")}}},refetch:m}};function jWe(){const[t,e]=P.useState(!1),[r,n]=P.useState(!1),[i,a]=P.useState(null);P.useEffect(()=>{const f=localStorage.getItem("install-banner-dismissed"),m=localStorage.getItem("install-banner-shown");if(f||m)return;if(window.matchMedia("(display-mode: standalone)").matches||window.matchMedia("(display-mode: fullscreen)").matches||window.matchMedia("(display-mode: minimal-ui)").matches||window.navigator.standalone===!0||document.referrer.startsWith("android-app://")){localStorage.setItem("install-banner-dismissed","true");return}if(!/iPhone|iPad|iPod|Android/i.test(navigator.userAgent))return;const T=/iPhone|iPad|iPod/i.test(navigator.userAgent);n(T),e(!0),localStorage.setItem("install-banner-shown","true");const E=C=>{C.preventDefault(),a(C)};return window.addEventListener("beforeinstallprompt",E),()=>{window.removeEventListener("beforeinstallprompt",E)}},[]);const c=()=>{localStorage.setItem("install-banner-dismissed","true"),localStorage.setItem("install-banner-shown","true"),e(!1)},s=async()=>{if(i){await i.prompt();const{outcome:f}=await i.userChoice;f==="accepted"&&c(),a(null)}};return t?o.jsx("div",{className:"fixed bottom-0 left-0 right-0 z-50 p-4 bg-primary text-primary-foreground shadow-lg animate-in slide-in-from-bottom duration-300",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[o.jsx("div",{className:"flex-shrink-0 p-2 bg-primary-foreground/10 rounded-full",children:o.jsx(Zl,{className:"h-5 w-5"})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-medium text-sm",children:"Add LevelUp to your home screen"}),r?o.jsxs("p",{className:"text-xs opacity-80 flex items-center gap-1",children:["Tap ",o.jsx(rLe,{className:"h-3 w-3 inline"}),' then "Add to Home Screen"']}):o.jsx("p",{className:"text-xs opacity-80",children:"Quick access anytime"})]})]}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[!r&&i&&o.jsx(Kt,{size:"sm",variant:"secondary",onClick:s,className:"text-xs",children:"Install"}),o.jsx(Kt,{size:"sm",variant:"secondary",onClick:c,className:"text-xs",children:"Got it"}),o.jsx("button",{onClick:c,className:"p-1.5 hover:bg-primary-foreground/10 rounded-full transition-colors","aria-label":"Dismiss",children:o.jsx(Zs,{className:"h-4 w-4"})})]})]})}):null}const PWe=({children:t,onRefresh:e})=>{const[r,n]=P.useState(!1),[i,a]=P.useState(0),[c,s]=P.useState(!1),f=P.useRef(null),m=P.useRef(0),x=Ir(),_=80,T=120,E=P.useCallback(D=>{const B=f.current;B&&B.scrollTop<=0&&(m.current=D.touches[0].clientY,n(!0))},[]),C=P.useCallback(D=>{if(!r||c)return;const B=f.current;if(!B||B.scrollTop>0){n(!1),a(0);return}const G=D.touches[0].clientY-m.current;if(G>0){const Z=Math.min(G*.5,T);a(Z),Z>10&&D.preventDefault()}},[r,c]),N=P.useCallback(async()=>{if(r)if(n(!1),i>=_&&!c){s(!0),a(_);try{e?await e():await x.invalidateQueries()}catch(D){console.error("Refresh failed:",D)}finally{s(!1),a(0)}}else a(0)},[r,i,c,e,x]),L=Math.min(i/_,1),M=L*180;return o.jsxs("div",{ref:f,className:"h-full overflow-auto",onTouchStart:E,onTouchMove:C,onTouchEnd:N,children:[o.jsx("div",{className:"flex justify-center items-center overflow-hidden transition-all duration-200 ease-out",style:{height:i>0?i:0,opacity:L},children:o.jsx("div",{className:`p-2 rounded-full bg-primary/10 ${c?"animate-spin":""}`,style:{transform:c?void 0:`rotate(${M}deg)`,transition:c?void 0:"transform 0.1s ease-out"},children:o.jsx(eLe,{className:"h-5 w-5 text-primary"})})}),o.jsx("div",{style:{transform:i>0?`translateY(${Math.max(0,i-60)}px)`:void 0,transition:r?void 0:"transform 0.2s ease-out"},children:t})]})},NWe=()=>{const{user:t}=$n(),[e,r]=P.useState(!1),[n,i]=P.useState(!1),[a,c]=P.useState(0),[s,f]=P.useState(!0);P.useEffect(()=>{(async()=>{if(!t){f(!1);return}try{const{data:E}=await De.from("membership_reviews").select("id").eq("user_id",t.id).maybeSingle();if(E){i(!0),r(!1),f(!1);return}const{data:C}=await De.from("profiles").select("login_count").eq("id",t.id).single(),N=(C==null?void 0:C.login_count)||0;c(N);const L=sessionStorage.getItem("review-prompt-dismissed");r(N>=4&&!L)}catch(E){console.error("Error checking review eligibility:",E)}finally{f(!1)}})()},[t]);const m=P.useCallback(()=>{sessionStorage.setItem("review-prompt-dismissed","true"),r(!1)},[]),x=P.useCallback(async(T,E)=>{if(!t)return{success:!1,error:"Not authenticated"};try{const{error:C}=await De.from("membership_reviews").insert({user_id:t.id,rating:T,review_text:E});if(C)throw C;return i(!0),r(!1),{success:!0,pointsAwarded:25}}catch(C){return console.error("Error submitting review:",C),{success:!1,error:C.message}}},[t]),_=P.useCallback(async()=>{if(t)try{await De.from("membership_reviews").update({posted_to_google:!0}).eq("user_id",t.id)}catch(T){console.error("Error updating Google review status:",T)}},[t]);return{shouldShowPrompt:e,hasSubmittedReview:n,loginCount:a,isLoading:s,dismissPrompt:m,submitReview:x,markPostedToGoogle:_}},RWe="https://search.google.com/local/writereview?placeid=ChIJM73ERQD1QogRPxupMFObuck&source=g.page.m.ia._&laa=nmx-review-solicitation-ia2",LWe=()=>{const{shouldShowPrompt:t,isLoading:e,dismissPrompt:r,submitReview:n,markPostedToGoogle:i}=NWe(),[a,c]=P.useState(!1),[s,f]=P.useState("review"),[m,x]=P.useState(0),[_,T]=P.useState(0),[E,C]=P.useState(""),[N,L]=P.useState(!1),[M,D]=P.useState(!1);if(e||!t&&!M)return null;const B=async()=>{if(m===0){As({title:"Please select a rating",variant:"destructive"});return}L(!0);const W=await n(m,E);L(!1),W.success?(D(!0),As({title:"Thank you for your feedback!",description:"Your review helps us improve."}),f("google")):As({title:"Error submitting review",description:W.error,variant:"destructive"})},V=async W=>{W&&(await navigator.clipboard.writeText(E||`${m} star rating for LevelUp!`),As({title:"Review copied!",description:"Paste it on Google Reviews."}),await i(),window.open(RWe,"_blank")),c(!1),r()},G=()=>{c(!1),r()};return o.jsxs(o.Fragment,{children:[o.jsxs("button",{onClick:()=>c(!0),className:"fixed bottom-20 left-1/2 -translate-x-1/2 z-40 flex items-center gap-2 rounded-full bg-primary/90 px-3 py-2 text-xs text-primary-foreground shadow-lg backdrop-blur-sm transition-all hover:bg-primary hover:scale-105 md:bottom-6",children:[o.jsx(Xc,{className:"h-3.5 w-3.5 fill-current"}),o.jsx("span",{className:"hidden sm:inline",children:"Leave a Review"})]}),o.jsx(ro,{open:a,onOpenChange:G,children:o.jsx(za,{className:"sm:max-w-md",children:s==="review"?o.jsxs(o.Fragment,{children:[o.jsxs(cl,{children:[o.jsx(qo,{className:"text-center",children:"How are you enjoying LevelUp?"}),o.jsx(ad,{className:"text-center",children:"Your feedback helps us improve the experience for all members."})]}),o.jsxs("div",{className:"space-y-6 py-4",children:[o.jsx("div",{className:"flex justify-center gap-1",children:[1,2,3,4,5].map(W=>o.jsx("button",{type:"button",onClick:()=>x(W),onMouseEnter:()=>T(W),onMouseLeave:()=>T(0),className:"p-1 transition-transform hover:scale-110",children:o.jsx(Xc,{className:ir("h-8 w-8 transition-colors",(_||m)>=W?"fill-yellow-400 text-yellow-400":"text-muted-foreground")})},W))}),o.jsx(ud,{placeholder:"Tell us about your experience (optional)",value:E,onChange:W=>C(W.target.value),rows:4,className:"resize-none"}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Kt,{variant:"outline",onClick:G,className:"flex-1",children:"Maybe Later"}),o.jsx(Kt,{onClick:B,disabled:N||m===0,className:"flex-1",children:N?"Submitting...":"Submit Review"})]})]})]}):o.jsxs(o.Fragment,{children:[o.jsxs(cl,{children:[o.jsx(qo,{className:"text-center",children:"🎉 Thank you!"}),o.jsx(ad,{className:"text-center",children:"Would you mind sharing your review on Google? It really helps other agents discover LevelUp!"})]}),o.jsxs("div",{className:"space-y-4 py-4",children:[o.jsx("p",{className:"text-center text-sm text-muted-foreground",children:"We'll copy your review so you can easily paste it."}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Kt,{variant:"outline",onClick:()=>V(!1),className:"flex-1",children:"No Thanks"}),o.jsx(Kt,{onClick:()=>V(!0),className:"flex-1",children:"Yes, Open Google"})]})]})]})})})]})};function DWe(t){const e="=".repeat((4-t.length%4)%4),r=(t+e).replace(/-/g,"+").replace(/_/g,"/"),n=window.atob(r),i=new Uint8Array(n.length);for(let a=0;a{if(!_){c(!1);return}(async()=>{try{const N="vapid_public_key";let L=localStorage.getItem(N);if(!L){const{data:B,error:V}=await De.functions.invoke("get-vapid-public-key",{body:{}});if(V)throw V;if(L=(B==null?void 0:B.vapidPublicKey)??null,!L)throw new Error("Missing VAPID public key");localStorage.setItem(N,L)}x(L);const M=await navigator.serviceWorker.register("/push-sw.js",{scope:"/push-notifications/"});f(M),r(Notification.permission);const D=await M.pushManager.getSubscription();i(!!D)}catch(N){console.error("Error initializing push notifications:",N)}finally{c(!1)}})()},[_]);const T=P.useCallback(async()=>{if(!_||!s||!t)return console.error("Push notifications not supported or user not logged in"),!1;if(!m)return Jt.error("Push notifications are not ready yet. Please try again in a moment."),!1;try{c(!0);const C=await s.pushManager.getSubscription();if(C){try{await C.unsubscribe()}catch(V){console.warn("Failed to unsubscribe existing push subscription:",V)}const{error:B}=await De.from("push_subscriptions").delete().eq("user_id",t.id);B&&console.warn("Failed to cleanup push_subscriptions rows:",B)}if(Notification.permission!=="granted"){const B=await Notification.requestPermission();if(r(B),B!=="granted")return B==="denied"?Jt.error("Notifications blocked. Please enable them in your browser settings (click the lock icon in the address bar)."):Jt.error("Notification permission was dismissed. Please try again."),!1}const N=DWe(m);let L;try{L=await s.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:N})}catch(B){console.error("PushManager.subscribe() failed:",B);const V=(B==null?void 0:B.message)||String(B);return V.includes("permission")?Jt.error("Push permission denied. Check your browser notification settings."):V.includes("key")||V.includes("VAPID")?Jt.error("Push configuration error. Please contact support."):V.includes("AbortError")?Jt.error("Push subscription was cancelled. Please try again."):Jt.error(`Failed to subscribe: ${V}`),!1}const M=L.toJSON(),{error:D}=await De.from("push_subscriptions").upsert({user_id:t.id,endpoint:M.endpoint,p256dh_key:M.keys.p256dh,auth_key:M.keys.auth},{onConflict:"user_id,endpoint"});if(D)throw console.error("Error saving subscription:",D),Jt.error("Failed to save notification preferences. Please try again."),D;return i(!0),Jt.success("Push notifications enabled!"),!0}catch(C){if(console.error("Error subscribing to push notifications:",C),!(C instanceof Error&&C.message.includes("toast"))){const N=C instanceof Error?C.message:"Unknown error";Jt.error("Failed to enable push notifications: "+N)}return!1}finally{c(!1)}},[_,s,t,m]),E=P.useCallback(async()=>{if(!s||!t)return!1;try{c(!0);const C=await s.pushManager.getSubscription();return C&&await C.unsubscribe(),await De.from("push_subscriptions").delete().eq("user_id",t.id),i(!1),Jt.success("Push notifications disabled"),!0}catch(C){console.error("Error unsubscribing:",C);const N=C instanceof Error?C.message:"Unknown error";return Jt.error("Failed to disable push notifications: "+N),!1}finally{c(!1)}},[s,t]);return{isSupported:_,permission:e,isSubscribed:n,isLoading:a,vapidPublicKey:m,subscribe:T,unsubscribe:E}}const DB="push_notification_prompt_dismissed",OWe=["/dashboard","/admin"],FWe=()=>{const{user:t}=$n(),{isSupported:e,isSubscribed:r,isLoading:n,subscribe:i}=MWe(),a=Ji(),[c,s]=P.useState(!1),[f,m]=P.useState(!1),x=OWe.some(E=>a.pathname===E||a.pathname.startsWith(`${E}/`));P.useEffect(()=>{if(x){s(!1);return}if(!t||!e||r||n||localStorage.getItem(`${DB}_${t.id}`))return;const C=setTimeout(()=>{s(!0)},2e3);return()=>clearTimeout(C)},[t,e,r,n,x]);const _=async()=>{m(!0);const E=await i();m(!1),E&&(t&&localStorage.setItem(`${DB}_${t.id}`,"true"),s(!1))},T=()=>{t&&localStorage.setItem(`${DB}_${t.id}`,"true"),s(!1)};return!e||r||x?null:o.jsx(ro,{open:c,onOpenChange:E=>!E&&T(),children:o.jsxs(za,{className:"sm:max-w-md",children:[o.jsxs(cl,{children:[o.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",children:o.jsx(vC,{className:"h-6 w-6 text-primary"})}),o.jsx(qo,{className:"text-center",children:"Stay in the Loop!"}),o.jsx(ad,{className:"text-center",children:"Enable push notifications to get alerted when:"})]}),o.jsxs("ul",{className:"my-4 space-y-2 text-sm text-muted-foreground",children:[o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," New events go live"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," Fresh templates are added"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," New toolbox resources drop"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," Social swag updates"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," New newsletters arrive"]}),o.jsxs("li",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-primary",children:"•"})," Posts in your community groups"]})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx(Kt,{onClick:_,disabled:f,className:"w-full",children:f?"Enabling...":"Enable Notifications"}),o.jsx(Kt,{variant:"ghost",onClick:T,className:"w-full",children:"Not Now"})]}),o.jsx("p",{className:"text-center text-xs text-muted-foreground",children:"You can always change this in your Profile settings."})]})})},Ete=t=>{let e;const r=new Set,n=(m,x)=>{const _=typeof m=="function"?m(e):m;if(!Object.is(_,e)){const T=e;e=x??(typeof _!="object"||_===null)?_:Object.assign({},e,_),r.forEach(E=>E(e,T))}},i=()=>e,s={setState:n,getState:i,getInitialState:()=>f,subscribe:m=>(r.add(m),()=>r.delete(m))},f=e=t(n,i,s);return s},BWe=t=>t?Ete(t):Ete,zWe=t=>t;function $We(t,e=zWe){const r=Xe.useSyncExternalStore(t.subscribe,Xe.useCallback(()=>e(t.getState()),[t,e]),Xe.useCallback(()=>e(t.getInitialState()),[t,e]));return Xe.useDebugValue(r),r}const Ate=t=>{const e=BWe(t),r=n=>$We(e,n);return Object.assign(r,e),r},UWe=t=>t?Ate(t):Ate;function VWe(t,e){let r;try{r=t()}catch{return}return{getItem:i=>{var a;const c=f=>f===null?null:JSON.parse(f,void 0),s=(a=r.getItem(i))!=null?a:null;return s instanceof Promise?s.then(c):c(s)},setItem:(i,a)=>r.setItem(i,JSON.stringify(a,void 0)),removeItem:i=>r.removeItem(i)}}const C6=t=>e=>{try{const r=t(e);return r instanceof Promise?r:{then(n){return C6(n)(r)},catch(n){return this}}}catch(r){return{then(n){return this},catch(n){return C6(n)(r)}}}},qWe=(t,e)=>(r,n,i)=>{let a={storage:VWe(()=>window.localStorage),partialize:L=>L,version:0,merge:(L,M)=>({...M,...L}),...e},c=!1,s=0;const f=new Set,m=new Set;let x=a.storage;if(!x)return t((...L)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),r(...L)},n,i);const _=()=>{const L=a.partialize({...n()});return x.setItem(a.name,{state:L,version:a.version})},T=i.setState;i.setState=(L,M)=>(T(L,M),_());const E=t((...L)=>(r(...L),_()),n,i);i.getInitialState=()=>E;let C;const N=()=>{var L,M;if(!x)return;const D=++s;c=!1,f.forEach(V=>{var G;return V((G=n())!=null?G:E)});const B=((M=a.onRehydrateStorage)==null?void 0:M.call(a,(L=n())!=null?L:E))||void 0;return C6(x.getItem.bind(x))(a.name).then(V=>{if(V)if(typeof V.version=="number"&&V.version!==a.version){if(a.migrate){const G=a.migrate(V.state,V.version);return G instanceof Promise?G.then(W=>[!0,W]):[!0,G]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,V.state];return[!1,void 0]}).then(V=>{var G;if(D!==s)return;const[W,Z]=V;if(C=a.merge(Z,(G=n())!=null?G:E),r(C,!0),W)return _()}).then(()=>{D===s&&(B==null||B(n(),void 0),C=n(),c=!0,m.forEach(V=>V(C)))}).catch(V=>{D===s&&(B==null||B(void 0,V))})};return i.persist={setOptions:L=>{a={...a,...L},L.storage&&(x=L.storage)},clearStorage:()=>{x==null||x.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>N(),hasHydrated:()=>c,onHydrate:L=>(f.add(L),()=>{f.delete(L)}),onFinishHydration:L=>(m.add(L),()=>{m.delete(L)})},a.skipHydration||N(),C||E},GWe=qWe,P0e=UWe()(GWe((t,e)=>({cartItems:[],addToCart:(r,n,i=1,a)=>{t(c=>{const s=c.cartItems.findIndex(f=>{var m;return f.product.id===r.id&&((m=f.variant)==null?void 0:m.id)===(n==null?void 0:n.id)});if(s>=0){const f=[...c.cartItems];return f[s].quantity+=i,a&&(f[s].artworkUrl=a),{cartItems:f}}return{cartItems:[...c.cartItems,{product:r,variant:n,quantity:i,artworkUrl:a}]}})},removeFromCart:(r,n)=>{t(i=>({cartItems:i.cartItems.filter(a=>{var c;return!(a.product.id===r&&((c=a.variant)==null?void 0:c.id)===n)})}))},updateQuantity:(r,n,i)=>{t(a=>({cartItems:a.cartItems.map(c=>{var s;return c.product.id===r&&((s=c.variant)==null?void 0:s.id)===n?{...c,quantity:Math.max(1,i)}:c})}))},updateArtwork:(r,n,i)=>{t(a=>({cartItems:a.cartItems.map(c=>{var s;return c.product.id===r&&((s=c.variant)==null?void 0:s.id)===n?{...c,artworkUrl:i}:c})}))},clearCart:()=>t({cartItems:[]}),getItemPrice:r=>{const n=Number(r.product.base_price),i=r.variant?Number(r.variant.price_adjustment):0;return n+i},getSubtotal:()=>{const{cartItems:r,getItemPrice:n}=e();return r.reduce((i,a)=>i+n(a)*a.quantity,0)},getShippingTotal:()=>{const{cartItems:r}=e();return r.reduce((n,i)=>n+Number(i.product.shipping_fee)*i.quantity,0)},getTotal:()=>{const{getSubtotal:r,getShippingTotal:n}=e();return r()+n()}}),{name:"marketplace-cart",partialize:t=>({cartItems:t.cartItems})})),HWe="/admin/beta/boost",WWe=P.lazy(()=>$e(()=>import("./BoostCompanion-q-L5-MVc.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8])));function KWe(){const{user:t,isAdmin:e}=$n(),{isFeatureEnabled:r}=TO(),{pathname:n}=Ji();return!!t&&(e||r("boost_mascot"))&&n!==HWe?o.jsx(P.Suspense,{fallback:null,children:o.jsx(WWe,{userId:t.id})}):null}function YWe({activeCategory:t,currentCategory:e,onSelect:r,onHover:n,badgeCounts:i,categories:a=BO}){return o.jsx("nav",{"aria-label":"Primary",className:"flex flex-col gap-1 p-2",children:a.map(c=>{const s=c.icon,f=t===c.id,m=e===c.id,x=(i==null?void 0:i[c.id])??0,_=`hsl(var(--${c.accent}))`,T=f||m;return o.jsxs("button",{type:"button",onClick:()=>r(c.id),onMouseEnter:()=>n==null?void 0:n(c.id),"aria-expanded":c.route?void 0:f,"aria-controls":c.route?void 0:"primary-nav-flyout","aria-current":m?"page":void 0,style:{color:T?_:void 0,backgroundColor:T?`hsl(var(--${c.accent}) / 0.12)`:void 0},className:ir("group relative flex flex-col items-center gap-1 rounded-xl px-1 py-2.5 text-[11px] font-medium transition-colors","text-sidebar-foreground/70 hover:bg-sidebar-accent/10","focus:outline-none focus-visible:ring-2 focus-visible:ring-primary"),children:[m&&o.jsx("span",{className:"absolute left-0 top-1/2 h-6 w-1 -translate-y-1/2 rounded-r",style:{backgroundColor:_}}),o.jsxs("span",{className:"relative",children:[o.jsx(s,{className:"h-5 w-5 transition-colors",style:{color:_}}),x>0&&o.jsx("span",{className:"absolute -right-1.5 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[9px] font-bold text-primary-foreground",style:{backgroundColor:_},children:x>9?"9+":x})]}),o.jsx("span",{className:"leading-tight",children:c.label})]},c.id)})})}function ZWe({category:t,top:e,left:r,onClose:n,onNavigate:i,isFavorite:a,favorites:c,onToggleFavorite:s,isCurrent:f,badgeCounts:m}){const x=P.useRef(null);P.useEffect(()=>{const T=C=>{C.key==="Escape"&&n()},E=C=>{var L;if(!x.current)return;const N=C.target;!x.current.contains(N)&&!((L=N==null?void 0:N.closest)!=null&&L.call(N,"[data-nav-rail]"))&&n()};return document.addEventListener("keydown",T),document.addEventListener("mousedown",E),()=>{document.removeEventListener("keydown",T),document.removeEventListener("mousedown",E)}},[n]);const _=T=>{const E=T.icon,C=T.badgeKey?(m==null?void 0:m[T.badgeKey])??0:0;return o.jsxs("div",{className:ir("group flex items-start gap-3 rounded-lg p-2 transition-colors hover:bg-muted",f(T)&&"bg-muted"),children:[o.jsxs("button",{type:"button",onClick:()=>i(T),className:"flex flex-1 items-start gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded-md",children:[o.jsx("span",{className:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:o.jsx(E,{className:"h-4 w-4"})}),o.jsxs("span",{className:"min-w-0",children:[o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:T.label}),T.badge==="new"&&o.jsx("span",{className:"rounded bg-primary px-1 py-px text-[9px] font-bold uppercase tracking-wide text-primary-foreground",children:"New"}),T.badge==="beta"&&o.jsx("span",{className:"rounded border border-amber-500 bg-amber-500/10 px-1 py-px text-[9px] font-bold uppercase tracking-wide text-amber-600 dark:text-amber-400",children:"Beta"}),T.locked&&o.jsx(Fy,{className:"h-3 w-3 text-muted-foreground","aria-label":"Upgrade required"}),C>0&&o.jsx("span",{className:"flex h-4 min-w-4 items-center justify-center rounded-full bg-muted-foreground/15 px-1 text-[10px] font-medium text-muted-foreground",children:C>9?"9+":C})]}),T.description&&o.jsx("span",{className:"mt-0.5 block text-xs leading-snug text-muted-foreground line-clamp-2",children:T.description})]})]}),o.jsx("button",{type:"button","aria-label":a(T)?`Remove ${T.label} from favorites`:`Add ${T.label} to favorites`,onClick:N=>{N.stopPropagation(),s(T)},className:ir("mt-1 rounded p-1 opacity-0 transition-opacity focus:outline-none focus-visible:ring-2 focus-visible:ring-primary group-hover:opacity-100",a(T)&&"opacity-100 text-primary",!a(T)&&"text-muted-foreground/60 hover:text-primary"),children:o.jsx(bL,{className:ir("h-4 w-4",a(T)&&"fill-current")})})]},T.id)};return o.jsxs("div",{id:"primary-nav-flyout",ref:x,role:"dialog","aria-label":`${t.label} navigation`,style:{top:e,left:r,maxHeight:`calc(100vh - ${e+16}px)`},className:"fixed z-40 hidden w-[min(720px,calc(100vw-8rem))] animate-in fade-in-0 slide-in-from-left-2 duration-200 motion-reduce:animate-none overflow-hidden rounded-2xl border border-border bg-card shadow-2xl md:block",children:[o.jsx("div",{className:"flex items-center justify-between border-b border-border px-5 py-3",children:o.jsx("h2",{className:"text-sm font-semibold text-foreground",children:t.label})}),o.jsxs("div",{className:"max-h-[70vh] overflow-y-auto p-4",children:[c.length>0&&o.jsxs("section",{className:"mb-4",children:[o.jsxs("h3",{className:"mb-2 flex items-center gap-1.5 px-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:[o.jsx(bL,{className:"h-3 w-3 fill-current text-primary"})," My Favorites"]}),o.jsx("div",{className:"grid grid-cols-1 gap-1 sm:grid-cols-2",children:c.map(_)})]}),t.sections.map(T=>o.jsxs("section",{className:"mb-4 last:mb-0",children:[o.jsx("h3",{className:"mb-2 px-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:T.title}),o.jsx("div",{className:"grid grid-cols-1 gap-1 sm:grid-cols-2",children:T.items.map(_)})]},T.title)),t.sections.length===0&&o.jsx("p",{className:"px-2 py-6 text-sm text-muted-foreground",children:"Nothing here yet."})]})]})}function XWe({categories:t,railCategories:e=BO,currentCategory:r,onNavigate:n,onNavigateRoute:i,isCurrent:a,badgeCounts:c,isFavorite:s,onToggleFavorite:f}){const[m,x]=P.useState(r);return o.jsx("nav",{"aria-label":"Primary",className:"p-2",children:e.map(_=>{const T=_.icon;if(_.route)return o.jsxs("button",{type:"button",onClick:()=>i(_.route),className:ir("flex w-full items-center gap-3 rounded-lg px-3 py-3 text-sm font-medium text-sidebar-foreground hover:bg-sidebar-accent",r===_.id&&"bg-sidebar-accent"),children:[o.jsx(T,{className:"h-4 w-4",style:{color:`hsl(var(--${_.accent}))`}}),_.label]},_.id);const E=t.find(N=>N.id===_.id),C=m===_.id;return o.jsxs("div",{children:[o.jsxs("button",{type:"button","aria-expanded":C,onClick:()=>x(C?null:_.id),className:ir("flex w-full items-center gap-3 rounded-lg px-3 py-3 text-sm font-medium text-sidebar-foreground hover:bg-sidebar-accent",r===_.id&&"text-primary"),children:[o.jsx(T,{className:"h-4 w-4",style:{color:`hsl(var(--${_.accent}))`}}),_.label,o.jsx(Yd,{className:ir("ml-auto h-4 w-4 transition-transform",C&&"rotate-180")})]}),C&&E&&o.jsx("div",{className:"space-y-3 pb-3 pl-4 pr-1",children:E.sections.map(N=>o.jsxs("div",{children:[o.jsx("p",{className:"px-2 py-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:N.title}),N.items.map(L=>{const M=L.icon,D=L.badgeKey?(c==null?void 0:c[L.badgeKey])??0:0,B=(s==null?void 0:s(L))??!1;return o.jsxs("div",{className:ir("flex w-full items-center gap-2 rounded-md pr-1 hover:bg-sidebar-accent",a(L)&&"bg-sidebar-accent"),children:[o.jsxs("button",{type:"button",onClick:()=>n(L),className:"flex flex-1 items-center gap-2 px-2 py-2 text-left text-sm text-sidebar-foreground",children:[o.jsx(M,{className:"h-4 w-4 shrink-0"}),o.jsx("span",{className:"truncate",children:L.label}),D>0&&o.jsx("span",{className:"ml-auto flex h-5 w-5 items-center justify-center rounded-full bg-muted text-xs text-muted-foreground",children:D>9?"9+":D})]}),f&&o.jsx("button",{type:"button","aria-label":B?`Remove ${L.label} from favorites`:`Add ${L.label} to favorites`,onClick:()=>f(L),className:ir("rounded p-2",B?"text-primary":"text-muted-foreground/60"),children:o.jsx(bL,{className:ir("h-4 w-4",B&&"fill-current")})})]},L.id)})]},N.title))})]},_.id)})})}function N0e(){const t=$a(),e=Ji(),r=Jxe(),n=P.useCallback(s=>Qxe(s,r.ctx),[r.ctx]),i=P.useMemo(()=>{if(e.pathname.startsWith("/apps"))return"apps";if(e.pathname==="/dashboard")return"home";let s=null;for(const f of r.destinations){if(f.external)continue;const m=n(f);m!=="/"&&e.pathname.startsWith(m)&&(!s||m.length>s.len)&&(s={id:f.primaryCategory,len:m.length})}return(s==null?void 0:s.id)??null},[e.pathname,r.destinations,n]),a=P.useCallback(s=>!s.external&&e.pathname===n(s),[e.pathname,n]),c=P.useCallback(s=>{const f=n(s);if(s.external||s.openInNewTab){window.open(f,"_blank","noopener,noreferrer");return}t(f)},[t,n]);return{nav:r,navigate:t,currentCategory:i,isCurrent:a,go:c}}function QWe({communityUnreadCount:t=0,wishlistOpenCount:e=0,flyoutTop:r=64,flyoutLeft:n=80}){const{nav:i,navigate:a,currentCategory:c,isCurrent:s,go:f}=N0e(),[m,x]=P.useState(null),_=P.useRef(null),T=N=>{const L=BO.find(M=>M.id===N);if(L!=null&&L.route){x(null),a(L.route);return}x(M=>M===N?null:N)},E=m?i.categoryMap.get(m):void 0,C={more:t+e};return o.jsxs("div",{"data-nav-rail":!0,className:"flex h-full flex-col",onMouseLeave:()=>{_.current&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>x(null),250)},onMouseEnter:()=>{_.current&&window.clearTimeout(_.current)},children:[o.jsx(YWe,{activeCategory:m,currentCategory:c,onSelect:T,categories:i.railCategories,badgeCounts:C}),E&&o.jsx(ZWe,{category:E,top:r,left:n,onClose:()=>x(null),onNavigate:N=>{x(null),f(N)},isFavorite:i.isFavorite,favorites:i.favoritesFor(E.id),onToggleFavorite:N=>i.toggleFavorite(i.favoriteKey(N)),isCurrent:s,badgeCounts:{community:t,wishlist:e}})]})}function JWe({communityUnreadCount:t=0,wishlistOpenCount:e=0,onNavigated:r}){const{nav:n,navigate:i,currentCategory:a,isCurrent:c,go:s}=N0e();return o.jsx(XWe,{categories:n.categories,railCategories:n.railCategories,currentCategory:a,isCurrent:c,isFavorite:n.isFavorite,onToggleFavorite:f=>n.toggleFavorite(n.favoriteKey(f)),badgeCounts:{community:t,wishlist:e},onNavigate:f=>{s(f),r==null||r()},onNavigateRoute:f=>{i(f),r==null||r()}})}const eKe=({bannerHeight:t,communityUnreadCount:e,wishlistOpenCount:r,isTrial:n,isExpired:i})=>{const a=$a();return o.jsxs("div",{className:"flex h-full flex-col",children:[o.jsx("div",{className:"flex h-16 shrink-0 items-center justify-center border-b border-sidebar-border",children:o.jsx("button",{type:"button",onClick:()=>a("/dashboard"),"aria-label":"LevelUp home",children:o.jsx("img",{src:pUe,alt:"LevelUp",className:"h-8 w-auto"})})}),o.jsxs(pp,{className:"flex-1 [&_[data-radix-scroll-area-scrollbar]]:w-1.5",children:[o.jsx(QWe,{communityUnreadCount:e,wishlistOpenCount:r,flyoutTop:t+64,flyoutLeft:80}),n&&!i&&o.jsx("div",{className:"p-2",children:o.jsxs("button",{type:"button",onClick:()=>a("/subscription"),className:"flex w-full flex-col items-center gap-1 rounded-xl border border-amber-500/30 bg-amber-500/10 px-1 py-2 text-[10px] font-semibold text-amber-600 dark:text-amber-400",children:[o.jsx(Es,{className:"h-4 w-4"}),"Upgrade"]})})]})]})},tKe=({isTrial:t,isExpired:e,expiresAt:r,communityUnreadCount:n,wishlistOpenCount:i,pathname:a,onSignOut:c,onNavigated:s})=>{const f=$a();return o.jsxs("div",{className:"flex h-full flex-col",children:[o.jsx("div",{className:"flex items-center gap-2 border-b border-sidebar-border p-3",children:o.jsx("img",{src:fUe,alt:"LevelUp",className:"h-8 w-auto"})}),o.jsxs(pp,{className:"flex-1",children:[t&&!e&&o.jsx("div",{className:"p-2",children:o.jsx("button",{type:"button",onClick:()=>{f("/subscription"),s==null||s()},className:ir("relative mb-1 w-full overflow-hidden rounded-md p-[1.5px]","bg-[linear-gradient(120deg,#f59e0b,#ef4444,#a855f7,#f59e0b)] bg-[length:200%_200%]","animate-gradient-x shadow-lg shadow-amber-500/20"),children:o.jsxs("span",{className:"flex items-center gap-2 rounded-[5px] bg-sidebar px-3 py-2 text-sm font-semibold text-sidebar-foreground",children:[o.jsx(Es,{className:"h-4 w-4 text-amber-500"}),o.jsx("span",{className:"flex-1 text-left",children:"Ready to Upgrade?"}),r&&o.jsxs("span",{className:"rounded border border-amber-500/30 bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wide text-amber-600 dark:text-amber-400",children:[Math.max(0,Math.ceil((Date.parse(r)-Date.now())/864e5)),"d left"]})]})})}),o.jsx(JWe,{communityUnreadCount:n,wishlistOpenCount:i,onNavigated:s})]}),o.jsxs("div",{className:"border-t border-sidebar-border p-3",children:[o.jsxs(Kt,{variant:"ghost",size:"sm",className:ir("w-full justify-start gap-2 text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",a==="/profile"&&"bg-sidebar-accent text-sidebar-accent-foreground"),onClick:()=>{f("/profile"),s==null||s()},children:[o.jsx(kl,{className:"h-4 w-4"}),"Profile"]}),o.jsxs(Kt,{variant:"ghost",size:"sm",className:ir("w-full justify-start gap-2 text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",a==="/credits"&&"bg-sidebar-accent text-sidebar-accent-foreground"),onClick:()=>{f("/credits"),s==null||s()},children:[o.jsx(dG,{className:"h-4 w-4"}),"Credits & Wallet"]}),o.jsxs(Kt,{variant:"ghost",size:"sm",className:"w-full justify-start gap-2 text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",onClick:c,children:[o.jsx(Bhe,{className:"h-4 w-4"}),"Sign Out"]})]})]})},b1=({children:t,title:e})=>{var lt;const{user:r,signOut:n,isAdmin:i,isBrokerageManager:a,isCoach:c,brokerageId:s}=$n(),{isAssistant:f,actingAsAgent:m,hasPermission:x}=xO();i9();const{isImpersonating:_}=kme(),E=(f&&!!m?40:0)+(_?40:0),{avatarUrl:C}=G$e(r==null?void 0:r.id),{isTrial:N,isExpired:L,expiresAt:M}=H$e(r==null?void 0:r.id),{isInnerCircleEnabled:D,isMarketplaceEnabled:B}=TO(),{currentBrief:V,shouldShowPopup:G,hasUnseenBrief:W,openBrief:Z,closeBrief:Q,dismissBrief:se}=IWe(),{unreadCount:ie}=W$e(),{openCount:ue}=K$e();_S();const Te=P0e(xt=>xt.cartItems).reduce((xt,St)=>xt+St.quantity,0),{leadSite:we,hasLeadSite:Oe,siteUrl:Ae}=Zxe();Xxe(!Oe);const Se=$a(),ge=Ji(),[je,_e]=P.useState(null);P.useEffect(()=>{r!=null&&r.id&&De.from("profiles").select("name").eq("id",r.id).single().then(({data:xt})=>{xt!=null&&xt.name&&_e(xt.name)})},[r==null?void 0:r.id]);const xe=je||((lt=r==null?void 0:r.user_metadata)==null?void 0:lt.name)||(r==null?void 0:r.email)||"User",[Pe,Ze]=P.useState(!1),at=xt=>xt.split(" ").map(St=>St[0]).join("").toUpperCase().slice(0,2);return o.jsx(bpe,{children:o.jsxs("div",{className:"min-h-screen bg-background flex",children:[N&&L&&ge.pathname!=="/subscription"&&o.jsx(hWe,{}),typeof document<"u"&&Fm.createPortal(o.jsx("aside",{className:"hidden md:flex flex-col bg-card border-r border-border fixed left-0 z-30 !pointer-events-auto w-20",style:{top:`${E}px`,height:`calc(100vh - ${E}px)`},children:o.jsx(eKe,{bannerHeight:E,communityUnreadCount:ie,wishlistOpenCount:ue,isTrial:N,isExpired:L})}),document.body),o.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden md:ml-20",style:{height:`calc(100vh - ${E}px)`,marginTop:`${E}px`},children:[o.jsx("header",{className:"sticky top-0 z-40 bg-card border-b border-border flex-shrink-0",children:o.jsxs("div",{className:"flex items-center justify-between px-6 py-3",children:[o.jsxs(Uge,{open:Pe,onOpenChange:Ze,children:[o.jsx(Z$e,{asChild:!0,children:o.jsx(Kt,{variant:"ghost",size:"icon",className:"md:hidden",children:o.jsx(VM,{className:"h-5 w-5"})})}),o.jsx(s9,{side:"left",className:"w-72 p-0 bg-card",children:o.jsx(tKe,{isTrial:N,isExpired:L,expiresAt:M,communityUnreadCount:ie,wishlistOpenCount:ue,pathname:ge.pathname,onSignOut:n,onNavigated:()=>Ze(!1)})})]}),o.jsx("div",{className:"flex-1 md:hidden",children:o.jsx("img",{src:mUe,alt:"LevelUp",className:"h-8 w-auto"})}),o.jsx("div",{className:"hidden md:flex flex-1 justify-center",children:o.jsx(Tte,{})}),o.jsxs("div",{className:"flex items-center gap-3 ml-auto",children:[N&&!L&&M&&o.jsx(dWe,{expiresAt:M,className:"hidden lg:flex"}),o.jsx("div",{className:"md:hidden",children:o.jsx(Tte,{})}),V&&o.jsx(fWe,{hasUnseenBrief:W,onClick:Z}),B&&o.jsxs(Kt,{variant:"ghost",size:"icon",className:"relative",onClick:()=>Se("/marketplace/cart"),children:[o.jsx(Uhe,{className:"h-5 w-5"}),Te>0&&o.jsx("span",{className:"absolute -top-1 -right-1 h-5 w-5 rounded-full bg-primary text-primary-foreground text-xs font-medium flex items-center justify-center",children:Te>99?"99+":Te})]}),o.jsx(Kt,{variant:"ghost",size:"icon","aria-label":"My Calendar",title:"My Calendar",onClick:()=>Se("/mission-control/calendar"),children:o.jsx(Xf,{className:"h-5 w-5"})}),o.jsx(NHe,{}),o.jsx(n9e,{}),o.jsxs("span",{className:"hidden sm:block text-sm font-medium text-foreground",children:["Hello, ",xe.split(" ")[0],"!"]}),o.jsxs(wO,{children:[o.jsx(SO,{asChild:!0,children:o.jsx("button",{className:"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded-full",children:o.jsxs(Zd,{className:"h-9 w-9 cursor-pointer hover:opacity-80 transition-opacity",children:[o.jsx(Xd,{src:C||void 0}),o.jsx(Qd,{className:"bg-primary text-primary-foreground font-medium text-sm",children:at(xe)})]})})}),o.jsxs(OC,{align:"end",className:"w-48",children:[o.jsxs(Od,{onClick:()=>Se("/profile"),className:"cursor-pointer",children:[o.jsx(kl,{className:"h-4 w-4 mr-2"}),"Profile"]}),o.jsxs(Od,{onClick:()=>Se("/credits"),className:"cursor-pointer",children:[o.jsx(dG,{className:"h-4 w-4 mr-2"}),"Credits & Wallet"]}),o.jsxs(Od,{onClick:()=>Se("/mission-control/integrations"),className:"cursor-pointer",children:[o.jsx(wL,{className:"h-4 w-4 mr-2"}),"Integrations"]}),o.jsxs(Od,{onClick:()=>Se("/mission-control/browser-extension"),className:"cursor-pointer",children:[o.jsx(wL,{className:"h-4 w-4 mr-2"}),"Browser Extension"]}),o.jsx(r9,{}),o.jsxs(Od,{onClick:n,className:"cursor-pointer text-destructive focus:text-destructive",children:[o.jsx(Bhe,{className:"h-4 w-4 mr-2"}),"Sign Out"]})]})]})]})]})}),o.jsx(PWe,{children:o.jsx("main",{className:"p-4 sm:p-6 lg:p-8 overflow-x-hidden",children:t})}),V&&o.jsx(CWe,{brief:V,open:G,onClose:Q,onDismiss:se}),o.jsx(jWe,{}),o.jsx(LWe,{}),o.jsx(FWe,{}),o.jsx(KWe,{})]})]})})},ut=({children:t,requireAdmin:e=!1,requireBrokerageManager:r=!1})=>{const{user:n,loading:i,rolesLoading:a,isAdmin:c,isBrokerageManager:s}=$n(),f=Ji(),m=Fge();if(i||(e||r)&&a)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-muted-foreground",children:"Loading..."})]})});if(!n){const x=f.pathname+f.search+f.hash;return x&&x!=="/auth"&&sessionStorage.setItem("redirectAfterLogin",x),o.jsx(Li,{to:"/auth",replace:!0})}if(e&&!c)return o.jsx(Li,{to:"/dashboard",replace:!0});if(r&&!s&&!c)return o.jsx(Li,{to:"/dashboard",replace:!0});if(m.isRestricted&&!m.isLoading){const x=$$e(f.pathname);if(x&&!m.hasFeature(x))return o.jsx(b1,{title:"Upgrade required",children:o.jsx(q$e,{featureKey:x})})}return o.jsx(o.Fragment,{children:t})};function MB({children:t}){const{isAdmin:e,loading:r,rolesLoading:n}=$n(),{isFeatureEnabled:i,isLoading:a}=TO();return r||n||a?o.jsx("div",{className:"flex min-h-[50vh] items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}):!e&&!i("staging_studio_enabled")?o.jsx(Li,{to:"/apps",replace:!0}):o.jsx(b1,{title:"Staging Studio",children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-[50vh] items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:t})})}var G9={};(function t(e,r,n,i){var a=!!(e.Worker&&e.Blob&&e.Promise&&e.OffscreenCanvas&&e.OffscreenCanvasRenderingContext2D&&e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype.transferControlToOffscreen&&e.URL&&e.URL.createObjectURL),c=typeof Path2D=="function"&&typeof DOMMatrix=="function",s=function(){if(!e.OffscreenCanvas)return!1;try{var _e=new OffscreenCanvas(1,1),xe=_e.getContext("2d");xe.fillRect(0,0,1,1);var Pe=_e.transferToImageBitmap();xe.createPattern(Pe,"no-repeat")}catch{return!1}return!0}();function f(){}function m(_e){var xe=r.exports.Promise,Pe=xe!==void 0?xe:e.Promise;return typeof Pe=="function"?new Pe(_e):(_e(f,f),null)}var x=function(_e,xe){return{transform:function(Pe){if(_e)return Pe;if(xe.has(Pe))return xe.get(Pe);var Ze=new OffscreenCanvas(Pe.width,Pe.height),at=Ze.getContext("2d");return at.drawImage(Pe,0,0),xe.set(Pe,Ze),Ze},clear:function(){xe.clear()}}}(s,new Map),_=function(){var _e=Math.floor(16.666666666666668),xe,Pe,Ze={},at=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(xe=function(lt){var xt=Math.random();return Ze[xt]=requestAnimationFrame(function St(Xt){at===Xt||at+_e-1{const{data:e,error:r}=await De.from("celebration_queue").select("*").eq("user_id",t.id).is("seen_at",null).order("created_at",{ascending:!0});if(r)throw r;return e},enabled:!!(t!=null&&t.id),refetchOnWindowFocus:!0,staleTime:0})}function nKe(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("celebration_queue").update({seen_at:new Date().toISOString()}).eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["celebrations"]})}})}function xUt(){const t=Ir(),{user:e}=$n();return kr({mutationFn:async r=>{const{error:n}=await De.from("celebration_queue").insert({user_id:r.user_id,celebration_type:r.celebration_type,title:r.title,message:r.message||null,points_amount:r.points_amount||null,created_by:e==null?void 0:e.id});if(n)throw n},onSuccess:()=>{t.invalidateQueries({queryKey:["celebrations"]})}})}const iKe={points_earned:EL,listing_created:Ma,deal_closed:gm,custom:Xc},Cte={points_earned:"from-amber-500 to-orange-500",listing_created:"from-emerald-500 to-teal-500",deal_closed:"from-green-500 to-emerald-500",custom:"from-purple-500 to-pink-500"},Ite=()=>{const t=window.location.hostname;return t.startsWith("cards.")||t.startsWith("cardstudio.")||t.startsWith("listings.")||t.startsWith("presentations.")||t.startsWith("guestbook.")||t.startsWith("clients.")||t.startsWith("booking.")||t.startsWith("contacts.")};function sKe(){const{user:t}=$n(),e=Ir(),{data:r}=rKe(),n=nKe(),[i,a]=P.useState(null),[c,s]=P.useState(!1),f=P.useCallback(()=>{const E=Date.now()+3e3,C={startVelocity:30,spread:360,ticks:60,zIndex:9999},N=(M,D)=>Math.random()*(D-M)+M,L=setInterval(()=>{const M=E-Date.now();if(M<=0){clearInterval(L);return}const D=50*(M/3e3);kte({...C,particleCount:D,origin:{x:N(.1,.3),y:Math.random()-.2},colors:["#ff6b6b","#feca57","#48dbfb","#ff9ff3","#54a0ff","#5f27cd"]}),kte({...C,particleCount:D,origin:{x:N(.7,.9),y:Math.random()-.2},colors:["#ff6b6b","#feca57","#48dbfb","#ff9ff3","#54a0ff","#5f27cd"]})},250)},[]);P.useEffect(()=>{Ite()||r&&r.length>0&&!i&&(a(r[0]),s(!0),setTimeout(f,100))},[r,i,f]);const m=async()=>{if(i){const T=i.id;s(!1),a(null),e.setQueryData(["celebrations","pending",t==null?void 0:t.id],E=>(E==null?void 0:E.filter(C=>C.id!==T))??[]),await n.mutateAsync(T)}};if(Ite()||!i)return null;const x=iKe[i.celebration_type]||Xc,_=Cte[i.celebration_type]||Cte.custom;return o.jsx(ro,{open:c,onOpenChange:T=>!T&&m(),children:o.jsxs(za,{className:"sm:max-w-md text-center border-0 overflow-hidden",children:[o.jsx("div",{className:`absolute inset-0 bg-gradient-to-br ${_} opacity-10`}),o.jsxs("div",{className:"relative z-10 py-6",children:[o.jsx("div",{className:"flex justify-center mb-4",children:o.jsx("div",{className:`w-20 h-20 rounded-full bg-gradient-to-br ${_} flex items-center justify-center animate-bounce`,children:o.jsx(x,{className:"w-10 h-10 text-white"})})}),o.jsxs("div",{className:"flex justify-center gap-1 mb-4",children:[o.jsx(Es,{className:"w-5 h-5 text-yellow-500 animate-pulse"}),o.jsx(Es,{className:"w-5 h-5 text-yellow-500 animate-pulse delay-75"}),o.jsx(Es,{className:"w-5 h-5 text-yellow-500 animate-pulse delay-150"})]}),o.jsxs("h2",{className:"text-2xl font-bold mb-2 bg-gradient-to-r from-primary to-secondary bg-clip-text text-transparent",children:["🎉 ",i.title]}),i.points_amount&&i.points_amount>0&&o.jsxs("div",{className:"text-4xl font-bold text-primary mb-2",children:["+",i.points_amount," points!"]}),i.message&&o.jsx("p",{className:"text-muted-foreground mb-6",children:i.message}),o.jsx(Kt,{onClick:m,className:"w-full",size:"lg",children:"Awesome! 🙌"}),r&&r.length>1&&o.jsxs("p",{className:"text-sm text-muted-foreground mt-3",children:["+",r.length-1," more celebration",r.length>2?"s":""," waiting"]})]})]})})}function al({className:t,...e}){return o.jsx("div",{className:ir("animate-pulse rounded-md bg-muted",t),...e})}var VO="Tabs",[aKe,_Ut]=Go(VO,[xS]),R0e=xS(),[oKe,H9]=aKe(VO),L0e=P.forwardRef((t,e)=>{const{__scopeTabs:r,value:n,onValueChange:i,defaultValue:a,orientation:c="horizontal",dir:s,activationMode:f="automatic",...m}=t,x=B_(s),[_,T]=sd({prop:n,onChange:i,defaultProp:a??"",caller:VO});return o.jsx(oKe,{scope:r,baseId:Cl(),value:_,onValueChange:T,orientation:c,dir:x,activationMode:f,children:o.jsx(rn.div,{dir:x,"data-orientation":c,...m,ref:e})})});L0e.displayName=VO;var D0e="TabsList",M0e=P.forwardRef((t,e)=>{const{__scopeTabs:r,loop:n=!0,...i}=t,a=H9(D0e,r),c=R0e(r);return o.jsx(WG,{asChild:!0,...c,orientation:a.orientation,dir:a.dir,loop:n,children:o.jsx(rn.div,{role:"tablist","aria-orientation":a.orientation,...i,ref:e})})});M0e.displayName=D0e;var O0e="TabsTrigger",F0e=P.forwardRef((t,e)=>{const{__scopeTabs:r,value:n,disabled:i=!1,...a}=t,c=H9(O0e,r),s=R0e(r),f=$0e(c.baseId,n),m=U0e(c.baseId,n),x=n===c.value;return o.jsx(KG,{asChild:!0,...s,focusable:!i,active:x,children:o.jsx(rn.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":m,"data-state":x?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:f,...a,ref:e,onMouseDown:Or(t.onMouseDown,_=>{!i&&_.button===0&&_.ctrlKey===!1?c.onValueChange(n):_.preventDefault()}),onKeyDown:Or(t.onKeyDown,_=>{[" ","Enter"].includes(_.key)&&c.onValueChange(n)}),onFocus:Or(t.onFocus,()=>{const _=c.activationMode!=="manual";!x&&!i&&_&&c.onValueChange(n)})})})});F0e.displayName=O0e;var B0e="TabsContent",z0e=P.forwardRef((t,e)=>{const{__scopeTabs:r,value:n,forceMount:i,children:a,...c}=t,s=H9(B0e,r),f=$0e(s.baseId,n),m=U0e(s.baseId,n),x=n===s.value,_=P.useRef(x);return P.useEffect(()=>{const T=requestAnimationFrame(()=>_.current=!1);return()=>cancelAnimationFrame(T)},[]),o.jsx(ul,{present:i||x,children:({present:T})=>o.jsx(rn.div,{"data-state":x?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":f,hidden:!T,id:m,tabIndex:0,...c,ref:e,style:{...t.style,animationDuration:_.current?"0s":void 0},children:T&&a})})});z0e.displayName=B0e;function $0e(t,e){return`${t}-trigger-${e}`}function U0e(t,e){return`${t}-content-${e}`}var lKe=L0e,V0e=M0e,q0e=F0e,G0e=z0e;const W9=lKe,qO=P.forwardRef(({className:t,...e},r)=>o.jsx(V0e,{ref:r,className:ir("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",t),...e}));qO.displayName=V0e.displayName;const xm=P.forwardRef(({className:t,...e},r)=>o.jsx(q0e,{ref:r,className:ir("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",t),...e}));xm.displayName=q0e.displayName;const jy=P.forwardRef(({className:t,...e},r)=>o.jsx(G0e,{ref:r,className:ir("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...e}));jy.displayName=G0e.displayName;const pk="#0d0d0d",rD="#1a1a1a",ql="#c9a84c",GC="#f0d78c",ip={captured:"lup_lead_captured_v1",stickyDismissed:"lup_sticky_dismissed_v1",exitShown:"lup_exit_shown_v1",savedListings:"lup_saved_listings_v1"};async function GO(t){const e={...t,source_page:typeof window<"u"?window.location.pathname:null,user_agent:typeof navigator<"u"?navigator.userAgent:null,referrer:typeof document<"u"?document.referrer:null},{data:r,error:n}=await De.functions.invoke("public-site-lead",{body:e});if(n)throw n;try{localStorage.setItem(ip.captured,JSON.stringify({email:t.email,ts:Date.now()}))}catch{}return r}function K9(){try{return!!localStorage.getItem(ip.captured)}catch{return!1}}function cKe(){try{const t=localStorage.getItem(ip.captured);return t?JSON.parse(t).email??null:null}catch{return null}}function Y9({open:t,onClose:e,children:r}){return P.useEffect(()=>{if(!t)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[t]),t?Fm.createPortal(o.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center p-4 animate-in fade-in",style:{background:"rgba(0,0,0,0.82)",backdropFilter:"blur(6px)"},onClick:e,children:o.jsxs("div",{onClick:n=>n.stopPropagation(),className:"relative w-full max-w-md rounded-2xl overflow-hidden animate-in zoom-in-95",style:{background:`linear-gradient(180deg, ${rD} 0%, ${pk} 100%)`,border:`1px solid ${ql}33`,boxShadow:`0 30px 80px rgba(0,0,0,0.6), 0 0 0 1px ${ql}22 inset`},children:[o.jsx("button",{onClick:e,className:"absolute right-4 top-4 z-10 rounded-full p-2 text-white/60 hover:text-white hover:bg-white/10 transition","aria-label":"Close",children:o.jsx(Zs,{className:"h-4 w-4"})}),r]})}),document.body):null}function Z9(){const[t,e]=P.useState({first_name:"",email:"",phone:"",area:""}),[r,n]=P.useState(!1),[i,a]=P.useState("");return{values:t,setValues:e,loading:r,setLoading:n,honeypot:i,setHoneypot:a}}function X9({values:t,setValues:e,honeypot:r,setHoneypot:n,showPhone:i=!0,showArea:a=!0,areaPlaceholder:c="City, ZIP, or neighborhood"}){const s="w-full rounded-lg px-11 py-3 text-sm text-white placeholder:text-white/40 border transition focus:outline-none",f={background:"rgba(255,255,255,0.04)",borderColor:"rgba(255,255,255,0.12)"};return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"relative",children:[o.jsx(kl,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-white/40"}),o.jsx("input",{type:"text",placeholder:"First name",value:t.first_name,onChange:m=>e({...t,first_name:m.target.value}),className:s,style:f})]}),o.jsxs("div",{className:"relative",children:[o.jsx($i,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-white/40"}),o.jsx("input",{type:"email",required:!0,placeholder:"Email address",value:t.email,onChange:m=>e({...t,email:m.target.value}),className:s,style:f})]}),i&&o.jsxs("div",{className:"relative",children:[o.jsx(Ui,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-white/40"}),o.jsx("input",{type:"tel",placeholder:"Phone (optional)",value:t.phone,onChange:m=>e({...t,phone:m.target.value}),className:s,style:f})]}),a&&o.jsxs("div",{className:"relative",children:[o.jsx(ga,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-white/40"}),o.jsx("input",{type:"text",placeholder:c,value:t.area,onChange:m=>e({...t,area:m.target.value}),className:s,style:f})]}),o.jsx("input",{type:"text",value:r,onChange:m=>n(m.target.value),tabIndex:-1,autoComplete:"off",className:"absolute -left-[9999px] w-0 h-0 opacity-0","aria-hidden":"true"})]})}function Q9({children:t,disabled:e,onClick:r,type:n="button"}){return o.jsx("button",{type:n,disabled:e,onClick:r,className:"w-full rounded-lg py-3 text-sm font-semibold uppercase tracking-widest transition disabled:opacity-60 disabled:cursor-not-allowed",style:{background:`linear-gradient(180deg, ${GC} 0%, ${ql} 100%)`,color:pk,boxShadow:`0 8px 24px ${ql}55`},children:t})}function jte({open:t,onClose:e,initialCriteria:r}){const{values:n,setValues:i,loading:a,setLoading:c,honeypot:s,setHoneypot:f}=Z9(),[m,x]=P.useState(!1),_=async T=>{if(T.preventDefault(),!!n.email){c(!0);try{await GO({lead_type:"new_listing_alerts",email:n.email.trim().toLowerCase(),first_name:n.first_name.trim()||void 0,phone:n.phone.trim()||void 0,criteria:{...r||{},...n.area.trim()?{area:n.area.trim()}:{}}}),x(!0);try{localStorage.setItem(ip.stickyDismissed,"1")}catch{}setTimeout(e,2200)}catch{Jt.error("Something went wrong. Please try again.")}finally{c(!1)}}};return o.jsx(Y9,{open:t,onClose:e,children:o.jsxs("div",{className:"p-8",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(vC,{className:"h-4 w-4",style:{color:ql}}),o.jsx("span",{className:"text-xs uppercase tracking-[0.2em]",style:{color:GC},children:"New Listing Alerts"})]}),o.jsx("h2",{className:"text-2xl font-serif text-white leading-tight mb-2",children:"Be the first to know."}),o.jsx("p",{className:"text-sm text-white/60 mb-6 leading-relaxed",children:"The best homes go before they hit the market. Get instant alerts the moment new listings match your search."}),m?o.jsxs("div",{className:"py-6 text-center",children:[o.jsx("div",{className:"mx-auto mb-3 h-12 w-12 rounded-full flex items-center justify-center",style:{background:`${ql}22`,border:`1px solid ${ql}55`},children:o.jsx(Es,{className:"h-5 w-5",style:{color:ql}})}),o.jsx("div",{className:"text-white font-medium",children:"You're on the list."}),o.jsx("div",{className:"text-white/50 text-xs mt-1",children:"Check your inbox for confirmation."})]}):o.jsxs("form",{onSubmit:_,className:"space-y-4",children:[o.jsx(X9,{values:n,setValues:i,honeypot:s,setHoneypot:f}),o.jsx(Q9,{type:"submit",disabled:a||!n.email,children:a?"Activating…":"Activate Alerts"}),o.jsx("p",{className:"text-[10px] text-white/40 text-center leading-relaxed",children:"We respect your inbox. Unsubscribe any time."})]})]})})}function uKe(){const[t,e]=P.useState(!0),[r,n]=P.useState(!1);P.useEffect(()=>{try{const a=!!localStorage.getItem(ip.stickyDismissed)||K9();e(a)}catch{e(!1)}},[]);const i=()=>{e(!0);try{localStorage.setItem(ip.stickyDismissed,"1")}catch{}};return t?o.jsx(jte,{open:r,onClose:()=>n(!1)}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed bottom-0 left-0 right-0 z-40 animate-in slide-in-from-bottom",style:{background:`linear-gradient(180deg, ${rD} 0%, ${pk} 100%)`,borderTop:`1px solid ${ql}44`,boxShadow:"0 -8px 30px rgba(0,0,0,0.5)"},children:o.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-3 flex items-center gap-3",children:[o.jsx("div",{className:"hidden sm:flex h-9 w-9 rounded-full items-center justify-center flex-shrink-0",style:{background:`${ql}22`,border:`1px solid ${ql}55`},children:o.jsx(vC,{className:"h-4 w-4",style:{color:ql}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"text-white text-sm font-medium truncate",children:"Be the first to know when new homes hit the market"}),o.jsx("div",{className:"text-white/50 text-xs hidden sm:block",children:"Instant alerts. No spam. Unsubscribe anytime."})]}),o.jsx("button",{onClick:()=>n(!0),className:"rounded-lg px-4 py-2 text-xs font-semibold uppercase tracking-wider whitespace-nowrap transition hover:brightness-110",style:{background:`linear-gradient(180deg, ${GC} 0%, ${ql} 100%)`,color:pk},children:"Get Alerts"}),o.jsx("button",{onClick:i,className:"p-2 text-white/50 hover:text-white transition","aria-label":"Dismiss",children:o.jsx(Zs,{className:"h-4 w-4"})})]})}),o.jsx(jte,{open:r,onClose:()=>n(!1)})]})}function dKe(){const[t,e]=P.useState(!1),r=P.useRef(!1);P.useEffect(()=>{try{if(sessionStorage.getItem(ip.exitShown)||K9())return}catch{}const T=setTimeout(()=>{r.current=!0},8e3),E=C=>{if(r.current&&!(C.clientY>0)){e(!0);try{sessionStorage.setItem(ip.exitShown,"1")}catch{}window.removeEventListener("mouseleave",E),document.removeEventListener("mouseleave",E)}};return document.addEventListener("mouseleave",E),()=>{clearTimeout(T),document.removeEventListener("mouseleave",E)}},[]);const{values:n,setValues:i,loading:a,setLoading:c,honeypot:s,setHoneypot:f}=Z9(),[m,x]=P.useState(!1),_=async T=>{if(T.preventDefault(),!!n.email){c(!0);try{await GO({lead_type:"exit_intent",email:n.email.trim().toLowerCase(),first_name:n.first_name.trim()||void 0,phone:n.phone.trim()||void 0,criteria:n.area.trim()?{area:n.area.trim()}:void 0}),x(!0),setTimeout(()=>e(!1),2200)}catch{Jt.error("Something went wrong. Please try again.")}finally{c(!1)}}};return o.jsx(Y9,{open:t,onClose:()=>e(!1),children:o.jsxs("div",{className:"relative",children:[o.jsx("div",{className:"h-32 w-full",style:{background:`linear-gradient(135deg, ${pk} 0%, ${rD} 60%, ${ql} 130%)`},children:o.jsx("div",{className:"absolute top-4 left-6",children:o.jsx("span",{className:"text-[10px] uppercase tracking-[0.25em]",style:{color:GC},children:"Before You Go"})})}),o.jsxs("div",{className:"p-8 -mt-10",children:[o.jsx("div",{className:"mx-auto mb-5 h-16 w-16 rounded-full flex items-center justify-center",style:{background:rD,border:`1px solid ${ql}55`,boxShadow:"0 8px 24px rgba(0,0,0,0.5)"},children:o.jsx(Es,{className:"h-6 w-6",style:{color:ql}})}),o.jsx("h2",{className:"text-2xl font-serif text-white text-center leading-tight mb-2",children:"Wait — get a fresh list of homes."}),o.jsx("p",{className:"text-sm text-white/60 text-center mb-6 leading-relaxed",children:"Drop your email and we'll send you a curated list of homes matching your area, updated weekly."}),m?o.jsxs("div",{className:"py-4 text-center",children:[o.jsx("div",{className:"text-white font-medium",children:"Sent — check your inbox."}),o.jsx("div",{className:"text-white/50 text-xs mt-1",children:"Your list is on its way."})]}):o.jsxs("form",{onSubmit:_,className:"space-y-4",children:[o.jsx(X9,{values:n,setValues:i,honeypot:s,setHoneypot:f,showPhone:!1}),o.jsx(Q9,{type:"submit",disabled:a||!n.email,children:a?"Sending…":"Send My List"})]})]})]})})}function hKe(){const[t,e]=P.useState([]);P.useEffect(()=>{try{const s=localStorage.getItem(ip.savedListings);s&&e(JSON.parse(s))}catch{}},[]);const r=s=>{e(s);try{localStorage.setItem(ip.savedListings,JSON.stringify(s))}catch{}},n=P.useCallback(s=>t.includes(s),[t]),i=s=>{t.includes(s)||r([...t,s])},a=s=>r(t.filter(f=>f!==s));return{ids:t,has:n,add:i,remove:a,toggle:s=>t.includes(s)?a(s):i(s)}}function fKe({listingId:t,listingAddress:e,className:r}){const{has:n,add:i,remove:a}=hKe(),c=n(t),[s,f]=P.useState(!1),m=()=>{if(c){a(t);return}if(K9()){i(t),Jt.success("Saved to your favorites"),GO({lead_type:"saved_listing",email:cKe()||"unknown@local",listing_id:t,listing_address:e}).catch(()=>{});return}f(!0)};return o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:m,className:r,"aria-label":c?"Remove from favorites":"Save to favorites",children:o.jsx(tp,{className:`h-5 w-5 ${c?"fill-current":""}`})}),o.jsx(pKe,{open:s,onClose:()=>f(!1),listingId:t,listingAddress:e,onSaved:()=>i(t)})]})}function pKe({open:t,onClose:e,listingId:r,listingAddress:n,onSaved:i}){const{values:a,setValues:c,loading:s,setLoading:f,honeypot:m,setHoneypot:x}=Z9(),_=async T=>{if(T.preventDefault(),!!a.email){f(!0);try{await GO({lead_type:"saved_listing",email:a.email.trim().toLowerCase(),first_name:a.first_name.trim()||void 0,phone:a.phone.trim()||void 0,listing_id:r,listing_address:n}),i(),Jt.success("Saved to your favorites"),e()}catch{Jt.error("Something went wrong. Please try again.")}finally{f(!1)}}};return o.jsx(Y9,{open:t,onClose:e,children:o.jsxs("div",{className:"p-8",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(tp,{className:"h-4 w-4",style:{color:ql}}),o.jsx("span",{className:"text-xs uppercase tracking-[0.2em]",style:{color:GC},children:"Save This Home"})]}),o.jsx("h2",{className:"text-2xl font-serif text-white leading-tight mb-2",children:"One click to save."}),o.jsx("p",{className:"text-sm text-white/60 mb-6 leading-relaxed",children:"Get an alert if the price drops or the status changes. No spam — just the updates that matter."}),o.jsxs("form",{onSubmit:_,className:"space-y-4",children:[o.jsx(X9,{values:a,setValues:c,honeypot:m,setHoneypot:x}),o.jsx(Q9,{type:"submit",disabled:s||!a.email,children:s?"Saving…":"Save Home"})]})]})})}var H0e=["PageUp","PageDown"],W0e=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],K0e={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},SS="Slider",[I6,mKe,gKe]=yC(SS),[Y0e,vUt]=Go(SS,[gKe]),[yKe,HO]=Y0e(SS),Z0e=P.forwardRef((t,e)=>{const{name:r,min:n=0,max:i=100,step:a=1,orientation:c="horizontal",disabled:s=!1,minStepsBetweenThumbs:f=0,defaultValue:m=[n],value:x,onValueChange:_=()=>{},onValueCommit:T=()=>{},inverted:E=!1,form:C,...N}=t,L=P.useRef(new Set),M=P.useRef(0),B=c==="horizontal"?xKe:_Ke,[V=[],G]=sd({prop:x,defaultProp:m,onChange:ue=>{var Te;(Te=[...L.current][M.current])==null||Te.focus(),_(ue)}}),W=P.useRef(V);function Z(ue){const be=TKe(V,ue);ie(ue,be)}function Q(ue){ie(ue,M.current)}function se(){const ue=W.current[M.current];V[M.current]!==ue&&T(V)}function ie(ue,be,{commit:Te}={commit:!1}){const we=CKe(a),Oe=IKe(Math.round((ue-n)/a)*a+n,we),Ae=ak(Oe,[n,i]);G((Se=[])=>{const ge=wKe(Se,Ae,be);if(kKe(ge,f*a)){M.current=ge.indexOf(Ae);const je=String(ge)!==String(Se);return je&&Te&&T(ge),je?ge:Se}else return Se})}return o.jsx(yKe,{scope:t.__scopeSlider,name:r,disabled:s,min:n,max:i,valueIndexToChangeRef:M,thumbs:L.current,values:V,orientation:c,form:C,children:o.jsx(I6.Provider,{scope:t.__scopeSlider,children:o.jsx(I6.Slot,{scope:t.__scopeSlider,children:o.jsx(B,{"aria-disabled":s,"data-disabled":s?"":void 0,...N,ref:e,onPointerDown:Or(N.onPointerDown,()=>{s||(W.current=V)}),min:n,max:i,inverted:E,onSlideStart:s?void 0:Z,onSlideMove:s?void 0:Q,onSlideEnd:s?void 0:se,onHomeKeyDown:()=>!s&&ie(n,0,{commit:!0}),onEndKeyDown:()=>!s&&ie(i,V.length-1,{commit:!0}),onStepKeyDown:({event:ue,direction:be})=>{if(!s){const Oe=H0e.includes(ue.key)||ue.shiftKey&&W0e.includes(ue.key)?10:1,Ae=M.current,Se=V[Ae],ge=a*Oe*be;ie(Se+ge,Ae,{commit:!0})}}})})})})});Z0e.displayName=SS;var[X0e,Q0e]=Y0e(SS,{startEdge:"left",endEdge:"right",size:"width",direction:1}),xKe=P.forwardRef((t,e)=>{const{min:r,max:n,dir:i,inverted:a,onSlideStart:c,onSlideMove:s,onSlideEnd:f,onStepKeyDown:m,...x}=t,[_,T]=P.useState(null),E=Gn(e,B=>T(B)),C=P.useRef(void 0),N=B_(i),L=N==="ltr",M=L&&!a||!L&&a;function D(B){const V=C.current||_.getBoundingClientRect(),G=[0,V.width],Z=J9(G,M?[r,n]:[n,r]);return C.current=V,Z(B-V.left)}return o.jsx(X0e,{scope:t.__scopeSlider,startEdge:M?"left":"right",endEdge:M?"right":"left",direction:M?1:-1,size:"width",children:o.jsx(J0e,{dir:N,"data-orientation":"horizontal",...x,ref:E,style:{...x.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:B=>{const V=D(B.clientX);c==null||c(V)},onSlideMove:B=>{const V=D(B.clientX);s==null||s(V)},onSlideEnd:()=>{C.current=void 0,f==null||f()},onStepKeyDown:B=>{const G=K0e[M?"from-left":"from-right"].includes(B.key);m==null||m({event:B,direction:G?-1:1})}})})}),_Ke=P.forwardRef((t,e)=>{const{min:r,max:n,inverted:i,onSlideStart:a,onSlideMove:c,onSlideEnd:s,onStepKeyDown:f,...m}=t,x=P.useRef(null),_=Gn(e,x),T=P.useRef(void 0),E=!i;function C(N){const L=T.current||x.current.getBoundingClientRect(),M=[0,L.height],B=J9(M,E?[n,r]:[r,n]);return T.current=L,B(N-L.top)}return o.jsx(X0e,{scope:t.__scopeSlider,startEdge:E?"bottom":"top",endEdge:E?"top":"bottom",size:"height",direction:E?1:-1,children:o.jsx(J0e,{"data-orientation":"vertical",...m,ref:_,style:{...m.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:N=>{const L=C(N.clientY);a==null||a(L)},onSlideMove:N=>{const L=C(N.clientY);c==null||c(L)},onSlideEnd:()=>{T.current=void 0,s==null||s()},onStepKeyDown:N=>{const M=K0e[E?"from-bottom":"from-top"].includes(N.key);f==null||f({event:N,direction:M?-1:1})}})})}),J0e=P.forwardRef((t,e)=>{const{__scopeSlider:r,onSlideStart:n,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:c,onEndKeyDown:s,onStepKeyDown:f,...m}=t,x=HO(SS,r);return o.jsx(rn.span,{...m,ref:e,onKeyDown:Or(t.onKeyDown,_=>{_.key==="Home"?(c(_),_.preventDefault()):_.key==="End"?(s(_),_.preventDefault()):H0e.concat(W0e).includes(_.key)&&(f(_),_.preventDefault())}),onPointerDown:Or(t.onPointerDown,_=>{const T=_.target;T.setPointerCapture(_.pointerId),_.preventDefault(),x.thumbs.has(T)?T.focus():n(_)}),onPointerMove:Or(t.onPointerMove,_=>{_.target.hasPointerCapture(_.pointerId)&&i(_)}),onPointerUp:Or(t.onPointerUp,_=>{const T=_.target;T.hasPointerCapture(_.pointerId)&&(T.releasePointerCapture(_.pointerId),a(_))})})}),e_e="SliderTrack",t_e=P.forwardRef((t,e)=>{const{__scopeSlider:r,...n}=t,i=HO(e_e,r);return o.jsx(rn.span,{"data-disabled":i.disabled?"":void 0,"data-orientation":i.orientation,...n,ref:e})});t_e.displayName=e_e;var j6="SliderRange",r_e=P.forwardRef((t,e)=>{const{__scopeSlider:r,...n}=t,i=HO(j6,r),a=Q0e(j6,r),c=P.useRef(null),s=Gn(e,c),f=i.values.length,m=i.values.map(T=>s_e(T,i.min,i.max)),x=f>1?Math.min(...m):0,_=100-Math.max(...m);return o.jsx(rn.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...n,ref:s,style:{...t.style,[a.startEdge]:x+"%",[a.endEdge]:_+"%"}})});r_e.displayName=j6;var P6="SliderThumb",n_e=P.forwardRef((t,e)=>{const r=mKe(t.__scopeSlider),[n,i]=P.useState(null),a=Gn(e,s=>i(s)),c=P.useMemo(()=>n?r().findIndex(s=>s.ref.current===n):-1,[r,n]);return o.jsx(vKe,{...t,ref:a,index:c})}),vKe=P.forwardRef((t,e)=>{const{__scopeSlider:r,index:n,name:i,...a}=t,c=HO(P6,r),s=Q0e(P6,r),[f,m]=P.useState(null),x=Gn(e,D=>m(D)),_=f?c.form||!!f.closest("form"):!0,T=jC(f),E=c.values[n],C=E===void 0?0:s_e(E,c.min,c.max),N=SKe(n,c.values.length),L=T==null?void 0:T[s.size],M=L?EKe(L,C,s.direction):0;return P.useEffect(()=>{if(f)return c.thumbs.add(f),()=>{c.thumbs.delete(f)}},[f,c.thumbs]),o.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${C}% + ${M}px)`},children:[o.jsx(I6.ItemSlot,{scope:t.__scopeSlider,children:o.jsx(rn.span,{role:"slider","aria-label":t["aria-label"]||N,"aria-valuemin":c.min,"aria-valuenow":E,"aria-valuemax":c.max,"aria-orientation":c.orientation,"data-orientation":c.orientation,"data-disabled":c.disabled?"":void 0,tabIndex:c.disabled?void 0:0,...a,ref:x,style:E===void 0?{display:"none"}:t.style,onFocus:Or(t.onFocus,()=>{c.valueIndexToChangeRef.current=n})})}),_&&o.jsx(i_e,{name:i??(c.name?c.name+(c.values.length>1?"[]":""):void 0),form:c.form,value:E},n)]})});n_e.displayName=P6;var bKe="RadioBubbleInput",i_e=P.forwardRef(({__scopeSlider:t,value:e,...r},n)=>{const i=P.useRef(null),a=Gn(i,n),c=zC(e);return P.useEffect(()=>{const s=i.current;if(!s)return;const f=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(f,"value").set;if(c!==e&&x){const _=new Event("input",{bubbles:!0});x.call(s,e),s.dispatchEvent(_)}},[c,e]),o.jsx(rn.input,{style:{display:"none"},...r,ref:a,defaultValue:e})});i_e.displayName=bKe;function wKe(t=[],e,r){const n=[...t];return n[r]=e,n.sort((i,a)=>i-a)}function s_e(t,e,r){const a=100/(r-e)*(t-e);return ak(a,[0,100])}function SKe(t,e){return e>2?`Value ${t+1} of ${e}`:e===2?["Minimum","Maximum"][t]:void 0}function TKe(t,e){if(t.length===1)return 0;const r=t.map(i=>Math.abs(i-e)),n=Math.min(...r);return r.indexOf(n)}function EKe(t,e,r){const n=t/2,a=J9([0,50],[0,n]);return(n-a(e)*r)*r}function AKe(t){return t.slice(0,-1).map((e,r)=>t[r+1]-e)}function kKe(t,e){if(e>0){const r=AKe(t);return Math.min(...r)>=e}return!0}function J9(t,e){return r=>{if(t[0]===t[1]||e[0]===e[1])return e[0];const n=(e[1]-e[0])/(t[1]-t[0]);return e[0]+n*(r-t[0])}}function CKe(t){return(String(t).split(".")[1]||"").length}function IKe(t,e){const r=Math.pow(10,e);return Math.round(t*r)/r}var a_e=Z0e,jKe=t_e,PKe=r_e,NKe=n_e;const fA=P.forwardRef(({className:t,...e},r)=>o.jsxs(a_e,{ref:r,className:ir("relative flex w-full touch-none select-none items-center",t),...e,children:[o.jsx(jKe,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:o.jsx(PKe,{className:"absolute h-full bg-primary"})}),o.jsx(NKe,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));fA.displayName=a_e.displayName;const RKe=t=>br({queryKey:["public-listings",t],queryFn:async()=>{let e=De.from("listings").select(` id, slug, agent_id, property_address, city, state, neighborhood, price, property_type, listing_class, status, bedrooms, bathrooms, square_footage, lot_size, year_built, has_hoa, description, latitude, longitude, created_at, updated_at, photos:listing_photos(id, photo_url, is_primary), agent:profiles!listings_agent_id_fkey(id, name, email, phone, avatar_url, brokerage_name, brokerage:brokerages(name)) `).eq("is_approved",!0).eq("is_public",!0).or("lifecycle_stage.is.null,lifecycle_stage.neq.pitch").or("listing_class.is.null,listing_class.neq.commercial").order("created_at",{ascending:!1});if(t!=null&&t.status?e=e.eq("status",t.status):e=e.not("status","in","(sold,temp_off_market,withdrawn)"),t!=null&&t.propertyType&&(e=e.eq("property_type",t.propertyType)),t!=null&&t.city){const i=t.city.replace(/[%,()]/g," ").trim();if(i){const a=`%${i}%`;e=e.or(`city.ilike.${a},neighborhood.ilike.${a},property_address.ilike.${a}`)}}t!=null&&t.minPrice&&(e=e.gte("price",t.minPrice)),t!=null&&t.maxPrice&&(e=e.lte("price",t.maxPrice));const{data:r,error:n}=await e;if(n)throw n;return r}}),LKe=()=>br({queryKey:["public-listings-search-index"],staleTime:5*60*1e3,queryFn:async()=>{const{data:t,error:e}=await De.from("listings").select("city, state, neighborhood, property_address").eq("is_approved",!0).eq("is_public",!0);if(e)throw e;const r=new Map,n=new Map,i=new Map;return(t||[]).forEach(a=>{if(a.city){const c=`${a.city}|${a.state||""}`.toLowerCase(),s=a.state?`${a.city}, ${a.state}`:a.city,f=r.get(c);f?f.count++:r.set(c,{label:s,city:a.city,state:a.state,count:1})}if(a.neighborhood){const c=`${a.neighborhood}|${a.city||""}`.toLowerCase(),s=a.city?`${a.neighborhood} — ${a.city}`:a.neighborhood,f=n.get(c);f?f.count++:n.set(c,{label:s,city:a.city||"",neighborhood:a.neighborhood,count:1})}if(a.property_address){const c=String(a.property_address).match(/\b(\d{5})(?:-\d{4})?\b/);if(c){const s=c[1],f=i.get(s);f?f.count++:i.set(s,{label:s,zip:s,count:1})}}}),{cities:Array.from(r.values()).sort((a,c)=>c.count-a.count),neighborhoods:Array.from(n.values()).sort((a,c)=>c.count-a.count),zips:Array.from(i.values()).sort((a,c)=>c.count-a.count)}}}),DKe=t=>br({queryKey:["public-listing",t],queryFn:async()=>{const e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t);let r=De.from("listings").select(` id, slug, agent_id, property_address, city, state, neighborhood, price, property_type, listing_class, status, bedrooms, bathrooms, square_footage, lot_size, year_built, has_hoa, description, agent_notes, agent_notes_public, mls_link, video_link, video_id, latitude, longitude, page_config, page_theme, created_at, updated_at, co_agent_name, co_agent_email, co_agent_phone, co_agent_brokerage, co_agent_photo_url, photos:listing_photos(id, photo_url, is_primary, sort_order), agent:profiles!listings_agent_id_fkey(id, name, email, phone, avatar_url, brokerage_name, brokerage:brokerages(name)), video:agent_videos!listings_video_id_fkey(id, playback_url, thumbnail_url, title, duration_seconds, bunny_video_id) `).eq("is_approved",!0).eq("is_public",!0);e?r=r.eq("id",t):r=r.eq("slug",t);const{data:n,error:i}=await r.single();if(i)throw i;const a=n;return Array.isArray(a==null?void 0:a.photos)&&(a.photos=[...a.photos].sort((c,s)=>(c.sort_order??0)-(s.sort_order??0)||(s.is_primary?1:0)-(c.is_primary?1:0))),a},enabled:!!t}),MKe=()=>kr({mutationFn:async({listingId:t,agentId:e,firstName:r,lastName:n,email:i,phone:a,shareToken:c,leadType:s="info_request",preferredDate:f,preferredTime:m,showingMode:x,message:_})=>{let T=null,E=null;if(c){const{data:D}=await De.from("listing_shares").select("id, sharing_agent_id").eq("share_token",c).eq("listing_id",t).maybeSingle();D&&(T=D.id,E=D.sharing_agent_id)}const C=crypto.randomUUID(),N={id:C},{error:L}=await De.from("listing_leads").insert({id:C,listing_id:t,agent_id:E||e,first_name:r,last_name:n,email:i,phone:a,share_id:T,referred_by_agent_id:E,lead_type:s,preferred_date:f||null,preferred_time:m||null,showing_mode:x||null,message:_||null});if(L)throw L;const{error:M}=await De.functions.invoke("process-listing-lead",{body:{leadId:N.id}});return M&&console.error("Error processing lead:",M),N}}),OKe=()=>kr({mutationFn:async t=>{const{error:e}=await De.rpc("increment_listing_share_click",{p_share_token:t});if(e)throw e}});function FKe({title:t,subtitle:e,areaLabel:r,sections:n,agent:i,tone:a="light"}){const c=a==="dark",s=c?"text-white/65":"text-muted-foreground",f=c?"border-white/10":"border-border";return o.jsxs("div",{className:c?"text-white":"text-foreground",id:"community-guide-print",children:[o.jsxs("header",{className:`border-b ${f} pb-6 mb-8`,children:[o.jsxs("div",{className:`flex items-center gap-2 text-[11px] uppercase tracking-[0.22em] ${s} mb-3`,children:[o.jsx(o1,{className:"h-3.5 w-3.5"}),"Insider's Community Guide"]}),o.jsx("h1",{className:"font-display text-3xl sm:text-4xl font-semibold leading-tight",children:t}),e&&o.jsx("p",{className:`mt-3 text-base leading-relaxed ${s}`,children:e}),r&&o.jsxs("p",{className:`mt-3 flex items-center gap-1.5 text-sm ${s}`,children:[o.jsx(ga,{className:"h-3.5 w-3.5"}),r]})]}),o.jsx("div",{className:"space-y-10",children:n.map((m,x)=>o.jsxs("section",{children:[o.jsxs("div",{className:"flex items-baseline gap-3 mb-2",children:[o.jsx("span",{className:"font-display text-2xl text-primary font-semibold",children:String(x+1).padStart(2,"0")}),o.jsx("h2",{className:"font-display text-xl sm:text-2xl font-semibold",children:m.heading})]}),m.intro&&o.jsx("p",{className:`text-sm sm:text-base leading-relaxed ${s} mb-4`,children:m.intro}),o.jsx("ul",{className:"space-y-3",children:(m.items??[]).map((_,T)=>o.jsxs("li",{className:`rounded-xl border ${f} ${c?"bg-white/[0.03]":"bg-muted/40"} px-4 py-3`,children:[o.jsx("p",{className:"font-medium text-sm sm:text-base",children:_.name}),_.note&&o.jsx("p",{className:`text-sm mt-1 leading-relaxed ${s}`,children:_.note})]},T))})]},x))}),(i==null?void 0:i.name)&&o.jsxs("footer",{className:`mt-10 pt-6 border-t ${f}`,children:[o.jsxs("div",{className:"flex items-center gap-4",children:[i.avatar_url?o.jsx("img",{src:i.avatar_url,alt:i.name,className:"h-14 w-14 rounded-full object-cover border border-primary/30"}):null,o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:`text-[11px] uppercase tracking-[0.2em] ${s}`,children:"Prepared for you by"}),o.jsx("p",{className:"font-display text-lg font-semibold leading-tight",children:i.name}),i.brokerage&&o.jsx("p",{className:`text-sm ${s}`,children:i.brokerage}),o.jsxs("div",{className:`flex flex-wrap gap-4 mt-1.5 text-sm ${s}`,children:[i.phone&&o.jsxs("a",{href:`tel:${i.phone}`,className:"flex items-center gap-1.5 hover:text-primary",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"}),i.phone]}),i.email&&o.jsxs("a",{href:`mailto:${i.email}`,className:"flex items-center gap-1.5 hover:text-primary",children:[o.jsx($i,{className:"h-3.5 w-3.5"}),i.email]})]})]})]}),o.jsxs("p",{className:`mt-4 text-sm ${s}`,children:["Thinking about a move in ",r||"the area","? Reach out any time — happy to share what never makes it online."]})]})]})}const fN="border-white/15 bg-white/5 text-white placeholder:text-white/40";function BKe({listingId:t}){const[e,r]=P.useState(null),[n,i]=P.useState({firstName:"",lastName:"",email:"",phone:""}),[a,c]=P.useState(!1),[s,f]=P.useState(null),[m,x]=P.useState(!1);if(P.useEffect(()=>{let T=!1;return De.functions.invoke("community-guide-public",{body:{action:"teaser",listingId:t}}).then(({data:E})=>{!T&&E&&r(E)}).catch(()=>{}),()=>{T=!0}},[t]),!(e!=null&&e.available))return null;const _=async T=>{if(T.preventDefault(),!n.firstName.trim()||!n.email.trim()){Jt.error("Please add your name and email.");return}c(!0);try{const{data:E,error:C}=await De.functions.invoke("community-guide-public",{body:{action:"unlock",listingId:t,...n}});if(C||E!=null&&E.error)throw new Error((E==null?void 0:E.error)||"Something went wrong.");f(E),x(!0),Jt.success("Your guide is ready!")}catch(E){Jt.error((E==null?void 0:E.message)||"We could not send your guide. Please try again.")}finally{c(!1)}};return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.03] p-6 backdrop-blur",children:[o.jsxs("div",{className:"flex items-center gap-2 text-[11px] uppercase tracking-[0.2em] text-white/60 mb-3",children:[o.jsx(o1,{className:"h-3.5 w-3.5"}),"Free Community Guide"]}),o.jsx("h3",{className:"font-display text-xl text-white font-medium leading-snug",children:e.title}),e.subtitle&&o.jsx("p",{className:"text-sm text-white/60 mt-2 leading-relaxed",children:e.subtitle}),(e.teaser??[]).length>0&&o.jsx("ul",{className:"mt-4 space-y-2",children:e.teaser.map((T,E)=>o.jsxs("li",{className:"flex gap-2 text-sm text-white/70",children:[o.jsx(Ao,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),T]},E))}),s?o.jsxs(Kt,{className:"w-full mt-5",onClick:()=>x(!0),children:[o.jsx(o1,{className:"h-4 w-4 mr-2"}),"Read your guide"]}):o.jsxs("form",{onSubmit:_,className:"mt-5 space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"cg-first",className:"text-xs text-white/60",children:"First name"}),o.jsx(Hr,{id:"cg-first",value:n.firstName,onChange:T=>i({...n,firstName:T.target.value}),className:fN,required:!0})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"cg-last",className:"text-xs text-white/60",children:"Last name"}),o.jsx(Hr,{id:"cg-last",value:n.lastName,onChange:T=>i({...n,lastName:T.target.value}),className:fN})]})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"cg-email",className:"text-xs text-white/60",children:"Email"}),o.jsx(Hr,{id:"cg-email",type:"email",value:n.email,onChange:T=>i({...n,email:T.target.value}),className:fN,required:!0})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"cg-phone",className:"text-xs text-white/60",children:"Cell phone"}),o.jsx(Hr,{id:"cg-phone",type:"tel",value:n.phone,onChange:T=>i({...n,phone:T.target.value}),className:fN})]}),o.jsxs(Kt,{type:"submit",className:"w-full",disabled:a,children:[a?o.jsx(ku,{className:"h-4 w-4 mr-2 animate-spin"}):o.jsx(Zl,{className:"h-4 w-4 mr-2"}),a?"Preparing your guide…":"Get the free guide"]}),o.jsxs("p",{className:"text-[11px] text-white/50 flex items-center gap-1.5 justify-center",children:[o.jsx(Fy,{className:"h-3 w-3"}),"Instant access. We never share your details."]})]})]}),o.jsx(ro,{open:m,onOpenChange:x,children:o.jsx(za,{className:"max-w-2xl p-0 gap-0",children:o.jsx(pp,{className:"max-h-[82vh]",children:o.jsxs("div",{className:"p-6 sm:p-8",children:[o.jsx("div",{id:"community-guide-print",children:s&&o.jsx(FKe,{title:s.title,subtitle:s.subtitle,areaLabel:s.area_label,sections:s.sections??[],agent:s.agent})}),o.jsx("div",{className:"mt-8 flex justify-end print:hidden",children:o.jsxs(Kt,{variant:"outline",onClick:()=>zKe(s==null?void 0:s.title),children:[o.jsx(Zl,{className:"h-4 w-4 mr-2"}),"Save as PDF"]})})]})})})})]})}function zKe(t){const e=document.getElementById("community-guide-print");if(!e)return window.print();const r=e.cloneNode(!0);r.removeAttribute("id"),r.setAttribute("data-print-root",""),document.body.appendChild(r),document.body.classList.add("printing-doc");const n=document.title;t&&(document.title=t);let i=!1;const a=()=>{i||(i=!0,r.remove(),document.body.classList.remove("printing-doc"),document.title=n,window.removeEventListener("afterprint",a))};window.addEventListener("afterprint",a);try{window.print()}finally{setTimeout(a,1e3)}}const Pte={sale:"For Sale",lease:"For Lease",sale_or_lease:"For Sale or Lease",investment:"Investment Offering"},o_e={office:"Office",retail:"Retail",industrial:"Industrial",flex:"Flex / R&D",multifamily:"Multifamily",land:"Land",medical:"Medical",hospitality:"Hospitality",self_storage:"Self Storage",mixed_use:"Mixed Use",special_purpose:"Special Purpose"},bUt=["NNN","Modified Gross","Full Service","Gross","Absolute Net","Ground Lease"],$Ke={sf_year:"/SF/YR",sf_month:"/SF/MO",month:"/MO"},UKe={om:"Offering Memorandum",flyer:"Flyer",rent_roll:"Rent Roll",financials:"Financials",survey:"Survey",site_plan:"Site Plan",lease:"Lease Documents",other:"Other"},wUt={public:"Open download",email:"Email required",nda:"NDA required"},VKe={principal:"Principal / Investor",broker:"Broker",tenant:"Tenant / User",lender:"Lender",other:"Other"},SUt=[{key:"pitch",label:"Pitch",blurb:"Competing for the assignment"},{key:"won",label:"Won",blurb:"Assignment secured"},{key:"launched",label:"Launch",blurb:"Microsite & materials live"},{key:"marketing",label:"Market",blurb:"Campaign in market"},{key:"under_contract",label:"Under Contract",blurb:"Deal in escrow"},{key:"closed",label:"Closed",blurb:"Transaction complete"}],OB=[{key:"photos",label:"Professional photography uploaded",detail:"At least 6 images for the microsite hero and gallery"},{key:"financials",label:"Financial snapshot completed",detail:"NOI, cap rate, occupancy or lease rate entered"},{key:"highlights",label:"Investment highlights written",detail:"3–6 reasons this opportunity matters"},{key:"om",label:"Offering Memorandum uploaded",detail:"Gated OM available for qualified prospects"},{key:"microsite",label:"Microsite published",detail:"Public commercial microsite is live"},{key:"email",label:"Broker & investor email sent",detail:"First distribution to your database"},{key:"social",label:"Social / LinkedIn announcement",detail:"Launch post published"},{key:"signage",label:"Signage & QR deployed",detail:"On-site QR code linking to the microsite"}],TUt=[{label:"Day 1 — Positioning & pricing",detail:"Finalize the pricing strategy, opportunity narrative and target buyer/tenant profile."},{label:"Day 2–4 — Institutional-grade materials",detail:"Photography, Offering Memorandum, investor teaser and branded flyer produced."},{label:"Day 5 — Property microsite goes live",detail:"Dedicated commercial microsite with gated OM, tour requests and full analytics."},{label:"Week 1 — Targeted broker & investor outreach",detail:"Direct email to qualified buyers, brokers and 1031 investors in the LevelUp database."},{label:"Week 2 — Digital & social distribution",detail:"LinkedIn campaign, syndication and QR-coded on-site signage."},{label:"Weekly — Owner activity reporting",detail:"Every week you receive views, OM requests, downloads, tours and prospect-level interest."}];function Uh(t,e=0){return t==null||Number.isNaN(Number(t))?null:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:e}).format(Number(t))}function Nte(t){if(t==null)return null;const e=Number(t);return Number.isNaN(e)?null:e>=1e6?`$${(e/1e6).toFixed(e>=1e7?1:2).replace(/\.0+$/,"")}M`:e>=1e3?`$${Math.round(e/1e3)}K`:Uh(e)}function N6(t){return t==null?null:`${new Intl.NumberFormat("en-US").format(Number(t))} SF`}function l_e(t,e=2){return t==null?null:`${Number(t).toFixed(e).replace(/\.?0+$/,"")}%`}function R6(t){if(!(t!=null&&t.lease_rate))return null;const e=$Ke[t.lease_rate_unit||"sf_year"]??"";return`${t.lease_rate_unit==="month"?Uh(t.lease_rate):`$${Number(t.lease_rate).toFixed(2).replace(/\.00$/,"")}`}${e}${t.lease_type?` ${t.lease_type}`:""}`}function Rte(t,e){if(!t)return Uh(e)??"Price on request";if(t.deal_type==="lease")return R6(t)??"Rate on request";const r=t.asking_price??e;if(t.deal_type==="sale_or_lease"){const n=[Uh(r),R6(t)].filter(Boolean);return n.length?n.join(" · "):"Price on request"}return Uh(r)??"Price on request"}function qKe(t,e){return e!=null&&e.opportunity_title?e.opportunity_title:e!=null&&e.hide_address||e!=null&&e.is_confidential?`Confidential ${e!=null&&e.commercial_type?o_e[e.commercial_type]:"Commercial"} Opportunity`:t.property_address||`${t.city??""}, ${t.state??""}`}function GKe(t,e){const r=(e==null?void 0:e.submarket)||t.neighborhood,n=[t.city,t.state].filter(Boolean).join(", ");return r?`${r} · ${n}`:n}function EUt(t,e){var a;const r=(t==null?void 0:t.launch_checklist)??{},n=[],i={photos:e.photoCount>=6,financials:!!(t!=null&&t.noi||t!=null&&t.cap_rate||t!=null&&t.lease_rate||t!=null&&t.occupancy_pct),highlights:(((a=t==null?void 0:t.investment_highlights)==null?void 0:a.length)??0)>=3,om:e.hasOm,microsite:e.isPublic};for(const c of OB)(i[c.key]||r[c.key])&&n.push(c.key);return{done:n,total:OB.length,score:Math.round(n.length/OB.length*100)}}const AUt={om_download:10,om_request:9,tour_request:15,inquiry:12,doc_download:8,om_view:5,gallery_view:2,page_view:1,contact_click:4,share_click:2,email_click:3,email_open:1,map_view:1};function kUt(t){return t>=30?{label:"Hot",tone:"bg-amber-500/15 text-amber-600 border-amber-500/30"}:t>=12?{label:"Warm",tone:"bg-orange-500/10 text-orange-600 border-orange-500/20"}:{label:"Tracking",tone:"bg-muted text-muted-foreground border-border"}}const CUt="https://commercial.relevelup.com",sp=De;function IUt(t){return br({queryKey:["commercial-details",t],queryFn:async()=>{const{data:e,error:r}=await sp.from("commercial_listing_details").select("*").eq("listing_id",t).maybeSingle();if(r)throw r;return e??null},enabled:!!t})}function jUt(){const t=Ir(),{user:e}=$n();return kr({mutationFn:async({listingId:r,values:n})=>{const{data:i,error:a}=await sp.from("commercial_listing_details").upsert({listing_id:r,agent_id:e==null?void 0:e.id,...n},{onConflict:"listing_id"}).select().single();if(a)throw a;return i},onSuccess:(r,n)=>{t.invalidateQueries({queryKey:["commercial-details",n.listingId]}),t.invalidateQueries({queryKey:["listing",n.listingId]})}})}function PUt(t){return br({queryKey:["commercial-pitch",t],queryFn:async()=>{const{data:e,error:r}=await sp.from("commercial_pitch_details").select("*").eq("listing_id",t).maybeSingle();if(r)throw r;return e??null},enabled:!!t})}function NUt(){const t=Ir(),{user:e}=$n();return kr({mutationFn:async({listingId:r,values:n})=>{const{data:i,error:a}=await sp.from("commercial_pitch_details").upsert({listing_id:r,agent_id:e==null?void 0:e.id,...n},{onConflict:"listing_id"}).select().single();if(a)throw a;return i},onSuccess:(r,n)=>t.invalidateQueries({queryKey:["commercial-pitch",n.listingId]})})}function RUt(){const t=Ir();return kr({mutationFn:async({listingId:e,stage:r,lostReason:n})=>{const i=r==="won",a=r==="lost",c={lifecycle_stage:r};i&&(c.status="coming_soon"),a&&(c.is_public=!1,c.allow_sharing=!1);const{error:s}=await sp.from("listings").update(c).eq("id",e);if(s)throw s;return(i||a)&&await sp.from("commercial_pitch_details").update({outcome:i?"won":"lost",won_at:i?new Date().toISOString():null,lost_at:a?new Date().toISOString():null,lost_reason:a?n??null:null}).eq("listing_id",e),r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["listing",r.listingId]}),t.invalidateQueries({queryKey:["commercial-pitch",r.listingId]}),t.invalidateQueries({queryKey:["my-listings"]}),t.invalidateQueries({queryKey:["listings"]})}})}function LUt(){const t=Ir();return kr({mutationFn:async({listingId:e,values:r})=>{const{error:n}=await sp.from("listings").update(r).eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["listing",r.listingId]}),t.invalidateQueries({queryKey:["my-listings"]})}})}function DUt(t,e=90){return br({queryKey:["commercial-engagement",t,e],queryFn:async()=>{const r=new Date(Date.now()-e*864e5).toISOString(),{data:n,error:i}=await sp.from("commercial_engagement_events").select("*").eq("listing_id",t).gte("created_at",r).order("created_at",{ascending:!1}).limit(1e3);if(i)throw i;return n??[]},enabled:!!t})}function MUt(t){return br({queryKey:["commercial-leads",t],queryFn:async()=>{const{data:e,error:r}=await sp.from("listing_leads").select("*").eq("listing_id",t).order("created_at",{ascending:!1});if(r)throw r;return e??[]},enabled:!!t})}const Lte="lu_commercial_session";function c_e(){try{let t=localStorage.getItem(Lte);return t||(t=crypto.randomUUID(),localStorage.setItem(Lte,t)),t}catch{return"anonymous"}}async function Db(t,e,r={}){try{await sp.from("commercial_engagement_events").insert({listing_id:t,event_type:e,session_id:c_e(),source:typeof document<"u"&&document.referrer||null,metadata:r})}catch{}}const HKe={om_request:{eyebrow:"Confidential materials",title:"Request the Offering Memorandum",blurb:"Complete the form below and the offering package will be released to you immediately.",cta:"Request access"},tour_request:{eyebrow:"Property tour",title:"Schedule a tour",blurb:"Tell us who you represent and preferred timing — the listing broker will confirm directly.",cta:"Request tour"},investor_inquiry:{eyebrow:"Investment inquiry",title:"Request information",blurb:"Send a note to the listing broker about this opportunity.",cta:"Send inquiry"}};function WKe({open:t,onOpenChange:e,listingId:r,kind:n,documentId:i,requiresNda:a,brokerName:c}){const s=HKe[n],[f,m]=P.useState({firstName:"",lastName:"",email:"",phone:"",company:"",role:"principal",message:""}),[x,_]=P.useState(!1),[T,E]=P.useState(!1),[C,N]=P.useState(null),L=async()=>{if(!f.firstName.trim()||!f.email.trim()){Jt.error("Name and email are required");return}if(a&&n==="om_request"&&!x){Jt.error("Please acknowledge the confidentiality terms");return}E(!0);try{const{data:M,error:D}=await De.functions.invoke("commercial-lead",{body:{listingId:r,documentId:i??null,leadType:n,firstName:f.firstName,lastName:f.lastName,email:f.email,phone:f.phone||null,company:f.company||null,role:f.role,message:f.message||null,ndaAccepted:x,sessionId:c_e()}});if(D)throw D;if(M!=null&&M.error)throw new Error(M.error);N({signedUrl:(M==null?void 0:M.signedUrl)??null,fileName:(M==null?void 0:M.fileName)??null}),M!=null&&M.signedUrl&&window.open(M.signedUrl,"_blank")}catch(M){Jt.error(M.message||"Something went wrong. Please try again.")}finally{E(!1)}};return o.jsx(ro,{open:t,onOpenChange:M=>{e(M),M||N(null)},children:o.jsxs(za,{className:"max-w-lg overflow-hidden border-white/10 bg-[#0b0f14] p-0 text-white",children:[o.jsxs("div",{className:"border-b border-white/10 bg-gradient-to-b from-white/[0.06] to-transparent px-7 py-6",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.24em] text-white/45",children:s.eyebrow}),o.jsx("h2",{className:"mt-2 font-serif text-2xl",children:C?"Access granted":s.title}),o.jsx("p",{className:"mt-1.5 text-sm text-white/60",children:C?C.signedUrl?"Your download has opened in a new tab. The secure link expires in 30 minutes.":`Your request has been sent${c?` to ${c}`:""}. You'll hear back shortly.`:s.blurb})]}),C?o.jsxs("div",{className:"space-y-4 px-7 py-7",children:[o.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-emerald-400/20 bg-emerald-400/10 px-4 py-3",children:[o.jsx(gc,{className:"h-5 w-5 text-emerald-400"}),o.jsx("p",{className:"text-sm text-white/80",children:C.fileName??"Request received"})]}),C.signedUrl&&o.jsx(Kt,{className:"w-full",onClick:()=>window.open(C.signedUrl,"_blank"),children:"Download again"}),o.jsx(Kt,{variant:"ghost",className:"w-full text-white/60 hover:text-white",onClick:()=>e(!1),children:"Close"})]}):o.jsxs("div",{className:"space-y-4 px-7 py-6",children:[o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(w0,{label:"First name *",children:o.jsx(Hr,{value:f.firstName,onChange:M=>m({...f,firstName:M.target.value}),className:"border-white/15 bg-white/5 text-white"})}),o.jsx(w0,{label:"Last name",children:o.jsx(Hr,{value:f.lastName,onChange:M=>m({...f,lastName:M.target.value}),className:"border-white/15 bg-white/5 text-white"})})]}),o.jsx(w0,{label:"Email *",children:o.jsx(Hr,{type:"email",value:f.email,onChange:M=>m({...f,email:M.target.value}),className:"border-white/15 bg-white/5 text-white"})}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(w0,{label:"Company",children:o.jsx(Hr,{value:f.company,onChange:M=>m({...f,company:M.target.value}),className:"border-white/15 bg-white/5 text-white"})}),o.jsx(w0,{label:"Phone",children:o.jsx(Hr,{value:f.phone,onChange:M=>m({...f,phone:M.target.value}),className:"border-white/15 bg-white/5 text-white"})})]}),o.jsx(w0,{label:"I am a *",children:o.jsxs(Fa,{value:f.role,onValueChange:M=>m({...f,role:M}),children:[o.jsx(Ca,{className:"border-white/15 bg-white/5 text-white",children:o.jsx(Ba,{})}),o.jsx(Ia,{children:Object.entries(VKe).map(([M,D])=>o.jsx(xn,{value:M,children:D},M))})]})}),n!=="om_request"&&o.jsx(w0,{label:"Message",children:o.jsx(ud,{rows:3,value:f.message,onChange:M=>m({...f,message:M.target.value}),className:"border-white/15 bg-white/5 text-white",placeholder:n==="tour_request"?"Preferred dates and times…":"Your question…"})}),a&&n==="om_request"&&o.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-xl border border-white/10 bg-white/[0.04] p-3",children:[o.jsx(qC,{checked:x,onCheckedChange:M=>_(!!M),className:"mt-0.5 border-white/30"}),o.jsxs("span",{className:"text-xs leading-relaxed text-white/65",children:[o.jsx(lG,{className:"mr-1 inline h-3.5 w-3.5"}),"I acknowledge these materials are confidential and agree not to distribute them without the listing broker's written consent."]})]}),o.jsxs(Kt,{className:"w-full",size:"lg",onClick:L,disabled:T,children:[T?o.jsx(ku,{className:"mr-2 h-4 w-4 animate-spin"}):o.jsx(Fy,{className:"mr-2 h-4 w-4"}),s.cta]}),o.jsx("p",{className:"text-center text-[11px] text-white/40",children:"Your information is shared only with the listing broker."})]})]})})}function w0({label:t,children:e}){return o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{className:"text-[11px] font-medium uppercase tracking-wider text-white/50",children:t}),e]})}function u_e(t){if(!t)return[];const e=[],r=(n,i)=>{i&&e.push({label:n,value:i})};return r("Cap Rate",l_e(t.cap_rate)),r("NOI",Nte(t.noi)),r("Occupancy",t.occupancy_pct!=null?`${Math.round(Number(t.occupancy_pct))}%`:null),r("Building SF",N6(t.building_sf)),r("Available SF",N6(t.available_sf)),r("Lot Size",t.lot_acres!=null?`${Number(t.lot_acres)} AC`:null),r("Units",t.units!=null?String(t.units):null),r("Price / SF",t.price_per_sf!=null?Uh(t.price_per_sf,2):null),r("Price / Unit",Nte(t.price_per_unit)),r("Lease Rate",t.deal_type!=="sale"?R6(t):null),r("Year Built",null),r("Zoning",t.zoning??null),e}function OUt({details:t,className:e="",tone:r="light"}){const n=u_e(t).slice(0,8);if(!n.length)return null;const i=r==="dark";return o.jsx("div",{className:`grid gap-px overflow-hidden rounded-xl border ${i?"border-white/10 bg-white/10":"bg-border"} sm:grid-cols-2 lg:grid-cols-4 ${e}`,children:n.map(a=>o.jsxs("div",{className:`${i?"bg-[#0b0f14]":"bg-card"} px-5 py-4`,children:[o.jsx("p",{className:`text-[10px] font-semibold uppercase tracking-[0.18em] ${i?"text-white/45":"text-muted-foreground"}`,children:a.label}),o.jsx("p",{className:`mt-1.5 text-xl font-semibold tabular-nums ${i?"text-white":""}`,children:a.value})]},a.label))})}function KKe(t){return br({queryKey:["commercial-microsite",t],queryFn:async()=>{const{data:e,error:r}=await De.functions.invoke("commercial-public",{body:{slug:t}});if(r)throw r;if(e!=null&&e.error)throw new Error(e.error);return e},enabled:!!t})}function YKe({slug:t}){var ue,be;const{data:e,isLoading:r,error:n}=KKe(t),[i,a]=P.useState(null),[c,s]=P.useState(null),f=e==null?void 0:e.listing,m=(e==null?void 0:e.details)??void 0,x=(e==null?void 0:e.documents)??[],_=(f==null?void 0:f.photos)??[],T=f==null?void 0:f.agent,E=!!(m!=null&&m.is_confidential||m!=null&&m.hide_address),C=P.useMemo(()=>u_e(m).slice(0,8),[m]);if(P.useEffect(()=>{f!=null&&f.id&&Db(f.id,"page_view",{slug:t})},[f==null?void 0:f.id,t]),P.useEffect(()=>{if(i===null)return;const Te=we=>{we.key==="Escape"&&a(null),we.key==="ArrowRight"&&a(Oe=>Oe===null?Oe:(Oe+1)%_.length),we.key==="ArrowLeft"&&a(Oe=>Oe===null?Oe:(Oe-1+_.length)%_.length)};return window.addEventListener("keydown",Te),()=>window.removeEventListener("keydown",Te)},[i,_.length]),r)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[#0b0f14]",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-2 border-white/20 border-t-white/70"})});if(n||!f)return o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[#0b0f14] px-6 text-center text-white/60",children:"This offering is no longer available."});const N=qKe(f,m),L=GKe(f,m),M=f.latitude&&f.longitude?`${f.latitude},${f.longitude}`:E?[m==null?void 0:m.submarket,f.city,f.state].filter(Boolean).join(", ")||null:[f.property_address,f.city,f.state].filter(Boolean).join(", ")||null,D=(ue=_[0])==null?void 0:ue.photo_url,B=(m==null?void 0:m.tenants)??[],V=(m==null?void 0:m.spaces)??[],G=(m==null?void 0:m.demographics)??{},W=(m==null?void 0:m.traffic_counts)??[],Z=(m==null?void 0:m.investment_highlights)??[],Q=(m==null?void 0:m.property_highlights)??[],se=["radius_1","radius_3","radius_5"].some(Te=>(G==null?void 0:G[Te])&&Object.values(G[Te]).some(Boolean)),ie=(Te,we)=>{s({kind:Te,documentId:we}),Db(f.id,Te==="om_request"?"om_request":Te,{})};return o.jsxs("div",{className:"min-h-screen bg-[#0b0f14] text-white antialiased",children:[o.jsxs(Il,{children:[o.jsx("title",{children:`${N} | ${L}`}),o.jsx("meta",{name:"description",content:(f.description??"").slice(0,155)||`${Pte[(m==null?void 0:m.deal_type)??"sale"]} — ${L}`}),E&&o.jsx("meta",{name:"robots",content:"noindex,nofollow"}),o.jsx("meta",{property:"og:title",content:N}),o.jsx("meta",{property:"og:type",content:"website"})]}),o.jsx("header",{className:"fixed inset-x-0 top-0 z-40 border-b border-white/10 bg-[#0b0f14]/80 backdrop-blur",children:o.jsxs("div",{className:"mx-auto flex max-w-7xl items-center justify-between px-6 py-3.5 md:px-10",children:[o.jsxs("a",{href:typeof window<"u"&&window.location.hostname.startsWith("commercial.")?"/":"/public/commercial",className:"flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.22em] text-white/70 transition-colors hover:text-white",children:[o.jsx("span",{"aria-hidden":!0,children:"←"})," All opportunities"]}),o.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-white/45",children:"LevelUp Commercial"})]})}),o.jsxs("section",{className:"relative min-h-[86vh] w-full overflow-hidden",children:[D?o.jsx("img",{src:D,alt:N,className:"absolute inset-0 h-full w-full object-cover"}):o.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-[#12202b] to-[#0b0f14]"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-[#0b0f14] via-[#0b0f14]/60 to-[#0b0f14]/30"}),o.jsxs("div",{className:"relative mx-auto flex min-h-[86vh] max-w-7xl flex-col justify-end px-6 pb-16 pt-24 md:px-10",children:[o.jsxs("div",{className:"mb-5 flex flex-wrap items-center gap-2.5",children:[o.jsx("span",{className:"rounded-full border border-white/25 px-3.5 py-1 text-[10px] font-semibold uppercase tracking-[0.22em]",children:Pte[(m==null?void 0:m.deal_type)??"sale"]}),(m==null?void 0:m.commercial_type)&&o.jsx("span",{className:"rounded-full border border-white/15 bg-white/5 px-3.5 py-1 text-[10px] font-semibold uppercase tracking-[0.22em] text-white/70",children:o_e[m.commercial_type]}),E&&o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-amber-300/30 bg-amber-300/10 px-3.5 py-1 text-[10px] font-semibold uppercase tracking-[0.22em] text-amber-200",children:[o.jsx(Fy,{className:"h-3 w-3"})," Confidential offering"]})]}),o.jsx("h1",{className:"max-w-4xl font-serif text-4xl leading-[1.05] tracking-tight md:text-6xl lg:text-7xl",children:N}),o.jsxs("p",{className:"mt-4 flex items-center gap-2 text-sm uppercase tracking-[0.2em] text-white/60",children:[o.jsx(ga,{className:"h-4 w-4"})," ",L]}),o.jsxs("div",{className:"mt-8 flex flex-wrap items-end gap-x-10 gap-y-5",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.24em] text-white/45",children:(m==null?void 0:m.deal_type)==="lease"?"Lease rate":"Asking price"}),o.jsx("p",{className:"mt-1 text-3xl font-semibold tabular-nums md:text-4xl",children:Rte(m,f.price)})]}),(m==null?void 0:m.cap_rate)!=null&&o.jsxs("div",{children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.24em] text-white/45",children:"Cap rate"}),o.jsx("p",{className:"mt-1 text-3xl font-semibold tabular-nums md:text-4xl",children:l_e(m.cap_rate)})]})]}),o.jsxs("div",{className:"mt-9 flex flex-wrap gap-3",children:[o.jsxs(Kt,{size:"lg",className:"rounded-full px-7",onClick:()=>{var Te;return ie("om_request",((Te=x.find(we=>we.doc_kind==="om"))==null?void 0:Te.id)??null)},children:["Request Offering Memorandum ",o.jsx(Uc,{className:"ml-2 h-4 w-4"})]}),o.jsx(Kt,{size:"lg",variant:"outline",className:"rounded-full border-white/25 bg-white/5 px-7 text-white hover:bg-white/10 hover:text-white",onClick:()=>ie("tour_request"),children:"Schedule a tour"})]})]})]}),C.length>0&&o.jsx("section",{className:"border-y border-white/10 bg-white/[0.02]",children:o.jsx("div",{className:"mx-auto grid max-w-7xl gap-px bg-white/10",style:{gridTemplateColumns:`repeat(${Math.min(C.length,4)}, minmax(0, 1fr))`},children:C.map(Te=>o.jsxs("div",{className:"bg-[#0b0f14] px-6 py-8",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-white/40",children:Te.label}),o.jsx("p",{className:"mt-2 text-2xl font-semibold tabular-nums md:text-3xl",children:Te.value})]},Te.label))})}),Z.length>0&&o.jsx(Mg,{eyebrow:"The opportunity",title:"Investment highlights",children:o.jsx("div",{className:"grid gap-x-12 gap-y-8 md:grid-cols-2",children:Z.map((Te,we)=>o.jsxs("div",{className:"flex gap-5 border-t border-white/10 pt-6",children:[o.jsx("span",{className:"font-serif text-2xl text-white/25 tabular-nums",children:String(we+1).padStart(2,"0")}),o.jsx("p",{className:"text-lg leading-relaxed text-white/85",children:Te})]},we))})}),(f.description||Q.length>0)&&o.jsx(Mg,{eyebrow:"Property",title:"The asset",children:o.jsxs("div",{className:"grid gap-12 lg:grid-cols-[1.4fr_1fr]",children:[f.description&&o.jsx("div",{className:"space-y-5 text-lg leading-relaxed text-white/70",children:String(f.description).split(/\n{2,}/).map((Te,we)=>o.jsx("p",{children:Te},we))}),Q.length>0&&o.jsx("ul",{className:"space-y-3 self-start rounded-2xl border border-white/10 bg-white/[0.03] p-7",children:Q.map((Te,we)=>o.jsxs("li",{className:"flex gap-3 text-sm text-white/75",children:[o.jsx("span",{className:"mt-2 h-1 w-1 shrink-0 rounded-full bg-white/50"})," ",Te]},we))})]})}),_.length>1&&o.jsx(Mg,{eyebrow:"Gallery",title:"Property imagery",children:o.jsx("div",{className:"grid gap-3 md:grid-cols-3",children:_.slice(1,10).map((Te,we)=>o.jsx("button",{onClick:()=>{a(we+1),Db(f.id,"gallery_view",{})},className:`group relative overflow-hidden rounded-xl ${we===0?"md:col-span-2 md:row-span-2":""}`,children:o.jsx("img",{src:Te.photo_url,alt:`${N} — image ${we+2}`,loading:"lazy",className:`w-full object-cover transition-transform duration-700 group-hover:scale-[1.04] ${we===0?"h-full min-h-[280px] md:min-h-[560px]":"h-[180px] md:h-[275px]"}`})},Te.id))})}),((m==null?void 0:m.noi)||(m==null?void 0:m.gross_income)||(m==null?void 0:m.operating_expenses)||(m==null?void 0:m.occupancy_pct)!=null)&&o.jsxs(Mg,{eyebrow:"Financials",title:"Offering snapshot",children:[o.jsx("div",{className:"grid gap-px overflow-hidden rounded-2xl border border-white/10 bg-white/10 sm:grid-cols-2 lg:grid-cols-4",children:[{l:"Net operating income",v:Uh(m==null?void 0:m.noi)},{l:"Gross income",v:Uh(m==null?void 0:m.gross_income)},{l:"Operating expenses",v:Uh(m==null?void 0:m.operating_expenses)},{l:"Occupancy",v:(m==null?void 0:m.occupancy_pct)!=null?`${Math.round(Number(m.occupancy_pct))}%`:null},{l:"Price per SF",v:(m==null?void 0:m.price_per_sf)!=null?Uh(m.price_per_sf,2):null},{l:"Price per unit",v:Uh(m==null?void 0:m.price_per_unit)},{l:"Tenancy",v:m!=null&&m.tenancy?`${m.tenancy[0].toUpperCase()}${m.tenancy.slice(1)} tenant`:null},{l:"Broker co-op",v:(m==null?void 0:m.broker_coop_pct)!=null?`${m.broker_coop_pct}%`:null}].filter(Te=>Te.v).map(Te=>o.jsxs("div",{className:"bg-[#0b0f14] px-6 py-7",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-white/40",children:Te.l}),o.jsx("p",{className:"mt-2 text-xl font-semibold tabular-nums",children:Te.v})]},Te.l))}),(m==null?void 0:m.call_for_offers_at)&&o.jsxs("p",{className:"mt-6 inline-flex items-center gap-2 rounded-full border border-amber-300/25 bg-amber-300/10 px-5 py-2 text-sm text-amber-100",children:["Call for offers · ",new Date(m.call_for_offers_at).toLocaleDateString(void 0,{month:"long",day:"numeric",year:"numeric"})]})]}),(B.length>0||V.length>0)&&o.jsx(Mg,{eyebrow:"Occupancy",title:V.length?"Space availability":"Tenant roster",children:o.jsx("div",{className:"overflow-hidden rounded-2xl border border-white/10",children:o.jsxs("table",{className:"w-full text-left text-sm",children:[o.jsx("thead",{className:"bg-white/[0.04] text-[10px] uppercase tracking-[0.18em] text-white/45",children:o.jsxs("tr",{children:[o.jsx("th",{className:"px-6 py-4",children:V.length?"Suite":"Tenant"}),o.jsx("th",{className:"px-6 py-4",children:"SF"}),o.jsx("th",{className:"px-6 py-4",children:V.length?"Rate":"Rent"}),o.jsx("th",{className:"px-6 py-4",children:V.length?"Availability":"Lease expiry"})]})}),o.jsx("tbody",{className:"divide-y divide-white/5",children:(V.length?V:B).map((Te,we)=>o.jsxs("tr",{className:"text-white/80",children:[o.jsx("td",{className:"px-6 py-4 font-medium text-white",children:Te.suite??Te.name??"—"}),o.jsx("td",{className:"px-6 py-4 tabular-nums",children:Te.sf?N6(Number(Te.sf)):"—"}),o.jsx("td",{className:"px-6 py-4",children:Te.rate??Te.rent??"—"}),o.jsx("td",{className:"px-6 py-4",children:Te.availability??Te.lease_expiry??"—"})]},we))})]})})}),o.jsx(Mg,{eyebrow:"Location",title:m!=null&&m.submarket?`${m.submarket} submarket`:L,children:o.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.2fr_1fr]",children:[M?o.jsx("div",{className:"overflow-hidden rounded-2xl border border-white/10",children:o.jsx("iframe",{title:"Property location",className:"h-[420px] w-full",loading:"lazy",src:`https://www.google.com/maps?q=${encodeURIComponent(M)}&z=${f.latitude&&f.longitude?15:12}&output=embed`,onLoad:()=>Db(f.id,"map_view",{})})}):o.jsx("div",{className:"flex h-[420px] items-center justify-center rounded-2xl border border-white/10 bg-white/[0.03] text-center text-sm text-white/50",children:E?"Exact location released with the Offering Memorandum.":L}),o.jsxs("div",{className:"space-y-5",children:[(m==null?void 0:m.zoning)&&o.jsx(Mb,{label:"Zoning",value:m.zoning}),(m==null?void 0:m.lot_acres)!=null&&o.jsx(Mb,{label:"Site size",value:`${m.lot_acres} acres`}),(m==null?void 0:m.parking_spaces)!=null&&o.jsx(Mb,{label:"Parking",value:`${m.parking_spaces} spaces`}),(m==null?void 0:m.opportunity_zone)&&o.jsx(Mb,{label:"Opportunity Zone",value:"Qualified"}),W.filter(Te=>Te.road||Te.count).map((Te,we)=>o.jsx(Mb,{label:`Traffic count — ${Te.road??"Adjacent road"}`,value:`${Te.count??"—"} VPD`},we)),!(m!=null&&m.zoning)&&(m==null?void 0:m.lot_acres)==null&&(m==null?void 0:m.parking_spaces)==null&&!(m!=null&&m.opportunity_zone)&&o.jsx(Mb,{label:"Submarket",value:(m==null?void 0:m.submarket)||L})]})]})}),se&&o.jsx(Mg,{eyebrow:"Market",title:"Demographics",children:o.jsx("div",{className:"grid gap-4 md:grid-cols-3",children:[["radius_1","1 mile"],["radius_3","3 miles"],["radius_5","5 miles"]].map(([Te,we])=>{const Oe=G==null?void 0:G[Te];return!Oe||!Object.values(Oe).some(Boolean)?null:o.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.03] p-7",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-white/40",children:we}),o.jsx("dl",{className:"mt-5 space-y-3 text-sm",children:[["Population",Oe.population],["Households",Oe.households],["Avg. income",Oe.avg_income],["Daytime pop.",Oe.daytime_pop]].filter(([,Ae])=>Ae).map(([Ae,Se])=>o.jsxs("div",{className:"flex justify-between gap-4",children:[o.jsx("dt",{className:"text-white/50",children:Ae}),o.jsx("dd",{className:"font-medium tabular-nums",children:Se})]},Ae))})]},Te)})})}),x.length>0&&o.jsx(Mg,{eyebrow:"Deal room",title:"Offering documents",children:o.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:x.map(Te=>{const we=Te.gate_level==="public";return o.jsxs("div",{className:"flex items-center gap-4 rounded-2xl border border-white/10 bg-white/[0.03] p-5 transition-colors hover:border-white/20",children:[o.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-xl border border-white/10 bg-white/5",children:we?o.jsx(Zl,{className:"h-5 w-5"}):Te.gate_level==="nda"?o.jsx(lG,{className:"h-5 w-5"}):o.jsx(Fy,{className:"h-5 w-5"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:"truncate font-medium",children:Te.title||UKe[Te.doc_kind||"other"]}),o.jsx("p",{className:"text-xs text-white/45",children:we?"Available to download":Te.gate_level==="nda"?"Confidentiality acknowledgement required":"Registration required"})]}),o.jsx(Kt,{size:"sm",variant:"outline",className:"border-white/20 bg-transparent text-white hover:bg-white/10 hover:text-white",onClick:()=>ie("om_request",Te.id),children:we?"Download":"Request"})]},Te.id)})})}),T&&o.jsx("section",{className:"border-t border-white/10 bg-white/[0.02]",children:o.jsx("div",{className:"mx-auto max-w-7xl px-6 py-20 md:px-10",children:o.jsxs("div",{className:"flex flex-col items-start gap-8 md:flex-row md:items-center md:justify-between",children:[o.jsxs("div",{className:"flex items-center gap-6",children:[T.avatar_url&&o.jsx("img",{src:T.avatar_url,alt:T.name,className:"h-24 w-24 rounded-full object-cover ring-1 ring-white/15"}),o.jsxs("div",{children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.22em] text-white/40",children:"Exclusively listed by"}),o.jsx("p",{className:"mt-2 font-serif text-2xl",children:T.name}),o.jsx("p",{className:"text-sm text-white/55",children:((be=T.brokerage)==null?void 0:be.name)||T.brokerage_name})]})]}),o.jsxs("div",{className:"flex flex-wrap gap-3",children:[T.email&&o.jsxs(Kt,{variant:"outline",className:"rounded-full border-white/20 bg-transparent text-white hover:bg-white/10 hover:text-white",onClick:()=>{Db(f.id,"contact_click",{}),window.location.href=`mailto:${T.email}`},children:[o.jsx($i,{className:"mr-2 h-4 w-4"})," Email"]}),T.phone&&o.jsxs(Kt,{variant:"outline",className:"rounded-full border-white/20 bg-transparent text-white hover:bg-white/10 hover:text-white",onClick:()=>{Db(f.id,"contact_click",{}),window.location.href=`tel:${T.phone}`},children:[o.jsx(Ui,{className:"mr-2 h-4 w-4"})," Call"]}),o.jsx(Kt,{className:"rounded-full",onClick:()=>ie("investor_inquiry"),children:"Request information"})]})]})})}),o.jsx("footer",{className:"border-t border-white/10 py-10 text-center text-xs text-white/35",children:o.jsx("p",{children:"The information contained herein has been obtained from sources believed reliable but is not guaranteed. Prospective purchasers and tenants should conduct their own independent investigation."})}),o.jsx("div",{className:"sticky bottom-0 z-30 border-t border-white/10 bg-[#0b0f14]/90 backdrop-blur-xl",children:o.jsxs("div",{className:"mx-auto flex max-w-7xl flex-wrap items-center justify-between gap-3 px-6 py-3.5 md:px-10",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"truncate text-sm font-medium",children:N}),o.jsxs("p",{className:"truncate text-xs text-white/50",children:[Rte(m,f.price)," · ",L]})]}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Kt,{size:"sm",variant:"outline",className:"rounded-full border-white/20 bg-transparent text-white hover:bg-white/10 hover:text-white",onClick:()=>ie("tour_request"),children:"Tour"}),o.jsx(Kt,{size:"sm",className:"rounded-full",onClick:()=>{var Te;return ie("om_request",((Te=x.find(we=>we.doc_kind==="om"))==null?void 0:Te.id)??null)},children:"Request OM"})]})]})}),o.jsx(ro,{open:i!==null,onOpenChange:Te=>!Te&&a(null),children:o.jsx(za,{className:"max-w-[96vw] border-none bg-transparent p-0 shadow-none",children:i!==null&&_[i]&&o.jsxs("div",{className:"relative",children:[o.jsx("img",{src:_[i].photo_url,alt:"",className:"max-h-[88vh] w-full rounded-xl object-contain"}),o.jsx("button",{className:"absolute right-3 top-3 rounded-full bg-black/60 p-2",onClick:()=>a(null),children:o.jsx(Zs,{className:"h-5 w-5"})}),o.jsx("button",{className:"absolute left-3 top-1/2 -translate-y-1/2 rounded-full bg-black/60 p-2",onClick:()=>a(Te=>(Te-1+_.length)%_.length),children:o.jsx(Bm,{className:"h-6 w-6"})}),o.jsx("button",{className:"absolute right-3 top-1/2 -translate-y-1/2 rounded-full bg-black/60 p-2",onClick:()=>a(Te=>(Te+1)%_.length),children:o.jsx(th,{className:"h-6 w-6"})})]})})}),c&&o.jsx(WKe,{open:!0,onOpenChange:Te=>!Te&&s(null),listingId:f.id,kind:c.kind,documentId:c.documentId,requiresNda:!!(m!=null&&m.requires_nda)||(m==null?void 0:m.om_gate_mode)==="nda",brokerName:T==null?void 0:T.name})]})}function Mg({eyebrow:t,title:e,children:r}){return o.jsx("section",{className:"border-t border-white/10",children:o.jsxs("div",{className:"mx-auto max-w-7xl px-6 py-20 md:px-10 md:py-24",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.24em] text-white/40",children:t}),o.jsx("h2",{className:"mt-3 font-serif text-3xl tracking-tight md:text-4xl",children:e}),o.jsx("div",{className:"mt-12",children:r})]})})}function Mb({label:t,value:e}){return o.jsxs("div",{className:"border-t border-white/10 pt-4",children:[o.jsx("p",{className:"text-[10px] font-semibold uppercase tracking-[0.2em] text-white/40",children:t}),o.jsx("p",{className:"mt-1 text-lg",children:e})]})}const Dte="/assets/levelup-logo-color-BeKd2k_g.png",ZKe={active:"bg-emerald-500",coming_soon:"bg-sky-500",office_exclusive:"bg-indigo-500",temp_off_market:"bg-amber-600",withdrawn:"bg-slate-500",pre_market:"bg-cyan-500",price_improvement:"bg-orange-500",under_contract:"bg-purple-500",sold:"bg-gray-600"},FB={active:"For Sale",coming_soon:"Coming Soon",office_exclusive:"Office Exclusive",temp_off_market:"Temporarily Off Market",withdrawn:"Withdrawn",pre_market:"Pre-Market",price_improvement:"Price Improvement",under_contract:"Under Contract",sold:"Sold"},Mte={single_family:"Single Family",condo:"Condo",townhouse:"Townhouse",land:"Land",multi_family:"Multi-Family",luxury:"Luxury",commercial:"Commercial",other:"Other"},BB=t=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(t),x2=t=>new Intl.NumberFormat("en-US").format(t);function e7({slugOverride:t}={}){var vi,sa,ts,Pr,ni,rs;const e=hp(),r=t||e.slugOrId,[n]=mS(),{data:i,isLoading:a}=DKe(r||""),c=MKe(),s=OKe(),f=n.get("ref"),[m,x]=P.useState(""),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(""),[M,D]=P.useState(""),[B,V]=P.useState(""),[G,W]=P.useState(""),[Z,Q]=P.useState("in_person"),[se,ie]=P.useState("info"),[ue,be]=P.useState(!1),[Te,we]=P.useState(!1),[Oe,Ae]=P.useState(null),[Se,ge]=P.useState(!1);P.useState(!1);const[je,_e]=P.useState(!1),[xe,Pe]=P.useState(20),[Ze,at]=P.useState(6.5),[lt,xt]=P.useState(30),St=P.useRef(null),[Xt,_t]=P.useState(!1);P.useEffect(()=>{const Nn=()=>_t(window.scrollY>300);return window.addEventListener("scroll",Nn,{passive:!0}),()=>window.removeEventListener("scroll",Nn)},[]),P.useEffect(()=>{f&&s.mutate(f)},[f]),P.useEffect(()=>{window.scrollTo({top:0,left:0,behavior:"auto"})},[r]);const Rt=(i==null?void 0:i.photos)||[],er=Rt.find(Nn=>Nn.is_primary)||Rt[0],vt=P.useMemo(()=>{if(!(i!=null&&i.price))return 0;const Nn=i.price*(1-xe/100),Nr=Ze/100/12,Sn=lt*12;return Nr===0?Nn/Sn:Nn*Nr/(1-Math.pow(1+Nr,-Sn))},[i==null?void 0:i.price,xe,Ze,lt]),xr=async()=>{const Nn=window.location.href;if(navigator.share)try{await navigator.share({title:document.title,url:Nn})}catch{}else await navigator.clipboard.writeText(Nn),Jt.success("Link copied to clipboard")},_r=async Nn=>{if(Nn.preventDefault(),!m.trim()||!E.trim()||!i)return;const Nr=se==="showing";if(Nr&&!B){Jt.error("Please pick a preferred date for your showing");return}be(!0);try{await c.mutateAsync({listingId:i.id,agentId:i.agent_id,firstName:m.trim(),lastName:_.trim(),email:E.trim(),phone:N.trim(),shareToken:f,leadType:Nr?"showing_request":"info_request",preferredDate:Nr?B:null,preferredTime:Nr&&G||null,showingMode:Nr?Z:null,message:M.trim()||null}),we(!0),Jt.success(Nr?"Showing request sent! The agent will confirm details shortly.":"Thanks! The agent will be in touch soon.")}catch(Sn){console.error("Lead submission error:",Sn),Jt.error(`Failed to submit: ${Sn.message||"Please try again"}`)}finally{be(!1)}},tn=()=>{Oe!==null&&Ae(Oe===0?Rt.length-1:Oe-1)},or=()=>{Oe!==null&&Ae(Oe===Rt.length-1?0:Oe+1)};if((i==null?void 0:i.listing_class)==="commercial")return o.jsx(YKe,{slug:r});if(a)return o.jsx("div",{className:"min-h-screen bg-neutral-950",children:o.jsx(al,{className:"h-[100svh] w-full rounded-none bg-neutral-900"})});if(!i)return o.jsxs("div",{className:"min-h-screen bg-background",children:[o.jsx("header",{className:"border-b bg-card",children:o.jsx("div",{className:"container mx-auto px-4 py-4",children:o.jsx(zi,{to:"/public/listings",className:"flex items-center gap-2",children:o.jsx("img",{src:Dte,alt:"LevelUp",className:"h-8"})})})}),o.jsxs("div",{className:"container mx-auto px-4 py-24 text-center",children:[o.jsx(Ma,{className:"h-16 w-16 mx-auto text-muted-foreground mb-4"}),o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"Listing Not Found"}),o.jsx("p",{className:"text-muted-foreground mb-6",children:"This listing may no longer be available."}),o.jsx(Kt,{asChild:!0,children:o.jsx(zi,{to:typeof window<"u"&&window.location.host==="listings.relevelup.com"?"/":"/public/listings",children:"Browse All Listings"})})]})]});const Sr=i.property_address?`${i.property_address} — ${i.city}, ${i.state}`:`${i.city}, ${i.state} Home for Sale`,jr=((sa=(vi=i.agent)==null?void 0:vi.brokerage)==null?void 0:sa.name)||((ts=i.agent)==null?void 0:ts.brokerage_name),Qt=((Pr=i.agent)==null?void 0:Pr.name)||"",Je=jr||Qt||"",Tt=FB[i.status]==="Sold"?"Just Sold":FB[i.status],Dt=Tt?`${Tt}: ${Sr}`:Sr,cr=[`${BB(i.price)} · ${i.city}, ${i.state}`,Qt?`Presented by ${Qt}${jr?`, ${jr}`:""}.`:""].filter(Boolean).join(" · "),lr=i.latitude&&i.longitude?`https://maps.google.com/maps?q=${i.latitude},${i.longitude}&z=15&output=embed`:i.property_address?`https://maps.google.com/maps?q=${encodeURIComponent(`${i.property_address}, ${i.city}, ${i.state}`)}&z=15&output=embed`:null,ur=i.description||"",Rr=ur.length>420,Pn=je||!Rr?ur:ur.slice(0,420).trimEnd()+"…",Yn=i.page_config||{},ki=Nn=>{var Nr;return(((Nr=Yn.sections)==null?void 0:Nr[Nn])??!0)!==!1},wi=Array.isArray(Yn.addons)?Yn.addons:[],Ci=Yn.custom_note||"",Gs=Yn.accent_color||null;return o.jsxs(o.Fragment,{children:[o.jsxs(Il,{children:[o.jsx("title",{children:Je?`${Sr} | ${Je}`:Sr}),o.jsx("meta",{name:"description",content:`${BB(i.price)} · ${i.bedrooms||""}BD ${i.bathrooms||""}BA ${i.square_footage?i.square_footage.toLocaleString()+" sqft · ":""}${Mte[i.property_type]} in ${i.city}, ${i.state}. ${ur.slice(0,140)}`}),o.jsx("link",{rel:"canonical",href:`https://listings.relevelup.com/${i.slug||i.id}`}),o.jsx("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),o.jsx("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:""}),o.jsx("link",{href:"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&display=swap",rel:"stylesheet"}),o.jsx("meta",{property:"og:title",content:Dt}),o.jsx("meta",{property:"og:description",content:cr}),o.jsx("meta",{property:"og:type",content:"website"}),o.jsx("meta",{property:"og:url",content:`https://listings.relevelup.com/${i.slug||i.id}`}),er&&o.jsx("meta",{property:"og:image",content:er.photo_url}),Je&&o.jsx("meta",{property:"og:site_name",content:Je}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),o.jsx("meta",{name:"twitter:title",content:Dt}),o.jsx("meta",{name:"twitter:description",content:cr}),er&&o.jsx("meta",{name:"twitter:image",content:er.photo_url}),o.jsx("meta",{name:"robots",content:"index, follow"}),o.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"RealEstateListing",name:i.property_address||`${i.city}, ${i.state} Home`,description:ur,url:`https://listings.relevelup.com/${i.slug||i.id}`,datePosted:i.created_at,image:Rt.map(Nn=>Nn.photo_url),address:{"@type":"PostalAddress",streetAddress:i.property_address||void 0,addressLocality:i.city,addressRegion:i.state,addressCountry:"US"},offers:{"@type":"Offer",price:i.price,priceCurrency:"USD",availability:i.status==="sold"?"https://schema.org/SoldOut":i.status==="under_contract"?"https://schema.org/LimitedAvailability":"https://schema.org/InStock"},numberOfRooms:i.bedrooms||void 0,numberOfBathroomsTotal:i.bathrooms||void 0,floorSize:i.square_footage?{"@type":"QuantitativeValue",value:i.square_footage,unitCode:"FTK"}:void 0,yearBuilt:i.year_built||void 0})}),o.jsx("style",{children:` .font-display { font-family: 'Fraunces', ui-serif, Georgia, serif; font-optical-sizing: auto; letter-spacing: -0.02em; } @keyframes kb-zoom { from { transform: scale(1.08); } to { transform: scale(1); } } .kb-zoom { animation: kb-zoom 12s ease-out forwards; } .noscroll::-webkit-scrollbar { display: none; } `})]}),o.jsxs("div",{className:"bg-neutral-950 text-neutral-100 min-h-screen",children:[o.jsx("header",{className:`fixed inset-x-0 top-0 z-40 transition-all duration-300 ${Xt?"bg-neutral-950/85 backdrop-blur-xl border-b border-white/10 py-3":"bg-gradient-to-b from-black/60 to-transparent py-4"}`,children:o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 flex items-center justify-between gap-3",children:[o.jsxs(zi,{to:typeof window<"u"&&window.location.host==="listings.relevelup.com"?"/":"/public/listings",className:"flex items-center gap-2 text-white/90 hover:text-white",children:[o.jsx(Oy,{className:"h-4 w-4"}),o.jsx("span",{className:"text-sm font-medium hidden sm:inline",children:"All Listings"})]}),Xt&&o.jsx("div",{className:"hidden md:flex items-center gap-1 text-sm",children:[["overview","Overview"],["gallery","Gallery"],["story","The Story"],["video","Video"],["map","Location"],["payment","Payment"],["agent","Agent"]].map(([Nn,Nr])=>o.jsx("a",{href:`#${Nn}`,className:"px-3 py-1.5 rounded-full text-white/70 hover:text-white hover:bg-white/10 transition",children:Nr},Nn))}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(fKe,{listingId:i.id,listingAddress:i.property_address?`${i.property_address}, ${i.city}, ${i.state}`:`${i.city}, ${i.state}`,className:"h-9 w-9 rounded-full border border-white/20 bg-white/5 backdrop-blur hover:bg-white/15 flex items-center justify-center transition text-white"}),o.jsx("button",{onClick:xr,className:"h-9 w-9 rounded-full border border-white/20 bg-white/5 backdrop-blur hover:bg-white/15 flex items-center justify-center transition","aria-label":"Share",children:o.jsx(wC,{className:"h-4 w-4 text-white"})}),o.jsx(Kt,{size:"sm",onClick:()=>ge(!0),className:"hidden sm:inline-flex bg-white text-neutral-900 hover:bg-white/90 rounded-full h-9 px-4 font-medium",children:"Request Tour"})]})]})}),o.jsxs("section",{ref:St,id:"overview",className:"relative h-[100svh] min-h-[620px] w-full overflow-hidden",children:[er?o.jsx("img",{src:er.photo_url,alt:i.property_address||`${i.city}, ${i.state}`,className:"absolute inset-0 h-full w-full object-cover kb-zoom"}):o.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-neutral-800 to-neutral-950"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-black/20"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-black/40 via-transparent to-transparent"}),o.jsxs("div",{className:"absolute top-24 right-4 sm:right-8 z-10 flex flex-col items-end gap-2",children:[o.jsx(hs,{className:`${ZKe[i.status]} text-white border-0 uppercase tracking-widest text-[10px] px-3 py-1 rounded-full shadow-lg`,children:FB[i.status]}),Rt.length>0&&o.jsxs("button",{onClick:()=>Ae(0),className:"flex items-center gap-1.5 text-xs text-white/90 bg-black/40 backdrop-blur border border-white/20 rounded-full px-3 py-1.5 hover:bg-black/60 transition",children:[o.jsx(pJ,{className:"h-3.5 w-3.5"}),Rt.length," photos"]})]}),o.jsx("div",{className:"absolute inset-x-0 bottom-0 z-10 px-4 sm:px-8 pb-10 sm:pb-14",children:o.jsxs("div",{className:"max-w-7xl mx-auto",children:[o.jsxs("div",{className:"flex items-end justify-between gap-6 flex-wrap",children:[o.jsxs("div",{className:"max-w-3xl",children:[i.neighborhood&&o.jsxs("p",{className:"text-white/70 uppercase tracking-[0.25em] text-xs mb-3 font-medium",children:[i.neighborhood," · ",i.city,", ",i.state]}),i.property_address&&o.jsx("h1",{className:"font-display text-white text-4xl sm:text-6xl md:text-7xl leading-[0.95] mb-4 font-light",children:i.property_address}),!i.property_address&&o.jsxs("h1",{className:"font-display text-white text-4xl sm:text-6xl md:text-7xl leading-[0.95] mb-4 font-light",children:[i.city,", ",i.state]}),o.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[o.jsx("p",{className:"font-display text-white text-3xl sm:text-4xl md:text-5xl font-medium",children:BB(i.price)}),o.jsx("div",{className:"h-8 w-px bg-white/30 hidden sm:block"}),o.jsxs("div",{className:"flex items-center gap-4 text-white/80 text-sm sm:text-base",children:[i.bedrooms&&o.jsxs("span",{children:[o.jsx("span",{className:"font-semibold text-white",children:i.bedrooms})," bd"]}),i.bathrooms&&o.jsxs("span",{children:[o.jsx("span",{className:"font-semibold text-white",children:i.bathrooms})," ba"]}),i.square_footage&&o.jsxs("span",{children:[o.jsx("span",{className:"font-semibold text-white",children:x2(i.square_footage)})," sqft"]})]})]})]}),i.agent&&o.jsxs("div",{className:"hidden md:flex items-center gap-3 bg-white/10 backdrop-blur-xl border border-white/20 rounded-2xl px-4 py-3 shadow-2xl",children:[i.agent.avatar_url?o.jsx("img",{src:i.agent.avatar_url,alt:i.agent.name,className:"h-12 w-12 rounded-full object-cover"}):o.jsx("div",{className:"h-12 w-12 rounded-full bg-white/20 flex items-center justify-center",children:o.jsx(kl,{className:"h-6 w-6 text-white"})}),o.jsxs("div",{className:"pr-2",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-widest text-white/60",children:"Listing Agent"}),o.jsx("p",{className:"text-white font-medium leading-tight",children:i.agent.name}),jr&&o.jsx("p",{className:"text-xs text-white/60",children:jr})]}),o.jsx(Kt,{size:"sm",onClick:()=>ge(!0),className:"bg-white text-neutral-900 hover:bg-white/90 rounded-full h-9 px-4",children:"Contact"})]})]}),o.jsxs("div",{className:"mt-10 flex items-center gap-2 text-white/50 text-xs uppercase tracking-widest",children:[o.jsx("span",{className:"h-px w-8 bg-white/30"}),"Scroll to explore"]})]})})]}),ki("stats")&&o.jsx("section",{className:"border-b border-white/10 bg-neutral-950",children:o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-8 py-8 grid grid-cols-2 md:grid-cols-5 gap-6",children:[i.bedrooms&&{icon:_C,label:"Bedrooms",value:i.bedrooms},i.bathrooms&&{icon:iS,label:"Bathrooms",value:i.bathrooms},i.square_footage&&{icon:cG,label:"Interior",value:`${x2(i.square_footage)} sqft`},i.lot_size&&{icon:GM,label:"Lot Size",value:i.lot_size},i.year_built&&{icon:fo,label:"Year Built",value:i.year_built},!i.year_built&&i.square_footage&&{icon:Che,label:"Price / sqft",value:`$${x2(Math.round(i.price/i.square_footage))}`}].filter(Boolean).slice(0,5).map((Nn,Nr)=>o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx("div",{className:"h-10 w-10 rounded-full bg-white/5 border border-white/10 flex items-center justify-center shrink-0",children:o.jsx(Nn.icon,{className:"h-4 w-4 text-white/70"})}),o.jsxs("div",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-widest text-white/50",children:Nn.label}),o.jsx("p",{className:"font-display text-2xl text-white font-light",children:Nn.value})]})]},Nr))})}),o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-8 py-16 grid lg:grid-cols-3 gap-12",children:[o.jsxs("div",{className:"lg:col-span-2 space-y-20",children:[ki("story")&&ur&&o.jsxs("section",{id:"story",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-3",children:"The Story"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light mb-6 text-white",children:"A closer look at this home"}),o.jsx("div",{className:"prose prose-invert prose-lg max-w-none",children:o.jsx("p",{className:"text-white/75 leading-relaxed whitespace-pre-wrap",children:Pn})}),Rr&&o.jsx("button",{onClick:()=>_e(!je),className:"mt-4 text-sm text-white/60 hover:text-white underline underline-offset-4",children:je?"Show less":"Read more"}),o.jsxs("div",{className:"mt-8 flex flex-wrap gap-2",children:[o.jsxs(hs,{variant:"outline",className:"border-white/20 text-white/80 bg-white/5",children:[o.jsx(Eo,{className:"h-3 w-3 mr-1.5"}),Mte[i.property_type]]}),i.has_hoa&&o.jsx(hs,{variant:"outline",className:"border-white/20 text-white/80 bg-white/5",children:"HOA"}),i.mls_link&&o.jsx(Kt,{variant:"outline",size:"sm",asChild:!0,className:"ml-2 border-white/20 bg-white/5 text-white hover:bg-white/15",children:o.jsxs("a",{href:i.mls_link,target:"_blank",rel:"noopener noreferrer",children:[o.jsx(sS,{className:"h-3.5 w-3.5 mr-1.5"})," MLS"]})})]}),(Ci||i.agent_notes&&i.agent_notes_public)&&o.jsxs("div",{className:"mt-10 rounded-2xl border border-white/10 bg-white/5 p-6",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[o.jsx(Es,{className:"h-4 w-4 text-amber-300"}),o.jsx("p",{className:"text-[11px] uppercase tracking-[0.25em] text-white/60",children:"A note from the agent"})]}),o.jsxs("p",{className:"text-white/80 whitespace-pre-wrap leading-relaxed italic font-display",children:['"',Ci||i.agent_notes,'"']})]})]}),ki("gallery")&&Rt.length>1&&o.jsxs("section",{id:"gallery",children:[o.jsxs("div",{className:"flex items-end justify-between mb-6",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"Gallery"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white",children:"Every angle, every detail"})]}),o.jsxs("button",{onClick:()=>Ae(0),className:"text-sm text-white/60 hover:text-white underline underline-offset-4 hidden sm:inline",children:["View all ",Rt.length]})]}),o.jsx("div",{className:"grid grid-cols-4 gap-2 sm:gap-3",children:Rt.slice(0,7).map((Nn,Nr)=>{const Sn=["col-span-4 sm:col-span-2 sm:row-span-2 aspect-square sm:aspect-auto","col-span-2 sm:col-span-2 aspect-[4/3]","col-span-2 sm:col-span-2 aspect-[4/3]","col-span-2 sm:col-span-1 aspect-square","col-span-2 sm:col-span-1 aspect-square","col-span-2 sm:col-span-1 aspect-square","col-span-2 sm:col-span-1 aspect-square"],li=Nr===6&&Rt.length>7;return o.jsxs("button",{onClick:()=>Ae(Nr),className:`${Sn[Nr]} relative rounded-xl overflow-hidden group bg-neutral-900`,children:[o.jsx("img",{src:Nn.photo_url,alt:`Photo ${Nr+1}`,className:"absolute inset-0 h-full w-full object-cover group-hover:scale-[1.04] transition-transform duration-500"}),li&&o.jsxs("div",{className:"absolute inset-0 bg-black/60 flex flex-col items-center justify-center text-white",children:[o.jsx(pJ,{className:"h-6 w-6 mb-1"}),o.jsxs("span",{className:"font-medium",children:["+",Rt.length-7," more"]})]})]},Nn.id)})})]}),ki("video")&&((ni=i.video)==null?void 0:ni.playback_url)&&o.jsxs("section",{id:"video",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"Video Tour"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:"Walk through the home"}),o.jsx("div",{className:"relative rounded-2xl overflow-hidden bg-black shadow-2xl aspect-video",children:o.jsx("iframe",{src:i.video.playback_url,className:"absolute inset-0 h-full w-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:"Video Tour"})})]}),ki("map")&&lr&&o.jsxs("section",{id:"map",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"Location"}),o.jsxs("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:[i.neighborhood?i.neighborhood:i.city,", ",i.state]}),o.jsx("div",{className:"rounded-2xl overflow-hidden border border-white/10 shadow-2xl aspect-[16/10]",children:o.jsx("iframe",{src:lr,className:"w-full h-full grayscale-[.2] contrast-[1.05]",loading:"lazy",title:"Map"})}),o.jsxs("div",{className:"mt-4 flex items-center gap-2 text-white/60 text-sm",children:[o.jsx(ga,{className:"h-4 w-4"}),i.property_address?`${i.property_address}, `:"",i.city,", ",i.state]})]}),ki("payment")&&o.jsxs("section",{id:"payment",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"Payment"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:"Estimate your monthly"}),o.jsxs("div",{className:"rounded-2xl border border-white/10 bg-gradient-to-br from-white/5 to-transparent p-6 sm:p-8",children:[o.jsxs("div",{className:"flex items-baseline gap-3 mb-8",children:[o.jsxs("p",{className:"font-display text-5xl sm:text-6xl font-light text-white",children:["$",x2(Math.round(vt))]}),o.jsx("p",{className:"text-white/60",children:"/ month"})]}),o.jsxs("div",{className:"grid sm:grid-cols-3 gap-8",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsx(Fr,{className:"text-white/70 text-xs uppercase tracking-widest",children:"Down Payment"}),o.jsxs("span",{className:"text-white font-medium",children:[xe,"%"]})]}),o.jsx(fA,{value:[xe],onValueChange:Nn=>Pe(Nn[0]),min:0,max:50,step:1}),o.jsxs("p",{className:"text-xs text-white/50 mt-2",children:["$",x2(Math.round(i.price*xe/100))," down"]})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsx(Fr,{className:"text-white/70 text-xs uppercase tracking-widest",children:"Interest Rate"}),o.jsxs("span",{className:"text-white font-medium",children:[Ze.toFixed(2),"%"]})]}),o.jsx(fA,{value:[Ze],onValueChange:Nn=>at(Nn[0]),min:2,max:10,step:.125})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsx(Fr,{className:"text-white/70 text-xs uppercase tracking-widest",children:"Loan Term"}),o.jsxs("span",{className:"text-white font-medium",children:[lt," yr"]})]}),o.jsx(fA,{value:[lt],onValueChange:Nn=>xt(Nn[0]),min:10,max:30,step:5})]})]}),o.jsx("p",{className:"text-xs text-white/40 mt-6",children:"Estimated principal & interest only. Taxes, insurance, and HOA not included."})]})]}),wi.map(Nn=>{const Nr=Nn.type,Sn=Nn.data||{};if(Nr==="extra_video"&&Sn.url){const li=String(Sn.url).includes("youtu")?`https://www.youtube.com/embed/${String(Sn.url).split(/[/=]/).pop()}`:Sn.url;return o.jsxs("section",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:Sn.eyebrow||"Featured Video"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:Sn.title||"Watch"}),o.jsx("div",{className:"relative rounded-2xl overflow-hidden bg-black shadow-2xl aspect-video",children:o.jsx("iframe",{src:li,className:"absolute inset-0 h-full w-full",allowFullScreen:!0,title:Sn.title||"Video"})})]},Nn.id)}return Nr==="3d_tour"&&Sn.url?o.jsxs("section",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"3D Tour"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:Sn.title||"Step inside"}),o.jsx("div",{className:"relative rounded-2xl overflow-hidden bg-black shadow-2xl aspect-video",children:o.jsx("iframe",{src:Sn.url,className:"absolute inset-0 h-full w-full",allowFullScreen:!0,title:"3D Tour"})})]},Nn.id):Nr==="floor_plan"&&Sn.image_url?o.jsxs("section",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.3em] text-white/40 mb-2",children:"Floor Plan"}),o.jsx("h2",{className:"font-display text-3xl sm:text-4xl font-light text-white mb-6",children:Sn.title||"Layout"}),o.jsx("img",{src:Sn.image_url,alt:"Floor plan",className:"w-full rounded-2xl border border-white/10"})]},Nn.id):Nr==="testimonial"&&Sn.quote?o.jsxs("section",{className:"rounded-2xl border border-white/10 bg-white/[0.03] p-8",children:[o.jsxs("p",{className:"font-display italic text-2xl text-white/90 leading-relaxed",children:['"',Sn.quote,'"']}),Sn.author&&o.jsxs("p",{className:"mt-4 text-sm text-white/60",children:["— ",Sn.author]})]},Nn.id):Nr==="custom_cta"&&Sn.label?o.jsxs("section",{className:"rounded-2xl p-8 text-center",style:{background:Gs?`${Gs}22`:"rgba(255,255,255,0.05)",border:`1px solid ${Gs||"rgba(255,255,255,0.1)"}`},children:[Sn.title&&o.jsx("h3",{className:"font-display text-3xl text-white mb-4",children:Sn.title}),o.jsx(Kt,{asChild:!0,size:"lg",style:Gs?{background:Gs}:void 0,children:o.jsx("a",{href:Sn.url||"#agent",children:Sn.label})})]},Nn.id):null})]}),o.jsxs("aside",{id:"agent",className:"lg:sticky lg:top-24 lg:self-start space-y-6",children:[o.jsx(BKe,{listingId:i.id}),i.agent&&o.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.03] p-6 backdrop-blur",children:[o.jsxs("div",{className:"flex items-start gap-4",children:[i.agent.avatar_url?o.jsx("img",{src:i.agent.avatar_url,alt:i.agent.name,className:"h-16 w-16 rounded-full object-cover border-2 border-white/20"}):o.jsx("div",{className:"h-16 w-16 rounded-full bg-white/10 flex items-center justify-center border-2 border-white/20",children:o.jsx(kl,{className:"h-7 w-7 text-white/70"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-[10px] uppercase tracking-widest text-white/50",children:"Listing Agent"}),o.jsx("p",{className:"font-display text-xl text-white font-medium leading-tight",children:i.agent.name}),jr&&o.jsx("p",{className:"text-sm text-white/60 mt-0.5",children:jr})]})]}),o.jsxs("div",{className:"mt-4 grid grid-cols-2 gap-2",children:[i.agent.phone&&o.jsx(Kt,{asChild:!0,variant:"outline",size:"sm",className:"border-white/20 bg-white/5 text-white hover:bg-white/15",children:o.jsxs("a",{href:`tel:${i.agent.phone}`,children:[o.jsx(Ui,{className:"h-3.5 w-3.5 mr-1.5"}),"Call"]})}),i.agent.email&&o.jsx(Kt,{asChild:!0,variant:"outline",size:"sm",className:"border-white/20 bg-white/5 text-white hover:bg-white/15",children:o.jsxs("a",{href:`mailto:${i.agent.email}`,children:[o.jsx($i,{className:"h-3.5 w-3.5 mr-1.5"}),"Email"]})})]})]}),i.co_agent_name&&o.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/[0.03] p-6 backdrop-blur",children:[o.jsxs("div",{className:"flex items-start gap-4",children:[i.co_agent_photo_url?o.jsx("img",{src:i.co_agent_photo_url,alt:i.co_agent_name,className:"h-16 w-16 rounded-full object-cover border-2 border-white/20"}):o.jsx("div",{className:"h-16 w-16 rounded-full bg-white/10 flex items-center justify-center border-2 border-white/20",children:o.jsx(kl,{className:"h-7 w-7 text-white/70"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-[10px] uppercase tracking-widest text-white/50",children:"Co-Listing Agent"}),o.jsx("p",{className:"font-display text-xl text-white font-medium leading-tight",children:i.co_agent_name}),i.co_agent_brokerage&&o.jsx("p",{className:"text-sm text-white/60 mt-0.5",children:i.co_agent_brokerage})]})]}),(i.co_agent_phone||i.co_agent_email)&&o.jsxs("div",{className:"mt-4 grid grid-cols-2 gap-2",children:[i.co_agent_phone&&o.jsx(Kt,{asChild:!0,variant:"outline",size:"sm",className:"border-white/20 bg-white/5 text-white hover:bg-white/15",children:o.jsxs("a",{href:`tel:${i.co_agent_phone}`,children:[o.jsx(Ui,{className:"h-3.5 w-3.5 mr-1.5"}),"Call"]})}),i.co_agent_email&&o.jsx(Kt,{asChild:!0,variant:"outline",size:"sm",className:"border-white/20 bg-white/5 text-white hover:bg-white/15",children:o.jsxs("a",{href:`mailto:${i.co_agent_email}`,children:[o.jsx($i,{className:"h-3.5 w-3.5 mr-1.5"}),"Email"]})})]})]}),o.jsx("div",{id:"contact",className:"rounded-2xl border border-white/10 bg-white text-neutral-900 p-6 shadow-2xl",children:o.jsx(Ote,{submitted:Te,activeTab:se,setActiveTab:ie,firstName:m,setFirstName:x,lastName:_,setLastName:T,email:E,setEmail:C,phone:N,setPhone:L,message:M,setMessage:D,preferredDate:B,setPreferredDate:V,preferredTime:G,setPreferredTime:W,showingMode:Z,setShowingMode:Q,isSubmitting:ue,onSubmit:_r})})]})]}),o.jsxs("div",{className:"lg:hidden fixed bottom-0 inset-x-0 z-40 bg-neutral-950/95 backdrop-blur-xl border-t border-white/10 px-4 py-3 flex items-center gap-2 safe-area-inset-bottom",children:[((rs=i.agent)==null?void 0:rs.phone)&&o.jsx(Kt,{asChild:!0,variant:"outline",size:"sm",className:"border-white/20 bg-white/5 text-white hover:bg-white/15 flex-1",children:o.jsxs("a",{href:`tel:${i.agent.phone}`,children:[o.jsx(Ui,{className:"h-4 w-4 mr-1.5"}),"Call"]})}),o.jsxs(Kt,{onClick:()=>ge(!0),className:"bg-white text-neutral-900 hover:bg-white/90 flex-[2] font-medium",children:[o.jsx(Ihe,{className:"h-4 w-4 mr-1.5"}),"Request Tour"]})]}),o.jsx("footer",{className:"border-t border-white/10 py-10 mt-24 mb-16 lg:mb-0",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-8 flex flex-col sm:flex-row items-center justify-between gap-4 text-sm text-white/50",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("img",{src:Dte,alt:"LevelUp",className:"h-6 opacity-80"}),o.jsxs("span",{children:["© ",new Date().getFullYear()," LevelUp"]})]}),o.jsx("a",{href:"https://relevelup.com",target:"_blank",rel:"noopener noreferrer",className:"hover:text-white",children:"relevelup.com"})]})}),o.jsx(ro,{open:Oe!==null,onOpenChange:()=>Ae(null),children:o.jsxs(za,{className:"max-w-6xl p-0 bg-black/95 border-0",children:[o.jsx(cl,{className:"sr-only",children:o.jsx(qo,{children:"Photo Gallery"})}),o.jsx("button",{onClick:()=>Ae(null),className:"absolute right-4 top-4 z-50 rounded-full bg-white/10 hover:bg-white/20 p-2 text-white",children:o.jsx(Zs,{className:"h-5 w-5"})}),Oe!==null&&Rt[Oe]&&o.jsxs("div",{className:"relative",children:[o.jsx("img",{src:Rt[Oe].photo_url,alt:`Photo ${Oe+1}`,className:"w-full max-h-[85vh] object-contain"}),Rt.length>1&&o.jsxs(o.Fragment,{children:[o.jsx("button",{onClick:tn,className:"absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 hover:bg-white/20 p-3 text-white",children:o.jsx(Bm,{className:"h-6 w-6"})}),o.jsx("button",{onClick:or,className:"absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 hover:bg-white/20 p-3 text-white",children:o.jsx(th,{className:"h-6 w-6"})}),o.jsxs("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 text-white bg-black/60 px-3 py-1 rounded-full text-sm",children:[Oe+1," / ",Rt.length]})]})]})]})}),o.jsx(ro,{open:Se,onOpenChange:ge,children:o.jsxs(za,{className:"max-w-md p-0 bg-white text-neutral-900",children:[o.jsx(cl,{className:"sr-only",children:o.jsx(qo,{children:"Contact the agent"})}),o.jsx("div",{className:"p-6",children:o.jsx(Ote,{submitted:Te,activeTab:se,setActiveTab:ie,firstName:m,setFirstName:x,lastName:_,setLastName:T,email:E,setEmail:C,phone:N,setPhone:L,message:M,setMessage:D,preferredDate:B,setPreferredDate:V,preferredTime:G,setPreferredTime:W,showingMode:Z,setShowingMode:Q,isSubmitting:ue,onSubmit:_r})})]})})]})]})}function Ote(t){const{submitted:e,activeTab:r,setActiveTab:n,firstName:i,setFirstName:a,lastName:c,setLastName:s,email:f,setEmail:m,phone:x,setPhone:_,message:T,setMessage:E,preferredDate:C,setPreferredDate:N,preferredTime:L,setPreferredTime:M,showingMode:D,setShowingMode:B,isSubmitting:V,onSubmit:G}=t;return e?o.jsxs("div",{className:"text-center py-6",children:[o.jsx("div",{className:"h-14 w-14 rounded-full bg-emerald-100 flex items-center justify-center mx-auto mb-3",children:o.jsx(Ao,{className:"h-7 w-7 text-emerald-600"})}),o.jsx("p",{className:"font-display text-2xl font-medium mb-1",children:r==="showing"?"Showing request sent!":"Thanks — you're all set!"}),o.jsx("p",{className:"text-sm text-neutral-600",children:r==="showing"?"The listing agent will reach out to confirm your showing time.":"The listing agent will contact you shortly with more details."})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mb-4",children:[o.jsx("p",{className:"text-[10px] uppercase tracking-[0.25em] text-neutral-500 mb-1",children:"Interested?"}),o.jsx("h3",{className:"font-display text-2xl font-medium",children:"Talk to the listing agent"})]}),o.jsxs(W9,{value:r,onValueChange:W=>n(W),children:[o.jsxs(qO,{className:"grid w-full grid-cols-2 mb-4",children:[o.jsxs(xm,{value:"info",className:"gap-1.5",children:[o.jsx(rp,{className:"h-3.5 w-3.5"})," Get Info"]}),o.jsxs(xm,{value:"showing",className:"gap-1.5",children:[o.jsx(Ihe,{className:"h-3.5 w-3.5"})," Request Tour"]})]}),o.jsxs("form",{onSubmit:G,className:"space-y-3",children:[o.jsxs(jy,{value:"showing",className:"mt-0 space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"preferredDate",children:"Preferred Date *"}),o.jsx(Hr,{id:"preferredDate",type:"date",value:C,onChange:W=>N(W.target.value),min:new Date().toISOString().split("T")[0],required:r==="showing"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"preferredTime",children:"Preferred Time"}),o.jsxs(Fa,{value:L,onValueChange:M,children:[o.jsx(Ca,{id:"preferredTime",children:o.jsx(Ba,{placeholder:"Any time"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"morning",children:"Morning (9am–12pm)"}),o.jsx(xn,{value:"afternoon",children:"Afternoon (12pm–5pm)"}),o.jsx(xn,{value:"evening",children:"Evening (5pm–8pm)"})]})]})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"showingMode",children:"Tour Type"}),o.jsxs(Fa,{value:D,onValueChange:W=>B(W),children:[o.jsx(Ca,{id:"showingMode",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"in_person",children:"🏡 In-person showing"}),o.jsx(xn,{value:"video",children:"📱 Video tour (FaceTime/Zoom)"}),o.jsx(xn,{value:"either",children:"Either works for me"})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"firstName",children:"First Name *"}),o.jsx(Hr,{id:"firstName",value:i,onChange:W=>a(W.target.value),required:!0})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lastName",children:"Last Name"}),o.jsx(Hr,{id:"lastName",value:c,onChange:W=>s(W.target.value)})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"email",children:"Email *"}),o.jsx(Hr,{id:"email",type:"email",value:f,onChange:W=>m(W.target.value),required:!0})]}),o.jsxs("div",{children:[o.jsxs(Fr,{htmlFor:"phone",children:["Phone ",r==="showing"&&"*"]}),o.jsx(Hr,{id:"phone",type:"tel",value:x,onChange:W=>_(W.target.value),required:r==="showing"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"message",children:r==="showing"?"Anything else?":"Message (optional)"}),o.jsx(ud,{id:"message",value:T,onChange:W=>E(W.target.value),rows:2})]}),o.jsx(Kt,{type:"submit",disabled:V,className:"w-full bg-neutral-900 hover:bg-neutral-800 text-white h-11",children:V?"Sending…":r==="showing"?"Request Showing":"Get More Info"}),o.jsx("p",{className:"text-[11px] text-neutral-500 text-center",children:"The listing agent will contact you directly. No spam."})]})]})]})}const XKe=Object.freeze(Object.defineProperty({__proto__:null,default:e7},Symbol.toStringTag,{value:"Module"})),Fte="/assets/levelup-logo-white-C2RAgAoG.png",QKe="/assets/listings-hero-noir-BHCJrhvU.jpg";var d_e={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(Hl,function(){let r,n,i;function a(s,f){if(!r)r=f;else if(!n)n=f;else{const m={};r(m),i=f(m);const x="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+r+")(sharedChunk); ("+n+")(undefined, sharedChunk); self.onerror = null;";typeof window<"u"&&window&&window.URL&&window.URL.createObjectURL&&(i.workerUrl=window.URL.createObjectURL(new Blob([x],{type:"text/javascript"})))}}a(["exports"],function(s){var f=1e-6,m=typeof Float32Array<"u"?Float32Array:Array;function x(h,l){var u=l[0],p=l[1],y=l[2],b=l[3],S=u*b-y*p;return S?(h[0]=b*(S=1/S),h[1]=-p*S,h[2]=-y*S,h[3]=u*S,h):null}function _(){var h=new m(9);return m!=Float32Array&&(h[1]=0,h[2]=0,h[3]=0,h[5]=0,h[6]=0,h[7]=0),h[0]=1,h[4]=1,h[8]=1,h}function T(h,l){var u=l[0],p=l[1],y=l[2],b=l[3],S=l[4],k=l[5],I=l[6],O=l[7],z=l[8];return h[0]=S*z-k*O,h[1]=y*O-p*z,h[2]=p*k-y*S,h[3]=k*I-b*z,h[4]=u*z-y*I,h[5]=y*b-u*k,h[6]=b*O-S*I,h[7]=p*I-u*O,h[8]=u*S-p*b,h}function E(h,l,u){var p=l[0],y=l[1],b=l[2],S=l[3],k=l[4],I=l[5],O=l[6],z=l[7],U=l[8],q=u[0],K=u[1],X=u[2],J=u[3],re=u[4],ae=u[5],he=u[6],ce=u[7],ye=u[8];return h[0]=q*p+K*S+X*O,h[1]=q*y+K*k+X*z,h[2]=q*b+K*I+X*U,h[3]=J*p+re*S+ae*O,h[4]=J*y+re*k+ae*z,h[5]=J*b+re*I+ae*U,h[6]=he*p+ce*S+ye*O,h[7]=he*y+ce*k+ye*z,h[8]=he*b+ce*I+ye*U,h}function C(){var h=new m(16);return m!=Float32Array&&(h[1]=0,h[2]=0,h[3]=0,h[4]=0,h[6]=0,h[7]=0,h[8]=0,h[9]=0,h[11]=0,h[12]=0,h[13]=0,h[14]=0),h[0]=1,h[5]=1,h[10]=1,h[15]=1,h}function N(h){var l=new m(16);return l[0]=h[0],l[1]=h[1],l[2]=h[2],l[3]=h[3],l[4]=h[4],l[5]=h[5],l[6]=h[6],l[7]=h[7],l[8]=h[8],l[9]=h[9],l[10]=h[10],l[11]=h[11],l[12]=h[12],l[13]=h[13],l[14]=h[14],l[15]=h[15],l}function L(h){return h[0]=1,h[1]=0,h[2]=0,h[3]=0,h[4]=0,h[5]=1,h[6]=0,h[7]=0,h[8]=0,h[9]=0,h[10]=1,h[11]=0,h[12]=0,h[13]=0,h[14]=0,h[15]=1,h}function M(h,l){var u=l[0],p=l[1],y=l[2],b=l[3],S=l[4],k=l[5],I=l[6],O=l[7],z=l[8],U=l[9],q=l[10],K=l[11],X=l[12],J=l[13],re=l[14],ae=l[15],he=u*k-p*S,ce=u*I-y*S,ye=u*O-b*S,Ee=p*I-y*k,Ce=p*O-b*k,He=y*O-b*I,ze=z*J-U*X,Ge=z*re-q*X,Ue=z*ae-K*X,Ve=U*re-q*J,gt=U*ae-K*J,wt=q*ae-K*re,kt=he*wt-ce*gt+ye*Ve+Ee*Ue-Ce*Ge+He*ze;return kt?(h[0]=(k*wt-I*gt+O*Ve)*(kt=1/kt),h[1]=(y*gt-p*wt-b*Ve)*kt,h[2]=(J*He-re*Ce+ae*Ee)*kt,h[3]=(q*Ce-U*He-K*Ee)*kt,h[4]=(I*Ue-S*wt-O*Ge)*kt,h[5]=(u*wt-y*Ue+b*Ge)*kt,h[6]=(re*ye-X*He-ae*ce)*kt,h[7]=(z*He-q*ye+K*ce)*kt,h[8]=(S*gt-k*Ue+O*ze)*kt,h[9]=(p*Ue-u*gt-b*ze)*kt,h[10]=(X*Ce-J*ye+ae*he)*kt,h[11]=(U*ye-z*Ce-K*he)*kt,h[12]=(k*Ge-S*Ve-I*ze)*kt,h[13]=(u*Ve-p*Ge+y*ze)*kt,h[14]=(J*ce-X*Ee-re*he)*kt,h[15]=(z*Ee-U*ce+q*he)*kt,h):null}function D(h,l,u){var p=l[0],y=l[1],b=l[2],S=l[3],k=l[4],I=l[5],O=l[6],z=l[7],U=l[8],q=l[9],K=l[10],X=l[11],J=l[12],re=l[13],ae=l[14],he=l[15],ce=u[0],ye=u[1],Ee=u[2],Ce=u[3];return h[0]=ce*p+ye*k+Ee*U+Ce*J,h[1]=ce*y+ye*I+Ee*q+Ce*re,h[2]=ce*b+ye*O+Ee*K+Ce*ae,h[3]=ce*S+ye*z+Ee*X+Ce*he,h[4]=(ce=u[4])*p+(ye=u[5])*k+(Ee=u[6])*U+(Ce=u[7])*J,h[5]=ce*y+ye*I+Ee*q+Ce*re,h[6]=ce*b+ye*O+Ee*K+Ce*ae,h[7]=ce*S+ye*z+Ee*X+Ce*he,h[8]=(ce=u[8])*p+(ye=u[9])*k+(Ee=u[10])*U+(Ce=u[11])*J,h[9]=ce*y+ye*I+Ee*q+Ce*re,h[10]=ce*b+ye*O+Ee*K+Ce*ae,h[11]=ce*S+ye*z+Ee*X+Ce*he,h[12]=(ce=u[12])*p+(ye=u[13])*k+(Ee=u[14])*U+(Ce=u[15])*J,h[13]=ce*y+ye*I+Ee*q+Ce*re,h[14]=ce*b+ye*O+Ee*K+Ce*ae,h[15]=ce*S+ye*z+Ee*X+Ce*he,h}function B(h,l,u){var p,y,b,S,k,I,O,z,U,q,K,X,J=u[0],re=u[1],ae=u[2];return l===h?(h[12]=l[0]*J+l[4]*re+l[8]*ae+l[12],h[13]=l[1]*J+l[5]*re+l[9]*ae+l[13],h[14]=l[2]*J+l[6]*re+l[10]*ae+l[14],h[15]=l[3]*J+l[7]*re+l[11]*ae+l[15]):(y=l[1],b=l[2],S=l[3],k=l[4],I=l[5],O=l[6],z=l[7],U=l[8],q=l[9],K=l[10],X=l[11],h[0]=p=l[0],h[1]=y,h[2]=b,h[3]=S,h[4]=k,h[5]=I,h[6]=O,h[7]=z,h[8]=U,h[9]=q,h[10]=K,h[11]=X,h[12]=p*J+k*re+U*ae+l[12],h[13]=y*J+I*re+q*ae+l[13],h[14]=b*J+O*re+K*ae+l[14],h[15]=S*J+z*re+X*ae+l[15]),h}function V(h,l,u){var p=u[0],y=u[1],b=u[2];return h[0]=l[0]*p,h[1]=l[1]*p,h[2]=l[2]*p,h[3]=l[3]*p,h[4]=l[4]*y,h[5]=l[5]*y,h[6]=l[6]*y,h[7]=l[7]*y,h[8]=l[8]*b,h[9]=l[9]*b,h[10]=l[10]*b,h[11]=l[11]*b,h[12]=l[12],h[13]=l[13],h[14]=l[14],h[15]=l[15],h}function G(h,l,u){var p=Math.sin(u),y=Math.cos(u),b=l[4],S=l[5],k=l[6],I=l[7],O=l[8],z=l[9],U=l[10],q=l[11];return l!==h&&(h[0]=l[0],h[1]=l[1],h[2]=l[2],h[3]=l[3],h[12]=l[12],h[13]=l[13],h[14]=l[14],h[15]=l[15]),h[4]=b*y+O*p,h[5]=S*y+z*p,h[6]=k*y+U*p,h[7]=I*y+q*p,h[8]=O*y-b*p,h[9]=z*y-S*p,h[10]=U*y-k*p,h[11]=q*y-I*p,h}function W(h,l,u){var p=Math.sin(u),y=Math.cos(u),b=l[0],S=l[1],k=l[2],I=l[3],O=l[8],z=l[9],U=l[10],q=l[11];return l!==h&&(h[4]=l[4],h[5]=l[5],h[6]=l[6],h[7]=l[7],h[12]=l[12],h[13]=l[13],h[14]=l[14],h[15]=l[15]),h[0]=b*y-O*p,h[1]=S*y-z*p,h[2]=k*y-U*p,h[3]=I*y-q*p,h[8]=b*p+O*y,h[9]=S*p+z*y,h[10]=k*p+U*y,h[11]=I*p+q*y,h}function Z(h,l,u){var p=Math.sin(u),y=Math.cos(u),b=l[0],S=l[1],k=l[2],I=l[3],O=l[4],z=l[5],U=l[6],q=l[7];return l!==h&&(h[8]=l[8],h[9]=l[9],h[10]=l[10],h[11]=l[11],h[12]=l[12],h[13]=l[13],h[14]=l[14],h[15]=l[15]),h[0]=b*y+O*p,h[1]=S*y+z*p,h[2]=k*y+U*p,h[3]=I*y+q*p,h[4]=O*y-b*p,h[5]=z*y-S*p,h[6]=U*y-k*p,h[7]=q*y-I*p,h}function Q(h,l){return h[0]=l[0],h[1]=0,h[2]=0,h[3]=0,h[4]=0,h[5]=l[1],h[6]=0,h[7]=0,h[8]=0,h[9]=0,h[10]=l[2],h[11]=0,h[12]=0,h[13]=0,h[14]=0,h[15]=1,h}function se(h,l,u){var p,y,b,S=u[0],k=u[1],I=u[2],O=Math.sqrt(S*S+k*k+I*I);return O0&&(b=1/Math.sqrt(b)),h[0]=l[0]*b,h[1]=l[1]*b,h[2]=l[2]*b,h}function Rt(h,l){return h[0]*l[0]+h[1]*l[1]+h[2]*l[2]}function er(h,l,u){var p=l[0],y=l[1],b=l[2],S=u[0],k=u[1],I=u[2];return h[0]=y*I-b*k,h[1]=b*S-p*I,h[2]=p*k-y*S,h}function vt(h,l,u,p){var y=l[0],b=l[1],S=l[2];return h[0]=y+p*(u[0]-y),h[1]=b+p*(u[1]-b),h[2]=S+p*(u[2]-S),h}function xr(h,l,u){var p=l[0],y=l[1],b=l[2],S=u[3]*p+u[7]*y+u[11]*b+u[15];return h[0]=(u[0]*p+u[4]*y+u[8]*b+u[12])/(S=S||1),h[1]=(u[1]*p+u[5]*y+u[9]*b+u[13])/S,h[2]=(u[2]*p+u[6]*y+u[10]*b+u[14])/S,h}function _r(h,l,u){var p=l[0],y=l[1],b=l[2];return h[0]=p*u[0]+y*u[3]+b*u[6],h[1]=p*u[1]+y*u[4]+b*u[7],h[2]=p*u[2]+y*u[5]+b*u[8],h}function tn(h,l,u){var p=u[0],y=u[1],b=u[2],S=u[3],k=l[0],I=l[1],O=l[2],z=y*O-b*I,U=b*k-p*O,q=p*I-y*k;return h[0]=k+S*(z+=z)+y*(q+=q)-b*(U+=U),h[1]=I+S*U+b*z-p*q,h[2]=O+S*q+p*U-y*z,h}function or(h){return h[0]=0,h[1]=0,h[2]=0,h}function Sr(h,l){return h[0]===l[0]&&h[1]===l[1]&&h[2]===l[2]}var jr=je,Qt=_e,Je=Oe;function Tt(){var h=new m(4);return m!=Float32Array&&(h[0]=0,h[1]=0,h[2]=0,h[3]=0),h}function Dt(h,l,u){return h[0]=l[0]*u,h[1]=l[1]*u,h[2]=l[2]*u,h[3]=l[3]*u,h}function cr(h,l){var u=l[0],p=l[1],y=l[2],b=l[3],S=u*u+p*p+y*y+b*b;return S>0&&(S=1/Math.sqrt(S)),h[0]=u*S,h[1]=p*S,h[2]=y*S,h[3]=b*S,h}function lr(h,l){return h[0]*l[0]+h[1]*l[1]+h[2]*l[2]+h[3]*l[3]}function ur(h,l,u){var p=l[0],y=l[1],b=l[2],S=l[3];return h[0]=u[0]*p+u[4]*y+u[8]*b+u[12]*S,h[1]=u[1]*p+u[5]*y+u[9]*b+u[13]*S,h[2]=u[2]*p+u[6]*y+u[10]*b+u[14]*S,h[3]=u[3]*p+u[7]*y+u[11]*b+u[15]*S,h}function Rr(){var h=new m(4);return m!=Float32Array&&(h[0]=0,h[1]=0,h[2]=0),h[3]=1,h}function Pn(h){return h[0]=0,h[1]=0,h[2]=0,h[3]=1,h}function Yn(h,l,u){u*=.5;var p=l[0],y=l[1],b=l[2],S=l[3],k=Math.sin(u),I=Math.cos(u);return h[0]=p*I+S*k,h[1]=y*I+b*k,h[2]=b*I-y*k,h[3]=S*I-p*k,h}function ki(h,l,u){u*=.5;var p=l[0],y=l[1],b=l[2],S=l[3],k=Math.sin(u),I=Math.cos(u);return h[0]=p*I-b*k,h[1]=y*I+S*k,h[2]=b*I+p*k,h[3]=S*I-y*k,h}Te(),Tt();var wi,Ci,Gs,vi=cr,sa=(wi=Te(),Ci=Ae(1,0,0),Gs=Ae(0,1,0),function(h,l,u){var p=Rt(l,u);return p<-.999999?(er(wi,Ci,l),Je(wi)<1e-6&&er(wi,Gs,l),_t(wi,wi),function(y,b,S){S*=.5;var k=Math.sin(S);y[0]=k*b[0],y[1]=k*b[1],y[2]=k*b[2],y[3]=Math.cos(S)}(h,wi,Math.PI),h):p>.999999?(h[0]=0,h[1]=0,h[2]=0,h[3]=1,h):(er(wi,l,u),h[0]=wi[0],h[1]=wi[1],h[2]=wi[2],h[3]=1+p,vi(h,h))});function ts(){var h=new m(2);return m!=Float32Array&&(h[0]=0,h[1]=0),h}function Pr(h,l){var u=new m(2);return u[0]=h,u[1]=l,u}function ni(h,l,u){return h[0]=l,h[1]=u,h}function rs(h,l,u){return h[0]=l[0]+u[0],h[1]=l[1]+u[1],h}function Nn(h,l,u){return h[0]=l[0]-u[0],h[1]=l[1]-u[1],h}function Nr(h,l,u){return h[0]=l[0]*u,h[1]=l[1]*u,h}function Sn(h){var l=h[0],u=h[1];return Math.sqrt(l*l+u*u)}function li(h,l){var u=l[0],p=l[1],y=u*u+p*p;return y>0&&(y=1/Math.sqrt(y)),h[0]=l[0]*y,h[1]=l[1]*y,h}function Un(h,l){return h[0]*l[0]+h[1]*l[1]}Rr(),Rr(),_();var xi,Qr,Dn=Nn;function ns(h){return h&&h.__esModule&&Object.prototype.hasOwnProperty.call(h,"default")?h.default:h}ts();var hl=function(){if(Qr)return xi;function h(l,u,p,y){this.cx=3*l,this.bx=3*(p-l)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*u,this.by=3*(y-u)-this.cy,this.ay=1-this.cy-this.by,this.p1x=l,this.p1y=u,this.p2x=p,this.p2y=y}return Qr=1,xi=h,h.prototype={sampleCurveX:function(l){return((this.ax*l+this.bx)*l+this.cx)*l},sampleCurveY:function(l){return((this.ay*l+this.by)*l+this.cy)*l},sampleCurveDerivativeX:function(l){return(3*this.ax*l+2*this.bx)*l+this.cx},solveCurveX:function(l,u){if(u===void 0&&(u=1e-6),l<0)return 0;if(l>1)return 1;for(var p=l,y=0;y<8;y++){var b=this.sampleCurveX(p)-l;if(Math.abs(b)b?k=p:I=p,p=.5*(I-k)+k;return p},solve:function(l,u){return this.sampleCurveY(this.solveCurveX(l,u))}},xi}(),Ho=ns(hl);function Ot(h,l){this.x=h,this.y=l}function Po(h,l){if(Array.isArray(h)){if(!Array.isArray(l)||h.length!==l.length)return!1;for(let u=0;u=1)return 1;const l=h*h,u=l*h;return 4*(h<.5?u:3*(h-l)+u-.75)}function ct(h,l,u,p){const y=new Ho(h,l,u,p);return function(b){return y.solve(b)}}const de=ct(.25,.1,.25,1);function fe(h,l,u){return Math.min(u,Math.max(l,h))}function Me(h,l,u){return(u=fe((u-h)/(l-h),0,1))*u*(3-2*u)}function Ke(h,l,u){const p=u-l,y=((h-l)%p+p)%p+l;return y===l?u:y}function et(h,l,u){if(!h.length)return u(null,[]);let p=h.length;const y=new Array(h.length);let b=null;h.forEach((S,k)=>{l(S,(I,O)=>{I&&(b=I),y[k]=O,--p===0&&u(b,y)})})}let rt=1;function dt(){return rt++}function it(h){return h<=1?1:Math.pow(2,Math.ceil(Math.log2(h)))}function ht(h,l){h.forEach(u=>{l[u]&&(l[u]=l[u].bind(l))})}function zt(h,l,u){const p={};for(const y in h)p[y]=l.call(this,h[y],y,h);return p}function Pt(h,l,u){const p={};for(const y in h)l.call(this,h[y],y,h)&&(p[y]=h[y]);return p}function dr(h){return Array.isArray(h)?h.map(dr):typeof h=="object"&&h?zt(h,dr):h}function Br(h,l){for(let u=0;u=0)return!0;return!1}const qr={};function zr(h){qr[h]||(typeof console<"u"&&console.warn(h),qr[h]=!0)}function sn(h,l,u){return(u.y-h.y)*(l.x-h.x)>(l.y-h.y)*(u.x-h.x)}function Tn(h){let l=0;for(let u,p,y=0,b=h.length,S=b-1;y@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(u,p,y,b)=>{const S=y||b;return l[p]=!S||S.toLowerCase(),""}),l["max-age"]){const u=parseInt(l["max-age"],10);isNaN(u)?delete l["max-age"]:l["max-age"]=u}return l}let Is,xs=null;function pi(h,l){return[h[4*l],h[4*l+1],h[4*l+2],h[4*l+3]]}function os(h,l,u,p){for(;l>1;h[y]>1;h[y]<=p?l=y+1:u=y}return l}function ji(h){return h>0?1/(1.001-h):1+h}function ls(h){return h>0?1-1/(1.001-h):-h}function _s(h,l,u){return(h-l.min)*(u.max-u.min)/(l.max-l.min)+u.min}const Rn={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!Rn.API_URL)return null;try{const h=new URL(Rn.API_URL);return h.hostname==="api.mapbox.cn"?"https://events.mapbox.cn/events/v2":h.hostname==="api.mapbox.com"?"https://events.mapbox.com/events/v2":null}catch{return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",RASTERARRAYS_URL_PREFIX:"rasterarrays/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,DEFAULT_STYLE:"mapbox://styles/mapbox/standard",MAX_PARALLEL_IMAGE_REQUESTS:16,DRACO_URL:"/mapbox-gl-js/draco_decoder_gltf_v1.5.6.wasm",MESHOPT_URL:"/mapbox-gl-js/meshopt_base_v0.20.wasm",MESHOPT_SIMD_URL:"/mapbox-gl-js/meshopt_simd_v0.20.wasm",BUILDING_GEN_URL:"/mapbox-gl-js/building-gen/building_gen_v1.2.4.wasm",GLYPHS_URL:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",TILES3D_URL_PREFIX:"3dtiles/v1",TILE_PROVIDER_URLS:Object.assign(Object.create(null),{pmtiles:"/mapbox-gl-js/mapbox-gl-pmtiles-provider-v0.0.1.js"})};function xa(){return new URL(Rn.DRACO_URL,Rn.API_URL).href}function yo(){if(typeof WebAssembly!="object")throw new Error("WebAssembly not supported, cannot instantiate meshoptimizer");return new URL(function(){if(Is===void 0){if(typeof WebAssembly!="object")return!1;const h=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);Is=WebAssembly.validate(h)}return Is}()?Rn.MESHOPT_SIMD_URL:Rn.MESHOPT_URL,Rn.API_URL).href}function so(){return new URL(Rn.BUILDING_GEN_URL,Rn.API_URL).href}function Jl(h){return Rn.API_URL_REGEX.test(h)}function ec(h){return Rn.API_SPRITE_REGEX.test(h)}let dd,fl,tc,hd,xc,fd;function ru(){return dd==null&&(dd=self.OffscreenCanvas&&new OffscreenCanvas(1,1).getContext("2d")&&typeof self.createImageBitmap=="function"),dd}const Pl={now:()=>hd!==void 0?hd:performance.now(),setNow(h){hd=h},restoreNow(){hd=void 0},frame(h){const l=requestAnimationFrame(h);return{cancel:()=>cancelAnimationFrame(l)}},getImageData(h,l=0){const{width:u,height:p}=h;xc||(xc=document.createElement("canvas"));const y=xc.getContext("2d",{willReadFrequently:!0});if(!y)throw new Error("failed to create canvas 2d context");return(u>xc.width||p>xc.height)&&(xc.width=u,xc.height=p),y.clearRect(-l,-l,u+2*l,p+2*l),y.drawImage(h,0,0,u,p),y.getImageData(-l,-l,u+2*l,p+2*l)},resolveURL:h=>(fl||(fl=document.createElement("a")),fl.href=h,fl.href),get devicePixelRatio(){return window.devicePixelRatio},get prefersReducedMotion(){return!!window.matchMedia&&(tc==null&&(tc=window.matchMedia("(prefers-reduced-motion: reduce)")),tc.matches)},hasCanvasFingerprintNoise(){if(fd!==void 0)return fd;if(!ru())return fd=!1,!1;const h=new OffscreenCanvas(85,1),l=h.getContext("2d",{willReadFrequently:!0});let u=0;for(let y=0;y0?`?${b}`:""}`}const yp="mapbox-tiles";let K_=500,Y_=50;const VS=["language","worldview","jobid"];let pd;function cI(){try{return caches}catch{}}function Z_(){const h=cI();h&&pd==null&&(pd=h.open(yp))}let qS=1/0;const X_={supported:!1,testSupport:function(h){!GS&&Hm&&(nu?Wm(h):xp=h)}};let xp,Hm,GS=!1,nu=!1;const HS=typeof self<"u"?self:{};function Wm(h){const l=h.createTexture();h.bindTexture(h.TEXTURE_2D,l);try{if(h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,Hm),h.isContextLost())return;X_.supported=!0}catch{}h.deleteTexture(l),GS=!0}HS.document&&(Hm=HS.document.createElement("img"),Hm.onload=function(){xp&&Wm(xp),xp=null,nu=!0},Hm.onerror=function(){GS=!0,xp=null},Hm.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");const mx={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Iconset:"Iconset",Image:"Image",Model:"Model"};Object.freeze(mx);class WS extends Error{constructor(l,u,p){u===401&&Jl(p)&&(l+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(l),this.status=u,this.url=p}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}function KS(h){return typeof h=="object"&&h!==null&&"status"in h&&h.status===404}const Zn=Ii()?()=>self.worker.referrer:()=>(location.protocol==="blob:"?parent:self).location.href,Km=function(h,l){return/^file:/.test(u=h.url)||/^file:/.test(Zn())&&!/^\w+:/.test(u)?function(p,y){const b=new XMLHttpRequest;b.open(p.method||"GET",p.url,!0),p.type==="arrayBuffer"&&(b.responseType="arraybuffer");for(const S in p.headers)b.setRequestHeader(S,p.headers[S]);return p.type==="json"&&(b.responseType="text",b.setRequestHeader("Accept","application/json")),b.withCredentials=p.credentials==="include",b.onerror=()=>{y(new Error(b.statusText))},b.onload=()=>{if((b.status>=200&&b.status<300||b.status===0)&&b.response!==null){let S=b.response;if(p.type==="json")try{S=JSON.parse(b.response)}catch(I){return y(I)}const k=new Headers;b.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(I=>{const O=I.split(": "),z=O.shift(),U=O.join(": ");k.append(z,U)}),y(null,S,k)}else y(new WS(b.statusText,b.status,p.url))},b.send(p.body),{cancel:()=>b.abort()}}(h,l):function(p,y){const b=new AbortController,S=new Request(p.url,{method:p.method||"GET",body:p.body,credentials:p.credentials,headers:p.headers,referrer:Zn(),referrerPolicy:p.referrerPolicy,signal:b.signal});let k=!1,I=!1;const O=(z=S.url).indexOf("sku=")>0&&Jl(z);var z;p.type==="json"&&S.headers.set("Accept","application/json");const U=(K,X,J)=>{if(I)return;if(K&&K.message!=="SecurityError"&&zr(K.toString()),X&&J)return q(X);const re=Date.now();fetch(S).then(ae=>{if(ae.ok){const he=O?ae.clone():null;return q(ae,he,re)}return y(new WS(ae.statusText,ae.status,p.url))}).catch(ae=>{ae.name!=="AbortError"&&y(new Error(`${ae.message} ${p.url}`))})},q=(K,X,J)=>{(p.type==="arrayBuffer"?K.arrayBuffer():p.type==="json"?K.json():K.text()).then(re=>{I||(X&&J&&function(ae,he,ce){if(Z_(),pd==null)return;const ye=Ms(he.headers.get("cache-control")||"");if(ye["no-store"])return;const Ee={status:he.status,statusText:he.statusText,headers:new Headers};he.headers.forEach((Ue,Ve)=>Ee.headers.set(Ve,Ue)),ye["max-age"]&&Ee.headers.set("Expires",new Date(ce+1e3*ye["max-age"]).toUTCString());const Ce=Ee.headers.get("expires");if(!Ce||new Date(Ce).getTime()-ce<42e4)return;let He=US(ae.url,{persistentParams:VS});if(he.status===206){const Ue=ae.headers.get("Range");if(!Ue)return;Ee.status=200,He=px(He,{range:Ue})}const ze=new Response((Ge=he.status)!==200&&Ge!==404&&[101,103,204,205,304].includes(Ge)?null:he.body,Ee);var Ge;Z_(),pd!=null&&pd.then(Ue=>Ue.put(He,ze)).catch(Ue=>zr(Ue.message))}(S,X,J),k=!0,y(null,re,K.headers))}).catch(re=>{I||y(new Error(re.message))})};return O?function(K,X){if(Z_(),pd==null)return X(null);pd.then(J=>{let re=US(K.url,{persistentParams:VS});const ae=K.headers.get("Range");ae&&(re=px(re,{range:ae})),J.match(re).then(he=>{const ce=function(ye){if(!ye)return!1;const Ee=new Date(ye.headers.get("expires")||0),Ce=Ms(ye.headers.get("cache-control")||"");return Number(Ee)>Date.now()&&!Ce["no-cache"]}(he);J.delete(re).catch(X),ce&&J.put(re,he.clone()).catch(X),X(null,he,ce)}).catch(X)}).catch(X)}(S,U):U(null,null),{cancel:()=>{I=!0,k||b.abort()}}}(h,l);var u},Ym=function(h,l){return Km(Object.assign(h,{type:"arrayBuffer"}),l)};function l3(h){const l=document.createElement("a");return l.href=h,l.protocol===location.protocol&&l.host===location.host}let Q_,sf;Q_=[],sf=0;const Zm=function(h,l){if(X_.supported&&(h.headers||(h.headers={}),h.headers.accept="image/webp,*/*"),sf>=Rn.MAX_PARALLEL_IMAGE_REQUESTS){const b={requestParameters:h,callback:l,cancelled:!1,cancel(){this.cancelled=!0}};return Q_.push(b),b}sf++;let u=!1;const p=()=>{if(!u)for(u=!0,sf--;Q_.length&&sf{p(),b?l(b):S&&function(I,O){const z=new Blob([new Uint8Array(I)],{type:"image/png"});createImageBitmap(z).then(U=>{O(null,U)}).catch(U=>{O(new Error(`Could not load image because of ${U.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(S,(I,O)=>l(I,O,k))});return{cancel:()=>{y.cancel(),p()}}};var gx,J_,uI,_p={exports:{}},dI={exports:{}},YS={exports:{}},c3=function(){if(uI)return _p.exports;uI=1;var h=(gx||(gx=1,dI.exports=function(u,p){var y,b,S,k,I,O,z,U;for(b=u.length-(y=3&u.length),S=p,I=3432918353,O=461845907,U=0;U>>16)*I&65535)<<16)&4294967295)<<15|z>>>17))*O+(((z>>>16)*O&65535)<<16)&4294967295)<<13|S>>>19))+((5*(S>>>16)&65535)<<16)&4294967295))+(((k>>>16)+58964&65535)<<16);switch(z=0,y){case 3:z^=(255&u.charCodeAt(U+2))<<16;case 2:z^=(255&u.charCodeAt(U+1))<<8;case 1:S^=z=(65535&(z=(z=(65535&(z^=255&u.charCodeAt(U)))*I+(((z>>>16)*I&65535)<<16)&4294967295)<<15|z>>>17))*O+(((z>>>16)*O&65535)<<16)&4294967295}return S^=u.length,S=2246822507*(65535&(S^=S>>>16))+((2246822507*(S>>>16)&65535)<<16)&4294967295,S=3266489909*(65535&(S^=S>>>13))+((3266489909*(S>>>16)&65535)<<16)&4294967295,(S^=S>>>16)>>>0}),dI.exports),l=(J_||(J_=1,YS.exports=function(u,p){for(var y,b=u.length,S=p^b,k=0;b>=4;)y=1540483477*(65535&(y=255&u.charCodeAt(k)|(255&u.charCodeAt(++k))<<8|(255&u.charCodeAt(++k))<<16|(255&u.charCodeAt(++k))<<24))+((1540483477*(y>>>16)&65535)<<16),S=1540483477*(65535&S)+((1540483477*(S>>>16)&65535)<<16)^(y=1540483477*(65535&(y^=y>>>24))+((1540483477*(y>>>16)&65535)<<16)),b-=4,++k;switch(b){case 3:S^=(255&u.charCodeAt(k+2))<<16;case 2:S^=(255&u.charCodeAt(k+1))<<8;case 1:S=1540483477*(65535&(S^=255&u.charCodeAt(k)))+((1540483477*(S>>>16)&65535)<<16)}return S=1540483477*(65535&(S^=S>>>13))+((1540483477*(S>>>16)&65535)<<16),(S^=S>>>15)>>>0}),YS.exports);return _p.exports=h,_p.exports.murmur3=h,_p.exports.murmur2=l,_p.exports}(),af=ns(c3);class Pu{constructor(l,...u){Object.assign(this,u[0]||{}),this.type=l}}class Xm extends Pu{constructor(l,u={}){super("error",Object.assign({error:l},u))}}function iu(h,l,u){u[h]&&u[h].indexOf(l)!==-1||(u[h]=u[h]||[],u[h].push(l))}function ev(h,l,u){if(u&&u[h]){const p=u[h].indexOf(l);p!==-1&&u[h].splice(p,1)}}class yx{on(l,u){return this._listeners=this._listeners||{},iu(l,u,this._listeners),this}off(l,u){return ev(l,u,this._listeners),ev(l,u,this._oneTimeListeners),this}once(l,u){return u?(this._oneTimeListeners=this._oneTimeListeners||{},iu(l,u,this._oneTimeListeners),this):new Promise(p=>{this.once(l,p)})}fire(l,u){const p=typeof l=="string"?new Pu(l,u):l,y=p.type;if(this.listens(y)){p.target=this;const b=this._listeners&&this._listeners[y]?this._listeners[y].slice():[];for(const I of b)I.call(this,p);const S=this._oneTimeListeners&&this._oneTimeListeners[y]?this._oneTimeListeners[y].slice():[];for(const I of S)ev(y,I,this._oneTimeListeners),I.call(this,p);const k=this._eventedParent;if(k){const I=typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData;Object.assign(p,I),k.fire(p)}}else p instanceof Xm&&console.error(p.error);return this}listens(l){return!!(this._listeners&&this._listeners[l]&&this._listeners[l].length>0||this._oneTimeListeners&&this._oneTimeListeners[l]&&this._oneTimeListeners[l].length>0||this._eventedParent&&this._eventedParent.listens(l))}setEventedParent(l,u){return this._eventedParent=l,this._eventedParentData=u,this}}class rc{constructor(l){typeof l=="string"?this.name=l:(this.name=l.name,this.iconsetId=l.iconsetId)}static from(l){return new rc(l)}static toString(l){return l.iconsetId?`${l.name}${l.iconsetId}`:l.name}static parse(l){const[u,p]=l.split("");return new rc({name:u,iconsetId:p})}static isEqual(l,u){return l.name===u.name&&l.iconsetId===u.iconsetId}toString(){return rc.toString(this)}serialize(){return{name:this.name,iconsetId:this.iconsetId}}}var ZS,tv={},XS=function(){if(ZS)return tv;ZS=1;var h={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function l(b){return(b=Math.round(b))<0?0:b>255?255:b}function u(b){return l(b[b.length-1]==="%"?parseFloat(b)/100*255:parseInt(b))}function p(b){return(S=b[b.length-1]==="%"?parseFloat(b)/100:parseFloat(b))<0?0:S>1?1:S;var S}function y(b,S,k){return k<0?k+=1:k>1&&(k-=1),6*k<1?b+(S-b)*k*6:2*k<1?S:3*k<2?b+(S-b)*(2/3-k)*6:b}try{tv.parseCSSColor=function(b){var S,k=b.replace(/ /g,"").toLowerCase();if(k in h)return h[k].slice();if(k[0]==="#")return k.length===4?(S=parseInt(k.substr(1),16))>=0&&S<=4095?[(3840&S)>>4|(3840&S)>>8,240&S|(240&S)>>4,15&S|(15&S)<<4,1]:null:k.length===7&&(S=parseInt(k.substr(1),16))>=0&&S<=16777215?[(16711680&S)>>16,(65280&S)>>8,255&S,1]:null;var I=k.indexOf("("),O=k.indexOf(")");if(I!==-1&&O+1===k.length){var z=k.substr(0,I),U=k.substr(I+1,O-(I+1)).split(","),q=1;switch(z){case"rgba":if(U.length!==4)return null;q=p(U.pop());case"rgb":return U.length!==3?null:[u(U[0]),u(U[1]),u(U[2]),q];case"hsla":if(U.length!==4)return null;q=p(U.pop());case"hsl":if(U.length!==3)return null;var K=(parseFloat(U[0])%360+360)%360/360,X=p(U[1]),J=p(U[2]),re=J<=.5?J*(X+1):J+X-J*X,ae=2*J-re;return[l(255*y(ae,re,K+1/3)),l(255*y(ae,re,K)),l(255*y(ae,re,K-1/3)),q];default:return null}}return null}}catch{}return tv}();class Wn{constructor(l,u,p,y=1){this.r=l,this.g=u,this.b=p,this.a=y}static parse(l){if(!l)return;if(l instanceof Wn)return l;if(typeof l!="string")return;const u=XS.parseCSSColor(l);return u?new Wn(u[0]/255,u[1]/255,u[2]/255,u[3]):void 0}toString(){const[l,u,p,y]=[this.r,this.g,this.b,this.a];return`rgba(${Math.round(255*l)},${Math.round(255*u)},${Math.round(255*p)},${y})`}toNonPremultipliedRenderColor(l){const{r:u,g:p,b:y,a:b}=this;return new rv(l,u,p,y,b)}toPremultipliedRenderColor(l){const{r:u,g:p,b:y,a:b}=this;return new Qm(l,u*b,p*b,y*b,b)}clone(){return new Wn(this.r,this.g,this.b,this.a)}}class QS{constructor(l,u,p,y,b,S=!1){if(this.premultiplied=!1,this.premultiplied=S,l){const k=l.image.height,I=k*k;this.premultiplied?(u=b===0?0:u/b*(k-1),p=b===0?0:p/b*(k-1),y=b===0?0:y/b*(k-1)):(u*=k-1,p*=k-1,y*=k-1),u=Math.max(0,Math.min(k-1,u)),p=Math.max(0,Math.min(k-1,p)),y=Math.max(0,Math.min(k-1,y));const O=Math.floor(u),z=Math.floor(p),U=Math.floor(y),q=Math.ceil(u),K=Math.ceil(p),X=Math.ceil(y),J=u-O,re=p-z,ae=y-U,he=l.image.data,ce=4*(O+z*I+U*k),ye=4*(O+z*I+X*k),Ee=4*(O+K*I+U*k),Ce=4*(O+K*I+X*k),He=4*(q+z*I+U*k),ze=4*(q+z*I+X*k),Ge=4*(q+K*I+U*k),Ue=4*(q+K*I+X*k);this.r=Zr(Zr(Zr(he[ce],he[ye],ae),Zr(he[Ee],he[Ce],ae),re),Zr(Zr(he[He],he[ze],ae),Zr(he[Ge],he[Ue],ae),re),J)/255*(this.premultiplied?b:1),this.g=Zr(Zr(Zr(he[ce+1],he[ye+1],ae),Zr(he[Ee+1],he[Ce+1],ae),re),Zr(Zr(he[He+1],he[ze+1],ae),Zr(he[Ge+1],he[Ue+1],ae),re),J)/255*(this.premultiplied?b:1),this.b=Zr(Zr(Zr(he[ce+2],he[ye+2],ae),Zr(he[Ee+2],he[Ce+2],ae),re),Zr(Zr(he[He+2],he[ze+2],ae),Zr(he[Ge+2],he[Ue+2],ae),re),J)/255*(this.premultiplied?b:1),this.a=b}else this.r=u,this.g=p,this.b=y,this.a=b}toArray(){const{r:l,g:u,b:p,a:y}=this;return[255*l,255*u,255*p,y]}toHslaArray(){let{r:l,g:u,b:p,a:y}=this;if(this.premultiplied){if(y===0)return[0,0,0,0];const X=1/y;l*=X,u*=X,p*=X}const b=Math.min(Math.max(l,0),1),S=Math.min(Math.max(u,0),1),k=Math.min(Math.max(p,0),1),I=Math.min(b,S,k),O=Math.max(b,S,k),z=O-I,U=.5*(I+O);if(z===0)return[0,0,100*U,y];const q=U>.5?z/(2-O-I):z/(O+I);let K;switch(O){case b:K=60*((S-k)/z+(SZr(p,l[y],u))}Wn.black=new Wn(0,0,0,1),Wn.white=new Wn(1,1,1,1),Wn.transparent=new Wn(0,0,0,0),Wn.red=new Wn(1,0,0,1),Wn.blue=new Wn(0,0,1,1);var nv=Object.freeze({__proto__:null,array:Nu,color:function(h,l,u){return new Wn(Zr(h.r,l.r,u),Zr(h.g,l.g,u),Zr(h.b,l.b,u),Zr(h.a,l.a,u))},number:Zr});class su extends Error{constructor(l,u){super(u),this.message=u,this.key=l}}class vp{constructor(l,u=[]){this.parent=l,this.bindings={};for(const[p,y]of u)this.bindings[p]=y}concat(l){return new vp(this,l)}get(l){if(this.bindings[l])return this.bindings[l];if(this.parent)return this.parent.get(l);throw new Error(`${l} not found in scope.`)}has(l){return!!this.bindings[l]||!!this.parent&&this.parent.has(l)}}const oh={kind:"null"},Mr={kind:"number"},si={kind:"string"},ci={kind:"boolean"},pl={kind:"color"},of={kind:"object"},ui={kind:"value"},bp={kind:"collator"},xx={kind:"formatted"},_x={kind:"resolvedImage"};function Wo(h,l){return{kind:"array",itemType:h,N:l}}function oa(h){if(h.kind==="array"){const l=oa(h.itemType);return typeof h.N=="number"?`array<${l}, ${h.N}>`:h.itemType.kind==="value"?"array":`array<${l}>`}return h.kind}const u3=[oh,Mr,si,ci,pl,xx,of,Wo(ui),_x];function vx(h,l){if(l.kind==="error")return null;if(h.kind==="array"){if(l.kind==="array"&&(l.N===0&&l.itemType.kind==="value"||!vx(h.itemType,l.itemType))&&(typeof h.N!="number"||h.N===l.N))return null}else{if(h.kind===l.kind)return null;if(h.kind==="value"){for(const u of u3)if(!vx(u,l))return null}}return`Expected ${oa(h)} but found ${oa(l)} instead.`}function JS(h,l){return l.some(u=>u.kind===h.kind)}function Jm(h,l){return l.some(u=>u==="null"?h===null:u==="array"?Array.isArray(h):u==="object"?h&&!Array.isArray(h)&&typeof h=="object":u===typeof h)}function lh(h,l){return h.kind==="array"&&l.kind==="array"?h.N===l.N&&lh(h.itemType,l.itemType):h.kind===l.kind}class eT{constructor(l,u,p){this.sensitivity=l?u?"variant":"case":u?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(l,u){return this.collator.compare(l,u)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class bx{constructor(l,u,p,y,b){this.text=l.normalize?l.normalize():l,this.image=u,this.scale=p,this.fontStack=y,this.textColor=b}}class No{constructor(l){this.sections=l}static fromString(l){return new No([new bx(l,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(l=>l.text.length!==0||!!l.image&&l.image.hasPrimary())}static factory(l){return l instanceof No?l:No.fromString(l)}toString(){return this.sections.length===0?"":this.sections.map(l=>l.text).join("")}serialize(){const l=["format"];for(const u of this.sections){if(u.image){const y=u.image.getPrimary().id.toString();l.push(["image",y]);continue}l.push(u.text);const p={};u.fontStack&&(p["text-font"]=["literal",u.fontStack.split(",")]),u.scale&&(p["font-scale"]=u.scale),u.textColor&&(p["text-color"]=["rgba"].concat(u.textColor.toNonPremultipliedRenderColor(null).toArray())),l.push(p)}return l}}class au{constructor(l,u={}){this.id=rc.from(l),this.params=u.params,this.sx=u.sx||1,this.sy=u.sy||1}toString(){return JSON.stringify(this)}static parse(l){let u,p,y,b;try{({id:u,params:p,sx:y,sy:b}=JSON.parse(l)||{})}catch{return null}return u?new au(u,{params:p,sx:y,sy:b}):null}scaleSelf(l,u=l){return this.sx*=l,this.sy*=u,this}}class Nl{constructor(l,u,p,y,b=!1){this.primaryId=rc.from(l),this.primaryOptions=u,p&&(this.secondaryId=rc.from(p)),this.secondaryOptions=y,this.available=b}toString(){return this.primaryId&&this.secondaryId?`[${this.primaryId.name},${this.secondaryId.name}]`:this.primaryId.name}hasPrimary(){return!!this.primaryId}getPrimary(){return new au(this.primaryId,this.primaryOptions)}hasSecondary(){return!!this.secondaryId}getSecondary(){return this.secondaryId?new au(this.secondaryId,this.secondaryOptions):null}static from(l){return typeof l=="string"?Nl.build({name:l}):l}static build(l,u,p,y){return!l||typeof l=="object"&&!("name"in l)?null:new Nl(l,p,u,y)}}function hI(h,l,u,p){return typeof h=="number"&&h>=0&&h<=255&&typeof l=="number"&&l>=0&&l<=255&&typeof u=="number"&&u>=0&&u<=255?p===void 0||typeof p=="number"&&p>=0&&p<=1?null:`Invalid rgba value [${[h,l,u,p].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof p=="number"?[h,l,u,p]:[h,l,u]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function eg(h){if(h===null||typeof h=="string"||typeof h=="boolean"||typeof h=="number"||h instanceof Wn||h instanceof eT||h instanceof No||h instanceof Nl)return!0;if(Array.isArray(h)){for(const l of h)if(!eg(l))return!1;return!0}if(typeof h=="object"){for(const l in h)if(!eg(h[l]))return!1;return!0}return!1}function js(h){if(h===null)return oh;if(typeof h=="string")return si;if(typeof h=="boolean")return ci;if(typeof h=="number")return Mr;if(h instanceof Wn)return pl;if(h instanceof eT)return bp;if(h instanceof No)return xx;if(h instanceof Nl)return _x;if(Array.isArray(h)){const l=h.length;let u;for(const p of h){const y=js(p);if(u){if(u===y)continue;u=ui;break}u=y}return Wo(u||ui,l)}return of}function Yr(h){const l=typeof h;return h===null?"":l==="string"||l==="number"||l==="boolean"?String(h):h instanceof No||h instanceof Nl||h instanceof Wn?h.toString():JSON.stringify(h)}class Cr{constructor(l,u){this.type=l,this.value=u}static parse(l,u){if(l.length!==2)return u.error(`'literal' expression requires exactly one argument, but found ${l.length-1} instead.`);if(!eg(l[1]))return u.error("invalid value");const p=l[1];let y=js(p);const b=u.expectedType;return y.kind!=="array"||y.N!==0||!b||b.kind!=="array"||typeof b.N=="number"&&b.N!==0||(y=b),new Cr(y,p)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof Wn?["rgba"].concat(this.value.toNonPremultipliedRenderColor(null).toArray()):this.value instanceof No?this.value.serialize():this.value}}class Qs{constructor(l){this.name="ExpressionEvaluationError",this.message=l}toJSON(){return this.message}}const Xr={string:si,number:Mr,boolean:ci,object:of};class _c{constructor(l,u){this.type=l,this.args=u}static parse(l,u){if(l.length<2)return u.error("Expected at least one argument.");let p,y=1;const b=l[0];if(b==="array"){let k,I;if(l.length>2){const O=l[1];if(typeof O!="string"||!(O in Xr)||O==="object")return u.error('The item type argument of "array" must be one of string, number, boolean',1);k=Xr[O],y++}else k=ui;if(l.length>3){if(l[2]!==null&&(typeof l[2]!="number"||l[2]<0||l[2]!==Math.floor(l[2])))return u.error('The length argument to "array" must be a positive integer literal',2);I=l[2],y++}p=Wo(k,I)}else p=Xr[b];const S=[];for(;yl.outputDefined())}serialize(){const l=this.type,u=[l.kind];if(l.kind==="array"){const p=l.itemType;if(p.kind==="string"||p.kind==="number"||p.kind==="boolean"){u.push(p.kind);const y=l.N;(typeof y=="number"||this.args.length>1)&&u.push(y)}}return u.concat(this.args.map(p=>p.serialize()))}}class wp{constructor(l){this.type=xx,this.sections=l}static parse(l,u){if(l.length<2)return u.error("Expected at least one argument.");const p=l[1];if(!Array.isArray(p)&&typeof p=="object")return u.error("First argument must be an image or text section.");const y=[];let b=!1;for(let S=1;S<=l.length-1;++S){const k=l[S];if(b&&typeof k=="object"&&!Array.isArray(k)){b=!1;let I=null;if(k["font-scale"]&&(I=u.parseObjectValue(k["font-scale"],S,"font-scale",Mr),!I))return null;let O=null;if(k["text-font"]&&(O=u.parseObjectValue(k["text-font"],S,"text-font",Wo(si)),!O))return null;let z=null;if(k["text-color"]&&(z=u.parseObjectValue(k["text-color"],S,"text-color",pl),!z))return null;const U=y[y.length-1];U.scale=I,U.font=O,U.textColor=z}else{const I=u.parse(l[S],S,ui);if(!I)return null;const O=I.type.kind;if(O!=="string"&&O!=="value"&&O!=="null"&&O!=="resolvedImage")return u.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");b=!0,y.push({content:I,scale:null,font:null,textColor:null})}}return new wp(y)}evaluate(l){return new No(this.sections.map(u=>{const p=u.content.evaluate(l);return lh(js(p),_x)?new bx("",p,null,null,null):new bx(Yr(p),null,u.scale?u.scale.evaluate(l):null,u.font?u.font.evaluate(l).join(","):null,u.textColor?u.textColor.evaluate(l):null)}))}eachChild(l){for(const u of this.sections)l(u.content),u.scale&&l(u.scale),u.font&&l(u.font),u.textColor&&l(u.textColor)}outputDefined(){return!1}serialize(){const l=["format"];for(const u of this.sections){l.push(u.content.serialize());const p={};u.scale&&(p["font-scale"]=u.scale.serialize()),u.font&&(p["text-font"]=u.font.serialize()),u.textColor&&(p["text-color"]=u.textColor.serialize()),l.push(p)}return l}}class Gr{constructor(l,u,p,y){this._imageWarnHistory={},this.type=_x,this.namePrimary=l,this.nameSecondary=u,p&&(this.paramsPrimary=p.params,this.iconsetIdPrimary=p.iconset?p.iconset.id:void 0),y&&(this.paramsSecondary=y.params,this.iconsetIdSecondary=y.iconset?y.iconset.id:void 0)}static parse(l,u){if(l.length<2)return u.error("Expected two or more arguments.");let p=1;const y=[];function b(){if(prc.isEqual(S,b)),y.available){const S=y.getSecondary()?y.getSecondary().id:null;S&&(y.available=l.availableImages.some(k=>rc.isEqual(k,S)))}}return y}eachChild(l){if(l(this.namePrimary),this.paramsPrimary)for(const u in this.paramsPrimary)this.paramsPrimary[u]&&l(this.paramsPrimary[u]);if(this.nameSecondary&&(l(this.nameSecondary),this.paramsSecondary))for(const u in this.paramsSecondary)this.paramsSecondary[u]&&l(this.paramsSecondary[u])}outputDefined(){return!1}serializeOptions(l,u){const p={};if(u&&(p.iconset={id:u}),l){p.params={};for(const y in l)l[y]&&(p.params[y]=l[y].serialize())}return Object.keys(p).length>0?p:void 0}serialize(){const l=["image",this.namePrimary.serialize()];if(this.paramsPrimary||this.iconsetIdPrimary){const u=this.serializeOptions(this.paramsPrimary,this.iconsetIdPrimary);u&&l.push(u)}if(this.nameSecondary&&(l.push(this.nameSecondary.serialize()),this.paramsSecondary||this.iconsetIdSecondary)){const u=this.serializeOptions(this.paramsSecondary,this.iconsetIdSecondary);u&&l.push(u)}return l}}function wx(h){return sv(h)?"string":Sx(h)?"number":Tx(h)?"boolean":Array.isArray(h)?"array":h===null?"null":iv(h)?"object":typeof h}function iv(h){return h!=null&&!Array.isArray(h)&&typeof h!="function"&&!(h instanceof String||h instanceof Number||h instanceof Boolean)&&typeof h=="object"}function sv(h){return typeof h=="string"||h instanceof String}function Sx(h){return typeof h=="number"||h instanceof Number}function Tx(h){return typeof h=="boolean"||h instanceof Boolean}const d3={"to-boolean":ci,"to-color":pl,"to-number":Mr,"to-string":si};class Ru{constructor(l,u){this.type=l,this.args=u}static parse(l,u){if(l.length<2)return u.error("Expected at least one argument.");const p=l[0],y=[];let b=oh;if(p==="to-array"){if(!Array.isArray(l[1]))return null;const S=l[1].length;if(u.expectedType){if(u.expectedType.kind!=="array")return u.error(`Expected ${u.expectedType.kind} but found array.`);b=Wo(u.expectedType.itemType,S)}else{if(!(S>0&&eg(l[1][0])))return null;b=Wo(js(l[1][0]),S)}for(let k=0;k4?`Invalid rbga value ${JSON.stringify(u)}: expected an array containing either three or four numeric values.`:hI(u[0],u[1],u[2],u[3]),!p))return new Wn(u[0]/255,u[1]/255,u[2]/255,u[3])}throw new Qs(p||`Could not parse color from value '${typeof u=="string"?u:String(JSON.stringify(u))}'`)}if(this.type.kind==="number"){let u=null;for(const p of this.args){if(u=p.evaluate(l),u===null)return 0;const y=Number(u);if(!isNaN(y))return y}throw new Qs(`Could not convert ${JSON.stringify(u)} to number.`)}return this.type.kind==="formatted"?No.fromString(Yr(this.args[0].evaluate(l))):this.type.kind==="resolvedImage"?Nl.build(Yr(this.args[0].evaluate(l))):this.type.kind==="array"?this.args.map(u=>u.evaluate(l)):Yr(this.args[0].evaluate(l))}eachChild(l){this.args.forEach(l)}outputDefined(){return this.args.every(l=>l.outputDefined())}serialize(){if(this.type.kind==="formatted")return new wp([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new Gr(this.args[0]).serialize();const l=this.type.kind==="array"?[]:[`to-${this.type.kind}`];return this.eachChild(u=>{l.push(u.serialize())}),l}}const Sp=["Unknown","Point","LineString","Polygon"];class Ex{constructor(l,u,p){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null,this.scope=l,this.options=u,this.iconImageUseTheme=p}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Sp[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}measureLight(l){return this.globals.brightness||0}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const l=this.featureDistanceData.center,u=this.featureDistanceData.scale,{x:p,y}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(p*u-l[0])+this.featureDistanceData.bearing[1]*(y*u-l[1])}return 0}parseColor(l){let u=this._parseColorCache[l];return u||(u=this._parseColorCache[l]=Wn.parse(l)),u}getConfig(l){return this.options?this.options.get(l):null}}class ja{constructor(l,u,p,y,b){this.name=l,this.type=u,this._evaluate=p,this.args=y,this._overloadIndex=b}evaluate(l){if(!this._evaluate){const u=ja.definitions[this.name];this._evaluate=Array.isArray(u)?u[2]:u.overloads[this._overloadIndex][1]}return this._evaluate(l,this.args)}eachChild(l){this.args.forEach(l)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(l=>l.serialize()))}static parse(l,u){const p=l[0],y=ja.definitions[p];if(!y)return u.error(`Unknown expression "${p}". If you wanted a literal array, use ["literal", [...]].`,0);const b=Array.isArray(y)?y[0]:y.type,S=Array.isArray(y)?[[y[1],y[2]]]:y.overloads,k=[];let I=null,O=-1;for(const[z,U]of S){if(Array.isArray(z)&&z.length!==l.length-1)continue;k.push(z),O++,I=new fv(u.registry,u.path,null,u.scope,void 0,u._scope,u.options,u.iconImageUseTheme);const q=[];let K=!1;for(let X=1;Xq)).map(lf).join(" | "),U=[];for(let q=1;qu;){if(p-u>600){const I=p-u+1,O=l-u+1,z=Math.log(I),U=.5*Math.exp(2*z/3),q=.5*Math.sqrt(z*U*(I-U)/I)*(O-I/2<0?-1:1);fI(h,l,Math.max(u,Math.floor(l-O*U/I+q)),Math.min(p,Math.floor(l+(I-O)*U/I+q)),y)}const b=h[l];let S=u,k=p;for(Ax(h,u,l),y(h[p],b)>0&&Ax(h,u,p);S0;)k--}y(h[u],b)===0?Ax(h,u,k):(k++,Ax(h,k,p)),k<=l&&(u=k+1),l<=k&&(p=k-1)}}function Ax(h,l,u){const p=h[l];h[l]=h[u],h[u]=p}function ov(h,l){return hl?1:0}function pI(h){let l=0;for(let u,p,y=0,b=h.length,S=b-1;y=l[2]||h[1]<=l[1]||h[3]>=l[3])}function h3(h,l,u){const p=h[0]-l[0],y=h[1]-l[1],b=h[0]-u[0],S=h[1]-u[1];return p*S-b*y===0&&p*b<=0&&y*S<=0}function tT(h,l,u){return l[1]>h[1]!=u[1]>h[1]&&h[0]<(u[0]-l[0])*(h[1]-l[1])/(u[1]-l[1])+l[0]}function tg(h,l,u=!1){let p=!1;for(let y=0,b=l.length;y0&&k<0||S<0&&k>0}function Cx(h,l,u,p){return(y=[p[0]-u[0],p[1]-u[1]])[0]*(b=[l[0]-h[0],l[1]-h[1]])[1]-y[1]*b[0]!==0&&!(!mI(h,l,u,p)||!mI(u,p,h,l));var y,b}function rT(h){const l=new Ot(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),u=new Ot(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(const p of h[0])l.x>p.x&&(l.x=p.x),l.y>p.y&&(l.y=p.y),u.xu[2]){const y=.5*p;let b=h[0]-u[0]>y?-p:u[0]-h[0]>y?p:0;b===0&&(b=h[0]-u[2]>y?-p:u[2]-h[0]>y?p:0),h[0]+=b}Lu(l,h)}function sT(h,l,u,p){const y=Math.pow(2,p.z)*cf,b=[p.x*cf,p.y*cf],S=[];if(!h)return S;for(const k of h)for(const I of k){const O=[I.x+b[0],I.y+b[1]];ou(O,l,u,y),S.push(O)}return S}function aT(h,l,u,p){const y=Math.pow(2,p.z)*cf,b=[p.x*cf,p.y*cf],S=[];if(!h)return S;for(const I of h){const O=[];for(const z of I){const U=[z.x+b[0],z.y+b[1]];Lu(l,U),O.push(U)}S.push(O)}if(l[2]-l[0]<=y/2){(k=l)[0]=k[1]=1/0,k[2]=k[3]=-1/0;for(const I of S)for(const O of I)ou(O,l,u,y)}var k;return S}class uf{constructor(l,u){this.type=ci,this.geojson=l,this.geometries=u}static parse(l,u){if(l.length!==2)return u.error(`'within' expression requires exactly one argument, but found ${l.length-1} instead.`);if(eg(l[1])){const p=l[1];if(p.type==="FeatureCollection")for(let y=0;yu)return cv(b,S,(u-(p-k))/k)}return l[l.length-1]}pointToSegmentDistance(l,u,p){let[y,b]=u,S=vc(p[0]-y)*this.kx,k=(p[1]-b)*this.ky;if(S!==0||k!==0){const I=(vc(l[0]-y)*this.kx*S+(l[1]-b)*this.ky*k)/(S*S+k*k);I>1?(y=p[0],b=p[1]):I>0&&(y+=S/this.kx*I,b+=k/this.ky*I)}return S=vc(l[0]-y)*this.kx,k=(l[1]-b)*this.ky,Math.sqrt(S*S+k*k)}pointOnLine(l,u){let p=1/0,y=l[0][0],b=l[0][1],S=0,k=0;for(let I=0;I1?(O=l[I+1][0],z=l[I+1][1]):K>0&&(O+=U/this.kx*K,z+=q/this.ky*K)),U=vc(u[0]-O)*this.kx,q=(u[1]-z)*this.ky;const X=U*U+q*q;Xb.index||y.index===b.index&&y.t>b.t){const O=y;y=b,b=O}const S=[y.point],k=y.index+1,I=b.index;!cT(p[k],S[0])&&k<=I&&S.push(p[k]);for(let O=k+1;O<=I;O++)S.push(p[O]);return cT(p[I],b.point)||S.push(b.point),S}lineSliceAlong(l,u,p){let y=0;const b=[];for(let S=0;Sl&&b.length===0&&b.push(cv(k,I,(l-(y-O))/O)),y>=u)return b.push(cv(k,I,(u-(y-O))/O)),b;y>l&&b.push(I)}return b}bufferPoint(l,u){const p=u/this.ky,y=u/this.kx;return[l[0]-y,l[1]-p,l[0]+y,l[1]+p]}bufferBBox(l,u){const p=u/this.ky,y=u/this.kx;return[l[0]-y,l[1]-p,l[2]+y,l[3]+p]}insideBBox(l,u){return vc(l[0]-u[0])>=0&&vc(l[0]-u[2])<=0&&l[1]>=u[1]&&l[1]<=u[3]}}function cT(h,l){return h[0]===l[0]&&h[1]===l[1]}function cv(h,l,u){const p=vc(l[0]-h[0]);return[h[0]+p*u,h[1]+(l[1]-h[1])*u]}function vc(h){for(;h<-180;)h+=360;for(;h>180;)h-=360;return h}class jx{constructor(l=[],u=(p,y)=>py?1:0){if(this.data=l,this.length=this.data.length,this.compare=u,this.length>0)for(let p=(this.length>>1)-1;p>=0;p--)this._down(p)}push(l){this.data.push(l),this._up(this.length++)}pop(){if(this.length===0)return;const l=this.data[0],u=this.data.pop();return--this.length>0&&(this.data[0]=u,this._down(0)),l}peek(){return this.data[0]}_up(l){const{data:u,compare:p}=this,y=u[l];for(;l>0;){const b=l-1>>1,S=u[b];if(p(y,S)>=0)break;u[l]=S,l=b}u[l]=y}_down(l){const{data:u,compare:p}=this,y=this.length>>1,b=u[l];for(;l=0)break;u[l]=u[S],l=S}u[l]=b}}var sr=8192;function yI(h,l){return l.dist-h.dist}function xI(h){const l=[1/0,1/0,-1/0,-1/0];if(l.length!==h.length)return!1;for(let u=0;u=h[0]&&h[1]h[1])return[null,null];const u=Ep(h);if(l){if(u===2)return[h,null];const p=Math.floor(u/2);return[[h[0],h[0]+p],[h[0]+p,h[1]]]}{if(u===1)return[h,null];const p=Math.floor(u/2)-1;return[[h[0],h[0]+p],[h[0]+p+1,h[1]]]}}function df(h,l){const u=[1/0,1/0,-1/0,-1/0];if(!Du(l,h.length))return u;for(let p=l[0];p<=l[1];++p)Lu(u,h[p]);return u}function Px(h){const l=[1/0,1/0,-1/0,-1/0];for(let u=0;ul[2]&&(p=h[0]-l[2]),h[1]>l[3]&&(y=h[1]-l[3]),h[3]=p)return p;if(kx(y,b)){if(SI(h,l))return 0}else if(SI(l,h))return 0;let S=p;for(const k of h)for(let I=0,O=k.length,z=O-1;I=b)continue;const z=O.range1;if(Ep(z)<=k){if(!Du(z,h.length))return NaN;if(l){const U=cs(h,z,u,p);if((b=Math.min(b,U))===0)return b}else for(let U=z[0];U<=z[1];++U){const q=y3(h[U],u,p);if((b=Math.min(b,q))===0)return b}}else{const U=ig(z,l);if(U[0]!==null){const q=sg(df(h,U[0]),I,p);q=S)continue;const U=z.range1,q=z.range2;if(Ep(U)<=I&&Ep(q)<=O){if(!Du(U,h.length)||!Du(q,u.length))return NaN;if(l&&p?S=Math.min(S,g3(h,U,u,q,y)):l||p?l&&!p?S=Math.min(S,bI(u,q,h,U,y)):!l&&p&&(S=Math.min(S,bI(h,U,u,q,y))):S=Math.min(S,wI(h,U,u,q,y)),S===0)return S}else{const K=ig(U,l),X=ig(q,p);uv(k,S,y,h,u,K[0],X[0]),uv(k,S,y,h,u,K[0],X[1]),uv(k,S,y,h,u,K[1],X[0]),uv(k,S,y,h,u,K[1],X[1])}}return S}function dT(h,l,u,p,y=1/0){let b=y;const S=df(h,[0,h.length-1]);for(const k of u)if(!(b!==1/0&&sg(S,df(k,[0,k.length-1]),p)>=b)&&(b=Math.min(b,TI(h,l,k,!0,p,b)),b===0))return b;return b}function dv(h,l,u,p,y=1/0){let b=y;const S=df(h,[0,h.length-1]);for(const k of u){if(b!==1/0&&sg(S,Px(k),p)>=b)continue;const I=_3(h,l,k,p,b);if(isNaN(I))return I;if((b=Math.min(b,I))===0)return b}return b}function hT(h){return h==="Point"||h==="MultiPoint"||h==="LineString"||h==="MultiLineString"||h==="Polygon"||h==="MultiPolygon"}class Ap{constructor(l,u){this.type=Mr,this.geojson=l,this.geometries=u}static parse(l,u){if(l.length!==2)return u.error(`'distance' expression requires either one argument, but found ' ${l.length-1} instead.`);if(eg(l[1])){const p=l[1];if(p.type==="FeatureCollection"){for(let y=0;y{l&&!kp(u)&&(l=!1)}),l}function ag(h){if(h instanceof ja&&h.name==="feature-state")return!1;let l=!0;return h.eachChild(u=>{l&&!ag(u)&&(l=!1)}),l}function md(h,l){if(h instanceof ja&&l.indexOf(h.name)>=0)return!1;let u=!0;return h.eachChild(p=>{u&&!md(p,l)&&(u=!1)}),u}function EI(h,l,u){return[h,l,u].filter(Boolean).join("")}function fT(h,l){switch(h){case"string":return Yr(l);case"number":return+l;case"boolean":return!!l;case"color":return Wn.parse(l);case"formatted":return No.fromString(Yr(l));case"resolvedImage":return Nl.build(Yr(l))}return l}function AI(h,l,u,p){return p!==void 0&&(h=p*Math.round(h/p)),l!==void 0&&hu&&(h=u),h}class og{constructor(l,u,p,y=!1){this.type=l,this.key=u,this.scope=p,this.featureConstant=y}static parse(l,u){let p=u.expectedType;if(p==null&&(p=ui),l.length<2||l.length>3)return u.error("Invalid number of arguments for 'config' expression.");const y=u.parse(l[1],1);if(!(y instanceof Cr))return u.error("Key name of 'config' expression must be a string literal.");let b,S=!0;const k=Yr(y.value);if(l.length>=3){const I=u.parse(l[2],2);if(!(I instanceof Cr))return u.error("Scope of 'config' expression must be a string literal.");b=Yr(I.value)}if(u.options){const I=EI(k,b,u._scope),O=u.options.get(I);O&&(S=kp(O.value||O.default))}return new og(p,k,b,S)}evaluate(l){const u=EI(this.key,this.scope,l.scope),p=l.getConfig(u);if(!p)return null;const{type:y,value:b,values:S,minValue:k,maxValue:I,stepValue:O}=p,z=p.default.evaluate(l);let U=z;if(b){const q=l.scope;l.scope=(q||"").split("").slice(1).join(""),U=b.evaluate(l),l.scope=q}return y&&(U=fT(y,U)),U===void 0||k===void 0&&I===void 0&&O===void 0||(typeof U=="number"?U=AI(U,k,I,O):Array.isArray(U)&&(U=U.map(q=>typeof q=="number"?AI(q,k,I,O):q))),b!==void 0&&U!==void 0&&S&&!S.includes(U)&&(U=z,y&&(U=fT(y,U))),(y&&y!==this.type||U!==void 0&&!lh(js(U),this.type))&&(U=fT(this.type.kind,U)),U}eachChild(){}outputDefined(){return!1}serialize(){const l=["config",this.key];return this.scope&&l.concat(this.scope),l}}class hv{constructor(l,u){this.type=u.type,this.name=l,this.boundExpression=u}static parse(l,u){if(l.length!==2||typeof l[1]!="string")return u.error("'var' expression requires exactly one string literal argument.");const p=l[1];return u.scope.has(p)?new hv(p,u.scope.get(p)):u.error(`Unknown variable "${p}". Make sure "${p}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(l){return this.boundExpression.evaluate(l)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}class fv{constructor(l,u=[],p,y=new vp,b=[],S,k,I){this.registry=l,this.path=u,this.key=u.map(O=>typeof O=="string"?`['${O}']`:`[${O}]`).join(""),this.scope=y,this.errors=b,this.expectedType=p,this._scope=S,this.options=k,this.iconImageUseTheme=I}parse(l,u,p,y,b={}){return u||p?this.concat(u,null,p,y)._parse(l,b):this._parse(l,b)}parseObjectValue(l,u,p,y,b,S={}){return this.concat(u,p,y,b)._parse(l,S)}_parse(l,u){function p(y,b,S){return S==="assert"?new _c(b,[y]):S==="coerce"?new Ru(b,[y]):y}if(l!==null&&typeof l!="string"&&typeof l!="boolean"&&typeof l!="number"||(l=["literal",l]),Array.isArray(l)){if(l.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const y=typeof l[0]=="string"?this.registry[l[0]]:void 0;if(y){let b=y.parse(l,this);if(!b)return null;if(this.expectedType){const S=this.expectedType,k=b.type;if(S.kind!=="string"&&S.kind!=="number"&&S.kind!=="boolean"&&S.kind!=="object"&&S.kind!=="array"||k.kind!=="value")if(S.kind!=="color"&&S.kind!=="formatted"&&S.kind!=="resolvedImage"||k.kind!=="value"&&k.kind!=="string"){if(this.checkSubtype(S,k))return null}else b=p(b,S,u.typeAnnotation||"coerce");else b=p(b,S,u.typeAnnotation||"assert")}if(!(b instanceof Cr)&&b.type.kind!=="resolvedImage"&&pT(b)){const S=new Ex(this._scope,this.options,this.iconImageUseTheme);try{b=new Cr(b.type,b.evaluate(S))}catch(k){return this.error(k.message),null}}return b}return Ru.parse(["to-array",l],this)}return this.error(l===void 0?"'undefined' value invalid. Use null instead.":typeof l=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof l} instead.`)}concat(l,u,p,y){let b=typeof l=="number"?this.path.concat(l):this.path;b=typeof u=="string"?b.concat(u):b;const S=y?this.scope.concat(y):this.scope;return new fv(this.registry,b,p||null,S,this.errors,this._scope,this.options,this.iconImageUseTheme)}error(l,...u){const p=`${this.key}${u.map(y=>`[${y}]`).join("")}`;this.errors.push(new su(p,l))}checkSubtype(l,u){const p=vx(l,u);return p&&this.error(p),p}}function pT(h){if(h instanceof hv)return pT(h.boundExpression);if(h instanceof ja&&h.name==="error"||h instanceof av||h instanceof uf||h instanceof Ap||h instanceof og)return!1;const l=h instanceof Ru||h instanceof _c;let u=!0;return h.eachChild(p=>{u=l?u&&pT(p):u&&p instanceof Cr}),!!u&&kp(h)&&md(h,["zoom","heatmap-density","worldview","line-progress","raster-value","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center","measure-light","raster-particle-speed","is-active-floor"])}function pv(h,l){const u=h.length-1;let p,y,b=0,S=u,k=0;for(;b<=S;)if(k=Math.floor((b+S)/2),p=h[k],y=h[k+1],p<=l){if(k===u||ll))throw new Qs("Input is not a number.");S=k-1}return 0}class Nx{constructor(l,u,p){this.type=l,this.input=u,this.labels=[],this.outputs=[];for(const[y,b]of p)this.labels.push(y),this.outputs.push(b)}static parse(l,u){if(l.length-1<4)return u.error(`Expected at least 4 arguments, but found only ${l.length-1}.`);if((l.length-1)%2!=0)return u.error("Expected an even number of arguments.");const p=u.parse(l[1],1,Mr);if(!p)return null;const y=[];let b=null;u.expectedType&&u.expectedType.kind!=="value"&&(b=u.expectedType);for(let S=1;S=k)return u.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',O);const U=u.parse(I,z,b);if(!U)return null;b=b||U.type,y.push([k,U])}return new Nx(b,p,y)}evaluate(l){const u=this.labels,p=this.outputs;if(u.length===1)return p[0].evaluate(l);const y=this.input.evaluate(l);if(y<=u[0])return p[0].evaluate(l);const b=u.length;return y>=u[b-1]?p[b-1].evaluate(l):p[pv(u,y)].evaluate(l)}eachChild(l){l(this.input);for(const u of this.outputs)l(u)}outputDefined(){return this.outputs.every(l=>l.outputDefined())}serialize(){const l=["step",this.input.serialize()];for(let u=0;u0&&l.push(this.labels[u]),l.push(this.outputs[u].serialize());return l}}const kI=.95047,CI=1.08883,II=4/29,lg=6/29,jI=3*lg*lg,v3=lg*lg*lg,b3=Math.PI/180,w3=180/Math.PI;function mT(h){return h>v3?Math.pow(h,1/3):h/jI+II}function gT(h){return h>lg?h*h*h:jI*(h-II)}function Rx(h){return 255*(h<=.0031308?12.92*h:1.055*Math.pow(h,1/2.4)-.055)}function cg(h){return(h/=255)<=.04045?h/12.92:Math.pow((h+.055)/1.055,2.4)}function yT(h){const l=cg(h.r),u=cg(h.g),p=cg(h.b),y=mT((.4124564*l+.3575761*u+.1804375*p)/kI),b=mT((.2126729*l+.7151522*u+.072175*p)/1);return{l:116*b-16,a:500*(y-b),b:200*(b-mT((.0193339*l+.119192*u+.9503041*p)/CI)),alpha:h.a}}function PI(h){let l=(h.l+16)/116,u=isNaN(h.a)?l:l+h.a/500,p=isNaN(h.b)?l:l-h.b/200;return l=1*gT(l),u=kI*gT(u),p=CI*gT(p),new Wn(Rx(3.2404542*u-1.5371385*l-.4985314*p),Rx(-.969266*u+1.8760108*l+.041556*p),Rx(.0556434*u-.2040259*l+1.0572252*p),h.alpha)}function S3(h,l,u){const p=l-h;return h+u*(p>180||p<-180?p-360*Math.round(p/360):p)}const Lx={forward:yT,reverse:PI,interpolate:function(h,l,u){return{l:Zr(h.l,l.l,u),a:Zr(h.a,l.a,u),b:Zr(h.b,l.b,u),alpha:Zr(h.alpha,l.alpha,u)}}},ug={forward:function(h){const{l,a:u,b:p}=yT(h),y=Math.atan2(p,u)*w3;return{h:y<0?y+360:y,c:Math.sqrt(u*u+p*p),l,alpha:h.a}},reverse:function(h){const l=h.h*b3,u=h.c;return PI({l:h.l,a:Math.cos(l)*u,b:Math.sin(l)*u,alpha:h.alpha})},interpolate:function(h,l,u){return{h:S3(h.h,l.h,u),c:Zr(h.c,l.c,u),l:Zr(h.l,l.l,u),alpha:Zr(h.alpha,l.alpha,u)}}};var xT=Object.freeze({__proto__:null,hcl:ug,lab:Lx});class Ro{constructor(l,u,p,y,b){this.type=l,this.operator=u,this.interpolation=p,this.input=y,this.labels=[],this.outputs=[];for(const[S,k]of b)this.labels.push(S),this.outputs.push(k)}static interpolationFactor(l,u,p,y){let b=0;if(l.name==="exponential")b=mv(u,l.base,p,y);else if(l.name==="linear")b=mv(u,1,p,y);else if(l.name==="cubic-bezier"){const S=l.controlPoints;b=new Ho(S[0],S[1],S[2],S[3]).solve(mv(u,1,p,y))}return b}static parse(l,u){let[p,y,b,...S]=l;if(!Array.isArray(y)||y.length===0)return u.error("Expected an interpolation type expression.",1);if(y[0]==="linear")y={name:"linear"};else if(y[0]==="exponential"){const O=y[1];if(typeof O!="number")return u.error("Exponential interpolation requires a numeric base.",1,1);y={name:"exponential",base:O}}else{if(y[0]!=="cubic-bezier")return u.error(`Unknown interpolation type ${String(y[0])}`,1,0);{const O=y.slice(1);if(O.length!==4||O.some(z=>typeof z!="number"||z<0||z>1))return u.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);y={name:"cubic-bezier",controlPoints:O}}}if(l.length-1<4)return u.error(`Expected at least 4 arguments, but found only ${l.length-1}.`);if(l.length-1>3&&(l.length-1)%2!=0)return u.error("Expected an even number of arguments.");if(b=u.parse(b,2,Mr),!b)return null;const k=[];let I=null;p==="interpolate-hcl"||p==="interpolate-lab"?I=pl:u.expectedType&&u.expectedType.kind!=="value"&&(I=u.expectedType);for(let O=0;O=z)return u.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',q);const X=u.parse(U,K,I);if(!X)return null;I=I||X.type,k.push([z,X])}return I.kind==="number"||I.kind==="color"||I.kind==="array"&&I.itemType.kind==="number"&&typeof I.N=="number"?new Ro(I,p,y,b,k):u.error(`Type ${oa(I)} is not interpolatable.`)}evaluate(l){const u=this.labels,p=this.outputs;if(u.length===1)return p[0].evaluate(l);const y=this.input.evaluate(l);if(y<=u[0])return p[0].evaluate(l);const b=u.length;if(y>=u[b-1])return p[b-1].evaluate(l);const S=pv(u,y),k=Ro.interpolationFactor(this.interpolation,y,u[S],u[S+1]),I=p[S].evaluate(l),O=p[S+1].evaluate(l);return this.operator==="interpolate"?nv[this.type.kind.toLowerCase()](I,O,k):this.operator==="interpolate-hcl"?ug.reverse(ug.interpolate(ug.forward(I),ug.forward(O),k)):Lx.reverse(Lx.interpolate(Lx.forward(I),Lx.forward(O),k))}eachChild(l){l(this.input);for(const u of this.outputs)l(u)}outputDefined(){return this.outputs.every(l=>l.outputDefined())}serialize(){let l;l=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier",...this.interpolation.controlPoints];const u=[this.operator,l,this.input.serialize()];for(let p=0;pvx(y,k.type));return new Dx(S?ui:p,b)}evaluate(l){let u,p=null,y=0;for(const b of this.args){if(y++,p=b.evaluate(l),p&&p instanceof Nl&&!p.available&&(u||(u=p),p=null,y===this.args.length))return u;if(p!==null)break}return p}eachChild(l){this.args.forEach(l)}outputDefined(){return this.args.every(l=>l.outputDefined())}serialize(){const l=["coalesce"];return this.eachChild(u=>{l.push(u.serialize())}),l}}class gv{constructor(l,u){this.type=u.type,this.bindings=[].concat(l),this.result=u}evaluate(l){return this.result.evaluate(l)}eachChild(l){for(const u of this.bindings)l(u[1]);l(this.result)}static parse(l,u){if(l.length<4)return u.error(`Expected at least 3 arguments, but found ${l.length-1} instead.`);const p=[];for(let b=1;b=p.length)throw new Qs("Array index out of bounds: index exceeds array size");if(u!==Math.floor(u))throw new Qs("Array index must be an integer. Use at-interpolated for fractional indices");return p[u]}eachChild(l){l(this.index),l(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}class Ox{constructor(l,u,p){this.type=l,this.index=u,this.input=p}static parse(l,u){if(l.length!==3)return u.error(`Expected 2 arguments, but found ${l.length-1} instead.`);const p=u.parse(l[1],1,Mr),y=u.parse(l[2],2,Wo(u.expectedType||ui));return p&&y?new Ox(y.type.itemType,p,y):null}evaluate(l){const u=this.index.evaluate(l),p=this.input.evaluate(l);if(u<0)throw new Qs(`Array index out of bounds: ${u} < 0.`);if(u>p.length-1)throw new Qs(`Array index out of bounds: ${u} > ${p.length-1}.`);if(u===Math.floor(u))return p[u];const y=Math.floor(u),b=Math.ceil(u),S=p[y],k=p[b];if(typeof S!="number"||typeof k!="number")throw new Qs(`Cannot interpolate between non-number values at index ${u}.`);const I=u-y;return S*(1-I)+k*I}eachChild(l){l(this.index),l(this.input)}outputDefined(){return!1}serialize(){return["at-interpolated",this.index.serialize(),this.input.serialize()]}}class Fx{constructor(l,u){this.type=ci,this.needle=l,this.haystack=u}static parse(l,u){if(l.length!==3)return u.error(`Expected 2 arguments, but found ${l.length-1} instead.`),null;const p=u.parse(l[1],1,ui),y=u.parse(l[2],2,ui);return p&&y?JS(p.type,[ci,si,Mr,oh,ui])?new Fx(p,y):(u.error(`Expected first argument to be of type boolean, string, number or null, but found ${oa(p.type)} instead`),null):null}evaluate(l){const u=this.needle.evaluate(l),p=this.haystack.evaluate(l);if(p==null)return!1;if(!Jm(u,["boolean","string","number","null"]))throw new Qs(`Expected first argument to be of type boolean, string, number or null, but found ${oa(js(u))} instead.`);if(!Jm(p,["string","array"]))throw new Qs(`Expected second argument to be of type array or string, but found ${oa(js(p))} instead.`);return p.indexOf(u)>=0}eachChild(l){l(this.needle),l(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}class yv{constructor(l,u,p){this.type=Mr,this.needle=l,this.haystack=u,this.fromIndex=p}static parse(l,u){if(l.length<=2||l.length>=5)return u.error(`Expected 3 or 4 arguments, but found ${l.length-1} instead.`),null;const p=u.parse(l[1],1,ui),y=u.parse(l[2],2,ui);if(!p||!y)return null;if(!JS(p.type,[ci,si,Mr,oh,ui]))return u.error(`Expected first argument to be of type boolean, string, number or null, but found ${oa(p.type)} instead`),null;if(l.length===4){const b=u.parse(l[3],3,Mr);return b?new yv(p,y,b):null}return new yv(p,y)}evaluate(l){const u=this.needle.evaluate(l),p=this.haystack.evaluate(l);if(!Jm(u,["boolean","string","number","null"]))throw new Qs(`Expected first argument to be of type boolean, string, number or null, but found ${oa(js(u))} instead.`);if(!Jm(p,["string","array"]))throw new Qs(`Expected second argument to be of type array or string, but found ${oa(js(p))} instead.`);if(this.fromIndex){const y=this.fromIndex.evaluate(l);return p.indexOf(u,y)}return p.indexOf(u)}eachChild(l){l(this.needle),l(this.haystack),this.fromIndex&&l(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){const l=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),l]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}class _T{constructor(l,u,p,y,b,S){this.inputType=l,this.type=u,this.input=p,this.cases=y,this.outputs=b,this.otherwise=S}static parse(l,u){if(l.length<5)return u.error(`Expected at least 4 arguments, but found only ${l.length-1}.`);if(l.length%2!=1)return u.error("Expected an even number of arguments.");let p,y;u.expectedType&&u.expectedType.kind!=="value"&&(y=u.expectedType);const b={},S=[];for(let O=2;ONumber.MAX_SAFE_INTEGER)return q.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof X=="number"&&Math.floor(X)!==X)return q.error("Numeric branch labels must be integer values.");if(p){if(q.checkSubtype(p,js(X)))return null}else p=js(X);if(b[String(X)]!==void 0)return q.error("Branch labels must be unique.");b[String(X)]=S.length}const K=u.parse(U,O,y);if(!K)return null;y=y||K.type,S.push(K)}const k=u.parse(l[1],1,ui);if(!k)return null;const I=u.parse(l[l.length-1],l.length-1,y);return I?k.type.kind!=="value"&&u.concat(1).checkSubtype(p,k.type)?null:new _T(p,y,k,b,S,I):null}evaluate(l){const u=this.input.evaluate(l);return(lh(js(u),this.inputType)&&this.outputs[this.cases[u]]||this.otherwise).evaluate(l)}eachChild(l){l(this.input),this.outputs.forEach(l),l(this.otherwise)}outputDefined(){return this.outputs.every(l=>l.outputDefined())&&this.otherwise.outputDefined()}serialize(){const l=["match",this.input.serialize()],u=Object.keys(this.cases).sort(),p=[],y={};for(const S of u){const k=y[this.cases[S]];k===void 0?(y[this.cases[S]]=p.length,p.push([this.cases[S],[S]])):p[k][1].push(S)}const b=S=>this.inputType.kind==="number"?Number(S):S;for(const[S,k]of p)l.push(k.length===1?b(k[0]):k.map(b)),l.push(this.outputs[S].serialize());return l.push(this.otherwise.serialize()),l}}class xv{constructor(l,u,p){this.type=l,this.branches=u,this.otherwise=p}static parse(l,u){if(l.length<4)return u.error(`Expected at least 3 arguments, but found only ${l.length-1}.`),null;if(l.length%2!=0)return u.error("Expected an odd number of arguments."),null;let p;u.expectedType&&u.expectedType.kind!=="value"&&(p=u.expectedType);const y=[];for(let S=1;Su.outputDefined())&&this.otherwise.outputDefined()}serialize(){const l=["case"];return this.eachChild(u=>{l.push(u.serialize())}),l}}class Bx{constructor(l,u,p,y){this.type=l,this.input=u,this.beginIndex=p,this.endIndex=y}static parse(l,u){if(l.length<=2||l.length>=5)return u.error(`Expected 3 or 4 arguments, but found ${l.length-1} instead.`),null;const p=u.parse(l[1],1,ui),y=u.parse(l[2],2,Mr);if(!p||!y)return null;if(!JS(p.type,[Wo(ui),si,ui]))return u.error(`Expected first argument to be of type array or string, but found ${oa(p.type)} instead`),null;if(l.length===4){const b=u.parse(l[3],3,Mr);return b?new Bx(p.type,p,y,b):null}return new Bx(p.type,p,y)}evaluate(l){const u=this.input.evaluate(l),p=this.beginIndex.evaluate(l);if(!Jm(u,["string","array"]))throw new Qs(`Expected first argument to be of type array or string, but found ${oa(js(u))} instead.`);if(this.endIndex){const y=this.endIndex.evaluate(l);return u.slice(p,y)}return u.slice(p)}eachChild(l){l(this.input),l(this.beginIndex),this.endIndex&&l(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){const l=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),l]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}class vT{constructor(l,u){this.type=Wo(si),this.str=l,this.delimiter=u}static parse(l,u){if(l.length!==3)return u.error(`Expected 2 arguments, but found ${l.length-1} instead.`);const p=u.parse(l[1],1,si),y=u.parse(l[2],2,si);return p&&y?new vT(p,y):void 0}evaluate(l){const u=this.str.evaluate(l),p=this.delimiter.evaluate(l);return u.split(p)}eachChild(l){l(this.str),l(this.delimiter)}outputDefined(){return!1}serialize(){return["split",this.str.serialize(),this.delimiter.serialize()]}}function NI(h,l){return h==="=="||h==="!="?l.kind==="boolean"||l.kind==="string"||l.kind==="number"||l.kind==="null"||l.kind==="value":l.kind==="string"||l.kind==="number"||l.kind==="value"}function RI(h,l,u,p){return p.compare(l,u)===0}function Cp(h,l,u){const p=h!=="=="&&h!=="!=";return class h_e{constructor(b,S,k){this.type=ci,this.lhs=b,this.rhs=S,this.collator=k,this.hasUntypedArgument=b.type.kind==="value"||S.type.kind==="value"}static parse(b,S){if(b.length!==3&&b.length!==4)return S.error("Expected two or three arguments.");const k=b[0];let I=S.parse(b[1],1,ui);if(!I)return null;if(!NI(k,I.type))return S.concat(1).error(`"${k}" comparisons are not supported for type '${oa(I.type)}'.`);let O=S.parse(b[2],2,ui);if(!O)return null;if(!NI(k,O.type))return S.concat(2).error(`"${k}" comparisons are not supported for type '${oa(O.type)}'.`);if(I.type.kind!==O.type.kind&&I.type.kind!=="value"&&O.type.kind!=="value")return S.error(`Cannot compare types '${oa(I.type)}' and '${oa(O.type)}'.`);p&&(I.type.kind==="value"&&O.type.kind!=="value"?I=new _c(O.type,[I]):I.type.kind!=="value"&&O.type.kind==="value"&&(O=new _c(I.type,[O])));let z=null;if(b.length===4){if(I.type.kind!=="string"&&O.type.kind!=="string"&&I.type.kind!=="value"&&O.type.kind!=="value")return S.error("Cannot use collator to compare non-string types.");if(z=S.parse(b[3],3,bp),!z)return null}return new h_e(I,O,z)}evaluate(b){const S=this.lhs.evaluate(b),k=this.rhs.evaluate(b);if(p&&this.hasUntypedArgument){const I=js(S),O=js(k);if(I.kind!==O.kind||I.kind!=="string"&&I.kind!=="number")throw new Qs(`Expected arguments for "${h}" to be (string, string) or (number, number), but found (${I.kind}, ${O.kind}) instead.`)}if(this.collator&&!p&&this.hasUntypedArgument){const I=js(S),O=js(k);if(I.kind!=="string"||O.kind!=="string")return l(b,S,k)}return this.collator?u(b,S,k,this.collator.evaluate(b)):l(b,S,k)}eachChild(b){b(this.lhs),b(this.rhs),this.collator&&b(this.collator)}outputDefined(){return!0}serialize(){const b=[h];return this.eachChild(S=>{b.push(S.serialize())}),b}}}const LI=Cp("==",function(h,l,u){return l===u},RI),_v=Cp("!=",function(h,l,u){return l!==u},function(h,l,u,p){return!RI(0,l,u,p)}),T3=Cp("<",function(h,l,u){return l",function(h,l,u){return l>u},function(h,l,u,p){return p.compare(l,u)>0}),E3=Cp("<=",function(h,l,u){return l<=u},function(h,l,u,p){return p.compare(l,u)<=0}),A3=Cp(">=",function(h,l,u){return l>=u},function(h,l,u,p){return p.compare(l,u)>=0});class vv{constructor(l,u,p,y,b,S){this.type=si,this.number=l,this.locale=u,this.currency=p,this.unit=y,this.minFractionDigits=b,this.maxFractionDigits=S}static parse(l,u){if(l.length!==3)return u.error("Expected two arguments.");const p=u.parse(l[1],1,Mr);if(!p)return null;const y=l[2];if(typeof y!="object"||Array.isArray(y))return u.error("NumberFormat options argument must be an object.");let b=null;if(y.locale&&(b=u.parseObjectValue(y.locale,2,"locale",si),!b))return null;let S=null;if(y.currency&&(S=u.parseObjectValue(y.currency,2,"currency",si),!S))return null;let k=null;if(y.unit&&(k=u.parseObjectValue(y.unit,2,"unit",si),!k))return null;let I=null;if(y["min-fraction-digits"]&&(I=u.parseObjectValue(y["min-fraction-digits"],2,"min-fraction-digits",Mr),!I))return null;let O=null;return y["max-fraction-digits"]&&(O=u.parseObjectValue(y["max-fraction-digits"],2,"max-fraction-digits",Mr),!O)?null:new vv(p,b,S,k,I,O)}evaluate(l){return new Intl.NumberFormat(this.locale?this.locale.evaluate(l):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(l):void 0,unit:this.unit?this.unit.evaluate(l):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(l):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(l):void 0}).format(this.number.evaluate(l))}eachChild(l){l(this.number),this.locale&&l(this.locale),this.currency&&l(this.currency),this.unit&&l(this.unit),this.minFractionDigits&&l(this.minFractionDigits),this.maxFractionDigits&&l(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const l={};return this.locale&&(l.locale=this.locale.serialize()),this.currency&&(l.currency=this.currency.serialize()),this.unit&&(l.unit=this.unit.serialize()),this.minFractionDigits&&(l["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(l["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),l]}}class bv{constructor(l){this.type=Mr,this.input=l}static parse(l,u){if(l.length!==2)return u.error(`Expected 1 argument, but found ${l.length-1} instead.`),null;const p=u.parse(l[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?(u.error(`Expected argument of type string or array, but found ${oa(p.type)} instead.`),null):new bv(p):null}evaluate(l){const u=this.input.evaluate(l);if(typeof u=="string"||Array.isArray(u))return u.length;throw new Qs(`Expected value to be of type string or array, but found ${oa(js(u))} instead.`)}eachChild(l){l(this.input)}outputDefined(){return!1}serialize(){const l=["length"];return this.eachChild(u=>{l.push(u.serialize())}),l}}function MI(h){return function(){h=1831565813+(h|=0)|0;let l=Math.imul(h^h>>>15,1|h);return l=l+Math.imul(l^l>>>7,61|l)^l,((l^l>>>14)>>>0)/4294967296}}const dg={"==":LI,"!=":_v,">":DI,"<":T3,">=":A3,"<=":E3,array:_c,at:Mx,"at-interpolated":Ox,boolean:_c,case:xv,coalesce:Dx,collator:av,format:wp,image:Gr,in:Fx,"index-of":yv,interpolate:Ro,"interpolate-hcl":Ro,"interpolate-lab":Ro,length:bv,let:gv,literal:Cr,match:_T,number:_c,"number-format":vv,object:_c,slice:Bx,step:Nx,string:_c,"to-boolean":Ru,"to-color":Ru,"to-number":Ru,"to-string":Ru,var:hv,within:uf,distance:Ap,config:og,split:vT};function OI(h,[l,u,p,y]){l=l.evaluate(h),u=u.evaluate(h),p=p.evaluate(h);const b=y?y.evaluate(h):1,S=hI(l,u,p,b);if(S)throw new Qs(S);return new Wn(l/255,u/255,p/255,b)}function FI(h,[l,u,p,y]){l=l.evaluate(h),u=u.evaluate(h),p=p.evaluate(h);const b=y?y.evaluate(h):1,S=function(O,z,U,q){return typeof O=="number"&&O>=0&&O<=360?typeof z=="number"&&z>=0&&z<=100&&typeof U=="number"&&U>=0&&U<=100?q===void 0||typeof q=="number"&&q>=0&&q<=1?null:`Invalid hsla value [${[O,z,U,q].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid hsla value [${(typeof q=="number"?[O,z,U,q]:[O,z,U]).join(", ")}]: 's', and 'l' must be between 0 and 100.`:`Invalid hsla value [${(typeof q=="number"?[O,z,U,q]:[O,z,U]).join(", ")}]: 'h' must be between 0 and 360.`}(l,u,p,b);if(S)throw new Qs(S);const k=`hsla(${l}, ${u}%, ${p}%, ${b})`,I=Wn.parse(k);if(!I)throw new Qs(`Failed to parse HSLA color: ${k}`);return I}function zx(h,l){return h in l}function wv(h,l){const u=l[h];return u===void 0?null:u}function hf(h){return{type:h}}function Sv(h){if(h instanceof og)return new Set([h.key]);let l=new Set;return h.eachChild(u=>{l=new Set([...l,...Sv(u)])}),l}function Tv(h){if(h instanceof ja&&h.name==="is-active-floor")return!0;let l=!1;return h.eachChild(u=>{!l&&Tv(u)&&(l=!0)}),l}function BI(h){return{result:"success",value:h}}function ff(h){return{result:"error",value:h}}function $x(h,l){return!!h&&!!h.parameters&&h.parameters.indexOf(l)>-1}function Ev(h){return h["property-type"]==="data-driven"}function zI(h){return $x(h.expression,"measure-light")}function bT(h){return $x(h.expression,"zoom")}function Av(h){return!!h.expression&&h.expression.interpolated}function wT(h){return typeof h=="object"&&h!==null&&!Array.isArray(h)}function $I(h){return h}function UI(h,l){const u=l.type==="color",p=h.stops&&typeof h.stops[0][0]=="object",y=p||!(p||h.property!==void 0),b=h.type||(Av(l)?"exponential":"interval");if(u&&((h=Object.assign({},h)).stops&&(h.stops=h.stops.map(O=>[O[0],Wn.parse(O[1])])),h.default=Wn.parse(h.default?h.default:l.default)),h.colorSpace&&h.colorSpace!=="rgb"&&!xT[h.colorSpace])throw new Error(`Unknown color space: ${h.colorSpace}`);let S,k,I;if(b==="exponential")S=VI;else if(b==="interval")S=C3;else if(b==="categorical"){S=k3,k=Object.create(null);for(const O of h.stops)k[O[0]]=O[1];I=typeof h.stops[0][0]}else{if(b!=="identity")throw new Error(`Unknown function type "${b}"`);S=qI}if(p){const O={},z=[];for(let K=0;KK[0]),evaluate:({zoom:K},X)=>VI({stops:U,base:h.base},l,K).evaluate(K,X)}}if(y){const O=b==="exponential"?{name:"exponential",base:h.base!==void 0?h.base:1}:null;return{kind:"camera",interpolationType:O,interpolationFactor:Ro.interpolationFactor.bind(void 0,O),zoomStops:h.stops.map(z=>z[0]),evaluate:({zoom:z})=>S(h,l,z,k,I)}}return{kind:"source",evaluate(O,z){const U=z&&z.properties?z.properties[h.property]:void 0;return U===void 0?gd(h.default,l.default):S(h,l,U,k,I)}}}function gd(h,l,u){return h!==void 0?h:l!==void 0?l:u!==void 0?u:void 0}function k3(h,l,u,p,y){return gd(typeof u===y?p[u]:void 0,h.default,l.default)}function C3(h,l,u){if(!Sx(u))return gd(h.default,l.default);const p=h.stops.length;if(p===1||u<=h.stops[0][0])return h.stops[0][1];if(u>=h.stops[p-1][0])return h.stops[p-1][1];const y=pv(h.stops.map(b=>b[0]),u);return h.stops[y][1]}function VI(h,l,u){const p=h.base!==void 0?h.base:1;if(!Sx(u))return gd(h.default,l.default);const y=h.stops.length;if(y===1||u<=h.stops[0][0])return h.stops[0][1];if(u>=h.stops[y-1][0])return h.stops[y-1][1];const b=pv(h.stops.map(z=>z[0]),u),S=function(z,U,q,K){const X=K-q,J=z-q;return X===0?0:U===1?J/X:(Math.pow(U,J)-1)/(Math.pow(U,X)-1)}(u,p,h.stops[b][0],h.stops[b+1][0]),k=h.stops[b][1],I=h.stops[b+1][1];let O=nv[l.type]||$I;if(h.colorSpace&&h.colorSpace!=="rgb"){const z=xT[h.colorSpace];O=(U,q)=>z.reverse(z.interpolate(z.forward(U),z.forward(q),S))}return typeof k.evaluate=="function"?{evaluate(...z){const U=k.evaluate.apply(void 0,z),q=I.evaluate.apply(void 0,z);if(U!==void 0&&q!==void 0)return O(U,q,S)}}:O(k,I,S)}function qI(h,l,u){return l.type==="color"?u=Wn.parse(u):l.type==="formatted"?u=No.fromString(u.toString()):l.type==="resolvedImage"?u=Nl.build(u.toString()):wx(u)===l.type||l.type==="enum"&&l.values[u]||(u=void 0),gd(u,h.default,l.default)}ja.register(dg,{error:[{kind:"error"},[si],(h,[l])=>{throw new Qs(l.evaluate(h))}],typeof:[si,[ui],(h,[l])=>oa(js(l.evaluate(h)))],"to-rgba":[Wo(Mr,4),[pl],(h,[l])=>l.evaluate(h).toNonPremultipliedRenderColor(null).toArray()],"to-hsla":[Wo(Mr,4),[pl],(h,[l])=>l.evaluate(h).toNonPremultipliedRenderColor(null).toHslaArray()],rgb:[pl,[Mr,Mr,Mr],OI],rgba:[pl,[Mr,Mr,Mr,Mr],OI],hsl:[pl,[Mr,Mr,Mr],FI],hsla:[pl,[Mr,Mr,Mr,Mr],FI],has:{type:ci,overloads:[[[si],(h,[l])=>zx(l.evaluate(h),h.properties())],[[si,of],(h,[l,u])=>zx(l.evaluate(h),u.evaluate(h))]]},get:{type:ui,overloads:[[[si],(h,[l])=>wv(l.evaluate(h),h.properties())],[[si,of],(h,[l,u])=>wv(l.evaluate(h),u.evaluate(h))]]},"feature-state":[ui,[si],(h,[l])=>wv(l.evaluate(h),h.featureState||{})],properties:[of,[],h=>h.properties()],"geometry-type":[si,[],h=>h.geometryType()],worldview:[si,[],h=>h.globals.worldview||""],"is-active-floor":[ci,hf(si),(h,l)=>{if(!(h.globals&&h.globals.activeFloors&&h.globals.activeFloors.size>0))return!1;if(l.length===0)return!0;const u=h.globals.activeFloors;return l.some(p=>{const y=p.evaluate(h);return u.has(y)})}],id:[ui,[],h=>h.id()],zoom:[Mr,[],h=>h.globals.zoom],pitch:[Mr,[],h=>h.globals.pitch||0],"distance-from-center":[Mr,[],h=>h.distanceFromCenter()],"measure-light":[Mr,[si],(h,[l])=>h.measureLight(l.evaluate(h))],"heatmap-density":[Mr,[],h=>h.globals.heatmapDensity||0],"line-progress":[Mr,[],h=>h.globals.lineProgress||0],"raster-value":[Mr,[],h=>h.globals.rasterValue||0],"raster-particle-speed":[Mr,[],h=>h.globals.rasterParticleSpeed||0],"sky-radial-progress":[Mr,[],h=>h.globals.skyRadialProgress||0],accumulated:[ui,[],h=>h.globals.accumulated===void 0?null:h.globals.accumulated],"+":[Mr,hf(Mr),(h,l)=>{let u=0;for(const p of l)u+=p.evaluate(h);return u}],"*":[Mr,hf(Mr),(h,l)=>{let u=1;for(const p of l)u*=p.evaluate(h);return u}],"-":{type:Mr,overloads:[[[Mr,Mr],(h,[l,u])=>l.evaluate(h)-u.evaluate(h)],[[Mr],(h,[l])=>-l.evaluate(h)]]},"/":[Mr,[Mr,Mr],(h,[l,u])=>l.evaluate(h)/u.evaluate(h)],"%":[Mr,[Mr,Mr],(h,[l,u])=>l.evaluate(h)%u.evaluate(h)],ln2:[Mr,[],()=>Math.LN2],pi:[Mr,[],()=>Math.PI],e:[Mr,[],()=>Math.E],"^":[Mr,[Mr,Mr],(h,[l,u])=>Math.pow(l.evaluate(h),u.evaluate(h))],sqrt:[Mr,[Mr],(h,[l])=>Math.sqrt(l.evaluate(h))],log10:[Mr,[Mr],(h,[l])=>Math.log(l.evaluate(h))/Math.LN10],ln:[Mr,[Mr],(h,[l])=>Math.log(l.evaluate(h))],log2:[Mr,[Mr],(h,[l])=>Math.log2(l.evaluate(h))],sin:[Mr,[Mr],(h,[l])=>Math.sin(l.evaluate(h))],cos:[Mr,[Mr],(h,[l])=>Math.cos(l.evaluate(h))],tan:[Mr,[Mr],(h,[l])=>Math.tan(l.evaluate(h))],asin:[Mr,[Mr],(h,[l])=>Math.asin(l.evaluate(h))],acos:[Mr,[Mr],(h,[l])=>Math.acos(l.evaluate(h))],atan:[Mr,[Mr],(h,[l])=>Math.atan(l.evaluate(h))],min:[Mr,hf(Mr),(h,l)=>Math.min(...l.map(u=>u.evaluate(h)))],max:[Mr,hf(Mr),(h,l)=>Math.max(...l.map(u=>u.evaluate(h)))],abs:[Mr,[Mr],(h,[l])=>Math.abs(l.evaluate(h))],round:[Mr,[Mr],(h,[l])=>{const u=l.evaluate(h);return u<0?-Math.round(-u):Math.round(u)}],floor:[Mr,[Mr],(h,[l])=>Math.floor(l.evaluate(h))],ceil:[Mr,[Mr],(h,[l])=>Math.ceil(l.evaluate(h))],"filter-==":[ci,[si,ui],(h,[l,u])=>h.properties()[l.value]===u.value],"filter-id-==":[ci,[ui],(h,[l])=>h.id()===l.value],"filter-type-==":[ci,[si],(h,[l])=>h.geometryType()===l.value],"filter-<":[ci,[si,ui],(h,[l,u])=>{const p=h.properties()[l.value],y=u.value;return typeof p==typeof y&&p{const u=h.id(),p=l.value;return typeof u==typeof p&&u":[ci,[si,ui],(h,[l,u])=>{const p=h.properties()[l.value],y=u.value;return typeof p==typeof y&&p>y}],"filter-id->":[ci,[ui],(h,[l])=>{const u=h.id(),p=l.value;return typeof u==typeof p&&u>p}],"filter-<=":[ci,[si,ui],(h,[l,u])=>{const p=h.properties()[l.value],y=u.value;return typeof p==typeof y&&p<=y}],"filter-id-<=":[ci,[ui],(h,[l])=>{const u=h.id(),p=l.value;return typeof u==typeof p&&u<=p}],"filter->=":[ci,[si,ui],(h,[l,u])=>{const p=h.properties()[l.value],y=u.value;return typeof p==typeof y&&p>=y}],"filter-id->=":[ci,[ui],(h,[l])=>{const u=h.id(),p=l.value;return typeof u==typeof p&&u>=p}],"filter-has":[ci,[ui],(h,[l])=>l.value in h.properties()],"filter-has-id":[ci,[],h=>h.id()!==null&&h.id()!==void 0],"filter-type-in":[ci,[Wo(si)],(h,[l])=>l.value.indexOf(h.geometryType())>=0],"filter-id-in":[ci,[Wo(ui)],(h,[l])=>l.value.indexOf(h.id())>=0],"filter-in-small":[ci,[si,Wo(ui)],(h,[l,u])=>u.value.indexOf(h.properties()[l.value])>=0],"filter-in-large":[ci,[si,Wo(ui)],(h,[l,u])=>function(p,y,b,S){for(;b<=S;){const k=b+S>>1;if(y[k]===p)return!0;y[k]>p?S=k-1:b=k+1}return!1}(h.properties()[l.value],u.value,0,u.value.length-1)],all:{type:ci,overloads:[[[ci,ci],(h,[l,u])=>l.evaluate(h)&&u.evaluate(h)],[hf(ci),(h,l)=>{for(const u of l)if(!u.evaluate(h))return!1;return!0}]]},any:{type:ci,overloads:[[[ci,ci],(h,[l,u])=>l.evaluate(h)||u.evaluate(h)],[hf(ci),(h,l)=>{for(const u of l)if(u.evaluate(h))return!0;return!1}]]},"!":[ci,[ci],(h,[l])=>!l.evaluate(h)],"is-supported-script":[ci,[si],(h,[l])=>{const u=h.globals&&h.globals.isSupportedScript;return!u||u(l.evaluate(h))}],upcase:[si,[si],(h,[l])=>l.evaluate(h).toUpperCase()],downcase:[si,[si],(h,[l])=>l.evaluate(h).toLowerCase()],concat:[si,hf(ui),(h,l)=>l.map(u=>Yr(u.evaluate(h))).join("")],"resolved-locale":[si,[bp],(h,[l])=>l.evaluate(h).resolvedLocale()],random:[Mr,[Mr,Mr,ui],(h,l)=>{const[u,p,y]=l.map(S=>S.evaluate(h));if(u>p||u===p)return u;let b;if(typeof y=="string")b=function(S){let k=0;if(S.length===0)return k;for(let I=0;IJSON.stringify(U)).join(", ")}, but found ${JSON.stringify(z)} instead.`);return z}catch(z){const U=z;return this._warningHistory[U.message]||(this._warningHistory[U.message]=!0,typeof console<"u"&&console.warn(`Failed to evaluate expression "${JSON.stringify(this.expression.serialize())}". ${U.message}`)),this._defaultValue}}}function Ux(h){return Array.isArray(h)&&h.length>0&&typeof h[0]=="string"&&h[0]in dg}function pf(h,l,u,p,y){const b=new fv(dg,[],l?function(k){const I={color:pl,string:si,number:Mr,enum:si,boolean:ci,formatted:xx,resolvedImage:_x};return k.type==="array"?Wo(I[k.value]||ui,k.length):I[k.type]}(l):void 0,void 0,void 0,u,p,y),S=b.parse(h,void 0,void 0,void 0,l&&l.type==="string"?{typeAnnotation:"coerce"}:void 0);return S?BI(new kv(S,l,u,p,y)):ff(b.errors)}class hg{constructor(l,u,p,y){this.kind=l,this._styleExpression=u,this.isLightConstant=p,this.isLineProgressConstant=y,this.isStateDependent=l!=="constant"&&!ag(u.expression),this.configDependencies=Sv(u.expression),this.isIndoorDependent=Tv(u.expression)}evaluateWithoutErrorHandling(l,u,p,y,b,S){return this._styleExpression.evaluateWithoutErrorHandling(l,u,p,y,b,S)}evaluate(l,u,p,y,b,S,k){return this._styleExpression.evaluate(l,u,p,y,b,S,void 0,void 0,k)}}class Ip{constructor(l,u,p,y,b,S){this.kind=l,this.zoomStops=p,this._styleExpression=u,this.isStateDependent=l!=="camera"&&!ag(u.expression),this.isIndoorDependent=Tv(u.expression),this.isLightConstant=b,this.isLineProgressConstant=S,this.configDependencies=Sv(u.expression),this.interpolationType=y}evaluateWithoutErrorHandling(l,u,p,y,b,S){return this._styleExpression.evaluateWithoutErrorHandling(l,u,p,y,b,S)}evaluate(l,u,p,y,b,S){return this._styleExpression.evaluate(l,u,p,y,b,S)}interpolationFactor(l,u,p){return this.interpolationType?Ro.interpolationFactor(this.interpolationType,l,u,p):0}}function ST(h,l,u,p,y){if((h=pf(h,l,u,p,y)).result==="error")return h;const b=h.value.expression,S=kp(b);if(!S&&!Ev(l))return ff([new su("","data expressions not supported")]);const k=md(b,["zoom","pitch","distance-from-center"]);if(!k&&!bT(l))return ff([new su("","zoom expressions not supported")]);const I=md(b,["measure-light"]);if(!I&&!zI(l))return ff([new su("","measure-light expression not supported")]);const O=md(b,["line-progress"]);if(!O&&!function(q){return $x(q.expression,"line-progress")}(l))return ff([new su("","line-progress expression not supported")]);const z=l.expression&&l.expression.relaxZoomRestriction,U=Mu(b);return U||k||z?U instanceof su?ff([U]):U instanceof Ro&&!Av(l)?ff([new su("",'"interpolate" expressions cannot be used with this property')]):BI(U?new Ip(S&&O?"camera":"composite",h.value,U.labels,U instanceof Ro?U.interpolation:void 0,I,O):new hg(S&&O?"constant":"source",h.value,I,O)):ff([new su("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression, or in the properties of atmosphere.')])}class Cv{constructor(l,u){this._parameters=l,this._specification=u,Object.assign(this,UI(this._parameters,this._specification))}static deserialize(l){return new Cv(l._parameters,l._specification)}static serialize(l){return{_parameters:l._parameters,_specification:l._specification}}}function Mu(h){let l=null;if(h instanceof gv)l=Mu(h.result);else if(h instanceof Dx){for(const u of h.args)if(l=Mu(u),l)break}else(h instanceof Nx||h instanceof Ro)&&h.input instanceof ja&&h.input.name==="zoom"&&(l=h);return l instanceof su||h.eachChild(u=>{const p=Mu(u);p instanceof su?l=p:l&&p&&l!==p&&(l=new su("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),l}var TT,GI,Vx=function(){if(GI)return TT;GI=1,TT=l;var h=3;function l(u,p,y){var b=this.cells=[];if(u instanceof ArrayBuffer){this.arrayBuffer=u;var S=new Int32Array(this.arrayBuffer);u=S[0],this.d=(p=S[1])+2*(y=S[2]);for(var k=0;k=q[J+0]&&b>=q[J+1])?(I[X]=!0,k.push(U[X])):I[X]=!1}}},l.prototype._forEachCell=function(u,p,y,b,S,k,I,O){for(var z=this._convertToCellCoord(u),U=this._convertToCellCoord(p),q=this._convertToCellCoord(y),K=this._convertToCellCoord(b),X=z;X<=q;X++)for(var J=U;J<=K;J++){var re=this.d*J+X;if((!O||O(this._convertFromCellCoord(X),this._convertFromCellCoord(J),this._convertFromCellCoord(X+1),this._convertFromCellCoord(J+1)))&&S.call(this,u,p,y,b,re,k,I,O))return}},l.prototype._convertFromCellCoord=function(u){return(u-this.padding)/this.scale},l.prototype._convertToCellCoord=function(u){return Math.max(0,Math.min(this.d-1,Math.floor(u*this.scale)+this.padding))},l.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var u=this.cells,p=h+this.cells.length+1+1,y=0,b=0;b=0||(y[b]=uh(h[b],l)));h instanceof Error&&(y.message=h.message)}if(y.$name)throw new Error("$name property is reserved for worker serialization logic.");return p!=="Object"&&(y.$name=p),y}throw new Error("can't serialize object of type "+typeof h)}function mf(h){if(h==null||typeof h=="boolean"||typeof h=="number"||typeof h=="string"||h instanceof Boolean||h instanceof Number||h instanceof String||h instanceof Date||h instanceof RegExp||qx(h)||h instanceof ImageBitmap||ArrayBuffer.isView(h)||h instanceof ImageData)return h;if(Array.isArray(h))return h.map(mf);if(typeof h=="object"){const l=h.$name||"Object";if(l==="Map"){const y=h.entries||[],b=new Map;for(let S=0;Sh>=1536&&h<=1791,Iv=h=>h>=1872&&h<=1919,jv=h=>h>=2208&&h<=2303,Pv=h=>h>=11904&&h<=12031,dh=h=>h>=12032&&h<=12255,ET=h=>h>=12272&&h<=12287,Gx=h=>h>=12288&&h<=12351,Hx=h=>h>=12352&&h<=12447,Pp=h=>h>=12448&&h<=12543,AT=h=>h>=12544&&h<=12591,Nv=h=>h>=12704&&h<=12735,yd=h=>h>=12736&&h<=12783,WI=h=>h>=12784&&h<=12799,KI=h=>h>=12800&&h<=13055,YI=h=>h>=13056&&h<=13311,kT=h=>h>=13312&&h<=19903,Rv=h=>h>=19968&&h<=40959,Wx=h=>h>=40960&&h<=42127,CT=h=>h>=42128&&h<=42191,IT=h=>h>=44032&&h<=55215,Lv=h=>h>=63744&&h<=64255,jT=h=>h>=64336&&h<=65023,ZI=h=>h>=65040&&h<=65055,PT=h=>h>=65072&&h<=65103,XI=h=>h>=65104&&h<=65135,NT=h=>h>=65136&&h<=65279,RT=h=>h>=65280&&h<=65519;function LT(h){for(const l of h)if(DT(l.charCodeAt(0)))return!0;return!1}function I3(h){for(const l of h)if(!j3(l.charCodeAt(0)))return!1;return!0}function j3(h){return!(HI(h)||Iv(h)||jv(h)||jT(h)||NT(h))}function P3(h){return!(h<11904||!(Nv(h)||AT(h)||PT(h)||Lv(h)||YI(h)||Pv(h)||yd(h)||Gx(h)||kT(h)||Rv(h)||KI(h)||RT(h)||Hx(h)||ET(h)||dh(h)||WI(h)||Pp(h)||ZI(h)||CT(h)||Wx(h)))}function DT(h){return!(h!==746&&h!==747&&(h<4352||!(Nv(h)||AT(h)||PT(h)&&!(h>=65097&&h<=65103)||Lv(h)||YI(h)||Pv(h)||yd(h)||!(!Gx(h)||h>=12296&&h<=12305||h>=12308&&h<=12319||h===12336)||kT(h)||Rv(h)||KI(h)||(l=>l>=12592&&l<=12687)(h)||(l=>l>=43360&&l<=43391)(h)||(l=>l>=55216&&l<=55295)(h)||(l=>l>=4352&&l<=4607)(h)||IT(h)||Hx(h)||ET(h)||(l=>l>=12688&&l<=12703)(h)||dh(h)||WI(h)||Pp(h)&&h!==12540||!(!RT(h)||h===65288||h===65289||h===65293||h>=65306&&h<=65310||h===65339||h===65341||h===65343||h>=65371&&h<=65503||h===65507||h>=65512&&h<=65519)||!(!XI(h)||h>=65112&&h<=65118||h>=65123&&h<=65126)||(l=>l>=5120&&l<=5759)(h)||(l=>l>=6320&&l<=6399)(h)||ZI(h)||(l=>l>=19904&&l<=19967)(h)||Wx(h)||CT(h))))}function QI(h){return h===12312||h===12313||h===12316||h===12540||h===12448}function Np(h){return!(DT(h)||function(l){return!!((u=>u>=128&&u<=255)(l)&&(l===167||l===169||l===174||l===177||l===188||l===189||l===190||l===215||l===247)||(u=>u>=8192&&u<=8303)(l)&&(l===8214||l===8224||l===8225||l===8240||l===8241||l===8251||l===8252||l===8258||l===8263||l===8264||l===8265||l===8273)||(u=>u>=8448&&u<=8527)(l)||(u=>u>=8528&&u<=8591)(l)||(u=>u>=8960&&u<=9215)(l)&&(l>=8960&&l<=8967||l>=8972&&l<=8991||l>=8996&&l<=9e3||l===9003||l>=9085&&l<=9114||l>=9150&&l<=9165||l===9167||l>=9169&&l<=9179||l>=9186&&l<=9215)||(u=>u>=9216&&u<=9279)(l)&&l!==9251||(u=>u>=9280&&u<=9311)(l)||(u=>u>=9312&&u<=9471)(l)||(u=>u>=9632&&u<=9727)(l)||(u=>u>=9728&&u<=9983)(l)&&!(l>=9754&&l<=9759)||(u=>u>=11008&&u<=11263)(l)&&(l>=11026&&l<=11055||l>=11088&&l<=11097||l>=11192&&l<=11243)||Gx(l)||Pp(l)||(u=>u>=57344&&u<=63743)(l)||PT(l)||XI(l)||RT(l)||l===8734||l===8756||l===8757||l>=9984&&l<=10087||l>=10102&&l<=10131||l===65532||l===65533)}(h))}function JI(h){return HI(h)||Iv(h)||jv(h)||jT(h)||NT(h)}function MT(h){return h>=1424&&h<=2303||jT(h)||NT(h)}function Dv(h,l){return!(!l&&MT(h)||h>=2304&&h<=3583||h>=3840&&h<=4255||(u=>u>=6016&&u<=6143)(h))}function N3(h){for(const l of h)if(MT(l.charCodeAt(0)))return!0;return!1}const nc={unavailable:"unavailable",deferred:"deferred",loading:"loading",parsing:"parsing",parsed:"parsed",loaded:"loaded",error:"error"};let xd=null,Ko=nc.unavailable,bc=null;const ej=function(h){h&&typeof h=="string"&&h.indexOf("NetworkError")>-1&&(Ko=nc.error),xd&&xd(h)};function OT(){FT.fire(new Pu("pluginStateChange",{pluginStatus:Ko,pluginURL:bc}))}const FT=new yx,BT=function(){return Ko},tj=function(){if(Ko!==nc.deferred||!bc)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Ko=nc.loading,OT(),bc&&Ym({url:bc},h=>{h?ej(h):(Ko=nc.loaded,OT())})},hh={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>Ko===nc.loaded||hh.applyArabicShaping!=null,isLoading:()=>Ko===nc.loading,setState(h){Ko=h.pluginStatus,bc=h.pluginURL},isParsing:()=>Ko===nc.parsing,isParsed:()=>Ko===nc.parsed,getPluginURL:()=>bc},rj=function(){hh.isLoading()||hh.isLoaded()||BT()!=="deferred"||tj()};class Jn{constructor(l,u){this.zoom=l,u?(this.now=u.now,this.fadeDuration=u.fadeDuration,this.transition=u.transition,this.pitch=u.pitch,this.brightness=u.brightness,this.worldview=u.worldview,this.activeFloors=u.activeFloors):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0,this.brightness=0)}isSupportedScript(l){return function(u,p){for(const y of u)if(!Dv(y.charCodeAt(0),p))return!1;return!0}(l,hh.isLoaded())}}class pg{constructor(l,u,p,y,b){this.property=l,this.value=u,this.expression=function(S,k,I,O,z){if(wT(S))return new Cv(S,k);if(Ux(S)||Array.isArray(S)&&S.length>0){const U=ST(S,k,I,O,z);if(U.result==="error")throw new Error(U.value.map(q=>`${q.key}: ${q.message}`).join(", "));return U.value}{let U=S;return typeof S=="string"&&k.type==="color"&&(U=Wn.parse(S)),{kind:"constant",configDependencies:new Set,isIndoorDependent:!1,evaluate:()=>U}}}(u===void 0?l.specification.default:u,l.specification,p,y,b)}isIndoorDependent(){return this.expression.isIndoorDependent}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(l,u,p,y){return this.property.possiblyEvaluate(this,l,u,p,y)}}class Mv{constructor(l,u,p,y){this.property=l,this.value=new pg(l,void 0,u,p,y)}transitioned(l,u){return new mg(this.property,this.value,u,Object.assign({},l.transition,this.transition),l.now)}untransitioned(){return new mg(this.property,this.value,null,{},0)}}class Ov{constructor(l,u,p,y){this._properties=l,this._values=Object.create(l.defaultTransitionablePropertyValues),this._scope=u,this._options=p,this._iconImageUseTheme=y,this._isIndoorDependent=!1,this.configDependencies=new Set}getValue(l){return dr(this._values[l].value.value)}setValue(l,u){this._values.hasOwnProperty(l)||(this._values[l]=new Mv(this._values[l].property,this._scope,this._options,this._iconImageUseTheme)),this._values[l].value=new pg(this._values[l].property,u===null?void 0:dr(u),this._scope,this._options,this._iconImageUseTheme),this._values[l].value.expression.configDependencies&&(this.configDependencies=new Set([...this.configDependencies,...this._values[l].value.expression.configDependencies]),this._isIndoorDependent=this._isIndoorDependent||this._values[l].value.isIndoorDependent())}setTransitionOrValue(l,u){u&&(this._options=u);const p=this._properties.properties;if(l)for(const y in l){const b=l[y];if(y.endsWith("-transition")){const S=y.slice(0,-11);p[S]&&this.setTransition(S,b)}else p.hasOwnProperty(y)&&this.setValue(y,b)}}getTransition(l){return dr(this._values[l].transition)}setTransition(l,u){this._values.hasOwnProperty(l)||(this._values[l]=new Mv(this._values[l].property)),this._values[l].transition=dr(u)||void 0}serialize(){const l={};for(const u of Object.keys(this._values)){const p=this.getValue(u);p!==void 0&&(l[u]=p);const y=this.getTransition(u);y!==void 0&&(l[`${u}-transition`]=y)}return l}transitioned(l,u){const p=new zT(this._properties);for(const y of Object.keys(this._values))p._values[y]=this._values[y].transitioned(l,u._values[y]);return p}untransitioned(){const l=new zT(this._properties);for(const u of Object.keys(this._values))l._values[u]=this._values[u].untransitioned();return l}isIndoorDependent(){return this._isIndoorDependent}}class mg{constructor(l,u,p,y,b){const S=y.delay||0,k=y.duration||0;b=b||0,this.property=l,this.value=u,this.begin=b+S,this.end=this.begin+k,l.specification.transition&&(y.delay||y.duration)&&(this.prior=p)}possiblyEvaluate(l,u,p){const y=l.now||0,b=this.value.possiblyEvaluate(l,u,p),S=this.prior;if(S){if(y>this.end)return this.prior=null,b;if(this.value.isDataDriven())return this.prior=null,b;if(y":1,">=":1,"<":1,"<=":1,"in":1,"!in":1,"all":1,"any":1,"none":1,"has":1,"!has":1}},"geometry_type":{"type":"enum","values":{"Point":1,"LineString":1,"Polygon":1}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":1,"exponential":1,"interval":1,"categorical":1},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":1,"lab":1,"hcl":1},"default":"rgb"},"default":{"type":"*"}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true}},"color":{"type":"color","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"high-color":{"type":"color","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"space-color":{"type":"color","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"horizon-blend":{"type":"number","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"star-intensity":{"type":"number","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"vertical-range":{"type":"array","default":[0,0],"minimum":0,"length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true}}},"snow":{"density":{"type":"number","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"color":{"type":"color","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"vignette":{"type":"number","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"vignette-color":{"type":"color","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"center-thinning":{"type":"number","default":0.4,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"direction":{"type":"array","default":[0,50],"minimum":0,"maximum":360,"length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true}},"flake-size":{"type":"number","default":0.71,"minimum":0,"maximum":5,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true}},"rain":{"density":{"type":"number","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"color":{"type":"color","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"opacity":{"type":"number","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"vignette":{"type":"number","default":["interpolate",["linear"],["zoom"],11,0,13,1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"vignette-color":{"type":"color","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true},"center-thinning":{"type":"number","default":0.57,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true},"direction":{"type":"array","default":[0,80],"minimum":0,"maximum":360,"length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true}},"droplet-size":{"type":"array","default":[2.6,18.2],"minimum":0,"maximum":50,"length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true}},"distortion-strength":{"type":"number","default":0.7,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true}},"camera":{"camera-projection":{"type":"enum","values":{"perspective":1,"orthographic":1},"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"default":"perspective"}},"colorTheme":{"data":{"type":"string","expression":{}}},"indoor_source":{"sourceId":{"type":"string"},"sourceLayers":{"type":"array","value":"string"}},"indoor":{"*":{"type":"indoor_source"}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":1,"viewport":1},"expression":{"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true},"intensity":{"type":"number","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":1,"equalEarth":1,"equirectangular":1,"lambertConformalConic":1,"mercator":1,"naturalEarth":1,"winkelTripel":1,"globe":1},"default":"mercator"},"center":{"type":"array","length":2,"value":"number","minimum":[-180,-90],"maximum":[180,90]},"parallels":{"type":"array","length":2,"value":"number","minimum":[-90,-90],"maximum":[90,90]}},"terrain":{"source":{"type":"string"},"exaggeration":{"type":"number","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"parameters":["zoom"]}},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"fill-pattern":{"type":"resolvedImage","expression":{"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"fill-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"fill-z-offset":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{"type":"color","default":"rgba(241, 236, 225, 255)","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{"type":"color","default":"rgba(241, 236, 225, 255)","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-extrusion-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"fill-extrusion-pattern":{"type":"resolvedImage","expression":{"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{"type":"enum","values":{"terrain":1,"flat":1},"default":"flat"},"fill-extrusion-base-alignment":{"type":"enum","values":{"terrain":1,"flat":1},"default":"terrain"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"expression":{"parameters":["zoom"]}},"fill-extrusion-ambient-occlusion-intensity":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-wall-radius":{"type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-ground-radius":{"type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-ground-attenuation":{"type":"number","default":0.69,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-extrusion-flood-light-color":{"type":"color","default":"#ffffff","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"fill-extrusion-flood-light-intensity":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven","type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven","type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]}},"fill-extrusion-flood-light-ground-attenuation":{"type":"number","default":0.69,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-extrusion-vertical-scale":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"fill-extrusion-rounded-roof":{"type":"boolean","default":true,"expression":{"parameters":["zoom"]}},"fill-extrusion-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{}},"fill-extrusion-front-cutoff":{"type":"array","value":"number","expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1]},"fill-extrusion-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{"type":"boolean","default":true}},"paint_building":{"building-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"building-ambient-occlusion-intensity":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"parameters":[]},"transition":true},"building-ambient-occlusion-ground-intensity":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"building-ambient-occlusion-ground-radius":{"type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"building-ambient-occlusion-ground-attenuation":{"type":"number","default":0.69,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"building-vertical-scale":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"building-cast-shadows":{"type":"boolean","default":true},"building-color":{"type":"color","default":"rgba(193, 154, 127, 1)","use-theme":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{"type":"number","default":0,"minimum":0,"maximum":5,"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{"type":"number","default":0.35,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["measure-light","zoom"]}},"building-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{}},"building-front-cutoff":{"type":"array","value":"number","expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1]},"building-flood-light-color":{"type":"color","default":"#ffffff","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"building-flood-light-intensity":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"building-flood-light-ground-attenuation":{"type":"number","default":0.69,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"line-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"expression":{"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","expression":{"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"line-gradient":{"type":"color","use-theme":true,"expression":{"interpolated":true,"parameters":["line-progress"]}},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1]},"line-trim-fade-range":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"line-trim-color":{"type":"color","default":"transparent","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"line-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"line-blend-mode":{"type":"enum","values":{"default":1,"multiply":1,"additive":1},"default":"default","expression":{"parameters":["zoom"]}}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"circle-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"circle-pitch-scale":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"circle-pitch-alignment":{"type":"enum","values":{"map":1,"viewport":1},"default":"viewport","expression":{"parameters":["zoom"]}},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,"expression":{"interpolated":true,"parameters":["heatmap-density"]}},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-occlusion-opacity":{"type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"text-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"icon-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"icon-image-cross-fade":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-occlusion-opacity":{"type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"overridable":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"text-translate-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":["zoom"]}},"icon-color-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"expression":{}},"icon-color-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"expression":{}},"icon-color-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{}},"icon-color-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"expression":{}},"symbol-z-offset":{"type":"number","default":0,"minimum":0,"transition":true,"appearance":true,"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-color":{"type":"color","use-theme":true,"expression":{"interpolated":true,"parameters":["raster-value"]}},"raster-color-mix":{"type":"array","default":[0.2126,0.7152,0.0722,0],"length":4,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-color-range":{"type":"array","length":2,"value":"number","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-resampling":{"type":"enum","values":{"linear":1,"nearest":1},"default":"linear","expression":{"parameters":["zoom"]}},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"raster-array-band":{"type":"string"},"raster-elevation":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-elevation-reference":{"type":"enum","values":{"sea":1,"ground":1},"default":"sea","expression":{}}},"paint_raster-particle":{"raster-particle-array-band":{"type":"string"},"raster-particle-count":{"type":"number","default":512,"minimum":1},"raster-particle-color":{"type":"color","use-theme":true,"expression":{"interpolated":true,"parameters":["raster-particle-speed"]}},"raster-particle-max-speed":{"type":"number","default":1,"minimum":1},"raster-particle-speed-factor":{"type":"number","default":0.2,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-particle-fade-opacity-factor":{"type":"number","default":0.98,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"raster-particle-reset-rate-factor":{"type":"number","default":0.8,"minimum":0,"maximum":1},"raster-particle-elevation":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"expression":{"interpolated":true,"parameters":["zoom"]}},"hillshade-illumination-anchor":{"type":"enum","values":{"map":1,"viewport":1},"default":"viewport","expression":{"parameters":["zoom"]}},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"hillshade-shadow-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"hillshade-accent-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"hillshade-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}}},"paint_background":{"background-pitch-alignment":{"type":"enum","values":{"map":1,"viewport":1},"default":"map","expression":{"parameters":[]}},"background-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}},"background-pattern":{"type":"resolvedImage","expression":{"parameters":["zoom"]}},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"background-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]}}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":1,"atmosphere":1},"default":"atmosphere","expression":{"parameters":["zoom"]}},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"minimum":[0,0],"maximum":[360,180],"expression":{"parameters":["zoom"]}},"sky-atmosphere-sun-intensity":{"type":"number","default":10,"minimum":0,"maximum":100},"sky-gradient-center":{"type":"array","value":"number","default":[0,0],"length":2,"minimum":[0,0],"maximum":[360,180],"expression":{"parameters":["zoom"]}},"sky-gradient-radius":{"type":"number","default":90,"minimum":0,"maximum":180,"expression":{"parameters":["zoom"]}},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"use-theme":true,"expression":{"interpolated":true,"parameters":["sky-radial-progress"]}},"sky-atmosphere-halo-color":{"type":"color","default":"white","use-theme":true},"sky-atmosphere-color":{"type":"color","default":"white","use-theme":true},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}}},"paint_model":{"model-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"property-type":"data-driven"},"model-rotation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"transition":true},"model-scale":{"type":"array","value":"number","length":3,"default":[1,1,1],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"transition":true},"model-translation":{"type":"array","value":"number","length":3,"default":[0,0,0],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"transition":true},"model-color":{"type":"color","default":"#ffffff","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light","zoom"]},"use-theme":true,"transition":true},"model-color-mix-intensity":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"transition":true},"model-type":{"type":"enum","values":{"common-3d":1,"location-indicator":1},"default":"common-3d"},"model-cast-shadows":{"type":"boolean","default":true},"model-receive-shadows":{"type":"boolean","default":true},"model-ambient-occlusion-intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"model-emissive-strength":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":5,"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"transition":true},"model-roughness":{"type":"number","default":1,"minimum":0,"maximum":1,"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state"]},"transition":true},"model-height-based-emissive-strength-multiplier":{"type":"array","default":[1,1,1,1,0],"length":5,"value":"number","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"transition":true},"model-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"expression":{}},"model-front-cutoff":{"type":"array","value":"number","expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1]},"model-elevation-reference":{"type":"enum","values":{"sea":1,"ground":1,"hd-road-markup":1},"default":"ground","expression":{}},"model-ignore-line-cutout":{"type":"boolean","default":false,"expression":{}}},"transition":{"duration":{"type":"number","default":300,"minimum":0},"delay":{"type":"number","default":0,"minimum":0}},"promoteId":{"*":{"type":"*"}}}');function nj(h){return h instanceof Number||h instanceof String||h instanceof Boolean?h.valueOf():h}function Fv(h){if(Array.isArray(h))return h.map(Fv);if(h instanceof Object&&!(h instanceof Number||h instanceof String||h instanceof Boolean)){const l={};for(const u in h)l[u]=Fv(h[u]);return l}return nj(h)}function UT(h){if(h===!0||h===!1)return!0;if(!Array.isArray(h)||h.length===0)return!1;switch(h[0]){case"has":return h.length>=2&&h[1]!=="$id"&&h[1]!=="$type";case"in":return h.length>=3&&(typeof h[1]!="string"||Array.isArray(h[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return h.length!==3||Array.isArray(h[1])||Array.isArray(h[2]);case"any":case"all":for(const l of h.slice(1))if(!UT(l)&&typeof l!="boolean")return!1;return!0;default:return!0}}function Bv(h,l="",u=null,p="fill"){if(h==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};UT(h)||(h=zv(h));const y=h;let b=!0;try{b=function(z){if(!yg(z))return z;let U=Fv(z);return sj(U),U=ij(U),U}(y)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md and paste the contents of this message in the report. Thank you! Filter Expression: ${JSON.stringify(y,null,2)} `)}let S=null,k=null;if(p!=="background"&&p!=="sky"&&p!=="slot"){k=nt[`filter_${p}`];const z=pf(b,k,l,u);if(z.result==="error")throw new Error(z.value.map(U=>`${U.key}: ${U.message}`).join(", "));S=(U,q,K)=>z.value.evaluate(U,q,{},K)}let I=null,O=null;if(b!==y){const z=pf(y,k,l,u);if(z.result==="error")throw new Error(z.value.map(U=>`${U.key}: ${U.message}`).join(", "));I=(U,q,K,X,J)=>z.value.evaluate(U,q,{},K,void 0,void 0,X,J),O=!kp(z.value.expression)}return{filter:S,dynamicFilter:I||void 0,needGeometry:oj(b),needFeature:!!O}}function ij(h){if(!Array.isArray(h))return h;const l=function(u){if(aj.has(u[0])){for(let p=1;pij(u))}function sj(h){let l=!1;const u=[];if(h[0]==="case"){for(let p=1;p",">=","<","<=","to-boolean"]);function R3(h,l){return hl?1:0}function oj(h){if(!Array.isArray(h))return!1;if(h[0]==="within"||h[0]==="distance")return!0;for(let l=1;l"||l==="<="||l===">="?$v(h[1],h[2],l):l==="any"?(u=h.slice(1),["any"].concat(u.map(zv))):l==="all"?["all"].concat(h.slice(1).map(zv)):l==="none"?["all"].concat(h.slice(1).map(zv).map(Kx)):l==="in"?VT(h[1],h.slice(2)):l==="!in"?Kx(VT(h[1],h.slice(2))):l==="has"?ph(h[1]):l!=="!has"||Kx(ph(h[1]));var u}function $v(h,l,u){switch(h){case"$type":return[`filter-type-${u}`,l];case"$id":return[`filter-id-${u}`,l];default:return[`filter-${u}`,h,l]}}function VT(h,l){if(l.length===0)return!1;switch(h){case"$type":return["filter-type-in",["literal",l]];case"$id":return["filter-id-in",["literal",l]];default:return l.length>200&&!l.some(u=>typeof u!=typeof l[0])?["filter-in-large",h,["literal",l.sort(R3)]]:["filter-in-small",h,["literal",l]]}}function ph(h){switch(h){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",h]}}function Kx(h){return["!",h]}const Yx="";function Lp(h,l){return l?`${h}${Yx}${l}`:h}function lj(h){const l=h.indexOf(Yx);return l>=0?h.slice(l+1):""}let cj;const qT=()=>cj||(cj=new is({"icon-size":new Ut(nt.layout_symbol["icon-size"]),"icon-image":new Ut(nt.layout_symbol["icon-image"]),"icon-rotate":new Ut(nt.layout_symbol["icon-rotate"]),"icon-offset":new Ut(nt.layout_symbol["icon-offset"]),"text-size":new Ut(nt.layout_symbol["text-size"]),"text-rotate":new Ut(nt.layout_symbol["text-rotate"]),"text-offset":new Ut(nt.layout_symbol["text-offset"])}));let GT;const HT=()=>GT||(GT=new is({"icon-opacity":new Ut(nt.paint_symbol["icon-opacity"]),"icon-occlusion-opacity":new Ut(nt.paint_symbol["icon-occlusion-opacity"]),"icon-emissive-strength":new Ut(nt.paint_symbol["icon-emissive-strength"]),"text-emissive-strength":new Ut(nt.paint_symbol["text-emissive-strength"]),"icon-color":new Ut(nt.paint_symbol["icon-color"]),"icon-halo-color":new Ut(nt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ut(nt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ut(nt.paint_symbol["icon-halo-blur"]),"icon-translate":new Ut(nt.paint_symbol["icon-translate"]),"text-opacity":new Ut(nt.paint_symbol["text-opacity"]),"text-occlusion-opacity":new Ut(nt.paint_symbol["text-occlusion-opacity"]),"text-color":new Ut(nt.paint_symbol["text-color"],{runtimeType:pl,getOverride:h=>h.textColor,hasOverride:h=>!!h.textColor}),"text-halo-color":new Ut(nt.paint_symbol["text-halo-color"]),"text-halo-width":new Ut(nt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ut(nt.paint_symbol["text-halo-blur"]),"text-translate":new Ut(nt.paint_symbol["text-translate"]),"symbol-z-offset":new Ut(nt.paint_symbol["symbol-z-offset"]),"icon-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"icon-halo-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"text-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"text-halo-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"})}));class L3{constructor(l,u,p,y,b,S){this._conditionSpec=l,this._propertiesSpec=p;const k=pf(l,nt.appearance.condition);if(k.result==="success"&&(this.condition=k.value),this.name=u,p){this.layoutProperties=new fh(qT()),this.unevaluatedLayout=new $T(qT(),y,b,S),this.paintProperties=new fh(HT()),this.unevaluatedPaint=new $T(HT(),y,b,"");for(const I in p)I in this.unevaluatedLayout._values?this.unevaluatedLayout.setValue(I,p[I]):I in this.unevaluatedPaint._values&&this.unevaluatedPaint.setValue(I,p[I])}}isActive(l){return!(this.condition||!l.isHidden||this.name!=="hidden")||this.condition.evaluate(l.globals,l.feature,l.featureState,l.canonical)}getCondition(){return this.condition}getName(){return this.name}getLayoutProperty(l){return this.layoutProperties.get(l)}getPaintProperty(l){return this.paintProperties.get(l)}getUnevaluatedLayoutProperties(){return this.unevaluatedLayout}getUnevaluatedLayoutProperty(l){return this.unevaluatedLayout._values[l]}getUnevaluatedPaintProperty(l){return this.unevaluatedPaint._values[l]}recalculate(l,u,p){this.unevaluatedLayout&&(this.layoutProperties=this.unevaluatedLayout.possiblyEvaluate(l,void 0,u,p)),this.unevaluatedPaint&&(this.paintProperties=this.unevaluatedPaint.possiblyEvaluate(l,void 0,u,""))}serialize(){const l={};l.condition=this.condition.expression.serialize(),this.name&&(l.name=this.name);const u=this.unevaluatedLayout?this.unevaluatedLayout.serialize():{},p=this.unevaluatedPaint?this.unevaluatedPaint.serialize():{},y=Object.assign({},u,p);return Object.keys(y).length>0&&(l.properties=y),l}hasIconLayoutProperties(){const l=this.hasLayoutProperty("icon-image"),u=this.hasLayoutProperty("icon-size"),p=this.hasLayoutProperty("icon-offset"),y=this.hasLayoutProperty("icon-rotate");return l||u||p||y}hasTextLayoutProperties(){const l=this.hasLayoutProperty("text-size"),u=this.hasLayoutProperty("text-offset"),p=this.hasLayoutProperty("text-rotate");return l||u||p}hasIconPaintProperties(){return!!this.unevaluatedPaint&&Object.keys(this.unevaluatedPaint._values).filter(l=>!l.endsWith("-use-theme")).some(l=>(l.startsWith("icon-")||l==="symbol-z-offset")&&this.hasPaintProperty(l))}hasTextPaintProperties(){return!!this.unevaluatedPaint&&Object.keys(this.unevaluatedPaint._values).filter(l=>!l.endsWith("-use-theme")).some(l=>(l.startsWith("text-")||l==="symbol-z-offset")&&this.hasPaintProperty(l))}hasLayoutProperty(l){return this.unevaluatedLayout&&this.unevaluatedLayout._values[l].value!==void 0}hasPaintProperty(l){return this.unevaluatedPaint&&this.unevaluatedPaint._values[l].value!==void 0}}const WT="-transition",D3=new Set(["fill","line","background","hillshade","raster"]);class Yo extends yx{constructor(l,u,p,y,b,S){if(super(),this.id=l.id,this.fqid=Lp(this.id,p),this.type=l.type,this.scope=p,this.lut=y,this.options=b,this.iconImageUseTheme=S,this.appearances=new Array,this.appearancesVersion=0,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,this.expressionDependencies={isIndoorDependent:!1,configDependencies:new Set},l.type!=="custom"){if(this.metadata=l.metadata,this.minzoom=l.minzoom,this.maxzoom=l.maxzoom,l.type&&l.type!=="background"&&l.type!=="sky"&&l.type!=="slot"){this.source=l.source,this.sourceLayer=l["source-layer"],this.filter=l.filter;const k=pf(this.filter,nt[`filter_${l.type}`]);k.result!=="error"&&(this.expressionDependencies.configDependencies=new Set([...this.expressionDependencies.configDependencies,...k.value.configDependencies]),this.expressionDependencies.isIndoorDependent=this.expressionDependencies.isIndoorDependent||k.value.isIndoorDependent)}if(l.slot&&(this.slot=l.slot),l.appearances&&this.setAppearances(l.appearances),u.layout&&(this._unevaluatedLayout=new $T(u.layout,this.scope,b,this.iconImageUseTheme),this.expressionDependencies.configDependencies=new Set([...this.expressionDependencies.configDependencies,...this._unevaluatedLayout.configDependencies]),this.expressionDependencies.isIndoorDependent=this.expressionDependencies.isIndoorDependent||this._unevaluatedLayout.isIndoorDependent()),u.paint){this._transitionablePaint=new Ov(u.paint,this.scope,b);for(const k in l.paint)this.setPaintProperty(k,l.paint[k]);for(const k in l.layout)this.setLayoutProperty(k,l.layout[k]);this.expressionDependencies.configDependencies=new Set([...this.expressionDependencies.configDependencies,...this._transitionablePaint.configDependencies]),this.expressionDependencies.isIndoorDependent=this.expressionDependencies.isIndoorDependent||this._transitionablePaint.isIndoorDependent(),this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new fh(u.paint)}}}onAdd(l){}onRemove(l){}isDraped(l){return!this.is3D(!0)&&D3.has(this.type)}getLayoutProperty(l){return l==="visibility"?this.visibility:this._unevaluatedLayout.getValue(l)}setLayoutProperty(l,u){if(this.type==="custom"&&l==="visibility")return void(this.visibility=u);const p=this._unevaluatedLayout;p._properties.properties[l]&&(p.setValue(l,u),this.expressionDependencies.configDependencies=new Set([...this.expressionDependencies.configDependencies,...p.configDependencies]),this.expressionDependencies.isIndoorDependent=this.expressionDependencies.isIndoorDependent||p.isIndoorDependent(),l==="visibility"&&this.possiblyEvaluateVisibility())}setAppearances(l){this.appearances=[],l.forEach(u=>{this.appearances.push(new L3(u.condition,u.name,u.properties,this.scope,this.options,this.iconImageUseTheme))}),this.appearancesVersion++}possiblyEvaluateVisibility(){this._unevaluatedLayout._values.visibility&&(this.visibility=this._unevaluatedLayout._values.visibility.possiblyEvaluate({zoom:0}))}getPaintProperty(l){return l.endsWith(WT)?this._transitionablePaint.getTransition(l.slice(0,-11)):this._transitionablePaint.getValue(l)}isPaintProperty(l){return!!this._transitionablePaint._properties.properties[l]}setPaintProperty(l,u){const p=this._transitionablePaint,y=p._properties.properties;if(l.endsWith(WT)){const U=l.slice(0,-11);return y[U]&&p.setTransition(U,u||void 0),!1}if(!y[l])return!1;const b=p._values[l],S=b.value.isDataDriven(),k=b.value;p.setValue(l,u),this.expressionDependencies.configDependencies=new Set([...this.expressionDependencies.configDependencies,...p.configDependencies]),this.expressionDependencies.isIndoorDependent=this.expressionDependencies.isIndoorDependent||p.isIndoorDependent(),this._handleSpecialPaintPropertyUpdate(l);const I=p._values[l].value,O=I.isDataDriven(),z=l.endsWith("pattern")||l==="line-dasharray";return O||S||z||this._handleOverridablePaintPropertyUpdate(l,k,I)}_handleSpecialPaintPropertyUpdate(l){}getProgramIds(){return null}getDefaultProgramParams(l,u,p){return null}_handleOverridablePaintPropertyUpdate(l,u,p){return!1}isHidden(l){return!!(this.minzoom&&l=this.maxzoom)||this.visibility==="none"}updateTransitions(l){this._transitioningPaint=this._transitionablePaint.transitioned(l,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(l,u){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(l,void 0,u,this.iconImageUseTheme)),this.paint=this._transitioningPaint.possiblyEvaluate(l,void 0,u)}serialize(){const l={id:this.id,type:this.type,slot:this.slot,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.appearances.length!==0&&(l.appearances=this.appearances.map(u=>u.serialize())),Pt(l,(u,p)=>!(u===void 0||p==="layout"&&!Object.keys(u).length||p==="paint"&&!Object.keys(u).length))}is3D(l){return!1}hasElevation(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}hasShadowPass(){return!1}canCastShadows(){return!1}hasLightBeamPass(){return!1}cutoffRange(){return 0}tileCoverLift(){return 0}resize(){}_clear(){}isStateDependent(){for(const l in this.paint._values){const u=this.paint.get(l);if(u instanceof Rp&&Ev(u.property.specification)&&(u.value.kind==="source"||u.value.kind==="composite")&&u.value.isStateDependent)return!0}for(const l of this.appearances)if(!ag(l.condition.expression))return!0;return!1}compileFilter(l){this._filterCompiled||(this._featureFilter=Bv(this.filter,this.scope,l),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}dynamicFilterNeedsGeometry(){return this._featureFilter.needGeometry}getLayerRenderingStats(){return this._stats}resetLayerRenderingStats(l){this._stats&&(l.renderPass==="shadow"?this._stats.numRenderedVerticesInShadowPass=0:this._stats.numRenderedVerticesInTransparentPass=0)}getAppearances(){return this.appearances}queryRenderedFeatures(l,u,p){return{}}queryRadius(l){}queryIntersectsFeature(l,u,p,y,b,S,k,I,O,z){}}const Uv={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Zx{constructor(l,u){this._structArray=l,this._pos1=u*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}const M3=new ArrayBuffer(0);class Vi{constructor(){this._reallocCount=0,this.capacity=0,this.length=0}static serialize(l,u){return l._trim(),u&&l.arrayBuffer&&u.add(l.arrayBuffer),{length:l.length,arrayBuffer:l.arrayBuffer}}static deserialize(l){const u=Object.create(this.prototype);return u.arrayBuffer=l.arrayBuffer,u.length=l.length,l.arrayBuffer?u.capacity=l.arrayBuffer.byteLength/u.bytesPerElement:(u.capacity=0,u.arrayBuffer=M3),u._refreshViews(),u}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(l){this.reserve(l),this.length=l}reserve(l){if(l>this.capacity){this._reallocCount++,this.capacity=Math.max(l,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const u=this.uint8;this._refreshViews(),u&&this.uint8.set(u)}}reserveForAdditional(l){this.reserve(this.length+l)}_refreshViews(){throw new Error("StructArray#_refreshViews() must be implemented by each concrete StructArray layout")}emplace(...l){throw new Error("StructArray#emplace() must be implemented by each concrete StructArray layout")}emplaceBack(...l){throw new Error("StructArray#emplaceBack() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function Cn(h,l=1){let u=0,p=0;return{members:h.map(y=>{const b=Uv[y.type].BYTES_PER_ELEMENT,S=u=uj(u,Math.max(l,b)),k=y.components||1;return p=Math.max(p,b),u+=b*k,{name:y.name,type:y.type,components:k,offset:S}}),size:uj(u,Math.max(p,l)),alignment:l}}function uj(h,l){return Math.ceil(h/l)*l}class ic extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u){const p=this.length;return this.resize(p+1),this.emplace(p,l,u)}emplace(l,u,p){const y=2*l;return this.int16[y+0]=u,this.int16[y+1]=p,l}}ic.prototype.bytesPerElement=4,yr(ic,"StructArrayLayout2i4");class _d extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p){const y=this.length;return this.resize(y+1),this.emplace(y,l,u,p)}emplace(l,u,p,y){const b=3*l;return this.int16[b+0]=u,this.int16[b+1]=p,this.int16[b+2]=y,l}}_d.prototype.bytesPerElement=6,yr(_d,"StructArrayLayout3i6");class xo extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p,y){const b=this.length;return this.resize(b+1),this.emplace(b,l,u,p,y)}emplace(l,u,p,y,b){const S=4*l;return this.int16[S+0]=u,this.int16[S+1]=p,this.uint16[S+2]=y,this.uint16[S+3]=b,l}}xo.prototype.bytesPerElement=8,yr(xo,"StructArrayLayout2i2ui8");class wc extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l){const u=this.length;return this.resize(u+1),this.emplace(u,l)}emplace(l,u){return this.float32[1*l+0]=u,l}}wc.prototype.bytesPerElement=4,yr(wc,"StructArrayLayout1f4");class KT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p){const y=this.length;return this.resize(y+1),this.emplace(y,l,u,p)}emplace(l,u,p,y){const b=4*l,S=2*l;return this.int16[b+0]=u,this.int16[b+1]=p,this.float32[S+1]=y,l}}KT.prototype.bytesPerElement=8,yr(KT,"StructArrayLayout2i1f8");class YT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p){const y=this.length;return this.resize(y+1),this.emplace(y,l,u,p)}emplace(l,u,p,y){const b=4*l;return this.int16[b+0]=u,this.int16[b+1]=p,this.int16[b+2]=y,l}}YT.prototype.bytesPerElement=8,yr(YT,"StructArrayLayout3i8");class ZT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p,y){const b=this.length;return this.resize(b+1),this.emplace(b,l,u,p,y)}emplace(l,u,p,y,b){const S=4*l;return this.int16[S+0]=u,this.int16[S+1]=p,this.int16[S+2]=y,this.int16[S+3]=b,l}}ZT.prototype.bytesPerElement=8,yr(ZT,"StructArrayLayout4i8");class XT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b){const S=this.length;return this.resize(S+1),this.emplace(S,l,u,p,y,b)}emplace(l,u,p,y,b,S){const k=5*l;return this.int16[k+0]=u,this.int16[k+1]=p,this.int16[k+2]=y,this.int16[k+3]=b,this.int16[k+4]=S,l}}XT.prototype.bytesPerElement=10,yr(XT,"StructArrayLayout5i10");class Xx extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k){const I=this.length;return this.resize(I+1),this.emplace(I,l,u,p,y,b,S,k)}emplace(l,u,p,y,b,S,k,I){const O=6*l,z=12*l,U=3*l;return this.int16[O+0]=u,this.int16[O+1]=p,this.uint8[z+4]=y,this.uint8[z+5]=b,this.uint8[z+6]=S,this.uint8[z+7]=k,this.float32[U+2]=I,l}}Xx.prototype.bytesPerElement=12,yr(Xx,"StructArrayLayout2i4ub1f12");class lu extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p){const y=this.length;return this.resize(y+1),this.emplace(y,l,u,p)}emplace(l,u,p,y){const b=3*l;return this.float32[b+0]=u,this.float32[b+1]=p,this.float32[b+2]=y,l}}lu.prototype.bytesPerElement=12,yr(lu,"StructArrayLayout3f12");class vd extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b){const S=this.length;return this.resize(S+1),this.emplace(S,l,u,p,y,b)}emplace(l,u,p,y,b,S){const k=6*l,I=3*l;return this.uint16[k+0]=u,this.uint16[k+1]=p,this.uint16[k+2]=y,this.uint16[k+3]=b,this.float32[I+2]=S,l}}vd.prototype.bytesPerElement=12,yr(vd,"StructArrayLayout4ui1f12");class xg extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p,y){const b=this.length;return this.resize(b+1),this.emplace(b,l,u,p,y)}emplace(l,u,p,y,b){const S=4*l;return this.uint16[S+0]=u,this.uint16[S+1]=p,this.uint16[S+2]=y,this.uint16[S+3]=b,l}}xg.prototype.bytesPerElement=8,yr(xg,"StructArrayLayout4ui8");class Vv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S){const k=this.length;return this.resize(k+1),this.emplace(k,l,u,p,y,b,S)}emplace(l,u,p,y,b,S,k){const I=6*l;return this.int16[I+0]=u,this.int16[I+1]=p,this.int16[I+2]=y,this.int16[I+3]=b,this.int16[I+4]=S,this.int16[I+5]=k,l}}Vv.prototype.bytesPerElement=12,yr(Vv,"StructArrayLayout6i12");class QT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U,q){const K=this.length;return this.resize(K+1),this.emplace(K,l,u,p,y,b,S,k,I,O,z,U,q)}emplace(l,u,p,y,b,S,k,I,O,z,U,q,K){const X=12*l;return this.int16[X+0]=u,this.int16[X+1]=p,this.int16[X+2]=y,this.int16[X+3]=b,this.uint16[X+4]=S,this.uint16[X+5]=k,this.uint16[X+6]=I,this.uint16[X+7]=O,this.int16[X+8]=z,this.int16[X+9]=U,this.int16[X+10]=q,this.int16[X+11]=K,l}}QT.prototype.bytesPerElement=24,yr(QT,"StructArrayLayout4i4ui4i24");class JT extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S){const k=this.length;return this.resize(k+1),this.emplace(k,l,u,p,y,b,S)}emplace(l,u,p,y,b,S,k){const I=10*l,O=5*l;return this.int16[I+0]=u,this.int16[I+1]=p,this.int16[I+2]=y,this.float32[O+2]=b,this.float32[O+3]=S,this.float32[O+4]=k,l}}JT.prototype.bytesPerElement=20,yr(JT,"StructArrayLayout3i3f20");class mh extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y){const b=this.length;return this.resize(b+1),this.emplace(b,l,u,p,y)}emplace(l,u,p,y,b){const S=4*l;return this.float32[S+0]=u,this.float32[S+1]=p,this.float32[S+2]=y,this.float32[S+3]=b,l}}mh.prototype.bytesPerElement=16,yr(mh,"StructArrayLayout4f16");class Qx extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(l){const u=this.length;return this.resize(u+1),this.emplace(u,l)}emplace(l,u){return this.uint32[1*l+0]=u,l}}Qx.prototype.bytesPerElement=4,yr(Qx,"StructArrayLayout1ul4");class cu extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u){const p=this.length;return this.resize(p+1),this.emplace(p,l,u)}emplace(l,u,p){const y=2*l;return this.uint16[y+0]=u,this.uint16[y+1]=p,l}}cu.prototype.bytesPerElement=4,yr(cu,"StructArrayLayout2ui4");class qv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U,q,K){const X=this.length;return this.resize(X+1),this.emplace(X,l,u,p,y,b,S,k,I,O,z,U,q,K)}emplace(l,u,p,y,b,S,k,I,O,z,U,q,K,X){const J=20*l,re=10*l;return this.int16[J+0]=u,this.int16[J+1]=p,this.int16[J+2]=y,this.int16[J+3]=b,this.int16[J+4]=S,this.float32[re+3]=k,this.float32[re+4]=I,this.float32[re+5]=O,this.float32[re+6]=z,this.int16[J+14]=U,this.uint32[re+8]=q,this.uint16[J+18]=K,this.uint16[J+19]=X,l}}qv.prototype.bytesPerElement=40,yr(qv,"StructArrayLayout5i4f1i1ul2ui40");class Jx extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k){const I=this.length;return this.resize(I+1),this.emplace(I,l,u,p,y,b,S,k)}emplace(l,u,p,y,b,S,k,I){const O=8*l;return this.int16[O+0]=u,this.int16[O+1]=p,this.int16[O+2]=y,this.int16[O+4]=b,this.int16[O+5]=S,this.int16[O+6]=k,this.int16[O+7]=I,l}}Jx.prototype.bytesPerElement=16,yr(Jx,"StructArrayLayout3i2i2i16");class eE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b){const S=this.length;return this.resize(S+1),this.emplace(S,l,u,p,y,b)}emplace(l,u,p,y,b,S){const k=4*l,I=8*l;return this.float32[k+0]=u,this.float32[k+1]=p,this.float32[k+2]=y,this.int16[I+6]=b,this.int16[I+7]=S,l}}eE.prototype.bytesPerElement=16,yr(eE,"StructArrayLayout2f1f2i16");class e0 extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S){const k=this.length;return this.resize(k+1),this.emplace(k,l,u,p,y,b,S)}emplace(l,u,p,y,b,S,k){const I=20*l,O=5*l;return this.uint8[I+0]=u,this.uint8[I+1]=p,this.float32[O+1]=y,this.float32[O+2]=b,this.float32[O+3]=S,this.float32[O+4]=k,l}}e0.prototype.bytesPerElement=20,yr(e0,"StructArrayLayout2ub4f20");class bs extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p){const y=this.length;return this.resize(y+1),this.emplace(y,l,u,p)}emplace(l,u,p,y){const b=3*l;return this.uint16[b+0]=u,this.uint16[b+1]=p,this.uint16[b+2]=y,l}}bs.prototype.bytesPerElement=6,yr(bs,"StructArrayLayout3ui6");class Gv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee){const Ce=this.length;return this.resize(Ce+1),this.emplace(Ce,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee)}emplace(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee,Ce){const He=30*l,ze=15*l,Ge=60*l;return this.int16[He+0]=u,this.int16[He+1]=p,this.int16[He+2]=y,this.float32[ze+2]=b,this.float32[ze+3]=S,this.uint16[He+8]=k,this.uint16[He+9]=I,this.uint32[ze+5]=O,this.uint32[ze+6]=z,this.uint32[ze+7]=U,this.uint16[He+16]=q,this.uint16[He+17]=K,this.uint16[He+18]=X,this.float32[ze+10]=J,this.float32[ze+11]=re,this.uint8[Ge+48]=ae,this.uint8[Ge+49]=he,this.uint8[Ge+50]=ce,this.uint32[ze+13]=ye,this.int16[He+28]=Ee,this.uint8[Ge+58]=Ce,l}}Gv.prototype.bytesPerElement=60,yr(Gv,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");class tE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee,Ce,He,ze,Ge,Ue,Ve,gt,wt,kt,jt,Ct,Bt){const pt=this.length;return this.resize(pt+1),this.emplace(pt,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee,Ce,He,ze,Ge,Ue,Ve,gt,wt,kt,jt,Ct,Bt)}emplace(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee,Ce,He,ze,Ge,Ue,Ve,gt,wt,kt,jt,Ct,Bt,pt){const It=20*l,Lt=40*l,$t=80*l;return this.float32[It+0]=u,this.float32[It+1]=p,this.int16[Lt+4]=y,this.int16[Lt+5]=b,this.int16[Lt+6]=S,this.int16[Lt+7]=k,this.int16[Lt+8]=I,this.int16[Lt+9]=O,this.int16[Lt+10]=z,this.int16[Lt+11]=U,this.int16[Lt+12]=q,this.uint16[Lt+13]=K,this.uint16[Lt+14]=X,this.uint16[Lt+15]=J,this.uint16[Lt+16]=re,this.uint16[Lt+17]=ae,this.uint16[Lt+18]=he,this.uint16[Lt+19]=ce,this.uint16[Lt+20]=ye,this.uint16[Lt+21]=Ee,this.uint16[Lt+22]=Ce,this.uint16[Lt+23]=He,this.uint16[Lt+24]=ze,this.uint16[Lt+25]=Ge,this.uint16[Lt+26]=Ue,this.uint16[Lt+27]=Ve,this.uint32[It+14]=gt,this.float32[It+15]=wt,this.float32[It+16]=kt,this.float32[It+17]=jt,this.float32[It+18]=Ct,this.uint8[$t+76]=Bt,this.uint16[Lt+39]=pt,l}}tE.prototype.bytesPerElement=80,yr(tE,"StructArrayLayout2f9i15ui1ul4f1ub1ui80");class Hv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S){const k=this.length;return this.resize(k+1),this.emplace(k,l,u,p,y,b,S)}emplace(l,u,p,y,b,S,k){const I=6*l;return this.float32[I+0]=u,this.float32[I+1]=p,this.float32[I+2]=y,this.float32[I+3]=b,this.float32[I+4]=S,this.float32[I+5]=k,l}}Hv.prototype.bytesPerElement=24,yr(Hv,"StructArrayLayout6f24");class Dp extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b){const S=this.length;return this.resize(S+1),this.emplace(S,l,u,p,y,b)}emplace(l,u,p,y,b,S){const k=5*l;return this.float32[k+0]=u,this.float32[k+1]=p,this.float32[k+2]=y,this.float32[k+3]=b,this.float32[k+4]=S,l}}Dp.prototype.bytesPerElement=20,yr(Dp,"StructArrayLayout5f20");class t0 extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k){const I=this.length;return this.resize(I+1),this.emplace(I,l,u,p,y,b,S,k)}emplace(l,u,p,y,b,S,k,I){const O=7*l;return this.float32[O+0]=u,this.float32[O+1]=p,this.float32[O+2]=y,this.float32[O+3]=b,this.float32[O+4]=S,this.float32[O+5]=k,this.float32[O+6]=I,l}}t0.prototype.bytesPerElement=28,yr(t0,"StructArrayLayout7f28");class rE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U){const q=this.length;return this.resize(q+1),this.emplace(q,l,u,p,y,b,S,k,I,O,z,U)}emplace(l,u,p,y,b,S,k,I,O,z,U,q){const K=11*l;return this.float32[K+0]=u,this.float32[K+1]=p,this.float32[K+2]=y,this.float32[K+3]=b,this.float32[K+4]=S,this.float32[K+5]=k,this.float32[K+6]=I,this.float32[K+7]=O,this.float32[K+8]=z,this.float32[K+9]=U,this.float32[K+10]=q,l}}rE.prototype.bytesPerElement=44,yr(rE,"StructArrayLayout11f44");class nE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O){const z=this.length;return this.resize(z+1),this.emplace(z,l,u,p,y,b,S,k,I,O)}emplace(l,u,p,y,b,S,k,I,O,z){const U=9*l;return this.float32[U+0]=u,this.float32[U+1]=p,this.float32[U+2]=y,this.float32[U+3]=b,this.float32[U+4]=S,this.float32[U+5]=k,this.float32[U+6]=I,this.float32[U+7]=O,this.float32[U+8]=z,l}}nE.prototype.bytesPerElement=36,yr(nE,"StructArrayLayout9f36");class Mp extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u){const p=this.length;return this.resize(p+1),this.emplace(p,l,u)}emplace(l,u,p){const y=2*l;return this.float32[y+0]=u,this.float32[y+1]=p,l}}Mp.prototype.bytesPerElement=8,yr(Mp,"StructArrayLayout2f8");class iE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l,u,p,y){const b=this.length;return this.resize(b+1),this.emplace(b,l,u,p,y)}emplace(l,u,p,y,b){const S=6*l;return this.uint32[3*l+0]=u,this.uint16[S+2]=p,this.uint16[S+3]=y,this.uint16[S+4]=b,l}}iE.prototype.bytesPerElement=12,yr(iE,"StructArrayLayout1ul3ui12");class Op extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(l){const u=this.length;return this.resize(u+1),this.emplace(u,l)}emplace(l,u){return this.uint16[1*l+0]=u,l}}Op.prototype.bytesPerElement=2,yr(Op,"StructArrayLayout1ui2");class sE extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re){const ae=this.length;return this.resize(ae+1),this.emplace(ae,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re)}emplace(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae){const he=16*l;return this.float32[he+0]=u,this.float32[he+1]=p,this.float32[he+2]=y,this.float32[he+3]=b,this.float32[he+4]=S,this.float32[he+5]=k,this.float32[he+6]=I,this.float32[he+7]=O,this.float32[he+8]=z,this.float32[he+9]=U,this.float32[he+10]=q,this.float32[he+11]=K,this.float32[he+12]=X,this.float32[he+13]=J,this.float32[he+14]=re,this.float32[he+15]=ae,l}}sE.prototype.bytesPerElement=64,yr(sE,"StructArrayLayout16f64");class Wv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(l,u,p,y,b,S,k){const I=this.length;return this.resize(I+1),this.emplace(I,l,u,p,y,b,S,k)}emplace(l,u,p,y,b,S,k,I){const O=10*l,z=5*l;return this.uint16[O+0]=u,this.uint16[O+1]=p,this.uint16[O+2]=y,this.uint16[O+3]=b,this.float32[z+2]=S,this.float32[z+3]=k,this.float32[z+4]=I,l}}Wv.prototype.bytesPerElement=20,yr(Wv,"StructArrayLayout4ui3f20");class Kv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(l){const u=this.length;return this.resize(u+1),this.emplace(u,l)}emplace(l,u){return this.int16[1*l+0]=u,l}}Kv.prototype.bytesPerElement=2,yr(Kv,"StructArrayLayout1i2");class Yv extends Vi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer)}emplaceBack(l){const u=this.length;return this.resize(u+1),this.emplace(u,l)}emplace(l,u){return this.uint8[1*l+0]=u,l}}Yv.prototype.bytesPerElement=1,yr(Yv,"StructArrayLayout1ub1");class dj extends Zx{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}dj.prototype.size=40;class aE extends qv{get(l){return new dj(this,l)}}yr(aE,"CollisionBoxArray");class hj extends Zx{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(l){this._structArray.uint8[this._pos1+49]=l}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(l){this._structArray.uint8[this._pos1+50]=l}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(l){this._structArray.uint32[this._pos4+13]=l}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(l){this._structArray.uint8[this._pos1+58]=l}}hj.prototype.size=60;class fj extends Gv{get(l){return new hj(this,l)}}yr(fj,"PlacedSymbolArray");class r0 extends Zx{get tileAnchorX(){return this._structArray.float32[this._pos4+0]}get tileAnchorY(){return this._structArray.float32[this._pos4+1]}get projectedAnchorX(){return this._structArray.int16[this._pos2+4]}get projectedAnchorY(){return this._structArray.int16[this._pos2+5]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+6]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+7]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+11]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get key(){return this._structArray.uint16[this._pos2+13]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+14]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+15]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+17]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+19]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+21]}get featureIndex(){return this._structArray.uint16[this._pos2+22]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+23]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numIconVertices(){return this._structArray.uint16[this._pos2+25]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+26]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+27]}get crossTileID(){return this._structArray.uint32[this._pos4+14]}set crossTileID(l){this._structArray.uint32[this._pos4+14]=l}get textOffset0(){return this._structArray.float32[this._pos4+15]}get textOffset1(){return this._structArray.float32[this._pos4+16]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+17]}get zOffset(){return this._structArray.float32[this._pos4+18]}set zOffset(l){this._structArray.float32[this._pos4+18]=l}get hasIconTextFit(){return this._structArray.uint8[this._pos1+76]}get elevationFeatureIndex(){return this._structArray.uint16[this._pos2+39]}}r0.prototype.size=80;class pj extends tE{get(l){return new r0(this,l)}}yr(pj,"SymbolInstanceArray");class mj extends wc{getoffsetX(l){return this.float32[1*l+0]}}yr(mj,"GlyphOffsetArray");class n0 extends ic{getx(l){return this.int16[2*l+0]}gety(l){return this.int16[2*l+1]}}yr(n0,"SymbolLineVertexArray");class gj extends Zx{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}gj.prototype.size=12;class oE extends iE{get(l){return new gj(this,l)}}yr(oE,"FeatureIndexArray");class yj extends cu{geta_centroid_pos0(l){return this.uint16[2*l+0]}geta_centroid_pos1(l){return this.uint16[2*l+1]}}yr(yj,"FillExtrusionCentroidArray");class lE extends Zx{get a_join_normal_inside0(){return this._structArray.int16[this._pos2+0]}get a_join_normal_inside1(){return this._structArray.int16[this._pos2+1]}get a_join_normal_inside2(){return this._structArray.int16[this._pos2+2]}}lE.prototype.size=6;class cE extends _d{get(l){return new lE(this,l)}}yr(cE,"FillExtrusionWallArray");const xj=Cn([{name:"a_pos",components:2,type:"Int16"}],4),O3=Cn([{name:"a_circle_z_offset",components:1,type:"Float32"}],4),F3=Cn([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);class Si{constructor(l=[]){this.segments=l}_prepareSegment(l,u,p,y,b){let S=this.segments[this.segments.length-1];return l>Si.MAX_VERTEX_ARRAY_LENGTH&&zr(`Max vertices per segment is ${Si.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${l}`),(!S||S.vertexLength+l>Si.MAX_VERTEX_ARRAY_LENGTH||S.sortKey!==y||b!==void 0&&S&&S.batchIndex!==void 0&&S.batchIndex!==b)&&(S={vertexOffset:u,primitiveOffset:p,vertexLength:0,primitiveLength:0},y!==void 0&&(S.sortKey=y),b!==void 0&&(S.batchIndex=b),this.segments.push(S)),S}prepareSegment(l,u,p,y,b){return this._prepareSegment(l,u.length,p.length,y,b)}get(){return this.segments}destroy(){for(const l of this.segments)for(const u in l.vaos)l.vaos[u].destroy()}static simpleSegment(l,u,p,y){return new Si([{vertexOffset:l,primitiveOffset:u,vertexLength:p,primitiveLength:y,vaos:{},sortKey:0}])}}function Zv(h,l){return 256*(h=fe(Math.floor(h),0,255))+fe(Math.floor(l),0,255)}Si.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,yr(Si,"SegmentVector");const B3=Cn([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),z3=Cn([{name:"a_pattern_b",components:4,type:"Uint16"}]),$3=Cn([{name:"a_dash",components:4,type:"Uint16"}]);class i0{constructor(){this.ids=[],this.uniqueIds=[],this.positions=[],this.indexed=!1}add(l,u,p,y){this.ids.push(uE(l)),this.positions.push(u,p,y)}eachPosition(l,u){const p=uE(l);let y=0,b=this.ids.length-1;for(;y>1;this.ids[S]>=p?b=S:y=S+1}for(;this.ids[y]===p;)u(this.positions[3*y],this.positions[3*y+1],this.positions[3*y+2]),y++}static serialize(l,u){const p=new Float64Array(l.ids),y=new Uint32Array(l.positions);return s0(p,y,0,p.length-1),u&&(u.add(p.buffer),u.add(y.buffer)),{ids:p,positions:y}}static deserialize(l){const u=new i0;let p;u.ids=l.ids,u.positions=l.positions;for(const y of u.ids)y!==p&&u.uniqueIds.push(y),p=y;return u.indexed=!0,u}}function uE(h){const l=+h;return Number.isSafeInteger(l)?l:af(String(h))}function s0(h,l,u,p){for(;u>1];let b=u-1,S=p+1;for(;;){do b++;while(h[b]y);if(b>=S)break;Sc(h,b,S),Sc(l,3*b,3*S),Sc(l,3*b+1,3*S+1),Sc(l,3*b+2,3*S+2)}S-u`u_${b}`),this.type=p,this.context=y}setUniform(l,u,p,y,b){const S=y.constantOr(this.value);u.set(l,b,S instanceof Wn?S.toPremultipliedRenderColor(this.lutExpression&&this.lutExpression.kind==="constant"&&this.lutExpression.value==="none"?null:this.context.lut):S)}getBinding(l,u){return this.type==="color"?new V3(l):new la(l)}}class ${constructor(l,u){this.uniformNames=u.map(p=>`u_${p}`),this.pattern=null,this.patternTransition=null,this.pixelRatio=1}setConstantPatternPositions(l,u){this.pixelRatio=l.pixelRatio||1,this.pattern=l.tl.concat(l.br),this.patternTransition=u?u.tl.concat(u.br):this.pattern}setUniform(l,u,p,y,b){let S=null;b!=="u_pattern"&&b!=="u_dash"||(S=this.pattern),b==="u_pattern_b"&&(S=this.patternTransition),b==="u_pixel_ratio"&&(S=this.pixelRatio),S&&u.set(l,b,S)}getBinding(l,u){return u==="u_pattern"||u==="u_pattern_b"||u==="u_dash"?new U3(l):new la(l)}}class H{constructor(l,u,p,y){this.expression=l,this.type=p,this.maxValue=0,this.paintVertexAttributes=u.map(b=>({name:`a_${b}`,type:"Float32",components:p==="color"?2:1,offset:0})),this.paintVertexArray=new y}populatePaintArray(l,u,p,y,b,S,k,I){const O=this.paintVertexArray.length,z=this.expression.kind==="composite"||this.expression.kind==="source"?this.expression.evaluate(new Jn(0,{brightness:S,worldview:I}),u,{},b,y,k):this.expression.kind==="constant"&&this.expression.value,U=R(this.lutExpression,u,{},y,b,S,k,I);this.paintVertexArray.resize(l),this._setPaintValue(O,l,z,U?null:this.context.lut)}updatePaintArray(l,u,p,y,b,S,k,I){const O=this.expression.kind==="composite"||this.expression.kind==="source"?this.expression.evaluate({zoom:0,brightness:k,worldview:I},p,y,void 0,b):this.expression.kind==="constant"&&this.expression.value,z=R(this.lutExpression,p,y,b,void 0,k,void 0,I);this._setPaintValue(l,u,O,z?null:this.context.lut)}_setPaintValue(l,u,p,y){if(this.type==="color"){const b=j(p.toPremultipliedRenderColor(y));for(let S=l;S`u_${k}_t`),this.type=p,this.useIntegerZoom=y,this.context=b,this.maxValue=0,this.paintVertexAttributes=u.map(k=>({name:`a_${k}`,type:"Float32",components:p==="color"?4:2,offset:0})),this.paintVertexArray=new S}populatePaintArray(l,u,p,y,b,S,k,I){const O=this.expression.evaluate(new Jn(this.context.zoom,{brightness:S,worldview:I}),u,{},b,y,k),z=this.expression.evaluate(new Jn(this.context.zoom+1,{brightness:S,worldview:I}),u,{},b,y,k),U=R(this.lutExpression,u,{},y,b,S,k,I),q=this.paintVertexArray.length;this.paintVertexArray.resize(l),this._setPaintValue(q,l,O,z,U?null:this.context.lut)}updatePaintArray(l,u,p,y,b,S,k,I){const O=this.expression.evaluate({zoom:this.context.zoom,brightness:k,worldview:I},p,y,void 0,b),z=this.expression.evaluate({zoom:this.context.zoom+1,brightness:k,worldview:I},p,y,void 0,b),U=R(this.lutExpression,p,y,b,void 0,k,void 0,I);this._setPaintValue(l,u,O,z,U?null:this.context.lut)}_setPaintValue(l,u,p,y,b){if(this.type==="color"){const S=j(p.toPremultipliedRenderColor(b)),k=j(y.toPremultipliedRenderColor(b));for(let I=l;I!0){this.binders={},this._buffers=[],this.context=u;const y=[],b=l;for(const S in l.paint._values){const k=b.paint.get(S);if(S.endsWith("-use-theme")||!p(S)||!(k instanceof Rp&&Ev(k.property.specification)))continue;const I=oe(S,l.type),O=k.value,z=k.property.specification.type,U=!!k.property.useIntegerZoom,q=S==="line-dasharray"||S.endsWith("pattern"),K=b.paint.get(`${S}-use-theme`),X=S==="line-dasharray"&&b.layout.get("line-cap").value.kind!=="constant"||K&&K.value.kind!=="constant";if(O.kind!=="constant"||X)if(O.kind==="source"||X||q){const J=Ie(S,z,"source");this.binders[S]=q?new te(O,I,z,J,l.id):new H(O,I,z,J),y.push(`/a_${S}`)}else{const J=Ie(S,z,"composite");this.binders[S]=new Y(O,I,z,U,u,J),y.push(`/z_${S}`)}else this.binders[S]=q?new $(O.value,I):new F(O.value,I,z,u),y.push(`/u_${S}`);K&&(this.binders[S].lutExpression=K.value)}this.cacheKey=y.sort().join("")}getMaxValue(l){const u=this.binders[l];return u instanceof H||u instanceof Y?u.maxValue:0}populatePaintArrays(l,u,p,y,b,S,k,I){for(const O in this.binders){const z=this.binders[O];z.context=this.context,(z instanceof H||z instanceof Y||z instanceof te)&&z.populatePaintArray(l,u,p,y,b,S,k,I)}}setConstantPatternPositions(l,u){for(const p in this.binders){const y=this.binders[p];y instanceof $&&y.setConstantPatternPositions(l,u)}}getPatternTransitionVertexBuffer(l){const u=this.binders[l];return u instanceof te?u.paintTransitionVertexBuffer:null}updatePaintArrays(l,u,p,y,b,S,k,I,O,z){let U=!1;const q=Object.keys(l),K=q.length!==0&&!I,X=K?q:u.uniqueIds;this.context.lut=b.lut;for(const J in this.binders){const re=this.binders[J];if(re.context=this.context,(re instanceof H||re instanceof Y||re instanceof te)&&re.expression&&re.expression.kind&&re.expression.kind!=="constant"&&(re.expression.isStateDependent===!0||re.expression.isLightConstant===!1)){const ae=b.paint.get(J);re.expression=ae.value;for(const he of X){const ce=l[he.toString()];u.eachPosition(he,(ye,Ee,Ce)=>{const He=y.feature(ye);re.updatePaintArray(Ee,Ce,He,ce,S,k,O,z)})}if(!K)for(const he of p.uniqueIds){const ce=l[he.toString()];p.eachPosition(he,(ye,Ee,Ce)=>{const He=y.feature(ye);re.updatePaintArray(Ee,Ce,He,ce,S,k,O,z)})}U=!0}}return U}defines(){const l=[];for(const u in this.binders){const p=this.binders[u];(p instanceof F||p instanceof $)&&l.push(...p.uniformNames.map(y=>`#define HAS_UNIFORM_${y}`))}return l}getPaintVertexBuffers(){return this._buffers}getUniforms(l){const u=[];for(const p in this.binders){const y=this.binders[p];if(y instanceof F||y instanceof $||y instanceof Y)for(const b of y.uniformNames)u.push({name:b,property:p,binding:y.getBinding(l,b)})}return u}setUniforms(l,u,p,y,b){for(const{name:S,property:k,binding:I}of p)this.binders[k].setUniform(l,I,b,y.get(k),S)}updatePaintBuffers(){this._buffers=[];for(const l in this.binders){const u=this.binders[l];(u instanceof H||u instanceof Y||u instanceof te)&&u.paintVertexBuffer&&this._buffers.push(u.paintVertexBuffer),u instanceof te&&u.paintTransitionVertexBuffer&&this._buffers.push(u.paintTransitionVertexBuffer)}}upload(l){for(const u in this.binders){const p=this.binders[u];(p instanceof H||p instanceof Y||p instanceof te)&&p.upload(l)}this.updatePaintBuffers()}destroy(){for(const l in this.binders){const u=this.binders[l];(u instanceof H||u instanceof Y||u instanceof te)&&u.destroy()}}}class ne{constructor(l,u,p=()=>!0){this.programConfigurations={};for(const y of l)this.programConfigurations[y.id]=new ee(y,u,p);this.needsUpload=!1,this._featureMap=new i0,this._featureMapWithoutIds=new i0,this._bufferOffset=0,this._idlessCounter=0}populatePaintArrays(l,u,p,y,b,S,k,I,O){for(const z in this.programConfigurations)this.programConfigurations[z].populatePaintArrays(l,u,y,b,S,k,I,O);u.id!==void 0?this._featureMap.add(u.id,p,this._bufferOffset,l):(this._featureMapWithoutIds.add(this._idlessCounter,p,this._bufferOffset,l),this._idlessCounter+=1),this._bufferOffset=l,this.needsUpload=!0}updatePaintArrays(l,u,p,y,b,S,k,I){for(const O of p)this.needsUpload=this.programConfigurations[O.id].updatePaintArrays(l,this._featureMap,this._featureMapWithoutIds,u,O,y,b,S,k||0,I)||this.needsUpload}get(l){return this.programConfigurations[l]}upload(l){if(this.needsUpload){for(const u in this.programConfigurations)this.programConfigurations[u].upload(l);this.needsUpload=!1}}destroy(){for(const l in this.programConfigurations)this.programConfigurations[l].destroy()}}const le={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-occlusion-opacity":["occlusion_opacity"],"icon-occlusion-opacity":["occlusion_opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-emissive-strength":["emissive_strength"],"icon-emissive-strength":["emissive_strength"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"symbol-z-offset":["z_offset"],"line-gap-width":["gapwidth"],"line-pattern":["pattern","pixel_ratio","pattern_b"],"fill-pattern":["pattern","pixel_ratio","pattern_b"],"fill-extrusion-pattern":["pattern","pixel_ratio","pattern_b"],"line-dasharray":["dash"],"fill-bridge-guard-rail-color":["structure_color"],"fill-tunnel-structure-color":["structure_color"]};function oe(h,l){return le[h]||[h.replace(`${l}-`,"").replace(/-/g,"_")]}const me={"line-pattern":{source:vd,composite:vd},"fill-pattern":{source:vd,composite:vd},"fill-extrusion-pattern":{source:vd,composite:vd},"line-dasharray":{source:xg,composite:xg}},pe={color:{source:Mp,composite:mh},number:{source:wc,composite:Mp}};function Ie(h,l,u){const p=me[h];return p&&p[u]||pe[l][u]}yr(F,"ConstantBinder"),yr($,"PatternConstantBinder"),yr(H,"SourceExpressionBinder"),yr(te,"PatternCompositeBinder"),yr(Y,"CompositeExpressionBinder"),yr(ee,"ProgramConfiguration",{omit:["_buffers"]}),yr(ne,"ProgramConfigurationSet");const Ne=sr/Math.PI/2,ve=64,Ye=[ve,32,16],Be=-Ne,We=Ne;function Le(h,l,u,p=Ne){return u=Hn(u),[h*Math.sin(u)*p,-l*p,h*Math.cos(u)*p]}function Fe(h,l,u){return Le(Math.cos(Hn(h)),Math.sin(Hn(h)),l,u)}const qe=63710088e-1,st=2*Math.PI*qe;class Qe{constructor(l,u){if(isNaN(l)||isNaN(u))throw new Error(`Invalid LngLat object: (${l}, ${u})`);if(this.lng=+l,this.lat=+u,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new Qe(Ke(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(l){const u=Math.PI/180,p=this.lat*u,y=l.lat*u,b=Math.sin(p)*Math.sin(y)+Math.cos(p)*Math.cos(y)*Math.cos((l.lng-this.lng)*u);return qe*Math.acos(Math.min(b,1))}toBounds(l=0){const u=360*l/40075017,p=u/Math.cos(Math.PI/180*this.lat);return new yt({lng:this.lng-p,lat:this.lat-u},{lng:this.lng+p,lat:this.lat+u})}toEcef(l){return Fe(this.lat,this.lng,Ne+l*Ne/qe)}static convert(l){if(l instanceof Qe)return l;if(Array.isArray(l)&&(l.length===2||l.length===3))return new Qe(Number(l[0]),Number(l[1]));if(!Array.isArray(l)&&typeof l=="object"&&l!==null)return new Qe(Number("lng"in l?l.lng:l.lon),Number(l.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}class yt{constructor(l,u){l&&(u?this.setSouthWest(l).setNorthEast(u):Array.isArray(l)&&l.length===4?this.setSouthWest([l[0],l[1]]).setNorthEast([l[2],l[3]]):this.setSouthWest(l[0]).setNorthEast(l[1]))}setNorthEast(l){return this._ne=l instanceof Qe?new Qe(l.lng,l.lat):Qe.convert(l),this}setSouthWest(l){return this._sw=l instanceof Qe?new Qe(l.lng,l.lat):Qe.convert(l),this}extend(l){const u=this._sw,p=this._ne;let y,b;if(l instanceof Qe)y=l,b=l;else{if(!(l instanceof yt))return Array.isArray(l)?l.length===4||l.every(Array.isArray)?this.extend(yt.convert(l)):this.extend(Qe.convert(l)):typeof l=="object"&&l!==null&&l.hasOwnProperty("lat")&&(l.hasOwnProperty("lon")||l.hasOwnProperty("lng"))?this.extend(Qe.convert(l)):this;if(y=l._sw,b=l._ne,!y||!b)return this}return u||p?(u.lng=Math.min(y.lng,u.lng),u.lat=Math.min(y.lat,u.lat),p.lng=Math.max(b.lng,p.lng),p.lat=Math.max(b.lat,p.lat)):(this._sw=new Qe(y.lng,y.lat),this._ne=new Qe(b.lng,b.lat)),this}getCenter(){return new Qe((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new Qe(this.getWest(),this.getNorth())}getSouthEast(){return new Qe(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(l){const{lng:u,lat:p}=Qe.convert(l);let y=this._sw.lng<=u&&u<=this._ne.lng;return this._sw.lng>this._ne.lng&&(y=this._sw.lng>=u&&u>=this._ne.lng),this._sw.lat<=p&&p<=this._ne.lat&&y}static convert(l){if(l)return l instanceof yt?l:new yt(l)}}function ft(h){return st*Math.cos(h*Math.PI/180)}function Nt(h){return(180+h)/360}function Ft(h){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+h*Math.PI/360)))/360}function ot(h,l){return h/ft(l)}function tt(h){return 360*h-180}function mt(h){return 360/Math.PI*Math.atan(Math.exp((180-360*h)*Math.PI/180))-90}function bt(h,l){return h*ft(mt(l))}const Et=85.051129;function tr(h){return Math.cos(Hn(fe(h,-85.051129,Et)))}function Vt(h,l){const u=fe(l,0,25.5),p=Math.pow(2,u);return tr(h)*st/(512*p)}function qt(h){return 1/Math.cos(h*Math.PI/180)}function Mt(h,l=0){const u=Math.exp(Math.PI*(1-(h.y+l/sr)/(1<=I?(Dr(h,l,u,O,z,b,U,k,I),Dr(h,O,z,p,y,U,S,k,I)):h.push(S)}function pr(h,l,u){let p=h[0],y=p.x,b=p.y;l(p);const S=[p];for(let k=1;kh.x+1||ph.y+1)&&zr("Geometry exceeds allowed extent, reduce your vector tile buffer size"),h}function Ur(h,l,u){const p=h.loadGeometry(),y=h.extent,b=sr/y;if(l&&u&&u.projection.isReprojectedInTileSpace){const S=1<{const K=tt((l.x+q.x/y)/S),X=mt((l.y+q.y/y)/S),J=z.project(K,X);q.x=(J.x*k-I)*y,q.y=(J.y*k-O)*y};for(let q=0;q=y||X.y<0||X.y>=y||(U(X),K.push(X));p[q]=K}}for(const S of p)for(const k of S)mn(k,b);return p}function gn(h,l){return{type:h.type,id:h.id,properties:h.properties,geometry:l?Ur(h):[]}}class en{constructor(l,u,p,y,b){this.properties={},this.extent=p,this.type=0,this.id=void 0,this._pbf=l,this._geometry=-1,this._keys=y,this._values=b,l.readFields(Bn,this,u)}loadGeometry(){const l=this._pbf;l.pos=this._geometry;const u=l.readVarint()+l.pos,p=[];let y,b=1,S=0,k=0,I=0;for(;l.pos>3}if(S--,b===1||b===2)k+=l.readSVarint(),I+=l.readSVarint(),b===1&&(y&&p.push(y),y=[]),y&&y.push(new Ot(k,I));else{if(b!==7)throw new Error(`unknown command ${b}`);y&&y.push(y[0].clone())}}return y&&p.push(y),p}bbox(){const l=this._pbf;l.pos=this._geometry;const u=l.readVarint()+l.pos;let p=1,y=0,b=0,S=0,k=1/0,I=-1/0,O=1/0,z=-1/0;for(;l.pos>3}if(y--,p===1||p===2)b+=l.readSVarint(),S+=l.readSVarint(),bI&&(I=b),Sz&&(z=S);else if(p!==7)throw new Error(`unknown command ${p}`)}return[k,O,I,z]}toGeoJSON(l,u,p){const y=this.extent*Math.pow(2,p),b=this.extent*l,S=this.extent*u,k=this.loadGeometry();function I(q){return[360*(q.x+b)/y-180,360/Math.PI*Math.atan(Math.exp((1-2*(q.y+S)/y)*Math.PI))-90]}function O(q){return q.map(I)}let z;if(this.type===1){const q=[];for(const X of k)q.push(X[0]);const K=O(q);z=q.length===1?{type:"Point",coordinates:K[0]}:{type:"MultiPoint",coordinates:K}}else if(this.type===2){const q=k.map(O);z=q.length===1?{type:"LineString",coordinates:q[0]}:{type:"MultiLineString",coordinates:q}}else{if(this.type!==3)throw new Error("unknown feature type");{const q=function(X){const J=X.length;if(J<=1)return[X];const re=[];let ae,he;for(let ce=0;ce=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[l];const u=this._pbf.readVarint()+this._pbf.pos;return new en(this._pbf,u,this.extent,this._keys,this._values)}}function Ti(h,l,u){h===15?l.version=u.readVarint():h===1?l.name=u.readString():h===5?l.extent=u.readVarint():h===2?l._features.push(u.pos):h===3?l._keys.push(u.readString()):h===4&&l._values.push(function(p){let y=null;const b=p.readVarint()+p.pos;for(;p.pos>3;y=S===1?p.readString():S===2?p.readFloat():S===3?p.readDouble():S===4?p.readVarint64():S===5?p.readVarint():S===6?p.readSVarint():S===7?p.readBoolean():null}if(y==null)throw new Error("unknown feature value");return y}(u))}class Xn{constructor(l,u){this.layers=l.readFields(hn,{},u)}}function hn(h,l,u){if(h===3){const p=new Yi(u,u.readVarint()+u.pos);p.length&&(l[p.name]=p)}}const fn="3d_elevation_id",Ei="level";class ss{constructor(){this._valid=!1}reset(l){return this.feature=l,this._valid=!0,this._geometry=l.loadGeometry(),this._geometry.length!==0&&this._geometry[0].length!==0||(this._valid=!1),this}geometry(l,u){return this._valid&&l(u(this._geometry)),this}require(l,u,p){return this.get(l,!0,u,p)}optional(l,u,p){return this.get(l,!1,u,p)}success(){return this._valid}get(l,u,p,y){const b=this.feature.properties.hasOwnProperty(l)?+this.feature.properties[l]:void 0;return this._valid&&b!==void 0&&!Number.isNaN(b)?p(y?y(b):b):u&&(this._valid=!1),this}}class Qn{constructor(l,u){this.featureFunc=l,this.vertexFunc=u}parseFeature(l,u,p){return this.featureFunc(l,u,p)}parseVertex(l,u,p){return this.vertexFunc(l,u,p)}}const an=new Qn((h,l,u)=>h.reset(l).require(fn,p=>{u.id=p}).optional("fixed_height_relative",p=>{u.constantHeight=p},gi.decodeRelativeHeight).geometry(p=>{u.bounds=p},rT).success(),(h,l,u)=>h.reset(l).require(fn,p=>{u.id=p}).require("elevation_idx",p=>{u.idx=p}).require("extent",p=>{u.extent=p}).require("height_relative",p=>{u.height=p},gi.decodeRelativeHeight).geometry(p=>{u.position=p},gi.getPoint).success()),Wi=new Qn((h,l,u)=>h.reset(l).require(fn,p=>{u.id=p}).optional("fixed_height",p=>{u.constantHeight=p},gi.decodeMetricHeight).geometry(p=>{u.bounds=p},rT).success(),(h,l,u)=>h.reset(l).require(fn,p=>{u.id=p}).require("elevation_idx",p=>{u.idx=p}).require("extent",p=>{u.extent=p}).require("height",p=>{u.height=p},gi.decodeMetricHeight).geometry(p=>{u.position=p},gi.getPoint).success());class gi{static getPoint(l){return Pr(l[0][0].x,l[0][0].y)}static decodeRelativeHeight(l){return 1e-4*l*5}static decodeMetricHeight(l){return 1e-4*l}static getVersionSchema(l){return l?l==="1.0.1"?Wi:void 0:an}static parse(l){const u=[],p=[],y=l.length,b=new ss;for(let S=0;S=0);if(b===0)return 0;b!==l.length&&(u=!1)}return u?2:1}function ca(h,l){for(const u of h.projections){const p=Js(l,h.points[0],u.axis);if(u.projection[1]p[1])return 0}return 1}function Va(h,l){let u=0;const p=[0,0,0,0];for(let y=0;y=0&&u++;return u}class sc{constructor(l,u){this.points=l||new Array(8).fill([0,0,0]),this.planes=u||new Array(6).fill([0,0,0,0]),this.bounds=ii.fromPoints(this.points),this.projections=[],this.frustumEdges=[jr([],this.points[2],this.points[3]),jr([],this.points[0],this.points[3]),jr([],this.points[4],this.points[0]),jr([],this.points[5],this.points[1]),jr([],this.points[6],this.points[2]),jr([],this.points[7],this.points[3])];for(const p of this.frustumEdges){const y=[0,-p[2],p[1]],b=[p[2],0,-p[0]];this.projections.push({axis:y,projection:Js(this.points,this.points[0],y)}),this.projections.push({axis:b,projection:Js(this.points,this.points[0],b)})}}static fromInvProjectionMatrix(l,u,p,y){const b=Math.pow(2,p),S=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(O=>{const z=ur([],O,l),U=1/z[3]/u*b;return(q=z)[0]=(K=z)[0]*(X=[U,U,y?1/z[3]:U,U])[0],q[1]=K[1]*X[1],q[2]=K[2]*X[2],q[3]=K[3]*X[3],q;var q,K,X}),k=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(O=>{const z=_t([],er([],jr([],S[O[0]],S[O[1]]),jr([],S[O[2]],S[O[1]]))),U=-Rt(z,S[O[1]]);return z.concat(U)}),I=[];for(let O=0;OO[1]||O[0]>I[1])return 0}return 1}containsPoint(l){for(const u of this.planes){const p=u[3];if(Rt([u[0],u[1],u[2]],l)+p<0)return!1}return!0}}class ii{static fromPoints(l){const u=[1/0,1/0,1/0],p=[-1/0,-1/0,-1/0];for(const y of l)xe(u,u,y),Pe(p,p,y);return new ii(u,p)}static fromTileIdAndHeight(l,u,p){const y=1<l.max[u]||l.min[u]>this.max[u])return!1;return!0}intersectsAabbXY(l){return!(this.min[0]>l.max[0]||l.min[0]>this.max[0]||this.min[1]>l.max[1]||l.min[1]>this.max[1])}encapsulate(l){for(let u=0;u<3;u++)this.min[u]=Math.min(this.min[u],l.min[u]),this.max[u]=Math.max(this.max[u],l.max[u])}encapsulatePoint(l){for(let u=0;u<3;u++)this.min[u]=Math.min(this.min[u],l[u]),this.max[u]=Math.max(this.max[u],l[u])}closestPoint(l){return[Math.max(Math.min(this.max[0],l[0]),this.min[0]),Math.max(Math.min(this.max[1],l[1]),this.min[1]),Math.max(Math.min(this.max[2],l[2]),this.min[2])]}}yr(ii,"Aabb");class Tc{constructor(l,u){this.feature=l,this.metersToTile=u,this.index=0}get(){const l=this.feature.vertices[this.index],u=this.feature.vertexProps[this.index].dir,p=u[1],y=-u[0],b=(l.extent+1)*this.metersToTile;return[new Ot(Math.trunc(l.position[0]+p*b),Math.trunc(l.position[1]+y*b)),new Ot(Math.trunc(l.position[0]-p*b),Math.trunc(l.position[1]-y*b))]}next(){this.index++}valid(){return this.index{return k.a0?Ze(I,I,1/O):Se(I,0,0,1)}getSafeArea(){return this.safeArea}isTunnel(){return this.heightRange.max<=-5}getClosestEdge(l){if(this.edges.length===0)return;let u=0,p=Number.POSITIVE_INFINITY,y=0;const[b,S,k,I,O,z,U]=this._tmpVec2;ni(U,l.x,l.y);const q=new Os(U,null);for(let K=0;K0?Un(I,k)/ye:0,Ce=fe(Ee,0,1),He=Math.abs((Ee-Ce)*this.edgeProps[K].len);Nn(O,U,re),ni(z,J[1],-J[0]);const ze=He+Math.abs(Un(O,z));ze=0;--S){const k=this.edges[S].a,I=this.edges[S].b,{position:O,height:z,extent:U}=this.vertices[k],{position:q,height:K,extent:X}=this.vertices[I],J=this.vertexProps[k].dir,re=this.vertexProps[I].dir;if(Se(u,O[0]/l,O[1]/l,z),Se(p,q[0]/l,q[1]/l,K),Se(y,J[1],-J[0],0),Ze(y,y,U),Se(b,re[1],-re[0],0),Ze(b,b,X),this.distSqLines(Ae(u[0]+.5*y[0],u[1]+.5*y[1],u[2]+.5*y[2]),Ae(p[0]-.5*b[0],p[1]-.5*b[1],p[2]-.5*b[2]),Ae(u[0]-.5*y[0],u[1]-.5*y[1],u[2]-.5*y[2]),Ae(p[0]+.5*b[0],p[1]+.5*b[1],p[2]+.5*b[2]))<=.0025000000000000005)continue;const ae=this.vertices.length,he=rs(ts(),O,q);this.vertices.push({position:Nr(he,he,.5),height:.5*(z+K),extent:.5*(U+X)});const ce=rs(ts(),J,re);this.vertexProps.push({dir:li(ce,ce)}),this.edges.splice(S,1),this.edgeProps.splice(S,1),this.edges.push({a:k,b:ae}),this.edges.push({a:ae,b:I});const ye=Nn(ts(),this.vertices[ae].position,O),Ee=Sn(ye),Ce={vec:ye,dir:Nr(ts(),ye,1/Ee),len:Ee};this.edgeProps.push(Ce),this.edgeProps.push(Ce)}}distSqLines(l,u,p,y){const b=je(Te(),u,l),S=je(Te(),y,p),k=je(Te(),l,p),I=Rt(b,b),O=Rt(b,S),z=Rt(b,k),U=Rt(S,S),q=Rt(S,k),K=I*U-O*O;if(K===0)return xt(vt(b,p,y,Rt(k,S)/Rt(S,S)),l);const X=(I*q-O*z)/K;return xt(vt(b,l,u,(O*q-z*U)/K),vt(S,p,y,X))}}class Pi{static parseFrom(l,u){const p=gi.parse(l);if(!p)return[];let{vertices:y,features:b}=p;const S=1/Mt(u);b.sort((z,U)=>z.id-U.id),y.sort((z,U)=>z.id-U.id||z.idx-U.idx),y=y.filter((z,U,q)=>U===q.findIndex(K=>K.id===z.id&&K.idx===z.idx));const k=new Array;let I=0;const O=y.length;for(const z of b){if(z.constantHeight){k.push(new Ec(z.id,z.bounds,z.constantHeight));continue}for(;I!==O&&y[I].idy.id===p)}}class Fi{constructor(l,u){this.zScale=1,this.xOffset=0,this.yOffset=0,l.equals(u)||(this.zScale=Math.pow(2,u.z-l.z),this.xOffset=(l.x*this.zScale-u.x)*sr,this.yOffset=(l.y*this.zScale-u.y)*sr)}constantElevation(l,u){if(l.constantHeight!=null)return this.computeBiasedHeight(l.constantHeight,u)}pointElevation(l,u,p){const y=this.constantElevation(u,p);return y??(l.x=l.x*this.zScale+this.xOffset,l.y=l.y*this.zScale+this.yOffset,this.computeBiasedHeight(u.pointElevation(l),p))}computeBiasedHeight(l,u){return u<=0?l:l+u*Me(0,u,l>=0?l:Math.abs(.5*l))}}yr(Ec,"ElevationFeature");class di{constructor(l){this.zoom=l.zoom,this.overscaling=l.overscaling,this.layers=l.layers,this.layerIds=this.layers.map(u=>u.fqid),this.index=l.index,this.hasPattern=!1,this.projection=l.projection,this.layoutVertexArray=new ic,this.indexArray=new bs,this.segments=new Si,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut}),this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.elevationMode=this.layers[0].layout.get("circle-elevation-reference"),this.hasElevation=!1,this.elevationMode!=="none"&&(this.elevatedLayoutVertexArray=new wc),this.worldview=l.worldview,this.hasAppearances=null}updateFootprints(l,u){}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){const b=this.layers[0],S=[];let k=null;b.type==="circle"&&(k=b.layout.get("circle-sort-key"));for(const{feature:O,id:z,index:U,sourceLayerIndex:q}of l){const K=this.layers[0]._featureFilter.needGeometry,X=gn(O,K);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),X,p))continue;const J=k?k.evaluate(X,{},p):void 0,re={id:z,properties:O.properties,type:O.type,sourceLayerIndex:q,index:U,geometry:K?X.geometry:Ur(O,p,y),patterns:{},sortKey:J};S.push(re)}k&&S.sort((O,z)=>O.sortKey-z.sortKey);let I=null;y.projection.name==="globe"&&(this.globeExtVertexArray=new Vv,I=y.projection);for(const O of S){const{geometry:z,index:U,sourceLayerIndex:q}=O,K=l[U].feature;this.addFeature(O,z,U,u.availableImages,p,I,u.brightness,u.elevationFeatures),u.featureIndex.insert(K,z,U,q,this.index)}this.hasElevation||(this.elevatedLayoutVertexArray=void 0)}update(l,u,p,y,b,S,k){this.programConfigurations.updatePaintArrays(l,u,b,p,y,S,k,this.worldview)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(l){this.uploaded||(this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,xj.members),this.indexBuffer=l.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=l.createVertexBuffer(this.globeExtVertexArray,F3.members)),this.elevatedLayoutVertexArray&&(this.elevatedLayoutVertexBuffer=l.createVertexBuffer(this.elevatedLayoutVertexArray,O3.members))),this.programConfigurations.upload(l),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy(),this.elevatedLayoutVertexBuffer&&this.elevatedLayoutVertexBuffer.destroy())}addFeature(l,u,p,y,b,S,k,I){let O;this.elevationMode!=="none"&&(O=Pi.getElevationFeature(l,I));for(const z of u)for(const U of z){const q=U.x,K=U.y;if(q<0||q>=sr||K<0||K>=sr)continue;if(S){const re=S.projectTilePoint(q,K,b),ae=S.upVector(b,q,K);this.addGlobeExtVertex(re,ae),this.addGlobeExtVertex(re,ae),this.addGlobeExtVertex(re,ae),this.addGlobeExtVertex(re,ae)}const X=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,l.sortKey),J=X.vertexLength;if(this.addCircleVertex(q,K,-1,-1),this.addCircleVertex(q,K,1,-1),this.addCircleVertex(q,K,1,1),this.addCircleVertex(q,K,-1,1),this.elevationMode!=="none"){const re=O?O.pointElevation(new Ot(q,K)):0;this.hasElevation=this.hasElevation||re!==0;for(let ae=0;ae<4;ae++)this.elevatedLayoutVertexArray.emplaceBack(re)}this.indexArray.emplaceBack(J,J+1,J+2),this.indexArray.emplaceBack(J,J+2,J+3),X.vertexLength+=4,X.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,l,p,{},y,b,k,void 0,this.worldview)}addCircleVertex(l,u,p,y){this.layoutVertexArray.emplaceBack(2*l+(p+1)/2,2*u+(y+1)/2)}addGlobeExtVertex(l,u){this.globeExtVertexArray.emplaceBack(l.x,l.y,l.z,u[0]*16384,u[1]*16384,u[2]*16384)}}function Ps(h,l){for(let u=0;u1){if(gf(h,l))return!0;for(let p=0;p1?u:u.sub(l)._mult(y)._add(l))}function vg(h,l){let u,p,y,b=!1;for(let S=0;Sl.y!=y.y>l.y&&l.x<(y.x-p.x)*(l.y-p.y)/(y.y-p.y)+p.x&&(b=!b)}return b}function Rl(h,l){let u=!1;for(let p=0,y=h.length-1;pl.y!=S.y>l.y&&l.x<(S.x-b.x)*(l.y-b.y)/(S.y-b.y)+b.x&&(u=!u)}return u}function yf(h,l,u,p,y){for(const S of h)if(l<=S.x&&u<=S.y&&p>=S.x&&y>=S.y)return!0;const b=[new Ot(l,u),new Ot(l,y),new Ot(p,y),new Ot(p,u)];if(h.length>2){for(const S of b)if(Rl(h,S))return!0}for(let S=0;Sy.x&&l.x>y.x||h.yy.y&&l.y>y.y)return!1;const b=sn(h,l,u[0]);return b!==sn(h,l,u[1])||b!==sn(h,l,u[2])||b!==sn(h,l,u[3])}function _f(h,l,u,p,y,b){let S=l.y-h.y,k=h.x-l.x;if(b=b||0){const I=S*S+k*k;if(I===0)return!0;const O=Math.sqrt(I);S/=O,k/=O}return!((u.x-h.x)*S+(u.y-h.y)*k-b<0||(p.x-h.x)*S+(p.y-h.y)*k-b<0||(y.x-h.x)*S+(y.y-h.y)*k-b<0)}function Qv(h,l,u,p,y,b,S){return!(_f(h,l,p,y,b,S)||_f(l,u,p,y,b,S)||_f(u,h,p,y,b,S)||_f(p,y,h,l,u,S)||_f(y,b,h,l,u,S)||_f(b,p,h,l,u,S))}function bg(h,l,u){const p=l.paint.get(h).value;return p.kind==="constant"?p.value:u.programConfigurations.get(l.id).getMaxValue(h)}function _j(h){return Math.sqrt(h[0]*h[0]+h[1]*h[1])}function OW(h,l,u,p,y){if(!l[0]&&!l[1])return h;const b=Ot.convert(l)._mult(y);u==="viewport"&&b._rotate(-p);const S=[];for(let k=0;k>u&&l.y===this.y>>u}url(l,u){const p=function(b,S,k){const I=2**k,O=2*Math.PI*6378137,z=O*(b/I-.5),U=O*(.5-(S+1)/I);return`${z},${U},${z+O/I},${U+O/I}`}(this.x,this.y,this.z),y=function(b,S,k){let I,O="";for(let z=b;z>0;z--)I=1<this.canonical.z?new ml(l,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new ml(l,this.wrap,l,this.canonical.x>>u,this.canonical.y>>u)}calculateScaledKey(l,u=!0){if(this.overscaledZ===l&&u)return this.key;if(l>this.canonical.z)return Jv(this.wrap*+u,l,this.canonical.z,this.canonical.x,this.canonical.y);{const p=this.canonical.z-l;return Jv(this.wrap*+u,l,l,this.canonical.x>>p,this.canonical.y>>p)}}isChildOf(l){if(l.wrap!==this.wrap)return!1;const u=this.canonical.z-l.canonical.z;return l.overscaledZ===0||l.overscaledZ>u&&l.canonical.y===this.canonical.y>>u}children(l){if(this.overscaledZ>=l)return[new ml(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const u=this.canonical.z+1,p=2*this.canonical.x,y=2*this.canonical.y;return[new ml(u,this.wrap,u,p,y),new ml(u,this.wrap,u,p+1,y),new ml(u,this.wrap,u,p,y+1),new ml(u,this.wrap,u,p+1,y+1)]}isLessThan(l){return this.wrapl.wrap)&&(this.overscaledZl.overscaledZ)&&(this.canonical.xl.canonical.x)&&this.canonical.y{let l=h.canonical.x-1,u=h.wrap;return l<0&&(l=(1<{let l=h.canonical.x+1,u=h.wrap;return l===1<new ml(h.overscaledZ,h.wrap,h.canonical.z,h.canonical.x,(h.canonical.y===0?1<new ml(h.overscaledZ,h.wrap,h.canonical.z,h.canonical.x,h.canonical.y===(1<1?null:function(p,y,b,S){const k=Math.sin(b);return p*(Math.sin((1-S)*b)/k)+y*(Math.sin(S*b)/k)}(h.a[l],h.b[l],h.angle,fe(u,0,1))+h.center[l]}function vf(h){if(h.z<=1)return Z2e[h.z+2*h.y+h.x];const l=G3(wj(h));return ii.fromPoints(l)}function zp(h,l,u){return Ze(h,h,1-u),at(h,h,l,u)}function qW(h,l){const u=$p(l.zoom);if(u===0)return vf(h);const p=wj(h),y=G3(p),b=Nt(p.getWest())*l.worldSize,S=Nt(p.getEast())*l.worldSize,k=Ft(p.getNorth())*l.worldSize,I=Ft(p.getSouth())*l.worldSize,O=[b,k,0],z=[S,k,0],U=[b,I,0],q=[S,I,0],K=M([],l.globeMatrix);return xr(O,O,K),xr(z,z,K),xr(U,U,K),xr(q,q,K),y[0]=zp(y[0],U,u),y[1]=zp(y[1],q,u),y[2]=zp(y[2],z,u),y[3]=zp(y[3],O,u),ii.fromPoints(y)}function GW(h,l,u){for(const p of h)xr(p,p,l),Ze(p,p,u)}function HW(h,l,u,p){const y=l/h.worldSize,b=h.globeMatrix;if(u.z<=1){const Ge=vf(u).getCorners();return GW(Ge,b,y),ii.fromPoints(Ge)}const S=wj(u,p),k=G3(S,Ne+bj(h._tileCoverLift));GW(k,b,y);const I=Number.MAX_VALUE,O=[-I,-I,-I],z=[I,I,I];if(S.contains(h.center)){for(const Ve of k)xe(z,z,Ve),Pe(O,O,Ve);O[2]=0;const Ge=h.point,Ue=[Ge.x*y,Ge.y*y,0];return xe(z,z,Ue),Pe(O,O,Ue),new ii(z,O)}if(h._tileCoverLift>0){for(const Ge of k)xe(z,z,Ge),Pe(O,O,Ge);return new ii(z,O)}const U=[b[12]*y,b[13]*y,b[14]*y],q=S.getCenter(),K=fe(h.center.lat,-85.051129,Et),X=fe(q.lat,-85.051129,Et),J=Nt(h.center.lng),re=Ft(K);let ae=J-Nt(q.lng);const he=re-Ft(X);ae>.5?ae-=1:ae<-.5&&(ae+=1);let ce=0;Math.abs(ae)>Math.abs(he)?ce=ae>=0?1:3:(ce=he>=0?0:2,at(U,U,[b[4]*y,b[5]*y,b[6]*y],-Math.sin(Hn(he>=0?S.getSouth():S.getNorth()))*Ne));const ye=k[ce],Ee=k[(ce+1)%4],Ce=new X2e(ye,Ee,U),He=[q3(Ce,0)||ye[0],q3(Ce,1)||ye[1],q3(Ce,2)||ye[2]],ze=$p(h.zoom);if(ze>0){const Ge=function({x:Ve,y:gt,z:wt},kt,jt,Ct,Bt){const pt=1/(1<.5?mr=-1:nr<-.5&&(mr=1),It=((It+mr)*kt-(Ct*=kt))*jt+Ct,Lt=((Lt+mr)*kt-Ct)*jt+Ct,$t=($t*kt-(Bt*=kt))*jt+Bt,Gt=(Gt*kt-Bt)*jt+Bt,[[It,Gt,0],[Lt,Gt,0],[Lt,$t,0],[It,$t,0]]}(u,l,h._pixelsPerMercatorPixel,J,re);for(let Ve=0;VeMath.PI/2*1.01}const XW=Hn(85),Q2e=Math.cos(XW),J2e=Math.sin(XW),eAe=C(),QW=h=>{const l=[];return h.paint.get("circle-pitch-alignment")==="map"&&l.push("PITCH_WITH_MAP"),h.paint.get("circle-pitch-scale")==="map"&&l.push("SCALE_WITH_MAP"),l};function JW(h,l,u,p,y,b,S,k,I){if(b&&h.queryGeometry.isAboveHorizon)return!1;b&&(I*=h.pixelToTileUnitsFactor);const O=h.tileID.canonical,z=u.projection.upVectorScale(O,u.center.lat,u.worldSize).metersToTile;for(const U of l)for(const q of U){const K=q.add(k),X=y&&u.elevation?u.elevation.exaggeration()*y.getElevationAt(K.x,K.y,!0):0,J=u.projection.projectTilePoint(K.x,K.y,O);if(X>0){const ce=u.projection.upVector(O,K.x,K.y);J.x+=ce[0]*z*X,J.y+=ce[1]*z*X,J.z+=ce[2]*z*X}const re=b?K:tAe(J.x,J.y,J.z,p),ae=b?h.tilespaceRays.map(ce=>nAe(ce,X)):h.queryGeometry.screenGeometry,he=ur([],[J.x,J.y,J.z,1],p);if(!S&&b?I*=he[3]/u.cameraToCenterDistance:S&&!b&&(I*=u.cameraToCenterDistance/he[3]),b){const ce=mt((q.y/sr+O.y)/(1<h.width||y.height>h.height||u.x>h.width-y.width||u.y>h.height-y.height)throw new RangeError("out of range source coordinates for image copy");if(y.width>l.width||y.height>l.height||p.x>l.width-y.width||p.y>l.height-y.height)throw new RangeError("out of range destination coordinates for image copy");const I=h.data,O=l.data,z=b===4&&k;for(let U=0;U{l[h.evaluationKey]=I;const O=h.expression.evaluate(l),z=O?O.toNonPremultipliedRenderColor(null):null;z&&(y.data[S+k+0]=Math.floor(255*z.r),y.data[S+k+1]=Math.floor(255*z.g),y.data[S+k+2]=Math.floor(255*z.b),y.data[S+k+3]=Math.floor(255*z.a))};if(h.clips)for(let S=0,k=0;S80*u){k=h[0],I=h[1];let z=k,U=I;for(let q=u;qz&&(z=K),X>U&&(U=X)}O=Math.max(z-k,U-I),O=O!==0?32767/O:0}return mE(b,S,u,k,I,O,0),S}function cK(h,l,u,p,y){let b;if(y===function(S,k,I,O){let z=0;for(let U=k,q=I-O;U0)for(let S=l;S=l;S-=p)b=fK(S/p|0,h[S],h[S+1],b);return b&&tb(b,b.next)&&(xE(b),b=b.next),b}function c0(h,l){if(!h)return h;l||(l=h);let u,p=h;do if(u=!1,p.steiner||!tb(p,p.next)&&qa(p.prev,p,p.next)!==0)p=p.next;else{if(xE(p),p=l=p.prev,p===p.next)break;u=!0}while(u||p!==l);return l}function mE(h,l,u,p,y,b,S){if(!h)return;!S&&b&&function(I,O,z,U){let q=I;do q.z===0&&(q.z=Z3(q.x,q.y,O,z,U)),q.prevZ=q.prev,q.nextZ=q.next,q=q.next;while(q!==I);q.prevZ.nextZ=null,q.prevZ=null,function(K){let X,J=1;do{let re,ae=K;K=null;let he=null;for(X=0;ae;){X++;let ce=ae,ye=0;for(let Ce=0;Ce0||Ee>0&&ce;)ye!==0&&(Ee===0||!ce||ae.z<=ce.z)?(re=ae,ae=ae.nextZ,ye--):(re=ce,ce=ce.nextZ,Ee--),he?he.nextZ=re:K=re,re.prevZ=he,he=re;ae=ce}he.nextZ=null,J*=2}while(X>1)}(q)}(h,p,y,b);let k=h;for(;h.prev!==h.next;){const I=h.prev,O=h.next;if(b?cAe(h,p,y,b):lAe(h))l.push(I.i,h.i,O.i),xE(h),h=O.next,k=O.next;else if((h=O)===k){S?S===1?mE(h=uAe(c0(h),l),l,u,p,y,b,2):S===2&&dAe(h,l,u,p,y,b):mE(c0(h),l,u,p,y,b,1);break}}}function lAe(h){const l=h.prev,u=h,p=h.next;if(qa(l,u,p)>=0)return!1;const y=l.x,b=u.x,S=p.x,k=l.y,I=u.y,O=p.y,z=Math.min(y,b,S),U=Math.min(k,I,O),q=Math.max(y,b,S),K=Math.max(k,I,O);let X=p.next;for(;X!==l;){if(X.x>=z&&X.x<=q&&X.y>=U&&X.y<=K&&gE(y,k,b,I,S,O,X.x,X.y)&&qa(X.prev,X,X.next)>=0)return!1;X=X.next}return!0}function cAe(h,l,u,p){const y=h.prev,b=h,S=h.next;if(qa(y,b,S)>=0)return!1;const k=y.x,I=b.x,O=S.x,z=y.y,U=b.y,q=S.y,K=Math.min(k,I,O),X=Math.min(z,U,q),J=Math.max(k,I,O),re=Math.max(z,U,q),ae=Z3(K,X,l,u,p),he=Z3(J,re,l,u,p);let ce=h.prevZ,ye=h.nextZ;for(;ce&&ce.z>=ae&&ye&&ye.z<=he;){if(ce.x>=K&&ce.x<=J&&ce.y>=X&&ce.y<=re&&ce!==y&&ce!==S&&gE(k,z,I,U,O,q,ce.x,ce.y)&&qa(ce.prev,ce,ce.next)>=0||(ce=ce.prevZ,ye.x>=K&&ye.x<=J&&ye.y>=X&&ye.y<=re&&ye!==y&&ye!==S&&gE(k,z,I,U,O,q,ye.x,ye.y)&&qa(ye.prev,ye,ye.next)>=0))return!1;ye=ye.nextZ}for(;ce&&ce.z>=ae;){if(ce.x>=K&&ce.x<=J&&ce.y>=X&&ce.y<=re&&ce!==y&&ce!==S&&gE(k,z,I,U,O,q,ce.x,ce.y)&&qa(ce.prev,ce,ce.next)>=0)return!1;ce=ce.prevZ}for(;ye&&ye.z<=he;){if(ye.x>=K&&ye.x<=J&&ye.y>=X&&ye.y<=re&&ye!==y&&ye!==S&&gE(k,z,I,U,O,q,ye.x,ye.y)&&qa(ye.prev,ye,ye.next)>=0)return!1;ye=ye.nextZ}return!0}function uAe(h,l){let u=h;do{const p=u.prev,y=u.next.next;!tb(p,y)&&dK(p,u,u.next,y)&&yE(p,y)&&yE(y,p)&&(l.push(p.i,u.i,y.i),xE(u),xE(u.next),u=h=y),u=u.next}while(u!==h);return c0(u)}function dAe(h,l,u,p,y,b){let S=h;do{let k=S.next.next;for(;k!==S.prev;){if(S.i!==k.i&&gAe(S,k)){let I=hK(S,k);return S=c0(S,S.next),I=c0(I,I.next),mE(S,l,u,p,y,b,0),void mE(I,l,u,p,y,b,0)}k=k.next}S=S.next}while(S!==h)}function hAe(h,l){let u=h.x-l.x;return u===0&&(u=h.y-l.y,u===0)&&(u=(h.next.y-h.y)/(h.next.x-h.x)-(l.next.y-l.y)/(l.next.x-l.x)),u}function fAe(h,l){const u=function(y,b){let S=b;const k=y.x,I=y.y;let O,z=-1/0;if(tb(y,S))return S;do{if(tb(y,S.next))return S.next;if(I<=S.y&&I>=S.next.y&&S.next.y!==S.y){const J=S.x+(I-S.y)*(S.next.x-S.x)/(S.next.y-S.y);if(J<=k&&J>z&&(z=J,O=S.x=S.x&&S.x>=q&&k!==S.x&&uK(IO.x||S.x===O.x&&pAe(O,S)))&&(O=S,X=J)}S=S.next}while(S!==U);return O}(h,l);if(!u)return l;const p=hK(u,h);return c0(p,p.next),c0(u,u.next)}function pAe(h,l){return qa(h.prev,h,l.prev)<0&&qa(l.next,h,h.next)<0}function Z3(h,l,u,p,y){return(h=1431655765&((h=858993459&((h=252645135&((h=16711935&((h=(h-u)*y|0)|h<<8))|h<<4))|h<<2))|h<<1))|(l=1431655765&((l=858993459&((l=252645135&((l=16711935&((l=(l-p)*y|0)|l<<8))|l<<4))|l<<2))|l<<1))<<1}function mAe(h){let l=h,u=h;do(l.x=(h-S)*(b-k)&&(h-S)*(p-k)>=(u-S)*(l-k)&&(u-S)*(b-k)>=(y-S)*(p-k)}function gE(h,l,u,p,y,b,S,k){return!(h===S&&l===k)&&uK(h,l,u,p,y,b,S,k)}function gAe(h,l){return h.next.i!==l.i&&h.prev.i!==l.i&&!function(u,p){let y=u;do{if(y.i!==u.i&&y.next.i!==u.i&&y.i!==p.i&&y.next.i!==p.i&&dK(y,y.next,u,p))return!0;y=y.next}while(y!==u);return!1}(h,l)&&(yE(h,l)&&yE(l,h)&&function(u,p){let y=u,b=!1;const S=(u.x+p.x)/2,k=(u.y+p.y)/2;do y.y>k!=y.next.y>k&&y.next.y!==y.y&&S<(y.next.x-y.x)*(k-y.y)/(y.next.y-y.y)+y.x&&(b=!b),y=y.next;while(y!==u);return b}(h,l)&&(qa(h.prev,h,l.prev)||qa(h,l.prev,l))||tb(h,l)&&qa(h.prev,h,h.next)>0&&qa(l.prev,l,l.next)>0)}function qa(h,l,u){return(l.y-h.y)*(u.x-l.x)-(l.x-h.x)*(u.y-l.y)}function tb(h,l){return h.x===l.x&&h.y===l.y}function dK(h,l,u,p){const y=Ej(qa(h,l,u)),b=Ej(qa(h,l,p)),S=Ej(qa(u,p,h)),k=Ej(qa(u,p,l));return y!==b&&S!==k||!(y!==0||!Tj(h,u,l))||!(b!==0||!Tj(h,p,l))||!(S!==0||!Tj(u,h,p))||!(k!==0||!Tj(u,l,p))}function Tj(h,l,u){return l.x<=Math.max(h.x,u.x)&&l.x>=Math.min(h.x,u.x)&&l.y<=Math.max(h.y,u.y)&&l.y>=Math.min(h.y,u.y)}function Ej(h){return h>0?1:h<0?-1:0}function yE(h,l){return qa(h.prev,h,h.next)<0?qa(h,l,h.next)>=0&&qa(h,h.prev,l)>=0:qa(h,l,h.prev)<0||qa(h,h.next,l)<0}function hK(h,l){const u=X3(h.i,h.x,h.y),p=X3(l.i,l.x,l.y),y=h.next,b=l.prev;return h.next=l,l.prev=h,u.next=y,y.prev=u,p.next=u,u.prev=p,b.next=p,p.prev=b,p}function fK(h,l,u,p){const y=X3(h,l,u);return p?(y.next=p.next,y.prev=p,p.next.prev=y,p.next=y):(y.prev=y,y.next=y),y}function xE(h){h.next.prev=h.prev,h.prev.next=h.next,h.prevZ&&(h.prevZ.nextZ=h.nextZ),h.nextZ&&(h.nextZ.prevZ=h.prevZ)}function X3(h,l,u){return{i:h,x:l,y:u,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function _E(h,l){const u=h.length;if(u<=1)return[h];const p=[];let y,b;for(let S=0;S1)for(let S=0;S=sr&&u>=sr}static evaluate(l){if(l.length===0)return new Up;let u=[];for(const I of l)u.push(...I.portals);if(u.length===0)return new Up;for(const I of u){const O=I.va,z=I.vb;(Up.isOnBorder(O.x,z.x)||Up.isOnBorder(O.y,z.y))&&(I.type="border")}const p=u.filter(I=>I.type!=="unevaluated"),y=u.filter(I=>I.type==="unevaluated");if(y.length===0)return new Up;y.sort((I,O)=>I.hash===O.hash?I.isTunnel===O.isTunnel?0:I.isTunnel?-1:1:I.hashI.hashb!=="fill-tunnel-structure-color"),this.tunnelProgramConfigurations=new ne(u,{zoom:p,lut:y},b=>b!=="fill-bridge-guard-rail-color")}addVertices(l,u){const p=this.unevalVertices.length;for(let y=0;y=b.min.x&&U.x<=b.max.x&&U.y>=b.min.y&&U.y<=b.max.y||q.x>=b.min.x&&q.x<=b.max.x&&q.y>=b.min.y&&q.y<=b.max.y||xf(U,q,k))||this.isOnBorder(U.x,q.x)||this.isOnBorder(U.y,q.y))continue;const K=Ac.computeEdgeHash(this.unevalVertices[O],this.unevalVertices[z]);let X,J=this.vertexHashLookup.get(Ac.computePosHash(U));J!=null?X=J.next:(J=this.vertexHashLookup.get(Ac.computePosHash(q)),X=J!=null?J.prev:K),this.unevalEdges.push({polygonIdx:l,a:O,b:z,hash:K,portalHash:X,isTunnel:y,type:"unevaluated",featureInfo:S})}}addPortalCandidates(l,u,p,y,b){if(u.length!==0){this.vertexHashLookup.clear();for(const S of u){if(S.length===0)continue;const k=S[0];let I=Ac.computeEdgeHash(k[k.length-2],k[k.length-1]);for(let O=0;O({vertexOffset:0,primitiveOffset:this.indexArray.length}),p=q=>{q.primitiveLength=this.indexArray.length-q.primitiveOffset},y=new xAe(this.vertexPositions,this.vertexNormals,this.indexArray);this.prepareEdges(l.portals,this.unevalEdges);const b=u(),S=u(),k=u(),I=(q,K)=>{q.sort((J,re)=>J.type===K&&re.type!==K?-1:J.type!==K&&re.type===K?1:0);const X=q.findIndex(J=>J.type!==K);return X>=0?X:q.length};let O=0;this.unevalEdges.length>0&&(O=I(this.unevalEdges,"none"),this.constructBridgeStructures(y,this.unevalVertices,this.unevalHeights,this.unevalEdges,{min:0,max:O},this.tileToMeters)),p(k);const z=u(),U=u();if(this.unevalEdges.length>0){const q=this.unevalEdges.splice(O),K=I(q,"tunnel")+O;this.unevalEdges.push(...q),this.constructTunnelStructures(y,this.unevalVertices,this.unevalHeights,this.unevalEdges,{min:0,max:O},{min:O,max:K})}p(z),y.addTriangles(this.unevalTriangles,this.unevalVertices,this.unevalHeights),p(U),y.addTriangles(this.unevalTunnelTriangles,this.unevalVertices,this.unevalHeights),p(S),y.addTriangles(this.unevalTunnelTriangles,this.unevalVertices,[-.1]),p(b),this.maskSegments=Si.simpleSegment(0,U.primitiveOffset,0,U.primitiveLength),this.depthSegments=Si.simpleSegment(0,S.primitiveOffset,0,S.primitiveLength),this.renderableBridgeSegments=Si.simpleSegment(0,k.primitiveOffset,0,k.primitiveLength),this.renderableTunnelSegments=Si.simpleSegment(0,z.primitiveOffset,0,z.primitiveLength),this.shadowCasterSegments=Si.simpleSegment(0,b.primitiveOffset,0,b.primitiveLength)}update(l,u,p,y,b,S,k,I){this.bridgeProgramConfigurations.updatePaintArrays(l,u,b,p,y,S,k,I),this.tunnelProgramConfigurations.updatePaintArrays(l,u,b,p,y,S,k,I)}upload(l){this.vertexBuffer||this.vertexPositions.length===0||this.vertexNormals.length===0||this.indexArray.length===0||(this.vertexBuffer=l.createVertexBuffer(this.vertexPositions,aAe.members),this.vertexBufferNormal=l.createVertexBuffer(this.vertexNormals,oAe.members),this.indexBuffer=l.createIndexBuffer(this.indexArray),this.bridgeProgramConfigurations.upload(l),this.tunnelProgramConfigurations.upload(l))}destroy(){this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBufferNormal.destroy(),this.indexBuffer.destroy()),this.maskSegments&&(this.maskSegments.destroy(),this.depthSegments.destroy(),this.renderableBridgeSegments.destroy(),this.renderableTunnelSegments.destroy(),this.shadowCasterSegments.destroy()),this.bridgeProgramConfigurations.destroy(),this.tunnelProgramConfigurations.destroy()}populatePaintArrays(l,u,p,y,b){const S=(k,I)=>{for(let O=0;OSe(jt,u[Ct].x,u[Ct].y,p[Ct]*I),U=Te(),q=Te(),K=Te(),X=Te(),J=Te(),re=(jt,Ct)=>{const Bt=k.get(Ac.computePosHash(u[Ct])),pt=Bt.from,It=Bt.to;if(!pt||!It)return;z(U,pt),z(q,Ct),z(K,It),or(X),Sr(U,q)||(jr(J,q,U),_t(X,J)),Sr(K,q)||(jr(J,K,q),ge(X,X,_t(J,J)));const Lt=Je(X);return Lt>0?Ze(jt,X,1/Lt):void 0};let ae=Number.POSITIVE_INFINITY;this.sortSubarray(y,b.min,b.max,(jt,Ct)=>jt.featureInfo.featureIndex-Ct.featureInfo.featureIndex);const he=Te(),ce=Te(),ye=Te(),Ee=Te(),Ce=Te(),He=Te(),ze=Te(),Ge=Te(),Ue=Te(),Ve=[Te(),Te(),Te(),Te()],gt=[Te(),Te(),Te(),Te()],wt=[{coord:new Ot(0,0),height:0},{coord:new Ot(0,0),height:0}],kt=(jt,Ct)=>jt>Ct;for(let jt=b.min;jtae.featureInfo.featureIndex-he.featureInfo.featureIndex;this.sortSubarray(y,b.min,b.max,I),this.sortSubarray(y,S.min,S.max,I);const O=ae=>_t(ae,ae),z=[{coord:new Ot(0,0),height:0},{coord:new Ot(0,0),height:0}],U=(ae,he)=>aek.hash===I.hash?I.polygonIdx-k.polygonIdx:I.hash>k.hash?1:-1);let p=0,y=0,b=0,S=u[p].polygonIdx;do y++,(y===u.length||u[p].hash!==u[y].hash)&&((y-p===1||u[y-1].polygonIdx!==S)&&(bO.portalHashz.hash?k++:z.hash>O.portalHash?I++:(O.type=z.type,k++)}}}isOnBorder(l,u){return l<=0&&u<=0||l>=sr&&u>=sr}addFeatureSection(l,u,p,y){return l!==u&&(u=l,p.push({featureIndex:l,vertexStart:y.getVertexCount()}),y.clearVertexLookup()),u}sortSubarray(l,u,p,y){const b=l.slice(u,p);b.sort(y),l.splice(u,b.length,...b)}static computeEdgeHash(l,u){return(l.y===u.y&&l.x>u.x||l.y>u.y)&&([l,u]=[u,l]),BigInt(Ac.computePosHash(l))<<32n|BigInt(Ac.computePosHash(u))}static computePosHash(l){return((65535&l.x)<<16|65535&l.y)>>>0}}function _Ae(h,l){return h>l?1:h0))return u;u=u.left}}return null}contains(l){for(var u=this._root,p=this._compare;u;){var y=p(l,u.key);if(y===0)return!0;u=y<0?u.left:u.right}return!1}remove(l){var u=this.find(l);if(!u)return!1;if(this.splay(u),u.left)if(u.right){var p=this.minNode(u.right);p.parent!==u&&(this.replace(p,p.right),p.right=u.right,p.right.parent=p),this.replace(u,p),p.left=u.left,p.left.parent=p}else this.replace(u,u.left);else this.replace(u,u.right);return this._size--,!0}removeNode(l){if(!l)return!1;if(this.splay(l),l.left)if(l.right){var u=this.minNode(l.right);u.parent!==l&&(this.replace(u,u.right),u.right=l.right,u.right.parent=u),this.replace(l,u),u.left=l.left,u.left.parent=u}else this.replace(l,l.left);else this.replace(l,l.right);return this._size--,!0}erase(l){var u=this.find(l);if(u){this.splay(u);var p=u.left,y=u.right,b=null;p&&(p.parent=null,b=this.maxNode(p),this.splay(b),this._root=b),y&&(p?b.right=y:this._root=y,y.parent=b),this._size--}}pop(){var l=this._root,u=null;if(l){for(;l.left;)l=l.left;u={key:l.key,data:l.data},this.remove(l.key)}return u}next(l){var u=l;if(u)if(u.right)for(u=u.right;u&&u.left;)u=u.left;else for(u=l.parent;u&&u.right===l;)l=u,u=u.parent;return u}prev(l){var u=l;if(u)if(u.left)for(u=u.left;u&&u.right;)u=u.right;else for(u=l.parent;u&&u.left===l;)l=u,u=u.parent;return u}forEach(l){for(var u=this._root,p=[],y=!1,b=0;!y;)u?(p.push(u),u=u.left):p.length>0?(l(u=p.pop(),b++),u=u.right):y=!0;return this}range(l,u,p,y){const b=[],S=this._compare;let k,I=this._root;for(;b.length!==0||I;)if(I)b.push(I),I=I.left;else{if(I=b.pop(),k=S(I.key,u),k>0)break;if(S(I.key,l)>=0&&p.call(y,I))return this;I=I.right}return this}keys(){for(var l=this._root,u=[],p=[],y=!1;!y;)l?(u.push(l),l=l.left):u.length>0?(l=u.pop(),p.push(l.key),l=l.right):y=!0;return p}values(){for(var l=this._root,u=[],p=[],y=!1;!y;)l?(u.push(l),l=l.left):u.length>0?(l=u.pop(),p.push(l.data),l=l.right):y=!0;return p}at(l){for(var u=this._root,p=[],y=!1,b=0;!y;)if(u)p.push(u),u=u.left;else if(p.length>0){if(u=p.pop(),b===l)return u;b++,u=u.right}else y=!0;return null}load(l=[],u=[],p=!1){if(this._size!==0)throw new Error("bulk-load: tree is not empty");const y=l.length;return p&&r5(l,u,0,y-1,this._compare),this._root=t5(null,l,u,0,y),this._size=y,this}min(){var l=this.minNode(this._root);return l?l.key:null}max(){var l=this.maxNode(this._root);return l?l.key:null}isEmpty(){return this._root===null}get size(){return this._size}static createTree(l,u,p,y,b){return new e5(p,b).load(l,u,y)}}function t5(h,l,u,p,y){const b=y-p;if(b>0){const S=p+Math.floor(b/2),k={key:l[S],data:u[S],parent:h};return k.left=t5(k,l,u,p,S),k.right=t5(k,l,u,S+1,y),k}return null}function r5(h,l,u,p,y){if(u>=p)return;const b=h[u+p>>1];let S=u-1,k=p+1;for(;;){do S++;while(y(h[S],b)<0);do k--;while(y(h[k],b)>0);if(S>=k)break;let I=h[S];h[S]=h[k],h[k]=I,I=l[S],l[S]=l[k],l[k]=I}r5(h,l,u,k,y),r5(h,l,k+1,p,y)}const mK=11102230246251565e-32,oc=134217729,vAe=(3+8*mK)*mK;function n5(h,l,u,p,y){let b,S,k,I,O=l[0],z=p[0],U=0,q=0;z>O==z>-O?(b=O,O=l[++U]):(b=z,z=p[++q]);let K=0;if(UO==z>-O?(S=O+b,k=b-(S-O),O=l[++U]):(S=z+b,k=b-(S-z),z=p[++q]),b=S,k!==0&&(y[K++]=k);UO==z>-O?(S=b+O,I=S-b,k=b-(S-I)+(O-I),O=l[++U]):(S=b+z,I=S-b,k=b-(S-I)+(z-I),z=p[++q]),b=S,k!==0&&(y[K++]=k);for(;U0:(p[0]-l[0])*(u[1]-l[1])-(u[0]-l[0])*(p[1]-l[1])>0}isAbove(l){return!this.isBelow(l)}isVertical(){return this.point[0]===this.otherEvent.point[0]}get inResult(){return this.resultTransition!==0}clone(){const l=new nb(this.point,this.left,this.otherEvent,this.isSubject,this.type);return l.contourId=this.contourId,l.resultTransition=this.resultTransition,l.prevInResult=this.prevInResult,l.isExteriorRing=this.isExteriorRing,l.inOut=this.inOut,l.otherInOut=this.otherInOut,l}}function bf(h,l){return h[0]===l[0]&&h[1]===l[1]}function i5(h,l,u){const p=function(y,b,S,k,I,O){const z=(b-O)*(S-I),U=(y-I)*(k-O),q=z-U;if(z===0||U===0||z>0!=U>0)return q;const K=Math.abs(z+U);return Math.abs(q)>=33306690738754716e-32*K?q:-function(X,J,re,ae,he,ce,ye){let Ee,Ce,He,ze,Ge,Ue,Ve,gt,wt,kt,jt,Ct,Bt,pt,It,Lt,$t,Gt;const mr=X-he,nr=re-he,rr=J-ce,Ht=ae-ce;pt=mr*Ht,Ue=oc*mr,Ve=Ue-(Ue-mr),gt=mr-Ve,Ue=oc*Ht,wt=Ue-(Ue-Ht),kt=Ht-wt,It=gt*kt-(pt-Ve*wt-gt*wt-Ve*kt),Lt=rr*nr,Ue=oc*rr,Ve=Ue-(Ue-rr),gt=rr-Ve,Ue=oc*nr,wt=Ue-(Ue-nr),kt=nr-wt,$t=gt*kt-(Lt-Ve*wt-gt*wt-Ve*kt),jt=It-$t,Ge=It-jt,rb[0]=It-(jt+Ge)+(Ge-$t),Ct=pt+jt,Ge=Ct-pt,Bt=pt-(Ct-Ge)+(jt-Ge),jt=Bt-Lt,Ge=Bt-jt,rb[1]=Bt-(jt+Ge)+(Ge-Lt),Gt=Ct+jt,Ge=Gt-Ct,rb[2]=Ct-(Gt-Ge)+(jt-Ge),rb[3]=Gt;let fr=function(On,ln){let Fn=ln[0];for(let yn=1;yn<4;yn++)Fn+=ln[yn];return Fn}(0,rb),Er=22204460492503146e-32*ye;if(fr>=Er||-fr>=Er||(Ge=X-mr,Ee=X-(mr+Ge)+(Ge-he),Ge=re-nr,He=re-(nr+Ge)+(Ge-he),Ge=J-rr,Ce=J-(rr+Ge)+(Ge-ce),Ge=ae-Ht,ze=ae-(Ht+Ge)+(Ge-ce),Ee===0&&Ce===0&&He===0&&ze===0)||(Er=11093356479670487e-47*ye+vAe*Math.abs(fr),fr+=mr*ze+Ht*Ee-(rr*He+nr*Ce),fr>=Er||-fr>=Er))return fr;pt=Ee*Ht,Ue=oc*Ee,Ve=Ue-(Ue-Ee),gt=Ee-Ve,Ue=oc*Ht,wt=Ue-(Ue-Ht),kt=Ht-wt,It=gt*kt-(pt-Ve*wt-gt*wt-Ve*kt),Lt=Ce*nr,Ue=oc*Ce,Ve=Ue-(Ue-Ce),gt=Ce-Ve,Ue=oc*nr,wt=Ue-(Ue-nr),kt=nr-wt,$t=gt*kt-(Lt-Ve*wt-gt*wt-Ve*kt),jt=It-$t,Ge=It-jt,kc[0]=It-(jt+Ge)+(Ge-$t),Ct=pt+jt,Ge=Ct-pt,Bt=pt-(Ct-Ge)+(jt-Ge),jt=Bt-Lt,Ge=Bt-jt,kc[1]=Bt-(jt+Ge)+(Ge-Lt),Gt=Ct+jt,Ge=Gt-Ct,kc[2]=Ct-(Gt-Ge)+(jt-Ge),kc[3]=Gt;const $r=n5(4,rb,4,kc,gK);pt=mr*ze,Ue=oc*mr,Ve=Ue-(Ue-mr),gt=mr-Ve,Ue=oc*ze,wt=Ue-(Ue-ze),kt=ze-wt,It=gt*kt-(pt-Ve*wt-gt*wt-Ve*kt),Lt=rr*He,Ue=oc*rr,Ve=Ue-(Ue-rr),gt=rr-Ve,Ue=oc*He,wt=Ue-(Ue-He),kt=He-wt,$t=gt*kt-(Lt-Ve*wt-gt*wt-Ve*kt),jt=It-$t,Ge=It-jt,kc[0]=It-(jt+Ge)+(Ge-$t),Ct=pt+jt,Ge=Ct-pt,Bt=pt-(Ct-Ge)+(jt-Ge),jt=Bt-Lt,Ge=Bt-jt,kc[1]=Bt-(jt+Ge)+(Ge-Lt),Gt=Ct+jt,Ge=Gt-Ct,kc[2]=Ct-(Gt-Ge)+(jt-Ge),kc[3]=Gt;const Lr=n5($r,gK,4,kc,yK);pt=Ee*ze,Ue=oc*Ee,Ve=Ue-(Ue-Ee),gt=Ee-Ve,Ue=oc*ze,wt=Ue-(Ue-ze),kt=ze-wt,It=gt*kt-(pt-Ve*wt-gt*wt-Ve*kt),Lt=Ce*He,Ue=oc*Ce,Ve=Ue-(Ue-Ce),gt=Ce-Ve,Ue=oc*He,wt=Ue-(Ue-He),kt=He-wt,$t=gt*kt-(Lt-Ve*wt-gt*wt-Ve*kt),jt=It-$t,Ge=It-jt,kc[0]=It-(jt+Ge)+(Ge-$t),Ct=pt+jt,Ge=Ct-pt,Bt=pt-(Ct-Ge)+(jt-Ge),jt=Bt-Lt,Ge=Bt-jt,kc[1]=Bt-(jt+Ge)+(Ge-Lt),Gt=Ct+jt,Ge=Gt-Ct,kc[2]=Ct-(Gt-Ge)+(jt-Ge),kc[3]=Gt;const on=n5(Lr,yK,4,kc,xK);return xK[on-1]}(y,b,S,k,I,O,K)}(h[0],h[1],l[0],l[1],u[0],u[1]);return p>0?-1:p<0?1:0}function Sg(h,l){const u=h.point,p=l.point;return u[0]>p[0]?1:u[0]p[1]?1:-1:function(y,b,S){return y.left!==b.left?y.left?1:-1:i5(S,y.otherEvent.point,b.otherEvent.point)!==0?y.isBelow(b.otherEvent.point)?-1:1:!y.isSubject&&b.isSubject?1:-1}(h,l,u)}function Tg(h,l,u){const p=new nb(l,!1,h,h.isSubject),y=new nb(l,!0,h.otherEvent,h.isSubject);return bf(h.point,h.otherEvent.point)&&console.warn("what is that, a collapsed segment?",h),p.contourId=y.contourId=h.contourId,Sg(y,h.otherEvent)>0&&(h.otherEvent.left=!0,y.left=!1),h.otherEvent.otherEvent=y,h.otherEvent=p,u.push(y),u.push(p),u}function Aj(h,l){return h[0]*l[1]-h[1]*l[0]}function s5(h,l){return h[0]*l[0]+h[1]*l[1]}function a5(h,l,u){const p=function(I,O,z,U){const q=[O[0]-I[0],O[1]-I[1]],K=[U[0]-z[0],U[1]-z[1]];function X(He,ze,Ge){return[He[0]+ze*Ge[0],He[1]+ze*Ge[1]]}const J=[z[0]-I[0],z[1]-I[1]];let re=Aj(q,K),ae=re*re;const he=s5(q,q);if(ae>0){const He=Aj(J,K)/re;if(He<0||He>1)return null;const ze=Aj(J,q)/re;return ze<0||ze>1?null:He===0||He===1?[X(I,He,q)]:ze===0||ze===1?[X(z,ze,K)]:[X(I,He,q)]}if(re=Aj(J,q),ae=re*re,ae>0)return null;const ce=s5(q,J)/he,ye=ce+s5(q,K)/he,Ee=Math.min(ce,ye),Ce=Math.max(ce,ye);return Ee<=1&&Ce>=0?Ee===1?[X(I,Ee>0?Ee:0,q)]:Ce===0?[X(I,Ce<1?Ce:1,q)]:[X(I,Ee>0?Ee:0,q),X(I,Ce<1?Ce:1,q)]:null}(h.point,h.otherEvent.point,l.point,l.otherEvent.point),y=p?p.length:0;if(y===0||y===1&&(bf(h.point,l.point)||bf(h.otherEvent.point,l.otherEvent.point))||y===2&&h.isSubject===l.isSubject)return 0;if(y===1)return!bf(h.point,p[0])&&!bf(h.otherEvent.point,p[0])&&Tg(h,p[0],u),!bf(l.point,p[0])&&!bf(l.otherEvent.point,p[0])&&Tg(l,p[0],u),1;const b=[];let S=!1,k=!1;return bf(h.point,l.point)?S=!0:Sg(h,l)===1?b.push(l,h):b.push(h,l),bf(h.otherEvent.point,l.otherEvent.point)?k=!0:Sg(h.otherEvent,l.otherEvent)===1?b.push(l.otherEvent,h.otherEvent):b.push(h.otherEvent,l.otherEvent),S&&k||S?(l.type=1,h.type=l.inOut===h.inOut?2:3,S&&!k&&Tg(b[1].otherEvent,b[0].point,u),2):k?(Tg(b[0],b[1].point,u),3):b[0]!==b[3].otherEvent?(Tg(b[0],b[1].point,u),Tg(b[1],b[2].point,u),3):(Tg(b[0],b[1].point,u),Tg(b[3].otherEvent,b[2].point,u),3)}function bAe(h,l){if(h===l)return 0;if(i5(h.point,h.otherEvent.point,l.point)!==0||i5(h.point,h.otherEvent.point,l.otherEvent.point)!==0)return bf(h.point,l.point)?h.isBelow(l.otherEvent.point)?-1:1:h.point[0]===l.point[0]?h.point[1](l.contourId??0)?1:-1}return Sg(h,l)===1?1:-1}class wAe{constructor(){this.points=[],this.holeIds=[],this.holeOf=null,this.depth=null}isExterior(){return this.holeOf==null}}function SAe(h,l,u,p){let y,b=h+1,S=l[h].point;const k=l.length;for(bp;)b--;return b}function TAe(h,l,u){const p=new wAe;if(h.prevInResult!=null){const y=h.prevInResult,b=y.outputContourId;if(y.resultTransition>0){const S=l[b];if(S.holeOf!=null){const k=S.holeOf;l[k].holeIds.push(u),p.holeOf=k,p.depth=l[b].depth}else l[b].holeIds.push(u),p.holeOf=b,p.depth=l[b].depth+1}else p.holeOf=null,p.depth=l[b].depth}else p.holeOf=null,p.depth=0;return p}const vK=Math.max,bK=Math.min;let kj=0;function wK(h,l,u,p,y,b){let S,k,I,O,z,U;for(S=0,k=h.length-1;S0?U.left=!0:z.left=!0;const q=I[0],K=I[1];y[0]=bK(y[0],q),y[1]=bK(y[1],K),y[2]=vK(y[2],q),y[3]=vK(y[3],K),p.push(z),p.push(U)}}const Cj=[];function SK(h,l,u){let p=h,y=l;typeof h[0][0][0]=="number"&&(p=[h]),typeof l[0][0][0]=="number"&&(y=[l]);let b=function(q,K,X){let J=null;return q.length*K.length===0&&(X===0?J=Cj:X===2?J=q:(X===1||X===3)&&(J=q.length===0?K:q)),J}(p,y,u);if(b)return b===Cj?null:b;const S=[1/0,1/0,-1/0,-1/0],k=[1/0,1/0,-1/0,-1/0],I=function(q,K,X,J,re){const ae=new jx(void 0,Sg);let he,ce,ye,Ee,Ce,He;for(ye=0,Ee=q.length;yeJ[2]||J[0]>X[2]||X[1]>J[3]||J[1]>X[3])&&(re===0?ae=Cj:re===2?ae=q:(re===1||re===3)&&(ae=q.concat(K))),ae}(p,y,S,k,u),b)return b===Cj?null:b;const O=function(q,K,X,J,re,ae){const he=new e5(bAe),ce=[],ye=Math.min(J[2],re[2]);let Ee,Ce,He;for(;q.length!==0;){let ze=q.pop();if(ce.push(ze),ae===0&&ze.point[0]>ye||ae===2&&ze.point[0]>J[2])break;if(ze.left){Ce=Ee=he.insert(ze),He=he.minNode(),Ee=Ee!==He?he.prev(Ee):null,Ce=he.next(Ce);const Ge=Ee?Ee.key:null;let Ue;if(bE(ze,Ge,ae),Ce&&a5(ze,Ce.key,q)===2&&(bE(ze,Ge,ae),bE(Ce.key,ze,ae)),Ee&&a5(Ee.key,ze,q)===2){let Ve=Ee;Ve=Ve!==He?he.prev(Ve):null,Ue=Ve?Ve.key:null,bE(Ge,Ue,ae),bE(ze,Ge,ae)}}else ze=ze.otherEvent,Ce=Ee=he.find(ze),Ee&&Ce&&(Ee=Ee!==He?he.prev(Ee):null,Ce=he.next(Ce),he.remove(ze),Ce&&Ee&&a5(Ee.key,Ce.key,q))}return ce}(I,0,0,S,k,u),z=function(q){let K,X;const J=function(he){let ce,ye,Ee,Ce,He;const ze=[];for(ye=0,Ee=he.length;ye{re[He]=!0,He=J.length)&&J[Ee];);ae.push(ce)}return ae}(O),U=[];for(let q=0;q{S.push(new Ot(U,I+(U-k)/(O-k)*(z-I)))}:(S,k,I,O,z,U)=>{S.push(new Ot(k+(U-I)/(z-I)*(O-k),U))};for(const S of h){const k=[];for(const I of S){if(I.length<=2)continue;const O=[];for(let q=0;ql&&b(O,K,X,J,re,l):ae>u?he=l&&b(O,K,X,J,re,l),he>u&&ae<=u&&b(O,K,X,J,re,u)}let z=I[I.length-1];const U=p===0?z.x:z.y;U>=l&&U<=u&&O.push(z),O.length&&(z=O[O.length-1],O[0].x===z.x&&O[0].y===z.y||O.push(O[0]),k.push(O))}k.length&&y.push(k)}return y}function EAe(h,l){const u=SK(o5(h),o5([l]),0);return u==null?[]:TK(u)}function AAe(h,l,u=0){let y=o5(h,65536);const b=[];for(;l.valid();l.next()){const[S,k]=l.get();let I=S.x*65536,O=S.y*65536,z=k.x*65536,U=k.y*65536;const q=z-I,K=U-O,X=Math.hypot(q,K);if(X===0)continue;I-=q*u,O-=K*u,z+=q*u,U+=K*u;const J=Math.trunc(K/X*3),re=-Math.trunc(q/X*3);b.push([[[I,O],[z,U],[z+J,U+re],[I+J,O+re],[I,O]]])}return b.length>0&&(y=SK(y,b,2)),TK(y,1/65536,128)}function o5(h,l=1){return[h.map(u=>u.map(p=>[p.x*l,p.y*l]))]}function TK(h,l=1,u){return h.map(p=>p.map((y,b)=>{const S=y.map(k=>{let I=k[0],O=k[1];return u&&(I=Math.round(I/u)*u,O=Math.round(O/u)*u),new Ot(I*l,O*l)._round()});return b>0&&S.reverse(),S}))}class l5{constructor(l,u){this.layoutVertexArray=new ic,this.indexArray=new bs,this.lineIndexArray=new cu,this.triangleSegments=new Si,this.lineSegments=new Si,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut}),this.uploaded=!1,u&&(this.elevatedLayoutVertexArray=new wc)}update(l,u,p,y,b,S,k,I){this.programConfigurations.updatePaintArrays(l,u,b,p,y,S,k,I)}isEmpty(){return this.layoutVertexArray.length===0}needsUpload(){return this.programConfigurations.needsUpload}upload(l){this.uploaded||(this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,iAe.members),this.indexBuffer=l.createIndexBuffer(this.indexArray),this.lineIndexBuffer=l.createIndexBuffer(this.lineIndexArray),this.elevatedLayoutVertexArray&&this.elevatedLayoutVertexArray.length>0&&(this.elevatedLayoutVertexBuffer=l.createVertexBuffer(this.elevatedLayoutVertexArray,sAe.members))),this.programConfigurations.upload(l),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.elevatedLayoutVertexBuffer&&this.elevatedLayoutVertexBuffer.destroy(),this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.lineIndexBuffer.destroy(),this.programConfigurations.destroy(),this.triangleSegments.destroy(),this.lineSegments.destroy())}populatePaintArrays(l,u,p,y,b,S,k){this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,l,u,p,y,b,S,void 0,k)}}class jj{constructor(l){this.zoom=l.zoom,this.pixelRatio=l.pixelRatio,this.overscaling=l.overscaling,this.layers=l.layers,this.layerIds=this.layers.map(u=>u.fqid),this.index=l.index,this.hasPattern=!1,this.patternFeatures=[],this.lut=l.lut,this.bufferData=new l5(l,!1),this.elevationBufferData=new l5(l,!0),this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.projection=l.projection,this.elevationMode=this.layers[0].layout.get("fill-elevation-reference"),this.sourceLayerIndex=l.sourceLayerIndex,this.worldview=l.worldview,this.hasAppearances=null}updateFootprints(l,u){}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){this.hasPattern=Q3("fill",this.layers,this.pixelRatio,u);const b=this.layers[0].layout.get("fill-sort-key"),S=[];for(const{feature:k,id:I,index:O,sourceLayerIndex:z}of l){const U=this.layers[0]._featureFilter.needGeometry,q=gn(k,U);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),q,p))continue;const K=b?b.evaluate(q,{},p,u.availableImages):void 0,X={id:I,properties:k.properties,type:k.type,sourceLayerIndex:z,index:O,geometry:U?q.geometry:Ur(k,p,y),patterns:{},sortKey:K};S.push(X)}b&&S.sort((k,I)=>k.sortKey-I.sortKey);for(const k of S){const{geometry:I,index:O,sourceLayerIndex:z}=k;if(this.hasPattern){const U=J3("fill",this.layers,k,this.zoom,this.pixelRatio,u);this.patternFeatures.push(U)}else this.addFeature(k,I,O,p,{},u.availableImages,u.brightness,u.elevationFeatures);u.featureIndex.insert(l[O].feature,I,O,z,this.index)}}update(l,u,p,y,b,S,k){this.bufferData.update(l,u,p,y,b,S,k,this.worldview),this.elevationBufferData.update(l,u,p,y,b,S,k,this.worldview),this.elevatedStructures&&this.elevatedStructures.update(l,u,p,y,b,S,k,this.worldview)}addFeatures(l,u,p,y,b,S){for(const k of this.patternFeatures)this.addFeature(k,k.geometry,k.index,u,p,y,S,l.elevationFeatures)}isEmpty(){return this.bufferData.isEmpty()&&this.elevationBufferData.isEmpty()}uploadPending(){return!this.uploaded||this.bufferData.needsUpload()||this.elevationBufferData.needsUpload()}upload(l){this.bufferData.upload(l),this.elevationBufferData.upload(l),this.elevatedStructures&&this.elevatedStructures.upload(l)}destroy(){this.bufferData.destroy(),this.elevationBufferData.destroy(),this.elevatedStructures&&this.elevatedStructures.destroy()}addFeature(l,u,p,y,b,S=[],k,I){const O=_E(u,500);this.elevationMode!=="none"?this.addElevatedRoadFeature(l,O,y,p,I):this.addGeometry(O,this.bufferData),this.bufferData.populatePaintArrays(l,p,b,S,y,k,this.worldview),this.elevationBufferData.populatePaintArrays(l,p,b,S,y,k,this.worldview)}getUnevaluatedPortalGraph(){return this.elevatedStructures?this.elevatedStructures.unevaluatedPortals:void 0}setEvaluatedPortalGraph(l,u,p,y,b){this.elevatedStructures&&(this.elevatedStructures.construct(l),this.elevatedStructures.populatePaintArrays(u,p,y,b,this.worldview))}addElevatedRoadFeature(l,u,p,y,b){const S=new Array,k=Pi.getElevationFeature(l,b);if(!k)return void this.addGeometry(u,this.bufferData);{const O=this.clipPolygonsToTile(u,1);O.length>0&&S.push({polygons:O,elevationFeature:k,elevationTileID:p})}const I={guardRailEnabled:this.layers[0].layout.get("fill-construct-bridge-guard-rail").evaluate(l,{},p),featureIndex:y};for(const O of S)if(O.elevationFeature){if(this.elevationMode==="hd-road-base"){this.elevatedStructures||(this.elevatedStructures=new Ac(O.elevationTileID,this.layers,this.zoom,this.lut));const U=O.elevationFeature.isTunnel();let q=0;l.properties.hasOwnProperty(Ei)&&(q=+l.properties[Ei]),this.elevatedStructures.addPortalCandidates(O.elevationFeature.id,O.polygons,U,O.elevationFeature,q)}O.elevationFeature.constantHeight==null&&(O.polygons=this.prepareElevatedPolygons(O.polygons,O.elevationFeature,O.elevationTileID));const z=new Fi(p,O.elevationTileID);this.addElevatedGeometry(O.polygons,z,O.elevationFeature,this.elevationMode==="hd-road-base"?0:.05,y,I)}}addElevatedGeometry(l,u,p,y,b,S){const k={elevation:p,elevationSampler:u,bias:y,index:b,featureInfo:S},[I,O]=this.addGeometry(l,this.elevationBufferData,k);this.elevationBufferData.heightRange==null?this.elevationBufferData.heightRange={min:I,max:O}:(this.elevationBufferData.heightRange.min=Math.min(this.elevationBufferData.heightRange.min,I),this.elevationBufferData.heightRange.max=Math.max(this.elevationBufferData.heightRange.max,O))}addGeometry(l,u,p){let y=Number.POSITIVE_INFINITY,b=Number.NEGATIVE_INFINITY,S=null;p&&(S=p.elevationSampler.constantElevation(p.elevation,p.bias),S!=null&&(y=S,b=S));const k=(I,O,z)=>{if(p!=null)if(O.push(I),S!=null)u.elevatedLayoutVertexArray.emplaceBack(S),z.push(S);else{const U=p.elevationSampler.pointElevation(I,p.elevation,p.bias);u.elevatedLayoutVertexArray.emplaceBack(U),z.push(U),y=Math.min(y,U),b=Math.max(b,U)}};for(const I of l){let O=0;for(const ce of I)O+=ce.length;const z=u.triangleSegments.prepareSegment(O,u.layoutVertexArray,u.indexArray),U=z.vertexLength,q=[],K=[],X=[],J=[],re=[],ae=u.layoutVertexArray.length;for(const ce of I){if(ce.length===0)continue;ce!==I[0]&&K.push(q.length/2);const ye=u.lineSegments.prepareSegment(ce.length,u.layoutVertexArray,u.lineIndexArray),Ee=ye.vertexLength;p&&re.push(u.layoutVertexArray.length-ae),k(ce[0],X,J),u.layoutVertexArray.emplaceBack(ce[0].x,ce[0].y),u.lineIndexArray.emplaceBack(Ee+ce.length-1,Ee),q.push(ce[0].x),q.push(ce[0].y);for(let Ce=1;Ce0&&p&&this.elevationMode==="hd-road-base"){const ce=p.elevation.isTunnel(),ye=p.elevation.safeArea,Ee=this.elevatedStructures.addVertices(X,J);this.elevatedStructures.addTriangles(he,Ee,ce);const Ce=re.length;if(Ce>0){for(let He=0;He=p&&K.max.x<=b&&K.min.y>=y&&K.max.y<=S?I:O).push(q)}if(I.length===l.length)return l;const z=[new Ot(p,y),new Ot(b,y),new Ot(b,S),new Ot(p,S),new Ot(p,y)],U=I;for(const q of O)U.push(...EAe(q,z));return U}}let EK,AK,kK,CK;yr(jj,"FillBucket",{omit:["layers","patternFeatures"]}),yr(l5,"FillBufferData"),yr(Ac,"ElevatedStructures");class Pj{constructor(l,u,p,y){if(this.triangleCount=u.length/3,this.min=new Ot(0,0),this.max=new Ot(0,0),this.xScale=0,this.yScale=0,this.cellsX=0,this.cellsY=0,this.cells=[],this.payload=[],this.triangleCount===0||l.length===0)return;const[b,S]=[l[0].clone(),l[0].clone()];for(let U=1;UU.cellIdx-q.cellIdx||U.triIdx-q.triIdx);let z=0;for(;zthis.max.x||this.min.x>l.x||l.y>this.max.y||this.min.y>l.y)return;const p=wf(l.x-this.min.x,this.xScale,this.cellsX),y=wf(l.y-this.min.y,this.yScale,this.cellsY),b=this.cells[y*this.cellsX+p];if(b){this._lazyInitLookup();for(let S=0;Sthis.max.x||this.min.x>u.x||l.y>this.max.y||this.min.y>u.y)return;this._lazyInitLookup();const y=wf(l.x-this.min.x,this.xScale,this.cellsX),b=wf(u.x-this.min.x,this.xScale,this.cellsX),S=wf(l.y-this.min.y,this.yScale,this.cellsY),k=wf(u.y-this.min.y,this.yScale,this.cellsY);for(let I=S;I<=k;I++)for(let O=y;O<=b;O++){const z=this.cells[I*this.cellsX+O];if(z)for(let U=0;Uu.fqid),this.index=l.index,this.hasPattern=!1,this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.footprints=[],this.worldview=l.worldview,this.hasAppearances=null}updateFootprints(l,u){for(const p of this.footprints)u.push({footprint:p,id:l})}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){const b=[];for(const{feature:S,id:k,index:I,sourceLayerIndex:O}of l){const z=this.layers[0]._featureFilter.needGeometry,U=gn(S,z);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),U,p))continue;const q={id:k,properties:S.properties,type:S.type,sourceLayerIndex:O,index:I,geometry:z?U.geometry:Ur(S,p,y),patterns:{}};b.push(q)}for(const S of b){const{geometry:k,index:I,sourceLayerIndex:O}=S;this.addFeature(S,k,I,p,{},u.availableImages,u.brightness),u.featureIndex.insert(l[I].feature,k,I,O,this.index)}}isEmpty(){return this.footprints.length===0}uploadPending(){return!1}upload(l){}update(l,u,p,y,b,S,k){}destroy(){}addFeature(l,u,p,y,b,S=[],k){for(const I of _E(u,2)){const O=[],z=[],U=[],q=new Ot(1/0,1/0),K=new Ot(-1/0,-1/0);for(const re of I)if(re.length!==0){re!==I[0]&&U.push(z.length/2);for(let ae=0;ael.max.x||h.max.xl.max.y||h.max.ynew Ot((I.x+b.x*sr)*k-S.x*sr,(I.y+b.y*sr)*k-S.y*sr))}return u5(u,y,h.indices,0,h.indices.length,0,0)}function LK(h,l,u,p){const y=Math.pow(2,p.z-u.z);return new Ot((h+u.x*sr)*y-p.x*sr,(l+u.y*sr)*y-p.y*sr)}function DK(h,l){const u=[];l.grid.queryPoint(h,u);const p=l.indices,y=l.vertices;for(let b=0;b0&&(p.length>1&&u.push(p),p=[])}return p.length>1&&u.push(p),u}const h5=en.types,OAe=["fill-extrusion-base","fill-extrusion-height","fill-extrusion-color","fill-extrusion-pattern","fill-extrusion-flood-light-wall-radius","fill-extrusion-line-width","fill-extrusion-emissive-strength"],FAe=["fill-extrusion-flood-light-ground-radius"],BAe=Math.pow(2,13),zAe=Math.pow(2,15)-1,Dj=new Ot(0,1),Vp=2147483648,Mj=1073741824;function SE(h,l,u,p,y,b,S,k){h.emplaceBack((l<<1)+S,(u<<1)+b,(Math.floor(p*BAe)<<1)+y,Math.round(k))}function TE(h,l,u){h.emplaceBack(l.x*sr,l.y*sr,u?1:0)}function Oj(h,l,u,p,y,b){h.emplaceBack(l.x,l.y,(u.x<<1)+p,(u.y<<1)+y,b)}function EE(h,l,u){h.emplaceBack(l.x,l.y,l.z,u[0]*16384,u[1]*16384,u[2]*16384)}class OK{constructor(){this.vertexOffset=0,this.vertexCount=0,this.indexOffset=0,this.indexCount=0}}class f5{constructor(){this.centroidXY=new Ot(0,0),this.vertexArrayOffset=0,this.vertexCount=0,this.groundVertexArrayOffset=0,this.groundVertexCount=0,this.flags=0,this.footprintSegIdx=-1,this.footprintSegLen=0,this.polygonSegIdx=-1,this.polygonSegLen=0,this.min=new Ot(Number.MAX_VALUE,Number.MAX_VALUE),this.max=new Ot(-Number.MAX_VALUE,-Number.MAX_VALUE),this.height=0,this.buildingId=0,this.groupCentroidPos=new Ot(0,0)}span(){return new Ot(this.max.x-this.min.x,this.max.y-this.min.y)}}class p5{constructor(){this.acc=new Ot(0,0),this.accCount=0,this.centroidDataIndex=0}startRing(l,u){l.min.x===Number.MAX_VALUE&&(l.min.x=l.max.x=u.x,l.min.y=l.max.y=u.y)}appendEdge(l,u,p){this.accCount++,this.acc._add(u);let y=!!this.borders;u.xl.max.x&&(l.max.x=u.x,y=!0),u.yl.max.y&&(l.max.y=u.y,y=!0),((u.x===0||u.x===sr)&&u.x===p.x)!=((u.y===0||u.y===sr)&&u.y===p.y)&&this.processBorderOverlap(u,p),y&&this.checkBorderIntersection(u,p)}checkBorderIntersection(l,u){u.x<0!=l.x<0&&this.addBorderIntersection(0,Zr(u.y,l.y,(0-u.x)/(l.x-u.x))),u.x>sr!=l.x>sr&&this.addBorderIntersection(1,Zr(u.y,l.y,(sr-u.x)/(l.x-u.x))),u.y<0!=l.y<0&&this.addBorderIntersection(2,Zr(u.x,l.x,(0-u.y)/(l.y-u.y))),u.y>sr!=l.y>sr&&this.addBorderIntersection(3,Zr(u.x,l.x,(sr-u.y)/(l.y-u.y)))}addBorderIntersection(l,u){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const p=this.borders[l];up[1]&&(p[1]=u)}processBorderOverlap(l,u){if(l.x===u.x){if(l.y===u.y)return;const p=l.x===0?0:1;this.addBorderIntersection(p,u.y),this.addBorderIntersection(p,l.y)}else{const p=l.y===0?2:3;this.addBorderIntersection(p,u.x),this.addBorderIntersection(p,l.x)}}centroid(){return this.accCount===0?new Ot(0,0):new Ot(Math.floor(Math.max(0,this.acc.x)/this.accCount),Math.floor(Math.max(0,this.acc.y)/this.accCount))}intersectsCount(){return this.borders?this.borders.reduce((l,u)=>l+ +(u[0]!==Number.MAX_VALUE),0):0}}function FK(h,l){const u=h.add(l)._unit(),p=fe(h.x*u.x+h.y*u.y,-1,1);var y,b,S;return S=Math.acos(p),Math.min(4,Math.max(-4,Math.tan(S)))/4*zAe*((y=h).x*(b=l).y-y.y*b.x<0?-1:1)}const $Ae=[h=>h.x<0,h=>h.x>sr,h=>h.y<0,h=>h.y>sr];function UAe(h,l,u,p){const y=[4];if(p===0)return y;u._mult(p);const b=h.sub(u),S=l.sub(u),k=[h,l,b,S];for(let I=0;I<4;I++)for(const O of k)if($Ae[I](O)){y.push(I);break}return y}class m5{constructor(l){this.groundRadiusArray=null,this.groundRadiusBuffer=null,this.vertexArray=new XT,this.indexArray=new bs,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut},u=>FAe.includes(u)),this._segments=new Si,this.hiddenByLandmarkVertexArray=new Yv,this._segmentToGroundQuads={},this._segmentToGroundQuads[0]=[],this._segmentToRegionTriCounts={},this._segmentToRegionTriCounts[0]=[0,0,0,0,0],this.regionSegments={},this.regionSegments[4]=new Si}getDefaultSegment(){return this.regionSegments[4]}hasData(){return this.vertexArray.length!==0}addData(l,u,p,y=!1){const b=l.length;if(b>2){let S=Math.max(0,this._segments.get().length-1);const k=this._segments._prepareSegment(4*b,this.vertexArray.length,2*this._segmentToGroundQuads[S].length);let I;S!==this._segments.get().length-1&&(S++,this._segmentToGroundQuads[S]=[],this._segmentToRegionTriCounts[S]=[0,0,0,0,0]);{const O=l[0],z=l[1];I=FK(O.sub(l[b-1])._perp()._unit(),z.sub(O)._perp()._unit())}for(let O=0;Oy.region-b.region);for(let p=0;pI+O,0);let k=0;for(let I=0;I<=4;I++){const O=S[I];if(O!==0){let z=this.regionSegments[I];z||(z=this.regionSegments[I]=new Si);const U={vertexOffset:b.vertexOffset,primitiveOffset:b.primitiveOffset+k,vertexLength:b.vertexLength,primitiveLength:O};z.get().push(U)}k+=O}for(let I=0;I0?this.hiddenByLandmarkVertexBuffer=l.createVertexBuffer(this.hiddenByLandmarkVertexArray,NAe.members,!0):this.hiddenByLandmarkVertexBuffer&&this.hiddenByLandmarkVertexBuffer.updateData(this.hiddenByLandmarkVertexArray),this._needsHiddenByLandmarkUpdate=!1)}destroy(){if(this.vertexBuffer){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.hiddenByLandmarkVertexBuffer&&this.hiddenByLandmarkVertexBuffer.destroy(),this.groundRadiusBuffer&&this.groundRadiusBuffer.destroy(),this._segments&&this._segments.destroy(),this.programConfigurations.destroy();for(let l=0;l<=4;l++){const u=this.regionSegments[l];u&&u.destroy()}}}}class Fj{constructor(l){this.zoom=l.zoom,this.canonical=l.canonical,this.overscaling=l.overscaling,this.layers=l.layers,this.pixelRatio=l.pixelRatio,this.layerIds=this.layers.map(u=>u.fqid),this.index=l.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=l.projection,this.activeReplacements=[],this.replacementUpdateTime=0,this.centroidData=[],this.footprintIndices=new bs,this.footprintVertices=new ic,this.footprintSegments=[],this.layoutVertexArray=new ZT,this.centroidVertexArray=new yj,this.wallVertexArray=new cE,this.indexArray=new bs,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut},u=>OAe.includes(u)),this.segments=new Si,this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.groundEffect=new m5(l),this.maxHeight=0,this.partLookup={},this.triangleSubSegments=[],this.polygonSegments=[],this.buildingGroups=new Map,this.worldview=l.worldview,this.hasAppearances=null}updateFootprints(l,u){}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){this.features=[],this.hasPattern=Q3("fill-extrusion",this.layers,this.pixelRatio,u),this.featuresOnBorder=[],this.borderFeatureIndices=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.selfDEMTileTimestamp=Number.MAX_VALUE,this.borderDEMTileTimestamp=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE],this.tileToMeter=Mt(p),this.edgeRadius=this.layers[0].layout.get("fill-extrusion-edge-radius")/this.tileToMeter,this.wallMode=this.layers[0].paint.get("fill-extrusion-line-width").constantOr(1)!==0;for(const{feature:b,id:S,index:k,sourceLayerIndex:I}of l){const O=this.layers[0]._featureFilter.needGeometry,z=gn(b,O);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),z,p))continue;const U={id:S,sourceLayerIndex:I,index:k,geometry:O?z.geometry:Ur(b,p,y),properties:b.properties,type:b.type,patterns:{}},q=this.layoutVertexArray.length,K=h5[U.type]==="Polygon";if(this.hasPattern)this.features.push({featureId:b.id,feature:J3("fill-extrusion",this.layers,U,this.zoom,this.pixelRatio,u)});else if(this.wallMode)for(const X of U.geometry)for(const J of MK(X,K))this.addFeature(b.id,U,[J],k,p,{},u.availableImages,y,u.brightness);else this.addFeature(b.id,U,U.geometry,k,p,{},u.availableImages,y,u.brightness);u.featureIndex.insert(b,U.geometry,k,I,this.index,q)}this._finalizeBuildingGroups(),this.sortBorders(),this.projection.name==="mercator"&&this.splitToSubtiles(),this.groundEffect.prepareBorderSegments(),this.polygonSegments.length=0}addFeatures(l,u,p,y,b,S){for(const{featureId:k,feature:I}of this.features){const O=h5[I.type]==="Polygon",{geometry:z}=I;if(this.wallMode)for(const U of z)for(const q of MK(U,O))this.addFeature(k,I,[q],I.index,u,p,y,b,S);else this.addFeature(k,I,z,I.index,u,p,y,b,S)}this._finalizeBuildingGroups(),this.sortBorders(),this.projection.name==="mercator"&&this.splitToSubtiles()}update(l,u,p,y,b,S,k){this.programConfigurations.updatePaintArrays(l,u,b,p,y,S,k,this.worldview),this.groundEffect.update(l,u,b,p,y,S,k,this.worldview)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload||this.groundEffect.programConfigurations.needsUpload}upload(l){this.uploaded||(this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,LAe),this.indexBuffer=l.createIndexBuffer(this.indexArray),this.wallVertexBuffer=l.createVertexBuffer(this.wallVertexArray,PAe.members),this.layoutVertexExtArray&&(this.layoutVertexExtBuffer=l.createVertexBuffer(this.layoutVertexExtArray,RAe.members,!0)),this.groundEffect.upload(l)),this.groundEffect.uploadPaintProperties(l),this.programConfigurations.upload(l),this.uploaded=!0}uploadCentroid(l){this.groundEffect.uploadHiddenByLandmark(l),this.needsCentroidUpdate&&(!this.centroidVertexBuffer&&this.centroidVertexArray.length>0?this.centroidVertexBuffer=l.createVertexBuffer(this.centroidVertexArray,jAe.members,!0):this.centroidVertexBuffer&&this.centroidVertexBuffer.updateData(this.centroidVertexArray),this.needsCentroidUpdate=!1)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.centroidVertexBuffer&&this.centroidVertexBuffer.destroy(),this.layoutVertexExtBuffer&&this.layoutVertexExtBuffer.destroy(),this.groundEffect.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(l,u,p,y,b,S,k,I,O){const z=this.layers[0].paint.get("fill-extrusion-flood-light-ground-radius").evaluate(u,{})/this.tileToMeter,U=[new Ot(0,0),new Ot(sr,sr)],q=I.projection,K=q.name==="globe",X=this.wallMode||h5[u.type]==="Polygon",J=new p5;J.centroidDataIndex=this.centroidData.length;const re=new f5;re.buildingId=l,u.properties&&u.properties.hasOwnProperty("building_id")&&(re.buildingId=Number(u.properties.building_id)),J.buildingId=re.buildingId;const ae=this.layers[0].paint.get("fill-extrusion-base").evaluate(u,{},b)<=0,he=this.layers[0].paint.get("fill-extrusion-height").evaluate(u,{},b);let ce;if(re.height=he,re.vertexArrayOffset=this.layoutVertexArray.length,re.groundVertexArrayOffset=this.groundEffect.vertexArray.length,K&&!this.layoutVertexExtArray&&(this.layoutVertexExtArray=new Vv),this.wallMode){if(K)return void zr("Non zero fill-extrusion-line-width is not yet supported on globe.");if(p.length!==1)return;ce=function(Ue){const Ve=Ue[0].x===Ue[Ue.length-1].x&&Ue[0].y===Ue[Ue.length-1].y;(function(rr){let Ht=0;const fr=rr.length;for(let Er=0;Er=0})(Ue)||(Ue=Ue.reverse());const wt={geometry:[],joinNormals:[],indices:[]},kt=[],jt=[],Ct=[];let Bt=Ue.length;for(;Bt>=2&&Ue[Bt-1].equals(Ue[Bt-2]);)Bt--;if(Bt<(Ve?3:2))return wt;let pt,It,Lt,$t,Gt,mr=0;for(;mr0;let Lr="miter";const on=2;Lr==="miter"&&Er>on&&(Lr="bevel"),Lr==="bevel"&&(Er>100&&(Lr="flipbevel"),Er{const ei=new Ot(ln.x,ln.y),Vn=new Ot(ln.x,ln.y);ei.x+=Fn.x*ms,ei.y+=Fn.y*ms,Vn.x-=Fn.x*Math.max(yn,1),Vn.y-=Fn.y*Math.max(yn,1),Ct.push(Fn),kt.push(ei),jt.push(Vn)};if(Lr==="miter")Ht._mult(Er),On(pt,Ht,0,0);else if(Lr==="flipbevel")Ht=Gt.mult(-1),On(pt,Ht,0,0),On(pt,Ht.mult(-1),0,0);else{const ln=-Math.sqrt(Er*Er-1),Fn=$r?ln:0,yn=$r?0:ln;It&&On(pt,$t,Fn,yn),Lt&&On(pt,Gt,Fn,yn)}}wt.geometry=[...kt,...jt.reverse(),kt[0]],wt.joinNormals=[...Ct,...Ct.reverse(),Ct[Ct.length-1]];const nr=wt.geometry.length-1;for(let rr=0;rrUe<(Ve.length-1)/2||Ue===Ve.length-1,Ee=this.wallMode?[p]:_E(p,500);for(let Ue=Ee.length-1;Ue>=0;Ue--){const Ve=Ee[Ue];(Ve.length===0||qAe(Ve[0]))&&Ee.splice(Ue,1)}let Ce;if(K)Ce=GK(Ee,U,b);else{Ce=[];for(const Ue of Ee)Ce.push({polygon:Ue,bounds:U})}const He=X?this.edgeRadius:0,ze=He>0&&this.zoom<17,Ge=(Ue,Ve)=>{if(Ue.length===0)return!1;const gt=Ue[Ue.length-1];return Ve.x===gt.x&&Ve.y===gt.y};for(const{polygon:Ue,bounds:Ve}of Ce){let gt=0,wt=0;for(const Bt of Ue)X&&!Bt[0].equals(Bt[Bt.length-1])&&Bt.push(Bt[0]),wt+=X?Bt.length-1:Bt.length;const kt=this.segments.prepareSegment((X?5:4)*wt,this.layoutVertexArray,this.indexArray);re.footprintSegIdx<0&&(re.footprintSegIdx=this.footprintSegments.length),re.polygonSegIdx<0&&(re.polygonSegIdx=this.polygonSegments.length);const jt={triangleArrayOffset:this.indexArray.length,triangleCount:0,triangleSegIdx:this.segments.segments.length-1},Ct=new OK;if(Ct.vertexOffset=this.footprintVertices.length,Ct.indexOffset=3*this.footprintIndices.length,Ct.ringIndices=[],X){const Bt=[],pt=[];gt=kt.vertexLength;for(let Lt=0;Lt4&&UK(pt[pt.length-2],pt[0],pt[1]),Lt=He?VAe(pt[pt.length-2],pt[0],pt[1],He):0;const $t=[];let Gt,mr,nr;mr=pt[1].sub(pt[0])._perp()._unit();let rr=!0;for(let Ht=1,fr=0;Ht0?1:0,Fn=Er.dist($r);if(fr+Fn>32768&&(fr=0),He){nr=Lr.sub($r)._perp()._unit();let Vn=zK(Er,$r,Lr,BK(mr,nr),He);isNaN(Vn)&&(Vn=0);const Ai=$r.sub(Er)._unit();Er=Er.add(Ai.mult(Lt))._round(),$r=$r.add(Ai.mult(-Vn))._round(),Lt=Vn,mr=nr,ae&&this.zoom>=17&&(Ge($t,Er)||$t.push(Er),Ge($t,$r)||$t.push($r))}const yn=kt.vertexLength,ms=pt.length>4&&UK(Er,$r,Lr);let ei=VK(fr,It,rr);if(SE(this.layoutVertexArray,Er.x,Er.y,On,ln,0,0,ei),SE(this.layoutVertexArray,Er.x,Er.y,On,ln,0,1,ei),this.wallMode){const Vn=ye(Ht-1,pt),Ai=ce.joinNormals[Ht-1];TE(this.wallVertexArray,Ai,Vn),TE(this.wallVertexArray,Ai,Vn)}if(fr+=Fn,ei=VK(fr,ms,!rr),It=ms,SE(this.layoutVertexArray,$r.x,$r.y,On,ln,0,0,ei),SE(this.layoutVertexArray,$r.x,$r.y,On,ln,0,1,ei),this.wallMode){const Vn=ye(Ht,pt),Ai=ce.joinNormals[Ht];TE(this.wallVertexArray,Ai,Vn),TE(this.wallVertexArray,Ai,Vn)}if(kt.vertexLength+=4,this.indexArray.emplaceBack(yn+0,yn+1,yn+2),this.indexArray.emplaceBack(yn+1,yn+3,yn+2),kt.primitiveLength+=2,He){const Vn=gt+(Ht===1?pt.length-2:Ht-2),Ai=Ht===1?gt:Vn+1;if(this.indexArray.emplaceBack(yn+1,Vn,yn+3),this.indexArray.emplaceBack(Vn,Ai,yn+3),kt.primitiveLength+=2,Gt===void 0&&(Gt=yn),!g5(Lr,pt[Ht],Ve)){const us=Ht===pt.length-1?Gt:kt.vertexLength;this.indexArray.emplaceBack(yn+2,yn+3,us),this.indexArray.emplaceBack(yn+3,us+1,us),this.indexArray.emplaceBack(yn+3,Ai,us+1),kt.primitiveLength+=3}rr=!rr}if(K){const Vn=this.layoutVertexExtArray,Ai=q.projectTilePoint(Er.x,Er.y,b),us=q.projectTilePoint($r.x,$r.y,b),Na=q.upVector(b,Er.x,Er.y),ds=q.upVector(b,$r.x,$r.y);EE(Vn,Ai,Na),EE(Vn,Ai,Na),EE(Vn,us,ds),EE(Vn,us,ds)}}X&&(gt+=pt.length-1),ae&&He&&this.zoom>=17&&($t.length!==0&&Ge($t,$t[0])&&$t.pop(),this.groundEffect.addData($t,Ve,z,He>0))}this.footprintSegments.push(Ct),jt.triangleCount=this.indexArray.length-jt.triangleArrayOffset,this.polygonSegments.push(jt),++re.footprintSegLen,++re.polygonSegLen}if(re.vertexCount=this.layoutVertexArray.length-re.vertexArrayOffset,re.groundVertexCount=this.groundEffect.vertexArray.length-re.groundVertexArrayOffset,re.vertexCount!==0){if(re.centroidXY=J.borders?Dj:this.encodeCentroid(J,re),u.properties&&u.properties.hasOwnProperty("building_id")){const Ue=re.buildingId;let Ve=this.buildingGroups.get(Ue);Ve||(Ve={accX:0,accY:0,accCount:0,mergedMin:new Ot(Number.MAX_VALUE,Number.MAX_VALUE),mergedMax:new Ot(-Number.MAX_VALUE,-Number.MAX_VALUE),partIndices:[]},this.buildingGroups.set(Ue,Ve)),Ve.accX+=J.acc.x,Ve.accY+=J.acc.y,Ve.accCount+=J.accCount,Ve.mergedMin.x=Math.min(Ve.mergedMin.x,re.min.x),Ve.mergedMin.y=Math.min(Ve.mergedMin.y,re.min.y),Ve.mergedMax.x=Math.max(Ve.mergedMax.x,re.max.x),Ve.mergedMax.y=Math.max(Ve.mergedMax.y,re.max.y),Ve.partIndices.push(this.centroidData.length)}if(this.centroidData.push(re),J.borders){this.featuresOnBorder.push(J);const Ue=this.featuresOnBorder.length-1;for(let Ve=0;Vethis.featuresOnBorder[u].borders[l][0]-this.featuresOnBorder[p].borders[l][0])}splitToSubtiles(){const l=[];for(let k=0;ksr),z=2*O+(+(I.min.x+I.max.x>sr)^O);for(let U=0;Uk.triangleSegmentIdx===I.triangleSegmentIdx?k.subtile-I.subtile:k.triangleSegmentIdx-I.triangleSegmentIdx);let p=0,y=0,b=0;for(const k of l){if(k.triangleSegmentIdx!==p)break;b++}const S=l.length;for(;y!==l.length;){p=l[y].triangleSegmentIdx;let k=0,I=y,O=y;for(let z=I;z0&&this.triangleSubSegments.push({segment:K,min:U,max:q}),I=O;for(let X=I;X[J[0]*(1-ae[0])+re[0]*ae[0],J[1]*(1-ae[1])+re[1]*ae[1]],K=[],X=[];for(const J of this.triangleSubSegments){K[0]=J.min.x/sr,K[1]=J.min.y/sr,X[0]=J.max.x/sr,X[1]=J.max.y/sr;const re=q(z,U,K),ae=q(z,U,X);if(new ii([re[0],re[1],b],[ae[0],ae[1],S]).intersectsPrecise(p)===0){O&&(y.segments.push(O),O=void 0);continue}const he=J.segment;O&&O.vertexOffset!==he.vertexOffset&&(y.segments.push(O),O=void 0),O?(O.vertexLength+=he.vertexLength,O.primitiveLength+=he.primitiveLength):O={vertexOffset:he.vertexOffset,primitiveLength:he.primitiveLength,vertexLength:he.vertexLength,primitiveOffset:he.primitiveOffset,sortKey:void 0,vaos:{}}}return O&&y.segments.push(O),y}encodeCentroid(l,u){const p=l.centroid(),y=u.span(),b=Math.min(7,Math.round(y.x*this.tileToMeter/10)),S=Math.min(6,Math.round(y.y*this.tileToMeter/10));return new Ot(fe(p.x,1,8191)<<3|b,fe(p.y,1,8191)<<3|S)}encodeBorderCentroid(l){if(!l.borders)return new Ot(0,0);const u=l.borders,p=Number.MAX_VALUE;if(u[0][0]!==p||u[1][0]!==p){const y=u[0][0]!==p?0:1;return new Ot(6|(u[0][0]!==p?0:65528),(u[y][0]+u[y][1])/2<<3|6)}{const y=u[2][0]!==p?2:3;return new Ot((u[y][0]+u[y][1])/2<<3|6,6|(u[2][0]!==p?0:65528))}}showCentroid(l){const u=this.centroidData[l.centroidDataIndex];if(u.flags&=Vp,u.groupCentroidPos.x!==0||u.groupCentroidPos.y!==0){const p=u.span(),y=Math.min(7,Math.round(p.x*this.tileToMeter/10)),b=Math.min(6,Math.round(p.y*this.tileToMeter/10));u.centroidXY=new Ot(fe(u.groupCentroidPos.x,1,8191)<<3|y,fe(u.groupCentroidPos.y,1,8191)<<3|b)}else u.centroidXY=new Ot(0,0);this.writeCentroidToBuffer(u)}writeCentroidToBuffer(l){this.groundEffect.updateHiddenByLandmark(l);const u=l.vertexArrayOffset,p=l.vertexCount+l.vertexArrayOffset,y=-1073741824&l.flags?Dj:l.centroidXY,b=this.centroidVertexArray.geta_centroid_pos0(u);if(this.centroidVertexArray.geta_centroid_pos1(u)!==y.y||b!==y.x){for(let S=u;SI.max.x||I.min.x>S.max.x||S.min.y>I.max.y||I.min.y>S.max.y||S.footprint.buildingIds.has(I.buildingId)&&(I.flags|=S.clipMask!==Lj.None?-1073741824:Vp);else for(const I of this.centroidData)if(!(I.flags&Vp||I.flags&Mj||S.min.x>I.max.x||I.min.x>S.max.x||S.min.y>I.max.y||I.min.y>S.max.y))for(let O=0;Ou!=K>u&&l<(this.footprintVertices.int16[2*(z+S.vertexOffset)+0]-U)*(u-q)/(K-q)+U&&(y=!y)}k=I}}return y}getHeightAtTileCoord(l,u){let p=Number.NEGATIVE_INFINITY,y=!0;const b=4*(l+sr)*sr+(u+sr);if(this.partLookup.hasOwnProperty(b)){const S=this.partLookup[b];return S?{height:S.height,hidden:!!(S.flags&Vp)}:void 0}for(const S of this.centroidData)l>S.max.x||S.min.x>l||u>S.max.y||S.min.y>u||S.height<=p||this.footprintContainsPoint(l,u,S)&&(p=S.height,this.partLookup[b]=S,y=!!(S.flags&Vp));if(p!==Number.NEGATIVE_INFINITY)return{height:p,hidden:y};this.partLookup[b]=void 0}}function BK(h,l){const u=h.add(l)._unit();return h.x*u.x+h.y*u.y}function VAe(h,l,u,p){const y=l.sub(h)._perp()._unit(),b=u.sub(l)._perp()._unit();return zK(h,l,u,BK(y,b),p)}function zK(h,l,u,p,y){const b=Math.sqrt(1-p*p);return Math.min(h.dist(l)/3,l.dist(u)/3,y*b/p)}function g5(h,l,u){return h.xu[1].x&&l.x>u[1].x||h.yu[1].y&&l.y>u[1].y}function $K(h,l){return h.xl[1].x||h.yl[1].y}function qAe(h){return h.every(l=>l.x<=0)||h.every(l=>l.x>=sr)||h.every(l=>l.y<=0)||h.every(l=>l.y>=sr)}function UK(h,l,u){if(h.x<0||h.x>=sr||l.x<0||l.x>=sr||u.x<0||u.x>=sr)return!1;const p=u.sub(l),y=p.perp(),b=h.sub(l);return(p.x*b.x+p.y*b.y)/Math.sqrt((p.x*p.x+p.y*p.y)*(b.x*b.x+b.y*b.y))>-.866&&y.x*b.x+y.y*b.y<0}function VK(h,l,u){const p=l?2|h:-3&h;return u?1|p:-2&p}function qK(){const h=Math.PI/32,l=Math.tan(h),u=qe;return u*Math.sqrt(1+2*l*l)-u}function GK(h,l,u){const p=1<{for(const ze of Ce)X.push({polygon:ze,bounds:He})},re=Math.ceil(Math.log2(z)),ae=Math.ceil(Math.log2(U)),he=re-ae,ce=[];for(let Ce=0;Ce0?0:1);for(let Ce=0;CeHe+1?Ee.push({polygons:kt,bounds:Ct,depth:He+1}):J(kt,Ct)}if(jt.length){const Ct=[new Ot(ze===0?wt:Ge.x,ze===1?wt:Ge.y),Ue];ce.length>He+1?Ee.push({polygons:jt,bounds:Ct,depth:He+1}):J(jt,Ct)}}return X}(h,l,Math.ceil((b-y)/11.25),Math.ceil((S-k)/11.25),1,(I,O,z)=>{if(I===0)return .5*(O+z);{const U=mt((u.y+O/sr)/p);return(Ft(.5*(mt((u.y+z/sr)/p)+U))*p-u.y)*sr}})}function GAe(h,l,u,p,y,b){const S=Math.pow(2,p.z-y.z);for(let k=0;k=I[S]&&(k=l,I=h),k[S]y&&YK(k,I,S,y),k[S]b&&YK(I,k,S,b)}}function Bj(h,l,u,p,y,b){const S=[];for(let k=0;k=p&&X.x>=p||(K.x>=p?K=new Ot(p,K.y+(p-K.x)/(X.x-K.x)*(X.y-K.y))._round():X.x>=p&&(X=new Ot(p,K.y+(p-K.x)/(X.x-K.x)*(X.y-K.y))._round()),K.y>=y&&X.y>=y||(K.y>=y?K=new Ot(K.x+(y-K.y)/(X.y-K.y)*(X.x-K.x),y)._round():X.y>=y&&(X=new Ot(K.x+(y-K.y)/(X.y-K.y)*(X.x-K.x),y)._round()),O&&K.equals(O[O.length-1])||(O=[K],S.push(O),b&&b.push({progress:{min:re+XK(ae,he,K)*J,max:1},parentIndex:k,prevPoint:ae,nextPoint:he})),O.push(X),b&&(b[b.length-1].progress.max=re+XK(ae,he,X)*J,b[b.length-1].nextPoint=he)))))}if(b&&U>0)for(let q=z;qO.t-z.t);let S=0,k=0,I=[];for(p.push(I);S!==h.length;){if(k===b.length){for(;S!==h.length;)I.length!==0&&I[I.length-1].equals(h[S])||I.push(h[S]),S++;break}b[k].t<=S?(I.length!==0&&I[I.length-1].equals(b[k].point)||I.push(b[k].point),Math.trunc(b[k].t),k++):(I.length!==0&&I[I.length-1].equals(h[S])||I.push(h[S]),S++)}}function XK(h,l,u){return h.x!==l.x?(u.x-h.x)/(l.x-h.x):h.y!==l.y?(u.y-h.y)/(l.y-h.y):0}function AE(h,l){return h.x*l.x+h.y*l.y}function QK(h,l){if(h.length===1){let u=0;const p=l[u++];let y;for(;!y||p.equals(y);)if(y=l[u++],!y)return 1/0;for(;u{wt[0]=kt,wt[1]=jt,wt[2]=Ct,wt[3]=1},gt=qK();K>0&&(K+=gt),X+=gt;for(const wt of q){const kt=[],jt=[];for(const Ct of wt){const Bt=Ct.x+J.x,pt=Ct.y+J.y,It=U.projection.projectTilePoint(Bt,pt,Ee),Lt=U.projection.upVector(Ee,Ct.x,Ct.y);let $t=K,Gt=X;if(ae){const mr=tY(Bt,pt,K,X,ae,he,ce,ye);$t+=mr.base,Gt+=mr.top}K!==0?Ve(Ge,It.x+Lt[0]*ze*$t,It.y+Lt[1]*ze*$t,It.z+Lt[2]*ze*$t):Ve(Ge,It.x,It.y,It.z),Ve(Ue,It.x+Lt[0]*ze*Gt,It.y+Lt[1]*ze*Gt,It.z+Lt[2]*ze*Gt),xr(Ge,Ge,re),xr(Ue,Ue,re),kt.push(new u0(Ge[0],Ge[1],Ge[2])),jt.push(new u0(Ue[0],Ue[1],Ue[2]))}Ce.push(kt),He.push(jt)}return[Ce,He]}(h,l,u,p,y,b,S,k,I,O,z):S?function(U,q,K,X,J,re,ae,he,ce){const ye=[],Ee=[],Ce=[0,0,0,1];for(const He of U){const ze=[],Ge=[];for(const Ue of He){const Ve=Ue.x+X.x,gt=Ue.y+X.y,wt=tY(Ve,gt,q,K,re,ae,he,ce);Ce[0]=Ve,Ce[1]=gt,Ce[2]=wt.base,Ce[3]=1,ur(Ce,Ce,J),Ce[3]=Math.max(Ce[3],1e-5);const kt=new u0(Ce[0]/Ce[3],Ce[1]/Ce[3],Ce[2]/Ce[3]);Ce[0]=Ve,Ce[1]=gt,Ce[2]=wt.top,Ce[3]=1,ur(Ce,Ce,J),Ce[3]=Math.max(Ce[3],1e-5);const jt=new u0(Ce[0]/Ce[3],Ce[1]/Ce[3],Ce[2]/Ce[3]);ze.push(kt),Ge.push(jt)}ye.push(ze),Ee.push(Ge)}return[ye,Ee]}(l,u,p,y,b,S,k,I,O):function(U,q,K,X,J){const re=[],ae=[],he=J[8]*q,ce=J[9]*q,ye=J[10]*q,Ee=J[11]*q,Ce=J[8]*K,He=J[9]*K,ze=J[10]*K,Ge=J[11]*K;for(const Ue of U){const Ve=[],gt=[];for(const wt of Ue){const kt=wt.x+X.x,jt=wt.y+X.y,Ct=J[0]*kt+J[4]*jt+J[12],Bt=J[1]*kt+J[5]*jt+J[13],pt=J[2]*kt+J[6]*jt+J[14],It=J[3]*kt+J[7]*jt+J[15],Lt=Ct+he,$t=Bt+ce,Gt=pt+ye,mr=Math.max(It+Ee,1e-5),nr=Ct+Ce,rr=Bt+He,Ht=pt+ze,fr=Math.max(It+Ge,1e-5);Ve.push(new u0(Lt/mr,$t/mr,Gt/mr)),gt.push(new u0(nr/fr,rr/fr,Ht/fr))}re.push(Ve),ae.push(gt)}return[re,ae]}(l,u,p,y,b)}function tY(h,l,u,p,y,b,S,k){const I=S*y.getElevationAt(h,l,!0,!0),O=b[0]!==0,z=O?b[1]===0?S*(b[0]/7-450):S*function(U,q,K){const X=Math.floor(q[0]/8),J=Math.floor(q[1]/8),re=10*(q[0]-8*X),ae=10*(q[1]-8*J),he=U.getElevationAt(X,J,!0,!0),ce=U.getMeterToDEM(K),ye=Math.floor(.5*(re*ce-1)),Ee=Math.floor(.5*(ae*ce-1)),Ce=U.tileCoordToPixel(X,J),He=2*ye+1,ze=2*Ee+1,Ge=function(jt,Ct,Bt,pt,It){return[jt.getElevationAtPixel(Ct,Bt,!0),jt.getElevationAtPixel(Ct+It,Bt,!0),jt.getElevationAtPixel(Ct,Bt+It,!0),jt.getElevationAtPixel(Ct+pt,Bt+It,!0)]}(U,Ce.x-ye,Ce.y-Ee,He,ze),Ue=Math.abs(Ge[0]-Ge[1]),Ve=Math.abs(Ge[2]-Ge[3]),gt=Math.abs(Ge[0]-Ge[2])+Math.abs(Ge[1]-Ge[3]),wt=Math.min(.25,.5*ce*(Ue+Ve)/He),kt=Math.min(.25,.5*ce*gt/ze);return he+Math.max(wt*re,kt*ae)}(y,b,k):I;return{base:I+(u===0?-1:u),top:O?Math.max(z+p,I+u+2):I+p}}const y5=4096;class WAe{constructor(l){this.module=l,this.memoryStack=this.module.malloc(y5),this.memoryStackNextFree=this.memoryStack}createIntArray(l){const u=this.memoryStackNextFree;return this.memoryStackNextFree+=l.length*Int32Array.BYTES_PER_ELEMENT,this.memoryStackNextFree-this.memoryStack>y5?-1:(new Int32Array(this.module.heap32.buffer,u,l.length).set(l),u)}createFloatArray(l){const u=this.memoryStackNextFree;return this.memoryStackNextFree+=l.length*Float32Array.BYTES_PER_ELEMENT,this.memoryStackNextFree-this.memoryStack>y5?-1:(new Float32Array(this.module.heapF32.buffer,u,l.length).set(l),u)}readStringBuffer(l){let u="";for(;this.module.heapU8[l]!==0;)u+=String.fromCharCode(this.module.heapU8[l]),++l;return u}setStyle(l){const u=l.normalScale;this.module.setStyle(u[0],u[1],u[2],l.tileToMeters)}setAOOptions(l,u){this.module.setAOOptions(l?1:0,u)}setMetricOptions(l,u){this.module.setMetricOptions(l?1:0,u)}setStructuralOptions(l){this.module.setStructuralOptions(l?1:0)}setFacadeOptions(l,u){this.module.setFacadeOptions(l,u?1:0)}setFauxFacadeOptions(l,u,p){this.module.setFauxFacadeOptions(l?1:0,u?1:0,p)}setFacadeClassifierOptions(l){this.module.setFacadeClassifierOptions(l)}generateMesh(l,u){this.memoryStackNextFree=this.memoryStack;for(const k of l){const I=this.createIntArray(k.ringIndices),O=this.createFloatArray(k.coordinates);if(I===-1||O===-1)return`building_gen: Out of stack memory: ${this.memoryStackNextFree-this.memoryStack}/4096`;this.module.addFeature(k.id,k.sourceId,k.minHeight,k.height,k.roofType,O,I,k.ringIndices.length-1)}for(const k of u){let I;I=k.entrances?JSON.parse(k.entrances):[];const O=this.createFloatArray(I),z=this.createFloatArray(k.coordinates);if(O===-1||z===-1)return`building_gen: Out of stack memory: ${this.memoryStackNextFree-this.memoryStack}/4096`;this.module.addFacade(k.sourceId,k.crossPerc,k.distanceToRoad,O,I.length,z,k.coordinates.length)}if(!this.module.generateMesh()){const k=this.module.getLastError();return this.readStringBuffer(k)}const p=this.module.getMeshCount(),y=new Array(p);for(let k=0;k>2)-3,re=K[X++]>>2;if(X++,y.json=JSON.parse(dY.decode(K.subarray(X,X+re))),X+=re,X>>0,Math.ceil(1.2*ye)),Ce=Math.ceil((Ee-ye)/65536);try{return J.grow(Ce),re(),!0}catch{return!1}},b:ae}};return(WebAssembly.instantiateStreaming?WebAssembly.instantiateStreaming(K,he):K.then(ce=>ce.arrayBuffer()).then(ce=>WebAssembly.instantiate(ce,he))).then(ce=>{const{Rb:ye,Qb:Ee,P:Ce,T:He,X:ze,Ja:Ge,La:Ue,Qa:Ve,Va:gt,Wa:wt,eb:kt,jb:jt,f:Ct,e:Bt,yb:pt,zb:It,Ab:Lt,Bb:$t,Db:Gt,Gb:mr}=ce.instance.exports;J=Bt;const nr=(()=>{let rr=0,Ht=0,fr=0,Er=0;return $r=>{fr&&(ye(Er),ye(rr),Ht+=fr,fr=rr=0),rr||(Ht+=128,rr=Ee(Ht));const Lr=$r.length+7&-8;let on=rr;Lr>=Ht&&(fr=Lr,on=Er=Ee(Lr));for(let On=0;On<$r.length;On++)X[on+On]=$r[On];return on}})();return re(),Ct(),{memory:Bt,_free:ye,_malloc:Ee,Mesh:class{constructor(){this.ptr=Ce()}destroy(){He(this.ptr)}},Decoder:class{constructor(){this.ptr=Ge()}destroy(){jt(this.ptr)}DecodeArrayToMesh(rr,Ht,fr){const Er=nr(rr),$r=Ue(this.ptr,Er,Ht,fr.ptr);return!!ze($r)}GetAttributeByUniqueId(rr,Ht){return{ptr:Ve(this.ptr,rr.ptr,Ht)}}GetTrianglesUInt16Array(rr,Ht,fr){gt(this.ptr,rr.ptr,Ht,fr)}GetTrianglesUInt32Array(rr,Ht,fr){wt(this.ptr,rr.ptr,Ht,fr)}GetAttributeDataArrayForAllPoints(rr,Ht,fr,Er,$r){kt(this.ptr,rr.ptr,Ht.ptr,fr,Er,$r)}},DT_INT8:pt(),DT_UINT8:It(),DT_INT16:Lt(),DT_UINT16:$t(),DT_UINT32:Gt(),DT_FLOAT32:mr()}})}(fetch(xa())),kE.then(K=>{yh=K,kE=void 0}))}()),q&&z.push(function(){if(x5)return;const K=function(X){let J;const re=WebAssembly.instantiateStreaming(X,{}).then(ce=>{J=ce.instance,J.exports.__wasm_call_ctors()}),ae={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},he={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return{ready:re,supported:!0,decodeGltfBuffer(ce,ye,Ee,Ce,He,ze){(function(Ge,Ue,Ve,gt,wt,kt,jt){const Ct=Ge.exports.sbrk,Bt=gt+3&-4,pt=Ct(Bt*wt),It=Ct(kt.length),Lt=new Uint8Array(Ge.exports.memory.buffer);Lt.set(kt,It);const $t=Ue(pt,gt,wt,It,kt.length);if($t===0&&jt&&jt(pt,Bt,wt),Ve.set(Lt.subarray(pt,pt+gt*wt)),Ct(pt-Ct(0)),$t!==0)throw new Error(`Malformed buffer data: ${$t}`)})(J,J.exports[he[He]],ce,ye,Ee,Ce,J.exports[ae[ze]])}}}(fetch(yo()));return K.ready.then(()=>{x5=K})}()),S)for(let K=0;K{const k=Km(p,(I,O)=>{I?S(I):b(O)});y&&y.addEventListener("abort",()=>{k.cancel(),S(new DOMException("Aborted","AbortError"))},{once:!0})})}({url:h,type:"arrayBuffer"},l);return pY(u,0,h,l)}function v5(h){switch(h){case WebGL2RenderingContext.RGBA8:case WebGL2RenderingContext.RGBA16F:return WebGL2RenderingContext.RGBA;case WebGL2RenderingContext.DEPTH_COMPONENT16:return WebGL2RenderingContext.DEPTH_COMPONENT;case WebGL2RenderingContext.DEPTH24_STENCIL8:return WebGL2RenderingContext.DEPTH_STENCIL;case WebGL2RenderingContext.R8:case WebGL2RenderingContext.R32F:return WebGL2RenderingContext.RED}}function b5(h){switch(h){case WebGL2RenderingContext.RGBA8:return WebGL2RenderingContext.UNSIGNED_BYTE;case WebGL2RenderingContext.RGBA16F:return WebGL2RenderingContext.HALF_FLOAT;case WebGL2RenderingContext.DEPTH_COMPONENT16:return WebGL2RenderingContext.UNSIGNED_SHORT;case WebGL2RenderingContext.DEPTH24_STENCIL8:return WebGL2RenderingContext.UNSIGNED_INT_24_8;case WebGL2RenderingContext.R8:return WebGL2RenderingContext.UNSIGNED_BYTE;case WebGL2RenderingContext.R32F:return WebGL2RenderingContext.FLOAT}}class Sf{constructor(l,u,p,y){this.context=l,this.format=p,this.useMipmap=y&&y.useMipmap,this.texture=l.gl.createTexture(),this.update(u,{premultiply:y&&y.premultiply})}update(l,u){const p=l&&l instanceof HTMLVideoElement&&l.width===0?l.videoWidth:l.width,y=l&&l instanceof HTMLVideoElement&&l.height===0?l.videoHeight:l.height,{context:b}=this,{gl:S}=b,{x:k,y:I}=u&&u.position?u.position:{x:0,y:0},O=k+p,z=I+y;this.size&&(this.size[0]!==O||this.size[1]!==z)&&(!u||u.recreateWhenResize===void 0||u.recreateWhenResize)&&(S.bindTexture(S.TEXTURE_2D,null),S.deleteTexture(this.texture),this.texture=S.createTexture(),this.size=null),S.bindTexture(S.TEXTURE_2D,this.texture),b.pixelStoreUnpackFlipY.set(!1),b.pixelStoreUnpack.set(1),b.pixelStoreUnpackPremultiplyAlpha.set(this.format===S.RGBA8&&(!u||u.premultiply!==!1));const U=l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||ImageBitmap&&l instanceof ImageBitmap;if(!this.size&&O>0&&z>0){const q=this.useMipmap?Math.floor(Math.log2(Math.max(O,z)))+1:1;S.texStorage2D(S.TEXTURE_2D,q,this.format,O,z),this.size=[O,z]}this.size&&(U?S.texSubImage2D(S.TEXTURE_2D,0,k,I,v5(this.format),b5(this.format),l):"data"in l&&l.data&&S.texSubImage2D(S.TEXTURE_2D,0,k,I,p,y,v5(this.format),b5(this.format),l.data)),this.useMipmap&&S.generateMipmap(S.TEXTURE_2D)}bind(l,u,p=!1){const{context:y}=this,{gl:b}=y;b.bindTexture(b.TEXTURE_2D,this.texture),l!==this.minFilter&&(b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,l),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,this.useMipmap&&!p?l===b.NEAREST?b.NEAREST_MIPMAP_NEAREST:b.LINEAR_MIPMAP_LINEAR:l),this.minFilter=l),u!==this.wrapS&&(b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,u),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,u),this.wrapS=u)}bindExtraParam(l,u,p,y,b){const{context:S}=this,{gl:k}=S;k.bindTexture(k.TEXTURE_2D,this.texture),u!==this.magFilter&&(k.texParameteri(k.TEXTURE_2D,k.TEXTURE_MAG_FILTER,u),this.magFilter=u),l!==this.minFilter&&(k.texParameteri(k.TEXTURE_2D,k.TEXTURE_MIN_FILTER,this.useMipmap?l===k.NEAREST?k.NEAREST_MIPMAP_NEAREST:k.LINEAR_MIPMAP_LINEAR:l),this.minFilter=l),p!==this.wrapS&&(k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_S,p),this.wrapS=p),y!==this.wrapT&&(k.texParameteri(k.TEXTURE_2D,k.TEXTURE_WRAP_T,y),this.wrapT=y),b!==this.compareMode&&(b?(k.texParameteri(k.TEXTURE_2D,k.TEXTURE_COMPARE_MODE,k.COMPARE_REF_TO_TEXTURE),k.texParameteri(k.TEXTURE_2D,k.TEXTURE_COMPARE_FUNC,b)):k.texParameteri(k.TEXTURE_2D,k.TEXTURE_COMPARE_MODE,k.NONE),this.compareMode=b)}destroy(){const{gl:l}=this.context;l.deleteTexture(this.texture),this.texture=null}}class IE{constructor(l,u){this.context=l,this.texture=u}bind(l,u){const{context:p}=this,{gl:y}=p;y.bindTexture(y.TEXTURE_2D,this.texture),l!==this.minFilter&&(y.texParameteri(y.TEXTURE_2D,y.TEXTURE_MAG_FILTER,l),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_MIN_FILTER,l),this.minFilter=l),u!==this.wrapS&&(y.texParameteri(y.TEXTURE_2D,y.TEXTURE_WRAP_S,u),y.texParameteri(y.TEXTURE_2D,y.TEXTURE_WRAP_T,u),this.wrapS=u)}}const eke=Cn([{name:"a_pos_3f",components:3,type:"Float32"}]),tke=Cn([{name:"a_color_3f",components:3,type:"Float32"}]),rke=Cn([{name:"a_color_4f",components:4,type:"Float32"}]),nke=Cn([{name:"a_uv_2f",components:2,type:"Float32"}]),ike=Cn([{name:"a_normal_3f",components:3,type:"Float32"}]),ske=Cn([{name:"a_normal_matrix0",components:4,type:"Float32"},{name:"a_normal_matrix1",components:4,type:"Float32"},{name:"a_normal_matrix2",components:4,type:"Float32"},{name:"a_normal_matrix3",components:4,type:"Float32"}]),ake=Cn([{name:"a_pbr",components:4,type:"Uint16"},{name:"a_heightBasedEmissiveStrength",components:3,type:"Float32"}]);function gY(h,l){const u=Vj(h.projection,h.zoom,h.width,h.height),p=function(b,S,k,I,O){const z=new Qe(k.lng-180*Eg,k.lat),U=new Qe(k.lng+180*Eg,k.lat),q=b.project(z.lng,z.lat),K=b.project(U.lng,U.lat),X=-Math.atan2(K.y-q.y,K.x-q.x),J=Tr.fromLngLat(k);J.y=fe(J.y,-1+Eg,1-Eg);const re=J.toLngLat(),ae=b.project(re.lng,re.lat),he=Tr.fromLngLat(re);he.x+=Eg;const ce=he.toLngLat(),ye=b.project(ce.lng,ce.lat),Ee=xY(ye.x-ae.x,ye.y-ae.y,X),Ce=Tr.fromLngLat(re);Ce.y+=Eg;const He=Ce.toLngLat(),ze=b.project(He.lng,He.lat),Ge=xY(ze.x-ae.x,ze.y-ae.y,X),Ue=Math.abs(Ee.x)/Math.abs(Ge.y),Ve=L([]);Z(Ve,Ve,-X*(1-(O?0:I)));const gt=L([]);return V(gt,gt,[1,1-(1-Ue)*I,1]),gt[4]=-Ge.x/Ge.y*I,Z(gt,gt,X),D(gt,Ve,gt),gt}(h.projection,0,h.center,u,l),y=yY(h);return V(p,p,[y,y,1]),p}function yY(h){const l=h.projection,u=Vj(h.projection,h.zoom,h.width,h.height),p=w5(l,h.center),y=w5(l,Qe.convert(l.center));return Math.pow(2,p*u+(1-u)*y)}function Vj(h,l,u,p,y=1/0){const b=h.range;if(!b)return 0;const S=Math.min(y,Math.max(u,p)),k=Math.log2(S/1024);return Me(b[0]+k,b[1]+k,l)}const Eg=1/4e4;function w5(h,l){const u=fe(l.lat,-85.051129,Et),p=new Qe(l.lng-180*Eg,u),y=new Qe(l.lng+180*Eg,u),b=h.project(p.lng,u),S=h.project(y.lng,u),k=Tr.fromLngLat(p),I=Tr.fromLngLat(y),O=S.x-b.x,z=S.y-b.y,U=I.x-k.x,q=I.y-k.y,K=Math.sqrt((U*U+q*q)/(O*O+z*z));return Math.log2(K)}function xY(h,l,u){const p=Math.cos(u),y=Math.sin(u);return{x:h*p-l*y,y:h*y+l*p}}function _Y(h,l,u){L(h),Z(h,h,Hn(l[2])),G(h,h,Hn(l[0])),W(h,h,Hn(l[1])),V(h,h,u),D(h,h,[1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1])}function qj(h,l,u,p,y,b,S,k){const I=[u[0]-l[0],u[1]-l[1],0],O=[p[0]-l[0],p[1]-l[1],0];if(Oe(I)<1e-12||Oe(O)<1e-12)return Pn(h);const z=er([],I,O);_t(z,z),je(O,p,l),I[2]=(b-y)*k,O[2]=(S-y)*k;const U=I;return er(U,I,O),_t(U,U),sa(h,z,U)}function Gj(h,l,u=!1){const p=$p(l.zoom),y=function(b,S,k){const I=S.worldSize,O=[b[12],b[13],b[14]],z=mt(O[1]/I),U=tt(O[0]/I),q=L([]),K=ot(1,z)*I,X=ot(1,0)*I*Vt(z,S.zoom),J=1/W3(I);let re=X*J;if(k){const ye=Vj(S.projection,S.zoom,S.width,S.height,1024);re=J*S.projection.pixelSpaceConversion(S.center.lat,I,ye)}const ae=Fe(z,U);ge(ae,ae,Ze([],_t([],ae),K*re*O[2]));const he=function(ye){const Ee=[ye[0],ye[1],ye[2]];let Ce=[0,1,0];const He=er([],Ce,Ee);return er(Ce,Ee,He),St(Ce)===0&&(Ce=[0,1,0],er(He,Ee,Ce)),_t(He,He),_t(Ce,Ce),_t(Ee,Ee),[He[0],He[1],He[2],0,Ce[0],Ce[1],Ce[2],0,Ee[0],Ee[1],Ee[2],0,ye[0],ye[1],ye[2],1]}(ae);V(q,q,[re,re,re*K]),B(q,q,[-O[0],-O[1],-O[2]]);const ce=D([],S.globeMatrix,he);return D(ce,ce,q),D(ce,ce,b),ce}(h,l,u);if(p>0){const b=function(S,k){const I=k.worldSize,O=ot(1,0)*I*Vt(k.center.lat,k.zoom)/W3(I),z=ot(1,k.center.lat)*I,U=L([]);W(U,U,Hn(k.center.lng)),G(U,U,Hn(k.center.lat)),B(U,U,[0,0,Ne]),V(U,U,[O,O,O*z]);const q=k.point;return B(U,U,[-q.x,-q.y,0]),D(U,U,S),D(U,k.globeMatrix,U)}(h,l);return function(S,k,I){const O=(X,J,re)=>{const ae=Oe(X),he=Oe(J),ce=zp(X,J,re);return Ze(ce,ce,1/Oe(ce)*Zr(ae,he,re))},z=O([S[0],S[1],S[2]],[k[0],k[1],k[2]],I),U=O([S[4],S[5],S[6]],[k[4],k[5],k[6]],I),q=O([S[8],S[9],S[10]],[k[8],k[9],k[10]],I),K=zp([S[12],S[13],S[14]],[k[12],k[13],k[14]],I);return[z[0],z[1],z[2],0,U[0],U[1],U[2],0,q[0],q[1],q[2],0,K[0],K[1],K[2],1]}(y,b,p)}return y}function S5(h,l,u,p){const y=ii.projectAabbCorners(p,u);let b=Number.MAX_VALUE;for(let k=0;k0||re===0&&X[0]*J[0]+X[1]*J[1]>=0&&X[0]*X[0]+X[1]*X[1]>J[0]*J[0]+J[1]*J[1])&&(z=K)}U=z}while(U!==O);return I.length>0&&I.push(I[0]),I}(y);if(Ps(h,S))return b}const d0=64,sb={CoordinateSpaceTile:1,HasMapboxMeshFeatures:4,HasMeshoptCompression:8};function Hj(h,l,u,p,y,b,S,k,I,O=!1){const z=u.zoom,U=u.project(p),q=Vt(p.lat,z),K=1/q;L(h),B(h,h,[U.x+S[0]*K,U.y+S[1]*K,S[2]]);let X=1,J=1;const re=u.worldSize;if(O){if(u.projection.name==="mercator"){let ye=0;u.elevation&&(ye=u.elevation.getAtPointOrZero(new Tr(U.x/re,U.y/re),0));const Ee=ur([],[U.x,U.y,ye,1],u.projMatrix)[3]/u.cameraToCenterDistance;X=Ee,J=Ee*Vt(u.center.lat,z)}else if(u.projection.name==="globe"){const ye=Gj(h,u),Ee=[0,0,0,1];ur(Ee,Ee,D([],u.projMatrix,ye));const Ce=Ee[3]/u.cameraToCenterDistance,He=$p(z),ze=u.projection.pixelsPerMeter(p.lat,re)*Vt(p.lat,z),Ge=u.projection.pixelsPerMeter(u.center.lat,re)*Vt(u.center.lat,z);X=Ce/Zr(ze,tr(u.center.lat),He),J=Ce*q/ze,X*=Ge,J*=Ge}}else X=K;V(h,h,[X,X,J]);const ae=[...h],he=l.orientation,ce=[];if(_Y(ce,[he[0]+(y?y[0]:0),he[1]+(y?y[1]:0),he[2]+(y?y[2]:0)],b),D(h,ae,ce),k&&u.elevation){let ye=0;const Ee=[];if(I&&u.elevation){ye=function(He,ze,Ge,Ue,Ve){const gt=ze.elevation;if(!gt)return 0;const wt=ii.projectAabbCorners(Ge,Ue),kt=ot(1,Ve.lat)*ze.worldSize,jt=function(Ht,fr){const Er=[0,0,1],$r=[{corners:[0,1,3,2],dotProductWithUp:0},{corners:[1,5,2,6],dotProductWithUp:0},{corners:[0,4,1,5],dotProductWithUp:0},{corners:[2,6,3,7],dotProductWithUp:0},{corners:[4,7,5,6],dotProductWithUp:0},{corners:[0,3,4,7],dotProductWithUp:0}];for(const Lr of $r){const on=Ht[Lr.corners[0]],On=Ht[Lr.corners[1]],ln=Ht[Lr.corners[2]],Fn=[On[0]-on[0],On[1]-on[1],fr*(On[2]-on[2])],yn=er(Fn,Fn,[ln[0]-on[0],ln[1]-on[1],fr*(ln[2]-on[2])]);_t(yn,yn),Lr.dotProductWithUp=Rt(yn,Er)}return $r.sort((Lr,on)=>Lr.dotProductWithUp-on.dotProductWithUp),$r[0].corners}(wt,kt),Ct=wt[jt[0]],Bt=wt[jt[1]],pt=wt[jt[2]],It=wt[jt[3]],Lt=gt.getAtPointOrZero(new Tr(Ct[0]/ze.worldSize,Ct[1]/ze.worldSize),0),$t=gt.getAtPointOrZero(new Tr(Bt[0]/ze.worldSize,Bt[1]/ze.worldSize),0),Gt=gt.getAtPointOrZero(new Tr(pt[0]/ze.worldSize,pt[1]/ze.worldSize),0),mr=gt.getAtPointOrZero(new Tr(It[0]/ze.worldSize,It[1]/ze.worldSize),0),nr=(Lt+mr)/2,rr=($t+Gt)/2;return nr>rr?$t=l.gl.NEAREST_MIPMAP_NEAREST}),h.uploaded=!0,h.image=null)}function oke(h,l,u){h.indexBuffer=l.createIndexBuffer(h.indexArray,!1,!0),h.vertexBuffer=l.createVertexBuffer(h.vertexArray,eke.members,!1,!0),h.normalArray&&(h.normalBuffer=l.createVertexBuffer(h.normalArray,ike.members,!1,!0)),h.texcoordArray&&(h.texcoordBuffer=l.createVertexBuffer(h.texcoordArray,nke.members,!1,!0)),h.colorArray&&(h.colorBuffer=l.createVertexBuffer(h.colorArray,(h.colorArray.bytesPerElement===12?tke:rke).members,!1,!0)),h.featureArray&&(h.pbrBuffer=l.createVertexBuffer(h.featureArray,ake.members,!0)),h.segments=Si.simpleSegment(0,0,h.vertexArray.length,h.indexArray.length);const p=h.material;p.pbrMetallicRoughness.baseColorTexture&&jE(p.pbrMetallicRoughness.baseColorTexture,l),p.pbrMetallicRoughness.metallicRoughnessTexture&&jE(p.pbrMetallicRoughness.metallicRoughnessTexture,l),p.normalTexture&&jE(p.normalTexture,l),p.occlusionTexture&&jE(p.occlusionTexture,l,u),p.emissionTexture&&jE(p.emissionTexture,l)}function T5(h,l,u){if(h.meshes)for(const p of h.meshes)oke(p,l,u);if(h.children)for(const p of h.children)T5(p,l,u)}function Wj(h){if(h.meshes)for(const l of h.meshes)l.indexArray.destroy(),l.vertexArray.destroy(),l.colorArray&&l.colorArray.destroy(),l.normalArray&&l.normalArray.destroy(),l.texcoordArray&&l.texcoordArray.destroy(),l.featureArray&&l.featureArray.destroy();if(h.children)for(const l of h.children)Wj(l)}function lke(h){h.pbrMetallicRoughness.baseColorTexture&&h.pbrMetallicRoughness.baseColorTexture.gfxTexture&&h.pbrMetallicRoughness.baseColorTexture.gfxTexture.destroy(),h.pbrMetallicRoughness.metallicRoughnessTexture&&h.pbrMetallicRoughness.metallicRoughnessTexture.gfxTexture&&h.pbrMetallicRoughness.metallicRoughnessTexture.gfxTexture.destroy(),h.normalTexture&&h.normalTexture.gfxTexture&&h.normalTexture.gfxTexture.destroy(),h.emissionTexture&&h.emissionTexture.gfxTexture&&h.emissionTexture.gfxTexture.destroy(),h.occlusionTexture&&h.occlusionTexture.gfxTexture&&h.occlusionTexture.gfxTexture.destroy()}function E5(h){if(h.meshes)for(const l of h.meshes)l.vertexBuffer&&(l.vertexBuffer.destroy(),l.indexBuffer.destroy(),l.normalBuffer&&l.normalBuffer.destroy(),l.texcoordBuffer&&l.texcoordBuffer.destroy(),l.colorBuffer&&l.colorBuffer.destroy(),l.pbrBuffer&&l.pbrBuffer.destroy(),l.segments.destroy(),l.material&&lke(l.material));if(h.footprintDebugMesh&&(h.footprintDebugMesh.vertexBuffer.destroy(),h.footprintDebugMesh.indexBuffer.destroy(),h.footprintDebugMesh.segments.destroy()),h.children)for(const l of h.children)E5(l)}function h0(h,l){const u=h.json.bufferViews[l.bufferView],p=$j[l.componentType];return new p(h.buffers[u.buffer],(l.byteOffset||0)+(u.byteOffset||0),l.count*(u.byteStride&&u.byteStride!==CE[l.type]*p.BYTES_PER_ELEMENT?u.byteStride/p.BYTES_PER_ELEMENT:CE[l.type]))}function A5(h,l,u,p){const y=$j[l.componentType],b=function(z){switch(z){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:return 1}}(y),S=h.json.bufferViews[l.bufferView],k=S.byteStride?S.byteStride/y.BYTES_PER_ELEMENT:CE[l.type],I=u.float32,O=I.length/u.capacity;for(let z=0,U=0;z0){for(let re=0;re0){b.texcoordArray=new Mp;const q=l.json.accessors[y.TEXCOORD_0];b.texcoordArray.resize(q.count);const K=h0(l,q);A5(l,q,b.texcoordArray,K)}if(y._FEATURE_ID_RGBA4444!==void 0){const q=l.json.accessors[y._FEATURE_ID_RGBA4444];l.json.extensionsUsed&&l.json.extensionsUsed.includes("EXT_meshopt_compression")&&(b.featureData=h0(l,q))}y._FEATURE_RGBA4444!==void 0&&(b.featureData=new Uint32Array(h0(l,l.json.accessors[y._FEATURE_RGBA4444]).buffer));const U=h.material;return b.material=function(q,K){const{emissiveFactor:X=[0,0,0],alphaMode:J="OPAQUE",alphaCutoff:re=.5,normalTexture:ae,occlusionTexture:he,emissiveTexture:ce,doubleSided:ye,name:Ee}=q,{baseColorFactor:Ce=[1,1,1,1],metallicFactor:He=1,roughnessFactor:ze=1,baseColorTexture:Ge,metallicRoughnessTexture:Ue}=q.pbrMetallicRoughness||{},Ve=he?K[he.index]:void 0;if(he&&he.extensions&&he.extensions.KHR_texture_transform&&Ve){const gt=he.extensions.KHR_texture_transform;Ve.offsetScale=[gt.offset[0],gt.offset[1],gt.scale[0],gt.scale[1]]}return{name:Ee,pbrMetallicRoughness:{baseColorFactor:new Wn(...Ce),metallicFactor:He,roughnessFactor:ze,baseColorTexture:Ge?K[Ge.index]:void 0,metallicRoughnessTexture:Ue?K[Ue.index]:void 0},doubleSided:ye,emissiveFactor:new Wn(...X),alphaMode:J,alphaCutoff:re,normalTexture:ae?K[ae.index]:void 0,occlusionTexture:Ve,emissionTexture:ce?K[ce.index]:void 0,defined:q.defined===void 0}}(U!==void 0?l.json.materials[U]:{defined:!1},u),b}function bY(h,l,u){const{matrix:p,rotation:y,translation:b,scale:S,mesh:k,extras:I,children:O,name:z}=h,U={};if(U.name=z,U.localMatrix=p||function(q,K,X,J){var re=K[0],ae=K[1],he=K[2],ce=K[3],ye=re+re,Ee=ae+ae,Ce=he+he,He=re*ye,ze=re*Ee,Ge=re*Ce,Ue=ae*Ee,Ve=ae*Ce,gt=he*Ce,wt=ce*ye,kt=ce*Ee,jt=ce*Ce,Ct=J[0],Bt=J[1],pt=J[2];return q[0]=(1-(Ue+gt))*Ct,q[1]=(ze+jt)*Ct,q[2]=(Ge-kt)*Ct,q[3]=0,q[4]=(ze-jt)*Bt,q[5]=(1-(He+gt))*Bt,q[6]=(Ve+wt)*Bt,q[7]=0,q[8]=(Ge+kt)*pt,q[9]=(Ve-wt)*pt,q[10]=(1-(He+Ue))*pt,q[11]=0,q[12]=X[0],q[13]=X[1],q[14]=X[2],q[15]=1,q}([],y||[0,0,0,1],b||[0,0,0],S||[1,1,1]),U.globalMatrix=N(U.localMatrix),k!==void 0){U.meshes=u[k];const q=U.anchor=[0,0];for(const K of U.meshes){const{min:X,max:J}=K.aabb;q[0]+=X[0]+J[0],q[1]+=X[1]+J[1]}q[0]=Math.floor(q[0]/U.meshes.length/2),q[1]=Math.floor(q[1]/U.meshes.length/2)}if(I&&(I.id&&(U.id=I.id),I.lights&&(U.lights=function(q){if(!q.length)return[];const K=function(he){const ce=atob(he),ye=new Uint8Array(ce.length);for(let Ee=0;Ee1&&p[p.length-1].equals(p[0])&&p.pop();let y=0;for(let S=0;S0&&p.reverse();const b=eb(p.flatMap(S=>[S.x,S.y]),[]);return b.length===0?null:{vertices:p,indices:b}}function hke(h,l){const u=[],p=[];let y=0;const b=[];for(const S of h){y=u.length;const k=S.vertexArray.float32,I=S.indexArray.uint16;for(let O=0;O0&&([p[S+1],p[S+2]]=[p[S+2],p[S+1]])}return{vertices:u,indices:p}}function k5(h){const l=function(I,O){const z=[],U=WebGL2RenderingContext;if(I.json.textures)for(const q of I.json.textures){const K={magFilter:U.LINEAR,minFilter:U.NEAREST,wrapS:U.REPEAT,wrapT:U.REPEAT};q.sampler!==void 0&&Object.assign(K,I.json.samplers[q.sampler]),z.push({image:O[q.source],sampler:K,uploaded:!1})}return z}(h,h.images),u=function(I,O){const z=[];for(const U of I.json.meshes){const q=[];for(const K of U.primitives)q.push(cke(K,I,O));z.push(q)}return z}(h,l),{scenes:p,scene:y,nodes:b}=h.json,S=p?p[y||0].nodes:[...b.keys()],k=[];for(const I of S)k.push(bY(b[I],h,u));return function(I,O,z){const U={},q=new Set;for(let K=0;K0){const K=Array.from(q.values()).sort((X,J)=>X-J);for(let X=K.length-1;X>=0;X--)I.splice(K[X],1)}}(k,S,h.json.nodes),k}function fke(h){h.heightmap=new Float32Array(4096),h.heightmap.fill(-1);const l=h.vertexArray.float32,u=h.aabb.min[0]-1,p=h.aabb.min[1]-1,y=d0/(h.aabb.max[0]-u+2),b=d0/(h.aabb.max[1]-p+2);for(let S=0;Sh.heightmap[O*d0+I]&&(h.heightmap[O*d0+I]=k)}}function wY(h,l,u,p,y){u.reserve(u.length+4*h.length),p.reserve(p.length+10*h.length),y.reserve(y.length+10*h.length);let b=p.length;for(const S of h){const k=Math.min(10,Math.max(4,1.3*S.height))*l,I=[-S.normal[1],S.normal[0],0],O=Math.min(.29,.1*S.width/S.depth),z=S.width-2*S.depth*l*(O+.01),U=at([],S.pos,I,z/2),q=at([],S.pos,I,-z/2),K=[U[0],U[1],U[2]+S.height],X=[q[0],q[1],q[2]+S.height],J=at([],S.normal,I,O);Ze(J,J,k);const re=at([],S.normal,I,-O);Ze(re,re,k),ge(J,U,J),ge(re,q,re),U[2]+=.1,q[2]+=.1,p.emplaceBack(J[0],J[1],J[2]),p.emplaceBack(re[0],re[1],re[2]),p.emplaceBack(U[0],U[1],U[2]),p.emplaceBack(q[0],q[1],q[2]),p.emplaceBack(K[0],K[1],K[2]),p.emplaceBack(X[0],X[1],X[2]),p.emplaceBack(U[0],U[1],U[2]),p.emplaceBack(q[0],q[1],q[2]),p.emplaceBack(J[0],J[1],J[2]),p.emplaceBack(re[0],re[1],re[2]);const ae=z/k/2;y.emplaceBack(-ae-O,-1,ae,.8),y.emplaceBack(ae+O,-1,ae,.8),y.emplaceBack(-ae,0,ae,1.3),y.emplaceBack(ae,0,ae,1.3),y.emplaceBack(ae+O,-.8,ae,.7),y.emplaceBack(ae+O,-.8,ae,.7),y.emplaceBack(0,0,ae,1.3),y.emplaceBack(0,0,ae,1.3),y.emplaceBack(ae+O,-1.2,ae,.8),y.emplaceBack(ae+O,-1.2,ae,.8),u.emplaceBack(6+b,4+b,8+b),u.emplaceBack(7+b,9+b,5+b),u.emplaceBack(0+b,1+b,2+b),u.emplaceBack(1+b,3+b,2+b),b+=10}}function pke(h,l){const u={};u.indexArray=new bs,u.vertexArray=new lu,u.colorArray=new mh,wY(h,l,u.indexArray,u.vertexArray,u.colorArray);const p={defined:!0};p.emissiveFactor=Wn.black;const y={};return y.baseColorFactor=Wn.white,p.pbrMetallicRoughness=y,u.material=p,u.aabb=new ii([1/0,1/0,1/0],[-1/0,-1/0,-1/0]),u}const SY=Cn([{name:"a_pos_3f",components:3,type:"Float32"}]),mke=Cn([{name:"a_normal_3",components:3,type:"Int16"}]),gke=Cn([{name:"a_centroid_3",components:3,type:"Int16"}]),TY=Cn([{name:"a_part_color_emissive",components:2,type:"Uint16"}]),yke=Cn([{name:"a_faux_facade_color_emissive",components:2,type:"Uint16"}]),xke=Cn([{name:"a_faux_facade_data",components:4,type:"Uint16"}]),_ke=Cn([{name:"a_faux_facade_vertical_range",components:2,type:"Uint16"}]),vke=Cn([{name:"a_bloom_attenuation",components:4,type:"Float32"}]),bke=Cn([{name:"a_flood_light_wall_radius_1i16",components:1,type:"Int16"}]),EY=en.types,Kj=32767;function wke(h,l){const u=sr+l;for(const p of h)for(const y of p)if(y.x<-l||y.x>u||y.y<-l||y.y>u)return!1;return!0}function Ske(h){switch(h){case"flat":return 3;case"hipped":return 1;case"gabled":return 2;case"parapet":return 0;case"mansard":return 4;case"skillion":return 5;case"pyramidal":return 6;default:throw new Error(`Unknown roof shape: ${h}`)}}class C5{constructor(){this.layoutVertexArray=new lu,this.layoutAttenuationArray=new mh,this.layoutColorArray=new cu,this.indexArray=new bs,this.indexArrayForConflation=new bs,this.segmentsBucket=new Si}}class I5{constructor(l){this.layoutFacadePaintArray=null,this.layoutFacadeDataArray=null,this.layoutFacadeVerticalRangeArray=null,this.segmentsBucket=new Si,this.entranceBloom=new C5;const u=66560;this.layoutVertexArray=new lu,this.layoutVertexArray.reserve(u),this.layoutNormalArray=new _d,this.layoutNormalArray.reserve(u),this.layoutCentroidArray=new _d,this.layoutCentroidArray.reserve(u),this.layoutColorArray=new cu,this.layoutColorArray.reserve(u),this.layoutFloodLightDataArray=new Kv,this.layoutFloodLightDataArray.reserve(u),this.layoutAOArray=new Yv,this.layoutAOArray.reserve(u),this.indexArray=new bs,this.indexArray.reserve(66560),this.indexArrayForConflation=new bs,this.segmentsBucket=new Si,this.entranceBloom=new C5,l&&(this.layoutFacadePaintArray=new cu,this.layoutFacadeDataArray=new xg,this.layoutFacadeVerticalRangeArray=new cu)}reserve(l,u,p){this.layoutVertexArray.reserveForAdditional(l),this.layoutCentroidArray.reserveForAdditional(l),this.layoutFloodLightDataArray.reserveForAdditional(l),this.layoutNormalArray.reserveForAdditional(l),this.layoutAOArray.reserveForAdditional(l),this.layoutColorArray.reserveForAdditional(l),this.indexArray.reserveForAdditional(u),p&&(this.layoutFacadePaintArray.reserveForAdditional(l),this.layoutFacadeDataArray.reserveForAdditional(l),this.layoutFacadeVerticalRangeArray.reserveForAdditional(l))}}class AY{constructor(l){this.colorBufferUploaded=!1,this.maxHeight=0,this.replacementUpdateTime=0,this.activeReplacements=[],this.footprints=[],this.footprintsVertices=new Mp,this.footprintsIndices=new Op,this.footprintsMin=new Ot(1/0,1/0),this.footprintsMax=new Ot(-1/0,-1/0),this.featuresOnBorder=[],this.buildingWithoutFacade=new I5(!1),this.buildingWithFacade=new I5(!0),this.indexArrayForConflationUploaded=!1,this.featureFootprintLookup=new Map,this.buildingIds=new Set,this.footprintLookup={},this.zoom=l.zoom,this.canonical=l.canonical,this.layers=l.layers,this.layerIds=this.layers.map(u=>u.fqid),this.index=l.index,this.hasPattern=!1,this.worldview=l.worldview,this.lut=l.lut,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut}),this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.projection=l.projection,this.groundEffect=new m5(l),this.groundEffect.groundRadiusArray=new wc,this.hasAppearances=null}updateFootprints(l,u){const p=new Pj([],[],1),y={vertices:[],indices:new Uint32Array(0),grid:p,min:this.footprintsMin,max:this.footprintsMax,buildingIds:this.buildingIds};u.push({footprint:y,id:l})}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}prepare(){return function(){if(zj!=null||rY!=null)return null;if(ib!=null)return ib;const l=fetch(so());return ib=function(u){let p,y,b,S,k;function I(){p=new Uint8Array(k.buffer),y=new Int16Array(k.buffer),b=new Int32Array(k.buffer),S=new Float32Array(k.buffer)}function O(){throw new Error("Unexpected BuildingGen error.")}const z=()=>{},U={a:{a:O,f:function(q){const K=p.length,X=Math.max(q>>>0,Math.ceil(1.2*K)),J=Math.ceil((X-K)/65536);try{return k.grow(J),I(),!0}catch{return!1}},g:O,b:z,c:z,d:z,e:z}};return(WebAssembly.instantiateStreaming?WebAssembly.instantiateStreaming(u,U):u.then(q=>q.arrayBuffer()).then(q=>WebAssembly.instantiate(q,U))).then(q=>{const K=q.instance.exports;return(0,K.g)(),k=K.f,I(),new WAe({setStyle:K.h,setAOOptions:K.i,setMetricOptions:K.j,setStructuralOptions:K.k,setFacadeOptions:K.l,setFauxFacadeOptions:K.m,setFacadeClassifierOptions:K.n,addFeature:K.o,addFacade:K.p,generateMesh:K.q,getLastError:K.r,getOuterRingLength:K.s,getMeshCount:K.t,getPositionsPtr:K.u,getPositionsLength:K.v,getNormalsPtr:K.w,getNormalsLength:K.x,getAOPtr:K.y,getAOLength:K.z,getUVPtr:K.A,getUVLength:K.B,getFauxFacadePtr:K.C,getFauxFacadeLength:K.D,getIndicesPtr:K.E,getIndicesLength:K.F,getBuildingPart:K.G,getRingCount:K.H,getRingPtr:K.I,getRingLength:K.J,malloc:K.K,free:K.L,heapU8:p,heap16:y,heap32:b,heapF32:S})})}(l).then(u=>(ib=null,zj=u,zj)).catch(u=>{zr("Could not load building-gen"),ib=null,rY=u instanceof Error?u:new Error("Unknown error")}),ib}()}populate(l,u,p,y){const b=KAe();if(!b)return;const S=Mt(p);this.tileToMeter=S,this.brightness=u.brightness,b.setStyle({normalScale:[1,-1,S],tileToMeters:S}),b.setAOOptions(!1,.3),b.setMetricOptions(!1,16),b.setStructuralOptions(!0),b.setFacadeClassifierOptions(3);const k=new Map,I=new Map;let O=0;for(const{feature:ae}of l){if(EY[ae.type]!=="LineString"){k.set(ae.id,ae.properties.source_id);continue}const he=this.layers[0]._featureFilter.needGeometry;if(he&&!this.layers[0]._featureFilter.filter(new Jn(this.zoom),ae,p))continue;const ce=gn(ae,he);if(!he&&!this.layers[0]._featureFilter.filter(new Jn(this.zoom),ce,p))continue;const ye=he?ce.geometry:Ur(ae,p,y),Ee=[];for(const Ge of ye)for(const Ue of Ge)Ee.push(Ue.x),Ee.push(Ue.y);const Ce={coordinates:Ee,crossPerc:ae.properties.cross_perc,distanceToRoad:ae.properties.distance_to_road,entrances:ae.properties.entrances,sourceId:0},He=ae.properties.source_id;let ze=I.get(He);ze||(ze=[],I.set(He,ze)),ze.push(Ce),++O}this.maxHeight=0;const z=new Array,U=new Set,q=ae=>{ae!=null&&U.add(ae)},K=(ae,he)=>{ae!=null&&z.push({buildingId:ae,footprintIndex:he})},X=64*(l.length-O),J=X/2;this.buildingWithFacade.reserve(X,J,!0),this.buildingWithoutFacade.reserve(2*X,2*J,!1),this.footprintsIndices.reserve(16*(l.length-O)),this.footprintsVertices.reserve(8*(l.length-O));for(const{feature:ae,id:he,index:ce,sourceLayerIndex:ye}of l){if(EY[ae.type]==="LineString")continue;const Ee=this.layers[0]._featureFilter.needGeometry;if(Ee&&!this.layers[0]._featureFilter.filter(new Jn(this.zoom),ae,p))continue;let Ce=null;if(ae.properties&&ae.properties.hasOwnProperty("building_id")&&(Ce=Number(ae.properties.building_id),U.has(Ce)))continue;const He=gn(ae,Ee);if(!Ee&&!this.layers[0]._featureFilter.filter(new Jn(this.zoom),He,p))continue;const ze=Ee?He.geometry:Ur(ae,p,y),Ge=_E(ze,500);let Ue=!1;for(const En of Ge)if(En.length!==1){Ue=!0;break}if(Ue){q(Ce);continue}if(!wke(ze,163)){q(Ce);continue}const Ve=this.layers[0],gt=Ske(Ve.layout.get("building-roof-shape").evaluate(ae,{},p)),wt=Ve.layout.get("building-base").evaluate(ae,{},p),kt=Ve.layout.get("building-height").evaluate(ae,{},p),jt=Ve.layout.get("building-flood-light-ground-radius").evaluate(ae,{},p),Ct=Ve.paint.get("building-ambient-occlusion-intensity"),Bt=jt/this.tileToMeter;ae.properties["building-part"]="roof";const pt=Ve.paint.get("building-color").evaluate(ae,{},this.canonical).toPremultipliedRenderColor(this.lut),It=Ve.paint.get("building-emissive-strength").evaluate(ae,{},this.canonical);ae.properties["building-part"]="wall";const Lt=Ve.paint.get("building-color").evaluate(ae,{},this.canonical).toPremultipliedRenderColor(this.lut),$t=Ve.paint.get("building-emissive-strength").evaluate(ae,{},this.canonical);ae.properties["building-part"]="window";const Gt=Ve.paint.get("building-color").evaluate(ae,{},this.canonical).toPremultipliedRenderColor(this.lut),mr=Ve.paint.get("building-emissive-strength").evaluate(ae,{},this.canonical);ae.properties["building-part"]="door";const nr=Ve.paint.get("building-color").evaluate(ae,{},this.canonical).toPremultipliedRenderColor(this.lut),rr=Ve.paint.get("building-emissive-strength").evaluate(ae,{},this.canonical);let Ht=Ve.layout.get("building-flood-light-wall-radius").evaluate(ae,{},p);Ht=fe(Ht,0,2048);const fr=Ht/2048*Kj,Er=k.get(he),$r=I.get(Er)||[],Lr=$r.length!==0&&Ve.layout.get("building-facade").evaluate(ae,{},p);b.setFacadeOptions(4,!0),b.setFauxFacadeOptions(Lr,!1,1);let on=0,On=0,ln=0,Fn=0,yn=0,ms=0,ei=0,Vn=0,Ai=0,us=0,Na=0;if(Lr){let En=Math.round(Ve.layout.get("building-facade-floors").evaluate(ae,{},p));if(wt===0){En=Math.max(1,En-($r.length>0?1:0));let Ts=4;if(kt>100){const va=[10,13,15];Ts=va[ae.id?ae.id%va.length:0]}else kt<=10&&(Ts=3);b.setFacadeOptions(Ts,!0),yn=(kt<15?1.3:1.61803)*Ts/S}else yn=wt/S;ms=kt/S,yn=Math.min(yn,ms),ln=Ve.layout.get("building-facade-unit-width").evaluate(ae,{},p)/S,Fn=(ms-yn)/En,b.setFauxFacadeOptions(!0,!0,ln);const Wa=Ve.layout.get("building-facade-window").evaluate(ae,{},p);on=Wa[0],On=Wa[1],ei=Math.floor(65535*Math.min(1,yn/sr)),Vn=Math.floor(65535*Math.min(1,ms/sr)),Ai=Math.floor(255*on)<<8|Math.floor(255*On),us=Math.floor(65535*Math.min(1,ln/sr)),Na=Math.floor(65535*Math.min(1,Fn/sr))}const ds=Array(Ge.length),ws={x:1/0,y:1/0},Hs={x:-1/0,y:-1/0},Ss={x:0,y:0};let vo=0;for(let En=0;En0){const Ts=[],va=Array(Wa.length+1);va[0]=0;for(let zu=0;zusr||ws.y<0||Hs.y>sr)&&this.featuresOnBorder.push({featureId:ae.id,footprintIndex:this.footprints.length});{const En=eb(Wp,null,2);this.footprintsIndices.resize(this.footprintsIndices.length+En.length),this.footprintsIndices.uint16.set(En,xb),this.buildingIds.add(Ce??ae.id),this.footprintsMin.x=Math.min(this.footprintsMin.x,Fu.x),this.footprintsMin.y=Math.min(this.footprintsMin.y,Fu.y),this.footprintsMax.x=Math.max(this.footprintsMax.x,Bu.x),this.footprintsMax.y=Math.max(this.footprintsMax.y,Bu.y);const Wa={footprintVertexOffset:Hp,footprintVertexLength:this.footprintsVertices.length-Hp,footprintIndexOffset:xb,footprintIndexLength:this.footprintsIndices.length-xb,min:Fu,max:Bu,hiddenFlags:0,indicesOffset:SP,indicesLength:_4,bloomIndicesOffset:bo,bloomIndicesLength:gs,groundEffectVertexOffset:_0,groundEffectVertexLength:_b,hasFauxFacade:Lr,height:yb,promoteId:he,feature:He,parts:Ga,buildingBloom:yl},Ts=this.footprints.length;ae.id!==void 0&&this.featureFootprintLookup.set(ae.id,Ts),K(Ce,Ts),this.footprints.push(Wa)}this.programConfigurations.populatePaintArrays(vn.layoutVertexArray.length,ae,ce,{},u.availableImages,p,u.brightness),this.groundEffect.addPaintPropertiesData(ae,ce,{},u.availableImages,p,u.brightness),u.featureIndex.insert(ae,ze,ce,ye,this.index,Zo)}z.forEach(({buildingId:ae,footprintIndex:he})=>{U.has(ae)&&(this.footprints[he].hiddenFlags|=4)});const re=new Set;this.buildingIds.forEach((ae,he,ce)=>{U.has(ae)||re.add(ae)}),this.buildingIds=re,this.groundEffect.prepareBorderSegments()}update(l,u,p,y,b,S,k){this.programConfigurations.updatePaintArrays(l,u,b,p,y,S,k),this.groundEffect.update(l,u,b,p,y,S,k),this.evaluate(this.layers[0],l),this.colorBufferUploaded=!1}isEmpty(){return this.buildingWithoutFacade.layoutVertexArray.length===0&&this.buildingWithFacade.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload||this.groundEffect.programConfigurations.needsUpload}upload(l){const u=p=>{p.layoutVertexBuffer=l.createVertexBuffer(p.layoutVertexArray,SY.members),p.layoutNormalBuffer=l.createVertexBuffer(p.layoutNormalArray,mke.members),p.layoutCentroidBuffer=l.createVertexBuffer(p.layoutCentroidArray,gke.members),p.layoutFloodLightDataBuffer=l.createVertexBuffer(p.layoutFloodLightDataArray,bke.members),p.layoutFacadeDataArray&&p.layoutFacadeDataArray.length&&(p.layoutFacadeDataBuffer=l.createVertexBuffer(p.layoutFacadeDataArray,xke.members)),p.layoutFacadeVerticalRangeArray&&p.layoutFacadeVerticalRangeArray.length&&(p.layoutFacadeVerticalRangeBuffer=l.createVertexBuffer(p.layoutFacadeVerticalRangeArray,_ke.members)),p.entranceBloom.layoutVertexArray.length&&(p.entranceBloom.layoutVertexBuffer=l.createVertexBuffer(p.entranceBloom.layoutVertexArray,SY.members),p.entranceBloom.layoutAttenuationBuffer=l.createVertexBuffer(p.entranceBloom.layoutAttenuationArray,vke.members)),this.uploadUpdatedColorBuffer(l),this.uploadUpdatedIndexBuffer(l)};this.uploaded||(u(this.buildingWithoutFacade),u(this.buildingWithFacade),this.groundEffect.upload(l)),this.groundEffect.uploadPaintProperties(l),this.programConfigurations.upload(l),this.uploaded=!0}destroy(){const l=u=>{u.layoutVertexBuffer&&(u.layoutVertexBuffer.destroy(),u.layoutNormalBuffer.destroy(),u.layoutColorBuffer.destroy(),u.segmentsBucket.destroy(),u.indexBuffer&&u.indexBuffer.destroy(),u.entranceBloom.layoutVertexBuffer&&(u.entranceBloom.layoutVertexBuffer.destroy(),u.entranceBloom.layoutColorBuffer.destroy(),u.entranceBloom.layoutAttenuationBuffer.destroy(),u.entranceBloom.indexBuffer.destroy(),u.entranceBloom.segmentsBucket.destroy()))};l(this.buildingWithoutFacade),l(this.buildingWithFacade),this.groundEffect.destroy(),this.programConfigurations.destroy()}updateFootprintHiddenFlags(l,u,p=!0){let y=!1;const b=p?u:0,S=0|(p?-1:~u);this.groundEffect.hiddenByLandmarkVertexArray.length===0&&this.groundEffect.hiddenByLandmarkVertexArray.resize(this.groundEffect.vertexArray.length);for(const k of l){const I=this.footprints[k],O=I.hiddenFlags&S|b;I.hiddenFlags!==O&&(I.hiddenFlags=O,y=!0,this.groundEffect.updateHiddenByLandmarkRange(I.groundEffectVertexOffset,I.groundEffectVertexLength,I.hiddenFlags!==0))}return y&&(this.indexArrayForConflationUploaded=!1),y}uploadUpdatedIndexBuffer(l){if(this.groundEffect.uploadHiddenByLandmark(l),this.indexArrayForConflationUploaded)return;const u=y=>{y.indexArray.length!==0&&(y.indexArrayForConflation.resize(y.indexArray.length),y.indexArrayForConflation.uint16.set(y.indexArray.uint16),y.entranceBloom.indexArrayForConflation.resize(y.entranceBloom.indexArray.length),y.entranceBloom.indexArrayForConflation.uint16.set(y.entranceBloom.indexArray.uint16))};u(this.buildingWithoutFacade),u(this.buildingWithFacade);for(const y of this.footprints){const b=y.hasFauxFacade?this.buildingWithFacade:this.buildingWithoutFacade,S=y.indicesOffset+y.indicesLength;if(y.hiddenFlags!==0){for(let I=y.indicesOffset;I{y.indexArray.length!==0&&(y.indexBuffer?y.indexBuffer.updateData(y.indexArrayForConflation):y.indexBuffer=l.createIndexBuffer(y.indexArrayForConflation,!0),y.entranceBloom.indexBuffer?y.entranceBloom.indexBuffer.updateData(y.entranceBloom.indexArrayForConflation):y.entranceBloom.indexBuffer=l.createIndexBuffer(y.entranceBloom.indexArrayForConflation,!0))};p(this.buildingWithoutFacade),p(this.buildingWithFacade),this.indexArrayForConflationUploaded=!0}uploadUpdatedColorBuffer(l){const u=p=>{p.layoutColorBuffer?p.layoutColorBuffer.updateData(p.layoutColorArray):p.layoutColorBuffer=l.createVertexBuffer(p.layoutColorArray,TY.members,!0),p.layoutFacadePaintArray&&(p.layoutFacadePaintBuffer?p.layoutFacadePaintBuffer.updateData(p.layoutFacadePaintArray):p.layoutFacadePaintBuffer=l.createVertexBuffer(p.layoutFacadePaintArray,yke.members,!0)),p.entranceBloom.layoutColorBuffer?p.entranceBloom.layoutColorBuffer.updateData(p.entranceBloom.layoutColorArray):p.entranceBloom.layoutColorBuffer=l.createVertexBuffer(p.entranceBloom.layoutColorArray,TY.members,!0)};u(this.buildingWithoutFacade),u(this.buildingWithFacade),this.colorBufferUploaded=!0}evaluate(l,u){const p=l.paint.get("building-ambient-occlusion-intensity");for(const y of this.footprints){if(4&y.hiddenFlags)continue;const b=u[y.promoteId],S=y.feature;S.properties["building-part"]="roof";const k=l.paint.get("building-color").evaluate(S,b,this.canonical).toPremultipliedRenderColor(this.lut),I=l.paint.get("building-emissive-strength").evaluate(S,b,this.canonical);S.properties["building-part"]="wall";const O=l.paint.get("building-color").evaluate(S,b,this.canonical).toPremultipliedRenderColor(this.lut),z=l.paint.get("building-emissive-strength").evaluate(S,b,this.canonical);S.properties["building-part"]="window";const U=l.paint.get("building-color").evaluate(S,b,this.canonical).toPremultipliedRenderColor(this.lut),q=l.paint.get("building-emissive-strength").evaluate(S,b,this.canonical);S.properties["building-part"]="door";const K=l.paint.get("building-color").evaluate(S,b,this.canonical).toPremultipliedRenderColor(this.lut),X=l.paint.get("building-emissive-strength").evaluate(S,b,this.canonical),J=y.hasFauxFacade?this.buildingWithFacade:this.buildingWithoutFacade;for(const ae of y.parts){let he,ce=k;ae.part===1?(ce=k,he=I):ae.part===0?(ce=O,he=z):ae.part===2?(ce=U,he=q):ae.part===3&&(ce=K,he=X),he=fe(he,0,1);for(let ye=0;yeS.max.x||I.max.xS.max.y||I.max.yk.max.x||k.min.x>l||u>k.max.y||k.min.y>u||k.height<=p||Tke(S,this.footprintsVertices.float32.subarray(2*k.footprintVertexOffset,2*(k.footprintVertexOffset+k.footprintVertexLength)),this.footprintsIndices.uint16.subarray(k.footprintIndexOffset,k.footprintIndexOffset+k.footprintIndexLength))&&(p=k.height,this.footprintLookup[b]=k,y=k.hiddenFlags!==0);if(p!==Number.NEGATIVE_INFINITY)return{height:p,hidden:y};this.footprintLookup[b]=void 0}}function Tke(h,l,u){for(let p=0;p1&&(I=l[++k]);const z=Math.abs(O-I.left),U=Math.abs(O-I.right),q=Math.min(z,U);let K;const X=b/p*(y+1);if(I.isDash){const J=y-Math.abs(X);K=Math.sqrt(q*q+J*J)}else K=y-Math.sqrt(q*q+X*X);this.image.data[S+O]=Math.max(0,Math.min(255,K+128))}}}addRegularDash(l,u){for(let I=l.length-1;I>=0;--I){const O=l[I],z=l[I+1];O.zeroLength?l.splice(I,1):z&&z.isDash===O.isDash&&(z.left=O.left,l.splice(I,1))}const p=l[0],y=l[l.length-1];p.isDash===y.isDash&&(p.left=y.left-this.width,y.right=p.right+this.width);const b=this.width*this.nextRow;let S=0,k=l[S];for(let I=0;I1&&(k=l[++S]);const O=Math.abs(I-k.left),z=Math.abs(I-k.right),U=Math.min(O,z);this.image.data[b+I]=Math.max(0,Math.min(255,(k.isDash?U:-U)+u+128))}}addDash(l,u){const p=this.getKey(l,u);if(this.positions[p])return this.positions[p];const y=u==="round",b=y?7:0,S=2*b+1;if(this.nextRow+S>this.height)return zr("LineAtlas out of space"),null;l.length===0&&l.push(1);let k=0;for(let U=0;Uu.fqid),this.index=l.index,this.projection=l.projection,this.hasPattern=!1,this.hasCrossSlope=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(u=>{this.gradients[u.id]={}}),this.layoutVertexArray=new Xx,this.layoutVertexArray2=new lu,this.patternVertexArray=new lu,this.indexArray=new bs,this.programConfigurations=new ne(l.layers,{zoom:l.zoom,lut:l.lut}),this.segments=new Si,this.maxLineLength=0,this.zOffsetVertexArray=new lu,this.elevationGroundScaleVertexArray=new wc,this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.tessellationStep=l.tessellationStep?l.tessellationStep:128,this.worldview=l.worldview,this.hasAppearances=null}updateFootprints(l,u){}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){this.hasPattern=Q3("line",this.layers,this.pixelRatio,u);const b=this.layers[0].layout.get("line-sort-key");this.tileToMeter=Mt(p);const S=this.layers[0].layout.get("line-elevation-reference");if(S==="hd-road-markup")this.elevationType="road";else{const q=this.layers[0].layout.get("line-z-offset"),K=q.isConstant()&&!q.constantOr(0);this.elevationType=S!=="sea"&&S!=="ground"&&K?"none":"offset",this.elevationType==="offset"&&S==="none"&&zr(`line-elevation-reference: ground is used for the layer ${this.layerIds[0]} because non-zero line-z-offset value was found.`),this.isSeaLevelReference=S==="sea"}const k=this.layers[0].layout.get("line-cross-slope");this.hasCrossSlope=this.elevationType==="offset"&&k!==void 0;const I=[];for(const{feature:q,id:K,index:X,sourceLayerIndex:J}of l){const re=this.layers[0]._featureFilter.needGeometry,ae=gn(q,re);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),ae,p))continue;const he=b?b.evaluate(ae,{},p):void 0,ce={id:K,properties:q.properties,type:q.type,sourceLayerIndex:J,index:X,geometry:re?ae.geometry:Ur(q,p,y),patterns:{},sortKey:he};I.push(ce)}b&&I.sort((q,K)=>q.sortKey-K.sortKey);const{lineAtlas:O,featureIndex:z}=u,U=this.addConstantDashes(O);for(const q of I){const{geometry:K,index:X,sourceLayerIndex:J}=q;if(U&&this.addFeatureDashes(q,O),this.hasPattern){const re=J3("line",this.layers,q,this.zoom,this.pixelRatio,u);this.patternFeatures.push(re)}else this.addFeature(q,K,X,p,O.positions,u.availableImages,u.brightness,u.elevationFeatures);z.insert(l[X].feature,K,X,J,this.index)}}addConstantDashes(l){let u=!1;for(const p of this.layers){const y=p.paint.get("line-dasharray").value,b=p.layout.get("line-cap").value;if(y.kind!=="constant"||b.kind!=="constant")u=!0;else{const S=b.value,k=y.value;if(!k)continue;l.addDash(k,S)}}return u}addFeatureDashes(l,u){const p=this.zoom;for(const y of this.layers){const b=y.paint.get("line-dasharray").value,S=y.layout.get("line-cap").value;if(b.kind==="constant"&&S.kind==="constant")continue;let k,I;if(b.kind==="constant"){if(k=b.value,!k)continue}else k=b.evaluate({zoom:p},l);I=S.kind==="constant"?S.value:S.evaluate({zoom:p},l),u.addDash(k,I),l.patterns[y.id]=[u.getKey(k,I)]}}update(l,u,p,y,b,S,k,I,O){this.programConfigurations.updatePaintArrays(l,u,b,p,y,S,k,O)}addFeatures(l,u,p,y,b,S){for(const k of this.patternFeatures)this.addFeature(k,k.geometry,k.index,u,p,y,S,l.elevationFeatures)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(l){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=l.createVertexBuffer(this.layoutVertexArray2,Pke)),this.patternVertexArray.length!==0&&(this.patternVertexBuffer=l.createVertexBuffer(this.patternVertexArray,Rke)),!this.zOffsetVertexBuffer&&this.zOffsetVertexArray.length>0&&(this.zOffsetVertexBuffer=l.createVertexBuffer(this.zOffsetVertexArray,kke.members,!0)),!this.elevationGroundScaleVertexBuffer&&this.elevationGroundScaleVertexArray.length>0&&(this.elevationGroundScaleVertexBuffer=l.createVertexBuffer(this.elevationGroundScaleVertexArray,Cke.members,!0)),this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,Ike),this.indexBuffer=l.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(l),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.zOffsetVertexBuffer&&this.zOffsetVertexBuffer.destroy(),this.elevationGroundScaleVertexBuffer&&this.elevationGroundScaleVertexBuffer.destroy(),this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(l,u){let p,y;if(u&&u>0?(p=`mapbox_clip_start_${u}`,y=`mapbox_clip_end_${u}`):(p="mapbox_clip_start",y="mapbox_clip_end"),l.properties&&l.properties.hasOwnProperty(p)&&l.properties.hasOwnProperty(y))return{start:+l.properties[p],end:+l.properties[y]}}addFeature(l,u,p,y,b,S,k,I){const O=this.layers[0].layout,z=O.get("line-join").evaluate(l,{}),U=O.get("line-cap").evaluate(l,{}),q=O.get("line-miter-limit"),K=O.get("line-round-limit");this.lineClips=this.lineFeatureClips(l),this.lineFeature=l;const X=!(!l.properties||!l.properties.hasOwnProperty("mapbox_line_metrics"))&&l.properties.mapbox_line_metrics;this.zOffsetValue=O.get("line-z-offset").value;const J=this.layers[0].paint.get("line-width").value;if(J.kind!=="constant"&&J.isLineProgressConstant===!1&&(this.variableWidthValue=J),this.isSeaLevelReference){const re=O.get("line-elevation-ground-scale").value;re.kind==="constant"&&re.value===0||(this.elevationGroundScaleValue=re)}if(this.elevationType==="road"){const re=this.layoutVertexArray.length;if(!this.addElevatedRoadFeature(l,u,y,I,z,U,q,K)){const[ae,he]=this.clipRuntimeLinesToTile(u,1);for(let ce=0;ce0?Ee.parentIndex:null)}this.fillNonElevatedRoadSegment(re)}}else for(let re=0;re0?re:null);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,l,p,b,S,y,k,void 0,this.worldview)}computeSegNextDir(l,u){return l.nextPoint.sub(u.at(-2)).unit()}computeSegPrevDir(l,u){return u[1].sub(l.prevPoint).unit()}clipLinesToTile(l,u){return Bj(l,-u,-u,sr+u,sr+u)}clipRuntimeLinesToTile(l,u){const p=[];return[Bj(l,-u,-u,sr+u,sr+u,p),p]}addElevatedRoadFeature(l,u,p,y,b,S,k,I){const O=[],z=Pi.getElevationFeature(l,y);if(z){const U=this.clipLinesToTile(u,1),q=this.prepareElevatedLines(U,z,p);for(const K of q)O.push({geometry:K,elevation:z,elevationTileID:p,segment:{progress:{min:0,max:1},nextDir:void 0,prevDir:void 0}})}if(O.length===0)return!1;for(const U of O){const q=this.layoutVertexArray.length;this.addLine(U.geometry,l,p,b,S,k,I);const K=new Fi(p,U.elevationTileID);if(U.elevation)for(let X=q;X>1,this.layoutVertexArray.int16[6*X+1]>>1),re=K.pointElevation(J,U.elevation,.05);this.updateHeightRange(re),this.zOffsetVertexArray.emplaceBack(re,0,0)}else this.fillNonElevatedRoadSegment(q)}return!0}prepareElevatedLines(l,u,p){if(u.constantHeight!=null)return l;const y=[],b=1/Mt(p);for(const S of l)HAe(S,new Tc(u,b),0,y);return y}fillNonElevatedRoadSegment(l){for(let u=l;u0,q=I&&I.progress.max<1;if(this.lineClips){let Ge={min:this.lineClips.start,max:this.lineClips.end},Ue=1;if(I){const wt=this.lineClips.end-this.lineClips.start;Ge=function(kt,jt,Ct){return{min:_s(kt.min,jt,Ct),max:_s(kt.max,jt,Ct)}}(I.progress,{min:0,max:1},Ge),wt>0&&(Ue=(Ge.max-Ge.min)/wt)}const Ve=+u.properties.mapbox_clip_feature_len,gt=+u.properties.mapbox_clip_seg_len;if(Number.isNaN(Ve)||Number.isNaN(gt)){for(let kt=0;kt=2&&l[X-1].equals(l[X-2]);)X--;let J=0;for(;J0,It=this.overscaling<=16?122880/(512*this.overscaling):0;if(Ue&&Ve==="round"){if(jtS&&(Ve="bevel"),Ve==="bevel"&&(jt>2&&(Ve="flipbevel"),jt2*It){const Gt=ae.sub(ae.sub(he)._mult(It/Lt)._round());this.updateDistance(he,Gt),this.addCurrentVertex(Gt,ye,0,0,re,ze),he=Gt}this.updateDistance(he,ae),wt._mult(jt),this.addCurrentVertex(ae,wt,0,0,re,ze);const $t=ae.dist(ce);if($t>2*It){const Gt=ae.add(ce.sub(ae)._mult(It/$t)._round());this.updateDistance(ae,Gt),this.addCurrentVertex(Gt,Ee,0,0,re,ze),ae=Gt}}else wt._mult(jt),this.addCurrentVertex(ae,wt,0,0,re,ze);else if(Ve==="flipbevel"){if(jt>100)wt=Ee.mult(-1);else{const Lt=jt*ye.add(Ee).mag()/ye.sub(Ee).mag();wt._perp()._mult(Lt*(pt?-1:1))}this.addCurrentVertex(ae,wt,0,0,re,ze),this.addCurrentVertex(ae,wt.mult(-1),0,0,re,ze)}else if(Ve==="bevel"||Ve==="fakeround"){const Lt=ae.dist(he);let $t=1;if(this.elevationType==="offset"&&Ve==="bevel"&&this.currentLineJoinType!=="round"&&!this.patternJoinNone&&ze!=null&&he&&ce){const fr=4*It;Lt1){this.lineSoFar=l.w;const J=(u.x-l.x)/U,re=(u.y-l.y)/U,ae=(u.z-l.z)/U,he=(u.w-l.w)/U,ce=u.x-l.x,ye=u.y-l.y,Ee=Math.sqrt(ce*ce+ye*ye);if(Ee===0)return;const Ce=-ye/Ee,He=ce/Ee,ze=Ce,Ge=He,Ue=-Ce,Ve=-He;for(let gt=1;gt=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,z),I.primitiveLength++),S?this.e2=z:this.e1=z,O!=null&&this.zOffsetVertexArray.emplaceBack(O.zOffset,O.variableWidth,O.variableWidth),this.elevationGroundScaleValue){const U=O?O.elevationGroundScale:this.evaluateElevationGroundScale();this.elevationGroundScaleVertexArray.emplaceBack(U)}}updateScaledDistance(){this.lineClips?(this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=this.totalFeatureLength*this.lineClips.start+this.distance):this.lineSoFar=this.distance}updateDistance(l,u){this.prevDistance=this.distance,this.distance+=l.dist(u),this.updateScaledDistance()}}function j5(h,l,u){return h.xu||h.yu}let jY,PY;function NY(h,l,u){return l*(sr/(h.tileSize*Math.pow(2,u-h.tileID.overscaledZ)))}yr(Yj,"LineBucket",{omit:["layers","patternFeatures","currentVertex","currentVertexIsOutside"]});const RY=(h,l,u)=>(1-u)*h+u*l;function LY(h,l){return 1/NY(h,1,l.tileZoom)}function DY(h,l,u,p){return h.translatePosMatrix(p||l.tileID.projMatrix,l,u.paint.get("line-translate"),u.paint.get("line-translate-anchor"))}const MY=h=>{const l=[];OY(h)&&l.push("RENDER_LINE_DASH"),h.paint.get("line-gradient")&&l.push("RENDER_LINE_GRADIENT"),h.paint.get("line-blend-mode")==="multiply"&&l.push("LINE_BLEND_MULTIPLY");const u=h.paint.get("line-trim-offset");u[0]===0&&u[1]===0||l.push("RENDER_LINE_TRIM_OFFSET"),h.paint.get("line-border-width").constantOr(1)!==0&&l.push("RENDER_LINE_BORDER");const p=h.layout.get("line-join").constantOr("miter")==="none",y=!!h.paint.get("line-pattern").constantOr(1);return p&&y&&l.push("LINE_JOIN_NONE"),l};function OY(h){const l=h.paint.get("line-dasharray").value;return l.kind!=="constant"||l.value}let P5;const FY=()=>P5||(P5={layout:jY||(jY=new is({"line-cap":new Ut(nt.layout_line["line-cap"]),"line-join":new Ut(nt.layout_line["line-join"]),"line-miter-limit":new Yt(nt.layout_line["line-miter-limit"]),"line-round-limit":new Yt(nt.layout_line["line-round-limit"]),"line-sort-key":new Ut(nt.layout_line["line-sort-key"]),"line-z-offset":new Ut(nt.layout_line["line-z-offset"]),"line-elevation-reference":new Yt(nt.layout_line["line-elevation-reference"]),"line-cross-slope":new Yt(nt.layout_line["line-cross-slope"]),visibility:new Yt(nt.layout_line.visibility),"line-width-unit":new Yt(nt.layout_line["line-width-unit"]),"line-elevation-ground-scale":new Ut(nt.layout_line["line-elevation-ground-scale"])})),paint:PY||(PY=new is({"line-opacity":new Ut(nt.paint_line["line-opacity"]),"line-color":new Ut(nt.paint_line["line-color"]),"line-translate":new Yt(nt.paint_line["line-translate"]),"line-translate-anchor":new Yt(nt.paint_line["line-translate-anchor"]),"line-width":new Ut(nt.paint_line["line-width"]),"line-gap-width":new Ut(nt.paint_line["line-gap-width"]),"line-offset":new Ut(nt.paint_line["line-offset"]),"line-blur":new Ut(nt.paint_line["line-blur"]),"line-dasharray":new Ut(nt.paint_line["line-dasharray"]),"line-pattern":new Ut(nt.paint_line["line-pattern"]),"line-pattern-cross-fade":new Yt(nt.paint_line["line-pattern-cross-fade"]),"line-gradient":new gg(nt.paint_line["line-gradient"]),"line-trim-offset":new Yt(nt.paint_line["line-trim-offset"]),"line-trim-fade-range":new Yt(nt.paint_line["line-trim-fade-range"]),"line-trim-color":new Yt(nt.paint_line["line-trim-color"]),"line-emissive-strength":new Ut(nt.paint_line["line-emissive-strength"]),"line-border-width":new Ut(nt.paint_line["line-border-width"]),"line-border-color":new Ut(nt.paint_line["line-border-color"]),"line-occlusion-opacity":new Yt(nt.paint_line["line-occlusion-opacity"]),"line-blend-mode":new Yt(nt.paint_line["line-blend-mode"]),"line-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"line-gradient-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"line-trim-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"line-border-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"})}))},P5);class Oke extends Ut{possiblyEvaluate(l,u){return u=new Jn(Math.floor(u.zoom),{now:u.now,fadeDuration:u.fadeDuration,transition:u.transition,worldview:u.worldview}),super.possiblyEvaluate(l,u)}evaluate(l,u,p,y){return u=Object.assign({},u,{zoom:Math.floor(u.zoom)}),super.evaluate(l,u,p,y)}}let PE;function BY(h,l){return l>0?l+2*h:h}const Fke=Cn([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Bke=Cn([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),zke=Cn([{name:"a_projected_pos",components:4,type:"Float32"}],4);Cn([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const $ke=Cn([{name:"a_auto_z_offset",components:1,type:"Float32"}],4),Uke=Cn([{name:"a_feature_index",components:1,type:"Float32"}],4),Vke=Cn([{name:"a_x_axis",components:3,type:"Float32"},{name:"a_y_axis",components:3,type:"Float32"}]),qke=Cn([{name:"a_texb",components:2,type:"Uint16"}]),Gke=Cn([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_elevation_from_sea",components:2,type:"Float32"}]),Hke=Cn([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"},{name:"a_auto_z_offset",components:1,type:"Float32"}]);Cn([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const zY=Cn([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Wke=Cn([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Cn([{name:"triangle",components:3,type:"Uint16"}]),Cn([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),Cn([{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Float32",name:"zOffset"},{type:"Uint8",name:"hasIconTextFit"},{type:"Uint16",name:"elevationFeatureIndex"}]),Cn([{type:"Float32",name:"offsetX"}]),Cn([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);const N5=class kR{constructor(l=null,u=0,p=4096){this.batchIndex=u,this.headerBuffer=null,this.propertiesBuffer=null,this.blockIndicesBuffer=null,this.context=l||null,this.propsDwords=p,this.totalBytes=4*this.propsDwords,this.headerData=new Uint32Array(kR.HEADER_DWORDS),this.propertiesData=new Float32Array(this.propsDwords),this.blockIndicesData=new Uint32Array(this.propsDwords);for(let y=0;yl.maxUniformBlockSize)throw new Error(`UBO size ${this.totalBytes} exceeds device limit ${l.maxUniformBlockSize}`);if(this.headerBuffer=u.createBuffer(),!this.headerBuffer)throw new Error("Failed to create header UBO buffer");if(u.bindBuffer(u.UNIFORM_BUFFER,this.headerBuffer),u.bufferData(u.UNIFORM_BUFFER,kR.HEADER_BYTES,u.DYNAMIC_DRAW),this.propertiesBuffer=u.createBuffer(),!this.propertiesBuffer)throw new Error("Failed to create properties UBO buffer");if(u.bindBuffer(u.UNIFORM_BUFFER,this.propertiesBuffer),u.bufferData(u.UNIFORM_BUFFER,this.totalBytes,u.DYNAMIC_DRAW),this.blockIndicesBuffer=u.createBuffer(),!this.blockIndicesBuffer)throw new Error("Failed to create block-indices UBO buffer");u.bindBuffer(u.UNIFORM_BUFFER,this.blockIndicesBuffer),u.bufferData(u.UNIFORM_BUFFER,this.totalBytes,u.DYNAMIC_DRAW),u.bindBuffer(u.UNIFORM_BUFFER,null)}writeHeader(l){const u=this.headerData;u[0]=l.dataDrivenMask,u[1]=l.zoomDependentMask,u[2]=l.dataDrivenBlockSizeVec4,u[3]=l.offsets[0],u[4]=l.offsets[1],u[5]=l.offsets[2],u[6]=l.offsets[3],u[7]=l.offsets[4],u[8]=l.offsets[5],u[9]=l.offsets[6],u[10]=l.offsets[7],u[11]=l.offsets[8]}writeDataDrivenBlock(l,u,p){const y=4*p.dataDrivenBlockSizeVec4;if(y===0)return;const b=u*y;if(b+y>this.propertiesData.length)throw new Error(`UBO write out of bounds: feature index ${u} exceeds propertiesData capacity`);for(let S=0;S<9;S++)p.dataDrivenMask&1<{if(!k)return;const O=p.getUniformBlockIndex(u,S);O!==p.INVALID_INDEX&&(p.uniformBlockBinding(u,O,I),p.bindBufferBase(p.UNIFORM_BUFFER,I,k))},b=3*this.batchIndex;y("SymbolPaintPropertiesHeaderUniform",this.headerBuffer,b),y("SymbolPaintPropertiesUniform",this.propertiesBuffer,b+1),y("SymbolPaintPropertiesIndexUniform",this.blockIndicesBuffer,b+2)}destroy(){if(this.context){const l=this.context.gl;this.headerBuffer&&(l.deleteBuffer(this.headerBuffer),this.headerBuffer=null),this.propertiesBuffer&&(l.deleteBuffer(this.propertiesBuffer),this.propertiesBuffer=null),this.blockIndicesBuffer&&(l.deleteBuffer(this.blockIndicesBuffer),this.blockIndicesBuffer=null)}}};N5.HEADER_DWORDS=12,N5.HEADER_BYTES=48;let R5=N5;function L5(h,l,u,p){return[Zv(255*h,255*l),Zv(255*u,255*p)]}function $Y(h,l,u,p,y,b,S,k){return!!h&&(h.kind==="constant"?h.value==="none":h.kind==="composite"||h.kind==="source"?h.evaluate({zoom:0,brightness:b,worldview:k},l,u,y,p,S)==="none":typeof h=="string"&&h==="none")}yr(R5,"SymbolPropertiesUBO",{omit:["headerBuffer","propertiesBuffer","blockIndicesBuffer"]});class D5{constructor(l,u,p,y,b="",S,k){this.layer=l,this.zoom=u,this.lut=p,this.isText=y,this.propDefs=this._getPropDefs(),this.worldview=b,this.maxUniformBufferBindings=S||24,this.uboSizeDwords=k||4096,this.featureVertexRangesFromId=new Map,this.allFeatures=[],this.ubos=[],this.featureCount=0,this.cachedHeader=null,this.maxFeaturesPerBatch=0,this.propertyHashToUBOIndex=new Map,this.canDeduplicate=this._checkIfAllPropertiesAreConstant(l,y),this.cachedParams=null,this.cachedParamsNext=null,this.cachedBrightness=void 0,this.cachedConstantUniforms=null,this.cachedConstantRenderZoom=null,this.cachedConstantBrightness=void 0,this.activeAppearanceByVtIndex=new Map}_getPropDefs(){const l=this.isText?"text":"icon";return[{name:`${l}-color`,useThemeName:`${l}-color-use-theme`,isColor:!0},{name:`${l}-halo-color`,useThemeName:`${l}-halo-color-use-theme`,isColor:!0},{name:`${l}-opacity`,useThemeName:null,isColor:!1},{name:`${l}-halo-width`,useThemeName:null,isColor:!1},{name:`${l}-halo-blur`,useThemeName:null,isColor:!1},{name:`${l}-emissive-strength`,useThemeName:null,isColor:!1},{name:`${l}-occlusion-opacity`,useThemeName:null,isColor:!1},{name:"symbol-z-offset",useThemeName:null,isColor:!1},{name:`${l}-translate`,useThemeName:null,isColor:!1,isVec2:!0}]}buildHeader(){const l=this.layer.paint,u=this.propDefs;let p=0,y=0,b=0,S=0;const k=[0,0,0,0,0,0,0,0,0];for(let I=0;I<9;I++){const{name:O,isColor:z,isVec2:U}=u[I],q=l.get(O),K=!(!q||typeof q.isConstant!="function"||q.isConstant()),X=this._appearancesHavePaintProperties(O),J=K||X,re=!(!q||!q.value||q.value.kind!=="composite"),ae=this.layer._transitionablePaint._values[O],he=!J&&(ae&&ae.value&&ae.value.expression&&ae.value.expression.kind)==="camera";J?(p|=1<u.hasPaintProperty(l):this.isText?u=>u.hasTextPaintProperties():u=>u.hasIconPaintProperties())}_checkIfAllPropertiesAreConstant(l,u){const p=l.paint,y=u?"text":"icon",b=[`${y}-color`,`${y}-halo-color`,`${y}-opacity`,`${y}-halo-width`,`${y}-halo-blur`,`${y}-emissive-strength`,`${y}-occlusion-opacity`,"symbol-z-offset",`${y}-translate`];for(const S of b){const k=p.get(S);if(k&&typeof k=="object"&&"isConstant"in k&&!k.isConstant())return!1}return!this._appearancesHavePaintProperties()}_hashDataDrivenValues(l,u){if(u.dataDrivenMask===0)return"";const p=[];for(let y=0;y<9;y++){if(!(u.dataDrivenMask&1<=X){zr(`Too many symbol features: batch ${q} requires binding points up to ${3*q+2}, device limit ${X}. Some features will render incorrectly.`);const re={batchIndex:0,localFeatureIndex:0,vtFeatureIndex:u,featureId:I};return this.allFeatures.push(re),I!=null&&(this.featureVertexRangesFromId.has(I)||this.featureVertexRangesFromId.set(I,[]),this.featureVertexRangesFromId.get(I).push(re)),0}this.ubos[q]||(this.ubos[q]=new R5(k,q,this.uboSizeDwords),this.ubos[q].writeHeader(O)),this.ubos[q].writeDataDrivenBlock(z,K,O);const J={batchIndex:q,localFeatureIndex:K,vtFeatureIndex:u,featureId:I};return this.allFeatures.push(J),I!=null&&(this.featureVertexRangesFromId.has(I)||this.featureVertexRangesFromId.set(I,[]),this.featureVertexRangesFromId.get(I).push(J)),K}updateFeatures(l,u,p,y,b,S,k){if(this.layer=u,this.cachedConstantUniforms=null,!this.cachedHeader)return;const I=this.cachedHeader;for(const O of l){const z=this.featureVertexRangesFromId.get(O);if(!z)continue;const U=S[O]||{};for(const q of z){if(!p)continue;const K=p.feature(q.vtFeatureIndex);if(!K)continue;const X={type:K.type,id:O,properties:K.properties||{},geometry:[]},J=this.activeAppearanceByVtIndex?this.activeAppearanceByVtIndex.get(q.vtFeatureIndex):void 0,re=this.evaluateAllProperties(X,U,y,b,k,void 0,J);this.ubos[q.batchIndex]&&this.ubos[q.batchIndex].writeDataDrivenBlock(re,q.localFeatureIndex,I)}}}updateDynamicExpressions(l,u,p,y,b,S){if(this.layer=l,this.cachedConstantUniforms=null,!this.cachedHeader)return;const k=this.cachedHeader;for(const I of this.allFeatures){if(!u)continue;const O=u.feature(I.vtFeatureIndex);if(!O)continue;const z=I.featureId!=null&&b[I.featureId]||{},U={type:O.type,id:I.featureId,properties:O.properties||{},geometry:[]},q=this.activeAppearanceByVtIndex?this.activeAppearanceByVtIndex.get(I.vtFeatureIndex):void 0,K=this.evaluateAllProperties(U,z,p,y,S,void 0,q);this.ubos[I.batchIndex]&&this.ubos[I.batchIndex].writeDataDrivenBlock(K,I.localFeatureIndex,k)}}updateFeaturePaintForAppearance(l,u,p,y,b,S,k){if(!this.layer||(this.activeAppearanceByVtIndex||(this.activeAppearanceByVtIndex=new Map),this.activeAppearanceByVtIndex.set(l,k||null),!this.cachedHeader))return!1;const I=this.cachedHeader;if(I.dataDrivenMask===0)return!1;let O=!1;for(const z of this.allFeatures){if(z.vtFeatureIndex!==l)continue;const U=this.evaluateAllProperties(u,p,y,b,S,void 0,k);this.ubos[z.batchIndex]&&(this.ubos[z.batchIndex].writeDataDrivenBlock(U,z.localFeatureIndex,I),O=!0)}return O}getConstantUniformValues(l,u){const p=this.cachedHeader,y=!(!p||!p.cameraMask);if(this.cachedConstantUniforms&&this.cachedConstantBrightness===u&&(!y||this.cachedConstantRenderZoom===l))return this.cachedConstantUniforms;const b=this.layer.paint,S=this.propDefs,k=y?new Jn(l,{brightness:u,worldview:this.worldview}):null,I={type:1,id:void 0,properties:{},geometry:[]},O=q=>{const K=S[q],X=b.get(K.name);if(!X)return[0,0,0,1];const J=K.useThemeName?b.get(K.useThemeName):void 0,re=$Y(J&&typeof J!="string"?J.value:void 0,I,{},[],void 0,u,void 0,this.worldview)?null:this.lut;let ae;ae=p&&p.cameraMask&1<{const X=b.get(S[q].name);if(!X)return K;if(p&&p.cameraMask&1<{p.text=function(y,b,S){const k=b.layout.get("text-transform").evaluate(S,{});return k==="uppercase"?y=y.toLocaleUpperCase():k==="lowercase"&&(y=y.toLocaleLowerCase()),hh.applyArabicShaping&&(y=hh.applyArabicShaping(y)),y}(p.text,l,u)}),h}const NE={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂","←":"↑","→":"↓"};function Yke(h){return h==="︶"||h==="﹈"||h==="︸"||h==="﹄"||h==="﹂"||h==="︾"||h==="︼"||h==="︺"||h==="︘"||h==="﹀"||h==="︐"||h==="︓"||h==="︔"||h==="`"||h===" ̄"||h==="︑"||h==="︒"}function Zke(h){return h==="︵"||h==="﹇"||h==="︷"||h==="﹃"||h==="﹁"||h==="︽"||h==="︻"||h==="︹"||h==="︗"||h==="︿"}const M5=4294967296,UY=1/M5,VY=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");let Zj=class{constructor(h=new Uint8Array(16)){this.buf=ArrayBuffer.isView(h)?h:new Uint8Array(h),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(h,l,u=this.length){for(;this.pos>3,b=this.pos;this.type=7&p,h(y,l,this),this.pos===b&&this.skip(p)}return l}readMessage(h,l){return this.readFields(h,l,this.readVarint()+this.pos)}readFixed32(){const h=this.dataView.getUint32(this.pos,!0);return this.pos+=4,h}readSFixed32(){const h=this.dataView.getInt32(this.pos,!0);return this.pos+=4,h}readFixed64(){const h=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*M5;return this.pos+=8,h}readSFixed64(){const h=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*M5;return this.pos+=8,h}readFloat(){const h=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,h}readDouble(){const h=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,h}readVarint(h){const l=this.buf;let u,p;return p=l[this.pos++],u=127&p,p<128?u:(p=l[this.pos++],u|=(127&p)<<7,p<128?u:(p=l[this.pos++],u|=(127&p)<<14,p<128?u:(p=l[this.pos++],u|=(127&p)<<21,p<128?u:(p=l[this.pos],u|=(15&p)<<28,function(y,b,S){const k=S.buf;let I,O;if(O=k[S.pos++],I=(112&O)>>4,O<128||(O=k[S.pos++],I|=(127&O)<<3,O<128)||(O=k[S.pos++],I|=(127&O)<<10,O<128)||(O=k[S.pos++],I|=(127&O)<<17,O<128)||(O=k[S.pos++],I|=(127&O)<<24,O<128)||(O=k[S.pos++],I|=(1&O)<<31,O<128))return ab(y,I,b);throw new Error("Expected varint not more than 10 bytes")}(u,h,this)))))}readVarint64(){return this.readVarint(!0)}readSVarint(){const h=this.readVarint();return h%2==1?(h+1)/-2:h/2}readBoolean(){return!!this.readVarint()}readString(){const h=this.readVarint()+this.pos,l=this.pos;return this.pos=h,h-l>=12&&VY?VY.decode(this.buf.subarray(l,h)):function(u,p,y){let b="",S=p;for(;S239?4:k>223?3:k>191?2:1;if(S+q>y)break;q===1?k<128&&(U=k):q===2?(I=u[S+1],(192&I)==128&&(U=(31&k)<<6|63&I,U<=127&&(U=null))):q===3?(I=u[S+1],O=u[S+2],(192&I)==128&&(192&O)==128&&(U=(15&k)<<12|(63&I)<<6|63&O,(U<=2047||U>=55296&&U<=57343)&&(U=null))):q===4&&(I=u[S+1],O=u[S+2],z=u[S+3],(192&I)==128&&(192&O)==128&&(192&z)==128&&(U=(15&k)<<18|(63&I)<<12|(63&O)<<6|63&z,(U<=65535||U>=1114112)&&(U=null))),U===null?(U=65533,q=1):U>65535&&(U-=65536,b+=String.fromCharCode(U>>>10&1023|55296),U=56320|1023&U),b+=String.fromCharCode(U),S+=q}return b}(this.buf,l,h)}readBytes(){const h=this.readVarint()+this.pos,l=this.buf.subarray(this.pos,h);return this.pos=h,l}readPackedVarint(h=[],l){const u=this.readPackedEnd();for(;this.pos127;);else if(l===2)this.pos=this.readVarint()+this.pos;else if(l===5)this.pos+=4;else{if(l!==1)throw new Error(`Unimplemented type: ${l}`);this.pos+=8}}writeTag(h,l){this.writeVarint(h<<3|l)}realloc(h){let l=this.length||16;for(;l268435455||h<0?function(l,u){let p,y;if(l>=0?(p=l%4294967296|0,y=l/4294967296|0):(p=~(-l%4294967296),y=~(-l/4294967296),4294967295^p?p=p+1|0:(p=0,y=y+1|0)),l>=18446744073709552e3||l<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");u.realloc(10),function(b,S,k){k.buf[k.pos++]=127&b|128,b>>>=7,k.buf[k.pos++]=127&b|128,b>>>=7,k.buf[k.pos++]=127&b|128,b>>>=7,k.buf[k.pos++]=127&b|128,k.buf[k.pos]=127&(b>>>=7)}(p,0,u),function(b,S){const k=(7&b)<<4;S.buf[S.pos++]|=k|((b>>>=3)?128:0),b&&(S.buf[S.pos++]=127&b|((b>>>=7)?128:0),b&&(S.buf[S.pos++]=127&b|((b>>>=7)?128:0),b&&(S.buf[S.pos++]=127&b|((b>>>=7)?128:0),b&&(S.buf[S.pos++]=127&b|((b>>>=7)?128:0),b&&(S.buf[S.pos++]=127&b)))))}(y,u)}(h,this):(this.realloc(4),this.buf[this.pos++]=127&h|(h>127?128:0),h<=127||(this.buf[this.pos++]=127&(h>>>=7)|(h>127?128:0),h<=127||(this.buf[this.pos++]=127&(h>>>=7)|(h>127?128:0),h<=127||(this.buf[this.pos++]=h>>>7&127))))}writeSVarint(h){this.writeVarint(h<0?2*-h-1:2*h)}writeBoolean(h){this.writeVarint(+h)}writeString(h){h=String(h),this.realloc(4*h.length),this.pos++;const l=this.pos;this.pos=function(p,y,b){for(let S,k,I=0;I55295&&S<57344){if(!k){S>56319||I+1===y.length?(p[b++]=239,p[b++]=191,p[b++]=189):k=S;continue}if(S<56320){p[b++]=239,p[b++]=191,p[b++]=189,k=S;continue}S=k-55296<<10|S-56320|65536,k=null}else k&&(p[b++]=239,p[b++]=191,p[b++]=189,k=null);S<128?p[b++]=S:(S<2048?p[b++]=S>>6|192:(S<65536?p[b++]=S>>12|224:(p[b++]=S>>18|240,p[b++]=S>>12&63|128),p[b++]=S>>6&63|128),p[b++]=63&S|128)}return b}(this.buf,h,this.pos);const u=this.pos-l;u>=128&&qY(l,u,this),this.pos=l-1,this.writeVarint(u),this.pos+=u}writeFloat(h){this.realloc(4),this.dataView.setFloat32(this.pos,h,!0),this.pos+=4}writeDouble(h){this.realloc(8),this.dataView.setFloat64(this.pos,h,!0),this.pos+=8}writeBytes(h){const l=h.length;this.writeVarint(l),this.realloc(l);for(let u=0;u=128&&qY(u,p,this),this.pos=u-1,this.writeVarint(p),this.pos+=p}writeMessage(h,l,u){this.writeTag(h,2),this.writeRawMessage(l,u)}writePackedVarint(h,l){l.length&&this.writeMessage(h,Xke,l)}writePackedSVarint(h,l){l.length&&this.writeMessage(h,Qke,l)}writePackedBoolean(h,l){l.length&&this.writeMessage(h,tCe,l)}writePackedFloat(h,l){l.length&&this.writeMessage(h,Jke,l)}writePackedDouble(h,l){l.length&&this.writeMessage(h,eCe,l)}writePackedFixed32(h,l){l.length&&this.writeMessage(h,rCe,l)}writePackedSFixed32(h,l){l.length&&this.writeMessage(h,nCe,l)}writePackedFixed64(h,l){l.length&&this.writeMessage(h,iCe,l)}writePackedSFixed64(h,l){l.length&&this.writeMessage(h,sCe,l)}writeBytesField(h,l){this.writeTag(h,2),this.writeBytes(l)}writeFixed32Field(h,l){this.writeTag(h,5),this.writeFixed32(l)}writeSFixed32Field(h,l){this.writeTag(h,5),this.writeSFixed32(l)}writeFixed64Field(h,l){this.writeTag(h,1),this.writeFixed64(l)}writeSFixed64Field(h,l){this.writeTag(h,1),this.writeSFixed64(l)}writeVarintField(h,l){this.writeTag(h,0),this.writeVarint(l)}writeSVarintField(h,l){this.writeTag(h,0),this.writeSVarint(l)}writeStringField(h,l){this.writeTag(h,2),this.writeString(l)}writeFloatField(h,l){this.writeTag(h,5),this.writeFloat(l)}writeDoubleField(h,l){this.writeTag(h,1),this.writeDouble(l)}writeBooleanField(h,l){this.writeVarintField(h,+l)}};function ab(h,l,u){return u?4294967296*l+(h>>>0):4294967296*(l>>>0)+(h>>>0)}function qY(h,l,u){const p=l<=16383?1:l<=2097151?2:l<=268435455?3:Math.floor(Math.log(l)/(7*Math.LN2));u.realloc(p);for(let y=u.pos-1;y>=h;y--)u.buf[y+p]=u.buf[y]}function Xke(h,l){for(let u=0;u=0&&p>=l&&Xj[this.text.charCodeAt(p)];p--)u--;this.text=this.text.substring(l,u),this.sectionIndex=this.sectionIndex.slice(l,u)}substring(l,u){const p=new ob;return p.text=this.text.substring(l,u),p.sectionIndex=this.sectionIndex.slice(l,u),p.sections=this.sections,p}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((l,u)=>Math.max(l,this.sections[u].scale),0)}addTextSection(l,u){this.text+=l.text,this.sections.push(RE.forText(l.scale,l.fontStack||u));const p=this.sections.length-1;for(let y=0;y=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function O5(h,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J=1,re=1){const ae=ob.fromFeature(h,y,J,re);U===Cc.vertical&&ae.verticalizePunctuation(q);let he=[];const ce=function(ze,Ge,Ue,Ve,gt,wt,kt=1){if(!ze)return[];const jt=[],Ct=function(It,Lt,$t,Gt,mr,nr,rr=1){let Ht=0;for(let fr=0;fr=0;let pt=0;for(let It=0;It0&&Zo>yn&&(yn=Zo)}else{const Ga=Ue[us.fontStack];if(!Ga)continue;Ga[ds]&&(Ss=Ga[ds]);const yl=Ge[us.fontStack];if(!yl)continue;const bo=yl.glyphs[ds];if(!bo)continue;if(Hs=bo.metrics,Ra=ds!==8203?Pa:0,rr){const gs=yl.ascender!==void 0?Math.abs(yl.ascender):0,Zo=yl.descender!==void 0?Math.abs(yl.descender):0,Ha=(gs+Zo)*ws;ms-u/2;){if(S--,S<0)return!1;k-=h[S].dist(b),b=h[S]}k+=h[S].dist(h[S+1]),S++;const I=[];let O=0;for(;kp;)O-=I.shift().angleDelta;if(O>y)return!1;S++,k+=z.dist(U)}return!0}function eZ(h){let l=0;for(let u=0;uO){const X=(O-I)/K,J=Zr(U.x,q.x,X),re=Zr(U.y,q.y,X),ae=new Gp(J,re,0,q.angleTo(U),z);return!S||JY(h,ae,k,S,l)?ae:void 0}I+=K}}function hCe(h,l,u,p,y,b,S,k,I){const O=tZ(p,b,S),z=rZ(p,y),U=z*S,q=h[0].x===0||h[0].x===I||h[0].y===0||h[0].y===I;return l-U=0&&ye=0&&Ee=0&&q+O<=z){const Ce=new Gp(ye,Ee,0,he,X);p&&!JY(h,Ce,b,p,y)||K.push(Ce)}}U+=ae}return k||K.length||S||(K=nZ(h,U/2,u,p,y,b,S,!0,I)),K}function iZ(h){let l=0,u=0;for(const S of h)l+=S.w*S.h,u=Math.max(u,S.w);h.sort((S,k)=>k.h-S.h);const p=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(l/.95)),u),h:1/0}];let y=0,b=0;for(const S of h)for(let k=p.length-1;k>=0;k--){const I=p[k];if(!(S.w>I.w||S.h>I.h)){if(S.x=I.x,S.y=I.y,b=Math.max(b,S.y+S.h),y=Math.max(y,S.x+S.w),S.w===I.w&&S.h===I.h){const O=p.pop();O&&kl.id?1:h.versionl.version?1:h.sxl.sx?1:h.syl.sy?1:0}function U5(h){let l=0;for(let u=0;u0,sZ(l,p,this.iconDescriptors,b),sZ(u,p,this.patternDescriptors,b),this.iconDescriptors.sort(Jj),this.patternDescriptors.sort(Jj);let S=0;const k=y?y.data:"";k&&(S=xh(S,U5(k))),S=xh(S,1);for(const I of this.iconDescriptors)S=xh(S,U5(I.id)),S=xh(S,I.version),S=xh(S,I.sx),S=xh(S,I.sy);S=xh(S,1);for(const I of this.patternDescriptors)S=xh(S,U5(I.id)),S=xh(S,I.version),S=xh(S,I.sx),S=xh(S,I.sy);this.hash=S}subsetOf(l){return this.isSubsetArray(this.iconDescriptors,l.iconDescriptors,Jj)&&this.isSubsetArray(this.patternDescriptors,l.patternDescriptors,Jj)}isSubsetArray(l,u,p){let y=0,b=0;if(l.length>u.length)return!1;for(;y{const S=y.variant.id.toString().localeCompare(b.variant.id.toString());return S!==0?S:y.variant.sx!==b.variant.sx?y.variant.sx-b.variant.sx:y.variant.sy!==b.variant.sy?y.variant.sy-b.variant.sy:0});const p=new Map;for(const y of u)p.set(y.key,y.value);return p}class aZ{constructor(l){this.sourceAtlasHash=l}}class oZ{constructor(l,u,p,y){const b=new Map,S=new Map;this.haveRenderCallbacks=[];const k=[],I=y!==void 0,O=I?new Map:void 0,z=I?G5(l,O):l,U=I?G5(u,O):u;this.addImages(z,b,1,k),this.addImages(U,S,2,k);const{w:q,h:K}=iZ(k),X=new Do({width:q||1,height:K||1});for(const[J,re]of z.entries()){const ae=b.get(J).paddedRect;Do.copy(re.data,X,{x:0,y:0},{x:ae.x+1,y:ae.y+1},re.data,null,re.sdf)}for(const[J,re]of U.entries()){const ae=S.get(J),he=ae.paddedRect;let ce=ae.padding;const ye=he.x+ce,Ee=he.y+ce,Ce=re.data.width,He=re.data.height;ce=ce>1?ce-1:ce,Do.copy(re.data,X,{x:0,y:0},{x:ye,y:Ee},re.data,p),Do.copy(re.data,X,{x:0,y:He-ce},{x:ye,y:Ee-ce},{width:Ce,height:ce},p),Do.copy(re.data,X,{x:0,y:0},{x:ye,y:Ee+He},{width:Ce,height:ce},p),Do.copy(re.data,X,{x:Ce-ce,y:0},{x:ye-ce,y:Ee},{width:ce,height:He},p),Do.copy(re.data,X,{x:0,y:0},{x:ye+Ce,y:Ee},{width:ce,height:He},p),Do.copy(re.data,X,{x:Ce-ce,y:He-ce},{x:ye-ce,y:Ee-ce},{width:ce,height:ce},p),Do.copy(re.data,X,{x:0,y:He-ce},{x:ye+Ce,y:Ee-ce},{width:ce,height:ce},p),Do.copy(re.data,X,{x:0,y:0},{x:ye+Ce,y:Ee+He},{width:ce,height:ce},p),Do.copy(re.data,X,{x:Ce-ce,y:0},{x:ye-ce,y:Ee+He},{width:ce,height:ce},p)}this.lut=p,this.image=X,this.iconPositions=b,this.patternPositions=S,I&&(this.contentDescriptor=new V5(z,U,y,p,O))}addImages(l,u,p,y){for(const[b,S]of l.entries()){const{bin:k,imagePosition:I,imageVariant:O}=q5(b,S,p);u.set(b,I),y.push(k),S.hasRenderCallback&&this.haveRenderCallbacks.push(O.id)}}patchUpdatedImages(l,u,p,y){this.haveRenderCallbacks=this.haveRenderCallbacks.filter(b=>l.hasImage(b,p)),l.dispatchRenderCallbacks(this.haveRenderCallbacks,p);for(const b of l.getUpdatedImages(p)){for(const S of this.iconPositions.keys()){const k=au.parse(S);if(rc.isEqual(k.id,b)){const I=l.getImage(b,p);this.patchUpdatedImage(this.iconPositions.get(S),I,u,null)}}for(const S of this.patternPositions.keys()){const k=au.parse(S);if(rc.isEqual(k.id,b)){const I=l.getImage(b,p);this.patchUpdatedImage(this.patternPositions.get(S),I,u,y||this.lut)}}}}patchUpdatedImage(l,u,p,y=null){if(!l||!u||l.version===u.version)return;l.version=u.version;const[b,S]=l.tl,k=l.sdf;if(this.lut||k){const I={width:u.data.width,height:u.data.height},O=new Do(I);Do.copy(u.data,O,{x:0,y:0},{x:0,y:0},I,y,k),p.update(O,{position:{x:b,y:S},recreateWhenResize:!1})}else p.update(u.data,{position:{x:b,y:S},recreateWhenResize:!1})}}yr(LE,"ImagePosition"),yr(oZ,"ImageAtlas",{omit:["lut"]}),yr(aZ,"ImageAtlasReference");class DE{constructor(l){this.pendingRequests=new Map,this.cachedRanges=new Map,this.useServerFontComposition=!l||l.useServerFontComposition===void 0||l.useServerFontComposition}loadGlyphRange(l,u,p,y,b){if(this.useServerFontComposition)return void DE.loadGlyphRange(l,u,p,y,b);const S=l.split(",").map(k=>k.trim()).filter(k=>k.length>0);S.length!==0?S.length!==1?this._loadMultipleFonts(S,u,p,y,b):this._loadFont(S[0],u,p,y,b):b(new Error("Empty fontstack"))}_loadMultipleFonts(l,u,p,y,b){const S=l.map(()=>null),k={completed:0,firstError:null,callbackCalled:!1},I=(O,z,U)=>{if(!k.callbackCalled&&(z&&!k.firstError&&(k.firstError=z),U&&(S[O]=U),k.completed++,k.completed===l.length)){k.callbackCalled=!0;const q=S.filter(X=>X!==null);if(q.length===0)return void b(k.firstError||new Error("All fonts failed to load"));const K=this._composeGlyphs(q);b(null,K)}};for(let O=0;O{I(O,z,U)})}_loadFont(l,u,p,y,b){const S=`${l}:${u}`;if(this.cachedRanges.has(S)){const I=this.cachedRanges.get(S);return void Pl.frame(()=>b(null,I))}const k=this.pendingRequests.get(S);k?k.push(b):(this.pendingRequests.set(S,[b]),DE.loadGlyphRange(l,u,p,y,(I,O)=>{I||this.cachedRanges.set(S,O||null);const z=this.pendingRequests.get(S);if(this.pendingRequests.delete(S),z)for(const U of z)U(I,O)}))}_composeGlyphs(l){const u={};let p,y;for(const b of l)if(p===void 0&&b.ascender!==void 0&&(p=b.ascender),y===void 0&&b.descender!==void 0&&(y=b.descender),b.glyphs)for(const S in b.glyphs)u[S]===void 0&&(u[S]=b.glyphs[S]);return{glyphs:u,ascender:p,descender:y}}}DE.loadGlyphRange=function(h,l,u,p,y){const b=256*l,S=b+255,k=p.transformRequest(p.normalizeGlyphsURL(u).replace("{fontstack}",h).replace("{range}",`${b}-${S}`),mx.Glyphs);Ym(k,(I,O)=>{if(I)y(I);else if(O){const z={},U=function(q){return new Zj(q).readFields(aCe,{})}(O);for(const q of U.glyphs)z[q.id]=q;y(null,{glyphs:z,ascender:U.ascender,descender:U.descender})}})};const ME=1e20;function lZ(h,l,u,p,y,b,S,k,I){for(let O=l;O-1);I++,b[I]=k,S[I]=O,S[I+1]=ME}for(let k=0,I=0;k{if(S){y.ascender=S.ascender,y.descender=S.descender;for(const k in S.glyphs)this._doesCharSupportLocalGlyph(+k)||(y.glyphs[+k]=S.glyphs[+k]);y.ranges[u]=!0}for(const k of y.requests[u]||[])k(b,S);delete y.requests[u]}))}getGlyphs(l,u){const p=[],y=this.url||Rn.GLYPHS_URL;for(const b in l)for(const S of l[b])p.push({stack:b,id:S});et(p,({stack:b,id:S},k)=>{let I=this.entries[b];I||(I=this.entries[b]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let O=I.glyphs[S];if(O!==void 0)return void k(null,{stack:b,id:S,glyph:O});if(O=this._tinySDF(I,b,S),O)return I.glyphs[S]=O,void k(null,{stack:b,id:S,glyph:O});const z=Math.floor(S/256);if(256*z>65535)return zr("glyphs > 65535 not supported"),void k(null,{stack:b,id:S,glyph:O});if(I.ranges[z])return void k(null,{stack:b,id:S,glyph:O});let U=I.requests[z];U||(U=I.requests[z]=[],this.glyphLoader.loadGlyphRange(b,z,y,this.requestManager,(q,K)=>{if(K){I.ascender=K.ascender,I.descender=K.descender;for(const X in K.glyphs)this._doesCharSupportLocalGlyph(+X)||(I.glyphs[+X]=K.glyphs[+X]);I.ranges[z]=!0}for(const X of U)X(q,K);delete I.requests[z]})),U.push((q,K)=>{q?k(q):K&&k(null,{stack:b,id:S,glyph:K.glyphs[S]||null})})},(b,S)=>{if(b)u(b);else if(S){const k={};for(const{stack:I,id:O,glyph:z}of S)k[I]===void 0&&(k[I]={}),k[I].glyphs===void 0&&(k[I].glyphs={}),k[I].glyphs[O]=z&&{id:z.id,bitmap:z.bitmap.clone(),metrics:z.metrics},k[I].ascender=this.entries[I].ascender,k[I].descender=this.entries[I].descender;u(null,k)}})}_doesCharSupportLocalGlyph(l){return this.localGlyphMode!==H5.none&&(this.localGlyphMode===H5.all?!!this.localFontFamily:!!this.localFontFamily&&(Rv(l)||IT(l)||Hx(l)||Pp(l)||Gx(l)||kT(l)||(u=l)>=131072&&u<=173791||(p=>p>=66736&&p<=66815)(l)));var u}_tinySDF(l,u,p){const y=this.localFontFamily;if(!y||!this._doesCharSupportLocalGlyph(p))return;let b=l.tinySDF;if(!b){let re="400";/bold/i.test(u)?re="900":/medium/i.test(u)?re="500":/light/i.test(u)&&(re="200"),b=l.tinySDF=new eP.TinySDF({fontFamily:y,fontWeight:re,fontSize:48,buffer:6,radius:16}),b.fontWeight=re}const S=b.fontWeight;if(this.localGlyphs[S][p])return this.localGlyphs[S][p];const k=String.fromCodePoint(p),{data:I,width:O,height:z,glyphWidth:U,glyphHeight:q,glyphLeft:K,glyphTop:X,glyphAdvance:J}=b.draw(k);return this.localGlyphs[S][p]={id:p,bitmap:new wg({width:O,height:z},I),metrics:{width:U/2,height:q/2,left:K/2,top:X/2-27,advance:J/2,localGlyph:!0}}}}function uZ(h,l){return h+l[1]-l[0]}function W5(h,l,u,p,y=1){const b=[],S=h.imagePrimary,k=S.pixelRatio,I=S.paddedRect.w-2,O=S.paddedRect.h-2,z=(h.right-h.left)*y,U=(h.bottom-h.top)*y,q=S.stretchX||[[0,I]],K=S.stretchY||[[0,O]],X=q.reduce(uZ,0),J=K.reduce(uZ,0),re=I-X,ae=O-J;let he=0,ce=X,ye=0,Ee=J,Ce=0,He=re,ze=0,Ge=ae;if(S.content&&p){const Ve=S.content;he=tP(q,0,Ve[0]),ye=tP(K,0,Ve[1]),ce=tP(q,Ve[0],Ve[2]),Ee=tP(K,Ve[1],Ve[3]),Ce=Ve[0]-he,ze=Ve[1]-ye,He=Ve[2]-Ve[0]-ce,Ge=Ve[3]-Ve[1]-Ee}const Ue=(Ve,gt,wt,kt)=>{const jt=rP(Ve.stretch-he,ce,z,h.left*y),Ct=nP(Ve.fixed-Ce,He,Ve.stretch,X),Bt=rP(gt.stretch-ye,Ee,U,h.top*y),pt=nP(gt.fixed-ze,Ge,gt.stretch,J),It=rP(wt.stretch-he,ce,z,h.left*y),Lt=nP(wt.fixed-Ce,He,wt.stretch,X),$t=rP(kt.stretch-ye,Ee,U,h.top*y),Gt=nP(kt.fixed-ze,Ge,kt.stretch,J),mr=new Ot(jt,Bt),nr=new Ot(It,Bt),rr=new Ot(It,$t),Ht=new Ot(jt,$t),fr=new Ot(Ct/k,pt/k),Er=new Ot(Lt/k,Gt/k),$r=l*Math.PI/180;if($r){const yn=Math.sin($r),ms=Math.cos($r),ei=[ms,-yn,yn,ms];mr._matMult(ei),nr._matMult(ei),Ht._matMult(ei),rr._matMult(ei)}const Lr=Ve.stretch+Ve.fixed,on=wt.stretch+wt.fixed,On=gt.stretch+gt.fixed,ln=kt.stretch+kt.fixed,Fn=h.imageSecondary;return{tl:mr,tr:nr,bl:Ht,br:rr,texPrimary:{x:S.paddedRect.x+1+Lr,y:S.paddedRect.y+1+On,w:on-Lr,h:ln-On},texSecondary:Fn?{x:Fn.paddedRect.x+1+Lr,y:Fn.paddedRect.y+1+On,w:on-Lr,h:ln-On}:void 0,writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:fr,pixelOffsetBR:Er,minFontScaleX:He/k/z,minFontScaleY:Ge/k/U,isSDF:u}};if(S.stretchX||S.stretchY){const Ve=dZ(q,re,X),gt=dZ(K,ae,J);for(let wt=0;wt0?[he,-ce]:ye<0?[-he,ce]:he===0?[ce,he]:[ce,-he]}(u);let K=Math.abs(l.top-l.bottom);for(const ae of l.positionedLines)K-=ae.lineOffset;const X=l.positionedLines.length,J=K/X;let re=l.top-u[1];for(let ae=0;aeb)&&(b=X.x),(!K||X.y>S)&&(S=X.y)}const I=Math.min(b-p,S-y);let O=I/2;const z=new jx([],gCe);if(I===0)return new Ot(p,y);for(let K=p;KU.d||!U.d)&&(U=K,u&&console.log("found best %d after %d probes",Math.round(1e4*K.d)/1e4,q)),K.max-U.d<=l||(O=K.h/2,z.push(new cb(K.p.x-O,K.p.y-O,O,h)),z.push(new cb(K.p.x+O,K.p.y-O,O,h)),z.push(new cb(K.p.x-O,K.p.y+O,O,h)),z.push(new cb(K.p.x+O,K.p.y+O,O,h)),q+=4)}return u&&(console.log(`num probes: ${q}`),console.log(`best distance: ${U.d}`)),U.p}function gCe(h,l){return l.max-h.max}eP.TinySDF=class{constructor({fontSize:h=24,buffer:l=3,radius:u=8,cutoff:p=.25,fontFamily:y="sans-serif",fontWeight:b="normal",fontStyle:S="normal",lang:k=null}={}){this.buffer=l,this.cutoff=p,this.radius=u,this.lang=k;const I=this.size=h+4*l,O=this._createCanvas(I),z=this.ctx=O.getContext("2d",{willReadFrequently:!0});z.font=`${S} ${b} ${h}px ${y}`,z.textBaseline="alphabetic",z.textAlign="left",z.fillStyle="black",this.gridOuter=new Float64Array(I*I),this.gridInner=new Float64Array(I*I),this.f=new Float64Array(I),this.z=new Float64Array(I+1),this.v=new Uint16Array(I)}_createCanvas(h){const l=document.createElement("canvas");return l.width=l.height=h,l}draw(h){const{width:l,actualBoundingBoxAscent:u,actualBoundingBoxDescent:p,actualBoundingBoxLeft:y,actualBoundingBoxRight:b}=this.ctx.measureText(h),S=Math.ceil(u),k=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(b-y))),I=Math.min(this.size-this.buffer,S+Math.ceil(p)),O=k+2*this.buffer,z=I+2*this.buffer,U=Math.max(O*z,0),q=new Uint8ClampedArray(U),K={data:q,width:O,height:z,glyphWidth:k,glyphHeight:I,glyphTop:S,glyphLeft:0,glyphAdvance:l};if(k===0||I===0)return K;const{ctx:X,buffer:J,gridInner:re,gridOuter:ae}=this;this.lang&&(X.lang=this.lang),X.clearRect(J,J,k,I),X.fillText(h,J,J+S);const he=X.getImageData(J,J,k,I);ae.fill(ME,0,U),re.fill(0,0,U);for(let ce=0;ce0?He*He:0,re[Ce]=He<0?He*He:0}}lZ(ae,0,0,O,z,O,this.f,this.v,this.z),lZ(re,J,J,k,I,O,this.f,this.v,this.z);for(let ce=0;ceb.y!=J.y>b.y&&b.x<(J.x-X.x)*(b.y-X.y)/(J.y-X.y)+X.x&&(k=!k),I=Math.min(I,bd(b,X,J))}}return(k?1:-1)*Math.sqrt(I)}(this.p,y),this.max=this.d+this.h*Math.SQRT2}}const yCe=Object.keys,K5=Number.POSITIVE_INFINITY,xCe=Math.sqrt(2);function Ag(h,l,u,p,y,b){const S=B5(h)&&h.collisionPadding?h.collisionPadding:[0,0,0,0],k={top:h.top-S[1],bottom:h.bottom+S[3],left:h.left-S[0],right:h.right+S[2],scaled:!1};return p!==void 0&&function(I,O){I.top*=O,I.bottom*=O,I.left*=O,I.right*=O,I.scaled=!0}(k,p),b&&(k.left+=b[0],k.right+=b[0],k.top+=b[1],k.bottom+=b[1]),u&&function(I,O,z){if(!O)return;const U=Hn(O),q=new Ot(z?z[0]:0,z?z[1]:0),K=new Ot(I.left,I.top),X=new Ot(I.right,I.top),J=new Ot(I.left,I.bottom),re=new Ot(I.right,I.bottom);K._rotateAround(U,q),X._rotateAround(U,q),J._rotateAround(U,q),re._rotateAround(U,q),I.left=Math.min(K.x,X.x,J.x,re.x),I.right=Math.max(K.x,X.x,J.x,re.x),I.top=Math.min(K.y,X.y,J.y,re.y),I.bottom=Math.max(K.y,X.y,J.y,re.y)}(k,u,y),l?{top:Math.min(l.top,k.top),bottom:Math.max(l.bottom,k.bottom),left:Math.min(l.left,k.left),right:Math.max(l.right,k.right),scaled:l.scaled||k.scaled}:k}function pZ(h,[l,u]){let p=0,y=0;if(u===K5){l<0&&(l=0);const b=l/xCe;switch(h){case"top-right":case"top-left":y=b-7;break;case"bottom-right":case"bottom-left":y=7-b;break;case"bottom":y=7-l;break;case"top":y=l-7}switch(h){case"top-right":case"bottom-right":p=-b;break;case"top-left":case"bottom-left":p=b;break;case"left":p=l;break;case"right":p=-l}}else{switch(l=Math.abs(l),u=Math.abs(u),h){case"top-right":case"top-left":case"top":y=u-7;break;case"bottom-right":case"bottom-left":case"bottom":y=7-u}switch(h){case"top-right":case"bottom-right":case"right":p=-l;break;case"top-left":case"bottom-left":case"left":p=l}}return[p,y]}function _Ce(h,l,u,p,y,b,S,k,I,O,z,U,q,K,X){const J=h.layers[0],re=J.appearances;if(re.length===0)return{iconBBox:null,iconVerticalBBox:null,textBBox:null,textVerticalBBox:null};const ae={iconBBox:null,iconVerticalBBox:null},he={textBBox:null,textVerticalBBox:null},{baseIconRotate:ce,baseTextRotate:ye,iconScaleFactor:Ee}=function(He,ze,Ge){const Ue=He.get("icon-rotate").evaluate(ze,{},Ge),Ve=He.get("text-rotate").evaluate(ze,{},Ge),[gt,wt]=He.get("icon-size-scale-range");return{baseIconRotate:Ue,baseTextRotate:Ve,iconScaleFactor:fe(1,gt,wt)}}(p,y,b);l&&(ae.iconBBox=Ag(l,ae.iconBBox,ce),u)&&(ae.iconVerticalBBox=Ag(u,ae.iconVerticalBBox,ce+90));const Ce=sP(U.horizontal);Ce&&(he.textBBox=Ag(Ce,he.textBBox,ye,1,K)),U.vertical&&(he.textVerticalBBox=Ag(U.vertical,he.textVerticalBBox,ye+90,1,K));for(const He of re)He.hasIconLayoutProperties()&&vCe(ae,h,J,He,y,b,k,ce,S,I,l,O,Ee,z,X),He.hasTextLayoutProperties()&&bCe(he,J,He,y,b,K,ye,q,Ce,U.vertical);return{iconBBox:ae.iconBBox,iconVerticalBBox:ae.iconVerticalBBox,textBBox:he.textBBox,textVerticalBBox:he.textVerticalBBox}}function vCe(h,l,u,p,y,b,S,k,I,O,z,U,q,K,X){const{appearanceIconOffset:J,appearanceIconRotate:re,appearanceIconSize:ae}=mZ(p,u,y,b,S,k,I,O.iconScaleFactor);let he=null,ce=null,ye=null;p.hasLayoutProperty("icon-image")?ye=function(Ce,He,ze,Ge,Ue,Ve,gt,wt){let kt=null;const jt=He.getAppearanceValueAndResolveTokens(ze,"icon-image",Ge,Ue,wt);if(jt){const Ct=Ce.getResolvedImageFromTokens(jt),Bt=ze.hasLayoutProperty("icon-size")?ze.getUnevaluatedLayoutProperty("icon-size"):He._unevaluatedLayout._values["icon-size"],pt=OE(Ct,f0(Ce.zoom,Bt,Ce.worldview,wt),Bt,Ue,Ce.zoom,Ge,Ce.pixelRatio,gt,Ce.worldview,wt);kt=Ve.get(pt.iconPrimary.toString())}return kt}(l,u,p,y,b,U,q,X):z&&(ye=z.imagePrimary),ye&&(he=Qj(ye,null,J,K),l.allowVerticalPlacement&&(ce=Qj(ye,null,J,K)));const Ee=I>0?ae/I:1;he&&(h.iconBBox=Ag(he,h.iconBBox,re,Ee!==1?Ee:void 0)),ce&&(h.iconVerticalBBox=Ag(ce,h.iconVerticalBBox,re+90,Ee!==1?Ee:void 0))}function mZ(h,l,u,p,y,b,S,k){const I=h.hasLayoutProperty("icon-offset")?l.getAppearanceValueAndResolveTokens(h,"icon-offset",u,p,[]):null,O=I&&Array.isArray(I)?I:y,z=h.hasLayoutProperty("icon-rotate")?l.getAppearanceValueAndResolveTokens(h,"icon-rotate",u,p,[]):null,U=typeof z=="number"?z:b,q=h.hasLayoutProperty("icon-size")?l.getAppearanceValueAndResolveTokens(h,"icon-size",u,p,[]):null;return{appearanceIconOffset:O,appearanceIconRotate:U,appearanceIconSize:typeof q=="number"?q*k:S}}function bCe(h,l,u,p,y,b,S,k,I,O){const{appearanceTextOffset:z,appearanceTextRotate:U,appearanceTextSize:q}=gZ(u,l,p,y,b,S,k),K=q/k,X=[(z[0]-b[0])*K,(z[1]-b[1])*K],J=X[0]!==0||X[1]!==0;I&&(h.textBBox=Ag(I,h.textBBox,U,K,z,J?X:void 0)),O&&(h.textVerticalBBox=Ag(O,h.textVerticalBBox,U+90,K,z,J?X:void 0))}function gZ(h,l,u,p,y,b,S){const k=h.hasLayoutProperty("text-offset")?l.getAppearanceValueAndResolveTokens(h,"text-offset",u,p,[]):null,I=k&&Array.isArray(k)?[k[0]*Pa,k[1]*Pa]:y,O=h.hasLayoutProperty("text-rotate")?l.getAppearanceValueAndResolveTokens(h,"text-rotate",u,p,[]):null,z=typeof O=="number"?O:b,U=h.hasLayoutProperty("text-size")?l.getAppearanceValueAndResolveTokens(h,"text-size",u,p,[]):null;return{appearanceTextOffset:I,appearanceTextRotate:z,appearanceTextSize:typeof U=="number"?U:S}}function iP(h,l,u,p,y,b,S,k,I){if(!l||!l.usvg)return;const O=QY(p),z=QY(y),U=b!=="both"&&b!=="width"||!ZY(p)?1:z.width/O.width,q=b!=="both"&&b!=="height"||!XY(p)?1:z.height/O.height;u.scaleSelf(U,q);const K=u.toString();S.set(K,u),k.set(K,l);const{imagePosition:X}=q5(K,l,1);I.set(K,X)}function yZ(h,l,u,p,y,b,S,k,I,O){if(!h)return;const z=function(U,q,K,X,J,re,ae){if(U.kind==="camera")return U.maxSize;if(U.kind==="composite"){const he=q.possiblyEvaluate(new Jn(U.maxZoom,{worldview:re}),K,ae).evaluate(J,{},K,ae),ce=q.possiblyEvaluate(new Jn(U.minZoom,{worldview:re}),K,ae).evaluate(J,{},K,ae);return Math.max(he,ce)}return q.possiblyEvaluate(new Jn(X,{worldview:re}),K,ae).evaluate(J,{},K,ae)}(l,u,p,y,b,I,O);return h.scaleSelf(z*k*S)}function OE(h,l,u,p,y,b,S,k,I,O){return{iconPrimary:yZ(h.getPrimary(),l,u,p,y,b,S,k,I,O),iconSecondary:yZ(h.getSecondary(),l,u,p,y,b,S,k,I,O)}}function wCe(h,l,u){if(!l)return;const p=u.get(h.toString()),y=u.get(l.toString());p&&y&&(p.paddedRect.w===y.paddedRect.w&&p.paddedRect.h===y.paddedRect.h||zr(`Mismatch in icon variant sizes: ${h.toString()} and ${l.toString()}`),p.usvg!==y.usvg&&zr(`Mismatch in icon variant image types: ${h.id} and ${l.id}`))}function xZ(h,l,u,p){if(!h)return;const y=l.get(u.toString());if(y&&(h.imagePrimary=y),p){const b=l.get(p.toString());h.imageSecondary=b}}function SCe(h,l){for(const u in h.horizontal)_Z(h.horizontal[u],l);_Z(h.vertical,l)}function _Z(h,l){if(h){for(const u of h.positionedLines)for(const p of u.positionedGlyphs)if(p.image!==null){const y=p.image.toString();p.rect=l.get(y).paddedRect}}}function Y5(h){switch(h){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function TCe(h,l,u,p,y,b,S,k,I){const O=sP(b.horizontal)||b.vertical,z=u.get("icon-text-fit-padding").evaluate(p,{},y);let U,q=l;return l&&I!=="none"&&(h.allowVerticalPlacement&&b.vertical&&(U=z5(l,b.vertical,I,z,k,S)),O&&(q=z5(l,O,I,z,k,S))),{defaultShapedIcon:q,verticallyShapedIcon:U}}function vZ(h,l){return h*l/24}function ECe(h,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he,ce,ye,Ee,Ce,He){let ze=S.textMaxSize.evaluate(l,{},q);ze===void 0?ze=k*S.textScaleFactor:ze*=S.textScaleFactor;const Ge=h.layers[0].layout,Ue=vZ(k,S.textScaleFactor),Ve=sP(u.horizontal)||u.vertical,gt=h.hasAnyAppearanceLayoutProperty(["text-size","text-offset","text-rotate"]),wt=h.getAppearanceFeatureData(l.index);(re!=="none"||gt)&&wt&&(wt.textShaping=Ve,wt.iconTextFitPadding=Ge.get("icon-text-fit-padding").evaluate(l,{},q),wt.fontScale=Ue,wt.textScaleFactor=S.textScaleFactor);const kt=K.name==="globe",jt=h.tilePixelRatio*ze/24,Ct=(Gt=h.overscaling,h.zoom>18&&Gt>2&&(Gt>>=1),Math.max(sr/(512*Gt),1)*Ge.get("symbol-spacing")),Bt=Ge.get("text-padding")*h.tilePixelRatio,pt=Ge.get("icon-padding")*h.tilePixelRatio,It=Hn(Ge.get("text-max-angle")),Lt=Ge.get("icon-rotation-alignment")==="map"&&ce!=="point",$t=Ct/2;var Gt;h.hasAnyIconTextFit===!1&&re!=="none"&&(h.hasAnyIconTextFit=!0);const mr=l.properties?+l.properties[fn]:null,nr=mr&&h.elevationFeatureIdToIndex?h.elevationFeatureIdToIndex.get(mr):65535,rr=(Ht,fr,Er)=>{if(fr.x<0||fr.x>=sr||fr.y<0||fr.y>=sr)return;let $r=null;if(kt){const{x:Lr,y:on,z:On}=K.projectTilePoint(fr.x,fr.y,Er);$r={anchor:new Gp(Lr,on,On,0,void 0),up:K.upVector(Er,fr.x,fr.y)}}(function(Lr,on,On,ln,Fn,yn,ms,ei,Vn,Ai,us,Na,ds,ws,Hs,Ss,vo,Ra,vn,gl,Ns,Ga,yl,bo,gs,Zo,Ha,SP,yb,Ll,_4,xb){const Hp=Lr.addToLineVertexArray(on,ln);let Wp,Fu,Bu,_0,_b,En,Wa,Ts=0,va=0,zu=0,Ic=0,jc=-1,Pc=-1;const Td={};let TP=af("");const wh=On?On.anchor:on,vb=SP!=="none";let bb=0,ua=0;if(Vn._unevaluatedLayout.getValue("text-radial-offset")===void 0){const Rs=Vn.layout.get("text-offset").evaluate(Ns,{},gs);bb=Rs[0]*Pa,ua=Rs[1]*Pa}else bb=Vn.layout.get("text-radial-offset").evaluate(Ns,{},gs)*Pa,ua=K5;if(Lr.allowVerticalPlacement&&Fn.vertical){const Rs=Fn.vertical;if(Hs)En=Q5(Rs),ei&&(Wa=Q5(ei));else{const xl=Vn.layout.get("text-rotate").evaluate(Ns,{},gs)+90;Bu=aP(Ai,wh,on,us,Na,ds,Rs,ws,xl,Ss,xb),ei&&(_0=aP(Ai,wh,on,us,Na,ds,ei,Ra,xl,null,_4))}}if(yn){const Rs=Vn.layout.get("icon-rotate").evaluate(Ns,{},gs),xl=W5(yn,Rs,yl,vb,Ga.iconScaleFactor),Dl=ei?W5(ei,Rs,yl,vb,Ga.iconScaleFactor):void 0;Fu=aP(Ai,wh,on,us,Na,ds,yn,Ra,Rs,null,Ll);const Ad=function(Sh,QE,wb,zIe,$Ie,$X,UX,UIe,i$t,b4){const VX=Sh.layers[0],qX=VX.appearances;let Sb=QE.length;if(wb&&(Sb=Math.max(Sb,wb.length)),qX.length===0)return Sb;const[VIe,qIe]=zIe.get("icon-size-scale-range"),GIe=fe(1,VIe,qIe);for(const CP of qX)if(CP.hasLayoutProperty("icon-image")){const GX=VX.getAppearanceValueAndResolveTokens(CP,"icon-image",$X,UX,b4);if(GX){const HX=Sh.getResolvedImageFromTokens(GX);if(HX){const WX=CP.hasLayoutProperty("icon-size")?CP.getUnevaluatedLayoutProperty("icon-size"):$Ie._values["icon-size"],HIe=OE(HX,f0(Sh.zoom,WX,Sh.worldview,b4),WX,UX,Sh.zoom,$X,Sh.pixelRatio,GIe,Sh.worldview,b4),KX=UIe.get(HIe.iconPrimary.toString());KX&&(Sb=Math.max(Sb,fCe(KX)))}}}return Sb}(Lr,xl,Dl,Vn.layout,Vn._unevaluatedLayout,Ns,gs,Lr.iconAtlasPositions,0,bo);Ts=4*Ad;const EP=Vn.layout.get("icon-size").evaluate(Ns,{},gs,bo),AP=Ga.compositeIconSizes?Ga.compositeIconSizes[0].evaluate(Ns,{},gs,bo):0,v4=Ga.compositeIconSizes?Ga.compositeIconSizes[1].evaluate(Ns,{},gs,bo):0,kP=X5(Lr.layerIds[0],Lr.iconSizeData,EP,Ga.iconScaleFactor,AP,v4);Lr.addSymbols(Lr.icon,xl,kP,gl,vn,Ns,void 0,On,on,Hp.lineStartIndex,Hp.lineLength,-1,bo,gs,Zo,Ha,Lr.symbolInstances.length,Ad),jc=Lr.icon.placedSymbolArray.length-1,Dl&&(va=4*Ad,Lr.addSymbols(Lr.icon,Dl,kP,gl,vn,Ns,Cc.vertical,On,on,Hp.lineStartIndex,Hp.lineLength,-1,bo,gs,Zo,Ha,Lr.symbolInstances.length,Ad),Pc=Lr.icon.placedSymbolArray.length-1)}for(const Rs in Fn.horizontal){const xl=Rs,Dl=Fn.horizontal[xl];Wp||(TP=af(Dl.text),Hs?_b=Q5(Dl):Wp=aP(Ai,wh,on,us,Na,ds,Dl,ws,Vn.layout.get("text-rotate").evaluate(Ns,{},gs),Ss,xb));const Ad=Dl.positionedLines.length===1;if(zu+=bZ(Lr,On,on,Dl,ms,Vn,Hs,Ns,Ss,Hp,Fn.vertical?Cc.horizontal:Cc.horizontalOnly,Ad?yCe(Fn.horizontal):[xl],Td,jc,Ga,bo,gs,Lr.symbolInstances.length,Zo),Ad)break}Fn.vertical&&(Ic+=bZ(Lr,On,on,Fn.vertical,ms,Vn,Hs,Ns,Ss,Hp,Cc.vertical,["vertical"],Td,Pc,Ga,bo,gs,Lr.symbolInstances.length,Zo));let ea=-1;const ba=(Rs,xl)=>Rs?Math.max(Rs,xl):xl;ea=ba(_b,ea),ea=ba(En,ea),ea=ba(Wa,ea);const Ed=ea>-1?1:0;Lr.glyphOffsetArray.length>=65535&&zr("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Ns.sortKey!==void 0&&Lr.addToSortKeyRanges(Lr.symbolInstances.length,Ns.sortKey),Lr.symbolInstances.emplaceBack(on.x,on.y,wh.x,wh.y,wh.z,Td.right>=0?Td.right:-1,Td.center>=0?Td.center:-1,Td.left>=0?Td.left:-1,Td.vertical>=0?Td.vertical:-1,jc,Pc,TP,Wp!==void 0?Wp:Lr.collisionBoxArray.length,Wp!==void 0?Wp+1:Lr.collisionBoxArray.length,Bu!==void 0?Bu:Lr.collisionBoxArray.length,Bu!==void 0?Bu+1:Lr.collisionBoxArray.length,Fu!==void 0?Fu:Lr.collisionBoxArray.length,Fu!==void 0?Fu+1:Lr.collisionBoxArray.length,_0||Lr.collisionBoxArray.length,_0?_0+1:Lr.collisionBoxArray.length,us,zu,Ic,Ts,va,Ed,0,bb,ua,ea,0,vb?1:0,yb)})(h,fr,$r,Ht,u,p,b,y,h.layers[0],h.collisionBoxArray,l.index,l.sourceLayerIndex,h.index,Bt,he,O,0,pt,Lt,ae,l,S,z,U,q,X,J,re,nr,ye,Ee,Ce)};if(ce==="line")for(const Ht of Bj(l.geometry,0,0,sr,sr)){const fr=hCe(Ht,Ct,It,u.vertical||Ve,p,24,jt,h.overscaling,sr);for(const Er of fr)Ve&&ACe(h,Ve.text,$t,Er)||rr(Ht,Er,q)}else if(ce==="line-center"){for(const Ht of l.geometry)if(Ht.length>1){const fr=dCe(Ht,It,u.vertical||Ve,p,24,jt);fr&&rr(Ht,fr,q)}}else if(l.type==="Polygon")for(const Ht of _E(l.geometry,0)){const fr=mCe(Ht,16);rr(Ht[0],new Gp(fr.x,fr.y,0,0,void 0),q)}else if(l.type==="LineString")for(const Ht of l.geometry)rr(Ht,new Gp(Ht[0].x,Ht[0].y,0,0,void 0),q);else if(l.type==="Point")for(const Ht of l.geometry)for(const fr of Ht)rr([fr],new Gp(fr.x,fr.y,0,0,void 0),q)}const Z5=255,p0=Z5*qp;function bZ(h,l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he){const ce=fZ(0,p,I,b,S,k,y,h.allowVerticalPlacement,void 0,X.textScaleFactor),ye=b.layout.get("text-size").evaluate(k,{},re),Ee=X.compositeTextSizes?X.compositeTextSizes[0].evaluate(k,{},re):0,Ce=X.compositeTextSizes?X.compositeTextSizes[1].evaluate(k,{},re):0,He=X5(h.layerIds[0],h.textSizeData,ye,X.textScaleFactor,Ee,Ce);h.addSymbols(h.text,ce,He,I,S,k,z,l,u,O.lineStartIndex,O.lineLength,K,J,re,he,!1,ae,ce.length);for(const ze of U)q[ze]=h.text.placedSymbolArray.length-1;return 4*ce.length}function X5(h,l,u,p,y,b){const S=l;let k=null;return S.kind==="source"?(k=[qp*u*p],k[0]>p0&&zr(`${h}: Value for "text-size" is >= ${Z5}. Reduce your "text-size".`)):S.kind==="composite"&&(k=[qp*y*p,qp*b*p],(k[0]>p0||k[1]>p0)&&zr(`${h}: Value for "text-size" is >= ${Z5}. Reduce your "text-size".`)),k}function sP(h){for(const l in h)return h[l];return null}function aP(h,l,u,p,y,b,S,k,I,O,z){let U,q,K,X;if(U=z?z.top:S.top,q=z?z.bottom:S.bottom,K=z?z.left:S.left,X=z?z.right:S.right,B5(S)&&S.collisionPadding){const J=S.collisionPadding;K-=J[0],U-=J[1],X+=J[2],q+=J[3]}if(I){const J=new Ot(K,U),re=new Ot(X,U),ae=new Ot(K,q),he=new Ot(X,q),ce=Hn(I);let ye=new Ot(0,0);O&&(ye=new Ot(O[0],O[1])),J._rotateAround(ce,ye),re._rotateAround(ce,ye),ae._rotateAround(ce,ye),he._rotateAround(ce,ye),K=Math.min(J.x,re.x,ae.x,he.x),X=Math.max(J.x,re.x,ae.x,he.x),U=Math.min(J.y,re.y,ae.y,he.y),q=Math.max(J.y,re.y,ae.y,he.y)}return h.emplaceBack(l.x,l.y,l.z,u.x,u.y,K,U,X,q,k,p,y,b),h.length-1}function Q5(h){B5(h)&&h.collisionPadding&&(h.top-=h.collisionPadding[1],h.bottom+=h.collisionPadding[3]);const l=h.bottom-h.top;return l>0?Math.max(10,l):null}function ACe(h,l,u,p){const y=h.compareText;if(l in y){const b=y[l];for(let S=b.length-1;S>=0;S--)if(p.dist(b[S])ce&&(ye(Ce,kt,ze,Ge,gt,wt),ye(kt,He,gt,wt,Ue,Ve))}ye(U,q,p,b,y,b),ye(q,K,y,b,y,S),ye(K,X,y,S,p,S),ye(X,U,p,S,p,b),J-=ce,re-=ce,ae+=ce,he+=ce;const Ee=1/Math.max(ae-J,he-re);return{scale:Ee,x:J*Ee,y:re*Ee,x2:ae*Ee,y2:he*Ee,projection:l}}function SZ(h,{x:l,y:u},p=0){return new Ot(((l-p)*h.scale-h.x)*sr,(u*h.scale-h.y)*sr)}const kCe=L(new Float32Array(16));class kg{constructor(l){this.spec=l,this.name=l.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(l,u){return{x:0,y:0,z:0}}unproject(l,u){return new Qe(0,0)}projectTilePoint(l,u,p){return{x:l,y:u,z:0}}locationPoint(l,u,p,y=!0){return l._coordinatePoint(l.locationCoordinate(u,p),y)}pixelsPerMeter(l,u){return ot(1,l)*u}pixelSpaceConversion(l,u,p){return 1}farthestPixelDistance(l){return wZ(l,l.pixelsPerMeter)}pointCoordinate(l,u,p,y){const b=l.horizonLineFromTop(!1),S=new Ot(u,Math.max(b,p));return l.rayIntersectionCoordinate(l.pointRayIntersection(S,y))}pointCoordinate3D(l,u,p){const y=new Ot(u,p);if(l.elevation)return l.elevation.pointCoordinate(y);{const b=this.pointCoordinate(l,y.x,y.y,0);return[b.x,b.y,b.z]}}isPointAboveHorizon(l,u){if(l.elevation&&l.elevation.visibleDemTiles.length)return!this.pointCoordinate3D(l,u.x,u.y);const p=l.horizonLineFromTop();return u.y0?u<-ub+p&&(u=-ub+p):u>ub-p&&(u=ub-p);const S=b/Math.pow(lP(u),y);let k=S*Math.sin(y*l),I=b-S*Math.cos(y*l);return k=.5*(k/Math.PI+.5),I=.5*(I/Math.PI+.5),{x:k,y:this.southernCenter?I:1-I,z:0}}unproject(l,u){l=(2*l-.5)*Math.PI,this.southernCenter&&(u=1-u),u=(2*(1-u)-.5)*Math.PI;const{n:p,f:y}=this,b=y-u,S=Math.sign(b),k=Math.sign(p)*Math.sqrt(l*l+b*b);let I=Math.atan2(l,Math.abs(b))*S;b*p<0&&(I-=Math.PI*Math.sign(l)*S);const O=fe(io(I/p)+this.center[0],-180,180),z=fe(io(2*Math.atan(Math.pow(y/k,1/p))-ub),-85.051129,Et);return new Qe(O,this.southernCenter?-z:z)}}class TZ extends kg{constructor(l){super(l),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(l,u){return{x:Nt(l),y:Ft(u),z:0}}unproject(l,u){const p=tt(l),y=mt(u);return new Qe(p,y)}}const EZ=Hn(Et);class NCe extends kg{project(l,u){const p=(u=Hn(u))*u,y=p*p;return{x:.5*((l=Hn(l))*(.8707-.131979*p+y*(y*(.003971*p-.001529*y)-.013791))/Math.PI+.5),y:1-.5*(u*(1.007226+p*(.015085+y*(.028874*p-.044475-.005916*y)))/Math.PI+1),z:0}}unproject(l,u){l=(2*l-.5)*Math.PI;let p=u=(2*(1-u)-1)*Math.PI,y=25,b=0,S=p*p;do{S=p*p;const O=S*S;b=(p*(1.007226+S*(.015085+O*(.028874*S-.044475-.005916*O)))-u)/(1.007226+S*(.045255+O*(.259866*S-.311325-.005916*11*O))),p=fe(p-b,-EZ,EZ)}while(Math.abs(b)>1e-6&&--y>0);S=p*p;const k=fe(io(l/(.8707+S*(S*(S*S*S*(.003971-.001529*S)-.013791)-.131979))),-180,180),I=io(p);return new Qe(k,I)}}const AZ=Hn(Et);class RCe extends kg{project(l,u){u=Hn(u),l=Hn(l);const p=Math.cos(u),y=2/Math.PI,b=Math.acos(p*Math.cos(l/2)),S=Math.sin(b)/b,k=.5*(l*y+2*p*Math.sin(l/2)/S)||0,I=.5*(u+Math.sin(u)/S)||0;return{x:.5*(k/Math.PI+.5),y:1-.5*(I/Math.PI+1),z:0}}unproject(l,u){let p=l=(2*l-.5)*Math.PI,y=u=(2*(1-u)-1)*Math.PI,b=25;const S=1e-6;let k=0,I=0;do{const O=Math.cos(y),z=Math.sin(y),U=2*z*O,q=z*z,K=O*O,X=Math.cos(p/2),J=Math.sin(p/2),re=2*X*J,ae=J*J,he=1-K*X*X,ce=he?1/he:0,ye=he?Math.acos(O*X)*Math.sqrt(1/he):0,Ee=.5*(2*ye*O*J+2*p/Math.PI)-l,Ce=.5*(ye*z+y)-u,He=.5*ce*(K*ae+ye*O*X*q)+1/Math.PI,ze=ce*(re*U/4-ye*z*J),Ge=.125*ce*(U*J-ye*z*K*re),Ue=.5*ce*(q*X+ye*ae*O)+.5,Ve=ze*Ge-Ue*He;k=(Ce*ze-Ee*Ue)/Ve,I=(Ee*Ge-Ce*He)/Ve,p=fe(p-k,-Math.PI,Math.PI),y=fe(y-I,-AZ,AZ)}while((Math.abs(k)>S||Math.abs(I)>S)&&--b>0);return new Qe(io(p),io(y))}}class kZ extends kg{constructor(l){super(l),this.center=l.center||[0,0],this.parallels=l.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(Hn(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(l,u){const{scale:p,cosPhi:y}=this;return{x:Hn(l)*y*p+.5,y:-Math.sin(Hn(u))/y*p+.5,z:0}}unproject(l,u){const{scale:p,cosPhi:y}=this,b=-(u-.5)/p,S=fe(io((l-.5)/p)/y,-180,180),k=Math.asin(fe(b*y,-1,1)),I=fe(io(k),-85.051129,Et);return new Qe(S,I)}}class LCe extends TZ{constructor(l){super(l),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5]}projectTilePoint(l,u,p){const y=hE(l,u,p);return xr(y,y,fE(vf(p))),{x:y[0],y:y[1],z:y[2]}}locationPoint(l,u,p){const y=Fe(u.lat,u.lng),b=_t([],y),S=p?l._centerAltitude+p:l.elevation?l.elevation.getAtPointOrZero(l.locationCoordinate(u),l._centerAltitude):l._centerAltitude;at(y,y,b,ot(1,0)*sr*S);const k=L(new Float64Array(16));return D(k,l.pixelMatrix,l.globeMatrix),xr(y,y,k),new Ot(y[0],y[1])}pixelsPerMeter(l,u){return ot(1,0)*u}pixelSpaceConversion(l,u,p){const y=ot(1,l)*u,b=Zr(ot(1,45)*u,y,p);return this.pixelsPerMeter(l,u)/b}createTileMatrix(l,u,p){const y=H3(vf(p.canonical));return D(new Float64Array(16),l.globeMatrix,y)}createInversionMatrix(l,u){const{center:p}=l,y=fE(vf(u));return W(y,y,Hn(p.lng)),G(y,y,Hn(p.lat)),V(y,y,[l._pixelsPerMercatorPixel,l._pixelsPerMercatorPixel,1]),Float32Array.from(y)}pointCoordinate(l,u,p,y){return VW(l,u,p,!0)||new Tr(0,0)}pointCoordinate3D(l,u,p){const y=this.pointCoordinate(l,u,p,0);return[y.x,y.y,y.z]}isPointAboveHorizon(l,u){return!VW(l,u.x,u.y,!1)}farthestPixelDistance(l){const u=function(y,b){const S=y.cameraToCenterDistance,k=y._centerAltitude*b,I=y._camera,O=y._camera.forward(),z=ge([],Ze([],O,-S),[0,0,k]),U=y.worldSize/(2*Math.PI),q=[0,0,-U],K=y.width/y.height,X=Math.tan(y.fovAboveCenter),J=Ze([],I.up(),X),re=Ze([],I.right(),X*K),ae=_t([],ge([],ge([],O,J),re)),he=[];let ce;if(new An(z,ae).closestPointOnSphere(q,U,he)){const ye=ge([],he,q),Ee=jr([],ye,z);ce=Math.cos(y.fovAboveCenter)*Oe(Ee)}else{const ye=jr([],z,q),Ee=jr([],q,z);_t(Ee,Ee);const Ce=Oe(ye)-U;ce=Math.sqrt(Ce*(Ce+2*U));const He=Math.acos(ce/(U+Ce))-Math.acos(Rt(O,Ee));ce*=Math.cos(He)}return 1.01*ce}(l,this.pixelsPerMeter(l.center.lat,l.worldSize)),p=$p(l.zoom);if(p>0){const y=wZ(l,ot(1,l.center.lat)*l.worldSize),b=l.worldSize/(2*Math.PI),S=Math.max(l.width,l.height)/l.worldSize*Math.PI;return Zr(u,y+b*(1-Math.cos(S)),Math.pow(p,10))}return u}upVector(l,u,p){return hE(u,p,l,1)}upVectorScale(l){return{metersToTile:bj(Sj(vf(l)))}}}function CZ(h){const l=h.parallels,u=!!l&&Math.abs(l[0]+l[1])<.01;switch(h.name){case"mercator":return new TZ(h);case"equirectangular":return new jCe(h);case"naturalEarth":return new NCe(h);case"equalEarth":return new ICe(h);case"winkelTripel":return new RCe(h);case"albers":return u?new kZ(h):new CCe(h);case"lambertConformalConic":return u?new kZ(h):new PCe(h);case"globe":return new LCe(h)}throw new Error(`Invalid projection name: ${h.name}`)}class DCe{constructor(l,u){this.lastParams=null,this.lastAllFeaturesIndex=-2,this.appearancesVersion=u,this.appearances=l;const p=l.map(y=>function(b){if(!b.condition)return{featureDependent:!1,stateDependent:!1,zoomDependent:!1,pitchDependent:!1,brightnessDependent:!1,worldviewDependent:!1};const S=b.condition.expression;return{featureDependent:!kp(S),stateDependent:!ag(S),zoomDependent:!md(S,["zoom"]),pitchDependent:!md(S,["pitch"]),brightnessDependent:!md(S,["brightness","measure-light"]),worldviewDependent:!md(S,["worldview"])}}(y));this.anyFeatureDependent=p.some(y=>y.featureDependent),this.anyStateDependent=p.some(y=>y.stateDependent)}update(l,u){const p=this.lastParams,y=!p||p.zoom!==l.zoom||p.pitch!==(l.pitch||0)||p.brightness!==(l.brightness||0)||p.worldview!==l.worldview;this.lastParams={zoom:l.zoom,pitch:l.pitch||0,brightness:l.brightness||0,worldview:l.worldview};const b=u&&this.anyStateDependent;if(!y&&!b&&this.lastAllFeaturesIndex!==-2)return{kind:"no-changes"};if(!this.anyFeatureDependent&&!b){const S=this.evaluateAllFeatures(l);return S===this.lastAllFeaturesIndex?{kind:"no-changes"}:(this.lastAllFeaturesIndex=S,{kind:"all-features",appearanceIndex:S})}return{kind:"per-feature"}}evaluateAllFeatures(l){for(let u=0;u{for(let y=0;yS-k),b=new Map;for(const S of y){const k=p.get(S);b.set(S,new Si(k))}return u&&(this.cachedBatchIndices=y,this.cachedBatchSegments=b),{batchIndices:y,batchSegments:b}}snapshotSymbolVertexData(l,u){const p=l*hb;return this.layoutVertexArray.uint16.slice(p,p+u*hb)}restoreSymbolVertexData(l,u){this.layoutVertexArray.uint16.set(u,l*hb)}updateSymbolVertexData(l,u,p,y,b,S,k,I,O,z,U,q,K){const X=this.layoutVertexArray.uint16,J=l*hb;X[J]=u,X[J+1]=p,X[J+2]=y,X[J+3]=b,X[J+4]=S,X[J+5]=k,X[J+6]=I,X[J+7]=O,X[J+8]=z,X[J+9]=U,X[J+10]=q,X[J+11]=K}upload(l,u,p,y,b,S){this.isEmpty()||(p&&(this.cachedBatchIndices=null,this.cachedBatchSegments=null,this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,Fke.members,!!S),this.indexBuffer=l.createIndexBuffer(this.indexArray,u),this.dynamicLayoutVertexBuffer=l.createVertexBuffer(this.dynamicLayoutVertexArray,zke.members,!0),this.opacityVertexBuffer=l.createVertexBuffer(this.opacityVertexArray,OCe,!0),this.iconTransitioningVertexArray.length>0&&(this.iconTransitioningVertexBuffer=l.createVertexBuffer(this.iconTransitioningVertexArray,qke.members,!0)),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=l.createVertexBuffer(this.globeExtVertexArray,Bke.members,!0)),!this.zOffsetVertexBuffer&&(this.zOffsetVertexArray.length>0||b)&&(this.zOffsetVertexBuffer=l.createVertexBuffer(this.zOffsetVertexArray,$ke.members,!0)),!this.orientationVertexBuffer&&this.orientationVertexArray&&this.orientationVertexArray.length>0&&(this.orientationVertexBuffer=l.createVertexBuffer(this.orientationVertexArray,Vke.members,!0)),this.opacityVertexBuffer.itemSize=1,this.featureIdArray&&this.featureIdArray.length>0&&(this.featureIdBuffer=l.createVertexBuffer(this.featureIdArray,Uke.members,!1))),(p||y)&&(this.programConfigurations.upload(l),this.uboBinder&&this.uboBinder.upload(l)))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.iconTransitioningVertexBuffer&&this.iconTransitioningVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy(),this.zOffsetVertexBuffer&&this.zOffsetVertexBuffer.destroy(),this.orientationVertexBuffer&&this.orientationVertexBuffer.destroy(),this.featureIdBuffer&&this.featureIdBuffer.destroy(),this.uboBinder&&this.uboBinder.destroy())}}yr(J5,"SymbolBuffers",{omit:["cachedBatchIndices","cachedBatchSegments"]});class e4{constructor(l,u,p){this.layoutVertexArray=new l,this.layoutAttributes=u,this.indexArray=new p,this.segments=new Si,this.collisionVertexArray=new e0,this.collisionVertexArrayExt=new mh}upload(l){this.layoutVertexBuffer=l.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=l.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=l.createVertexBuffer(this.collisionVertexArray,Gke.members,!0),this.collisionVertexBufferExt=l.createVertexBuffer(this.collisionVertexArrayExt,Hke.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}yr(e4,"CollisionBuffers");class _h{constructor(l){this.collisionBoxArray=l.collisionBoxArray,this.zoom=l.zoom,this.overscaling=l.overscaling,this.layers=l.layers,this.layerIds=this.layers.map(S=>S.fqid),this.index=l.index,this.pixelRatio=l.pixelRatio,this.sourceLayerIndex=l.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.hasAnyIconTextFit=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=L([]),this.placementViewportMatrix=L([]);const u=this.layers[0]._unevaluatedLayout._values;this.worldview=l.worldview,this.localizable=l.localizable,this.maxUniformBufferBindings=l.maxUniformBufferBindings,this.maxUniformBlockSizeDwords=l.maxUniformBlockSizeDwords,this.disableSymbolUBO=l.disableSymbolUBO,this.textSizeData=f0(this.zoom,u["text-size"],this.worldview,l.availableImages),this.iconSizeData=f0(this.zoom,u["icon-size"],this.worldview,l.availableImages);const p=this.layers[0].layout,y=p.get("symbol-sort-key"),b=p.get("symbol-z-order");this.lut=l.lut,this.canOverlap=p.get("text-allow-overlap")||p.get("icon-allow-overlap")||p.get("text-ignore-placement")||p.get("icon-ignore-placement"),this.sortFeaturesByKey=b!=="viewport-y"&&y.constantOr(1)!==void 0,this.sortFeaturesByY=(b==="viewport-y"||b==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=p.get("text-writing-mode").map(S=>Cc[S]),this.stateDependentLayerIds=this.layers.filter(S=>S.isStateDependent()).map(S=>S.id),this.sourceID=l.sourceID,this.projection=l.projection,this.hasAnyZOffset=!1,this.zOffsetSortDirty=!1,this.zOffsetBuffersNeedUpload=!1,this.elevationType="none",this.elevationStateComplete=!1,this.activeReplacements=[],this.replacementUpdateTime=0,this.hasAnySecondaryIcon=!1,this.hasAppearances=null,this.featureAppearances=null,this.featureAppearanceData=new Map}hasAnyAppearanceLayoutProperty(l){const u=this.layers[0].getAppearances();if(!u||u.length===0)return!1;const p=Array.isArray(l)?l:[l];return u.some(y=>p.some(b=>y.hasLayoutProperty(b)))}getAppearanceFeatureData(l){return this.featureAppearanceData.get(l)}createArrays(){this.text=new J5(new ne(this.layers,{zoom:this.zoom,lut:this.lut},l=>l.startsWith("text")||l.startsWith("symbol"))),this.icon=new J5(new ne(this.layers,{zoom:this.zoom,lut:this.lut},l=>l.startsWith("icon")||l.startsWith("symbol"))),this.disableSymbolUBO||(this.text.uboBinder=new D5(this.layers[0],this.zoom,this.lut,!0,"",this.maxUniformBufferBindings,this.maxUniformBlockSizeDwords),this.icon.uboBinder=new D5(this.layers[0],this.zoom,this.lut,!1,"",this.maxUniformBufferBindings,this.maxUniformBlockSizeDwords)),this.glyphOffsetArray=new mj,this.lineVertexArray=new n0,this.symbolInstances=new pj}calculateGlyphDependencies(l,u,p,y,b){for(const S of l){const k=S.codePointAt(0);if(k===void 0)break;if(u[k]=!0,y&&b&&k<=65535){const I=NE[S];I&&(u[I.charCodeAt(0)]=!0)}}}calculateEffectiveAppearanceIconSize(l,u,p,y,b,S,k){if(!l.hasLayoutProperty("icon-size"))return k*S;let I=1;const O=l.getUnevaluatedLayoutProperty("icon-size"),z=f0(this.zoom,O,this.worldview,b),U=lb(z,u);if(z.kind!=="constant"&&z.kind!=="camera"||(I=U.uSize),z.kind==="composite"){const{minZoom:q,maxZoom:K}=z,X=O.possiblyEvaluate(new Jn(q,{worldview:this.worldview}),y),J=O.possiblyEvaluate(new Jn(K,{worldview:this.worldview}),y),re=X.evaluate(p,{},y,b);I=re+(J.evaluate(p,{},y,b)-re)*U.uSizeT}return z.kind==="source"&&(I=O.possiblyEvaluate(new Jn(this.zoom,{worldview:this.worldview}),y).evaluate(p,{},y,b)),I*S}updateFootprints(l,u){}updateReplacement(l,u){if(u.updateTime===this.replacementUpdateTime)return!1;this.replacementUpdateTime=u.updateTime;const p=u.getReplacementRegionsForTile(l.toUnwrapped(),!0);return!Rj(this.activeReplacements,p)&&(this.activeReplacements=p,!0)}getResolvedImageFromTokens(l){return typeof l=="string"?Nl.build(l):l}populate(l,u,p,y){const b=this.layers[0],S=b.layout,k=this.projection.name==="globe",I=S.get("text-font"),O=S.get("text-field"),z=S.get("icon-image"),[U,q]=S.get("icon-size-scale-range"),K=fe(u.scaleFactor||1,U,q),[X,J]=S.get("text-size-scale-range"),re=fe(u.scaleFactor||1,X,J),ae=(O.value.kind!=="constant"||O.value.value instanceof No&&!O.value.value.isEmpty()||O.value.value.toString().length>0)&&(I.value.kind!=="constant"||I.value.value.length>0),he=z.value.kind!=="constant"||!!z.value.value||Object.keys(z.parameters).length>0,ce=this.hasAnyAppearanceLayoutProperty("icon-image"),ye=S.get("symbol-sort-key");if(this.features=[],this.featureAppearanceData=new Map,!ae&&!he&&!ce)return;const Ee=u.iconDependencies,Ce=u.glyphDependencies,He=u.availableImages,ze=new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),Ge=Ue=>{const Ve=Ue.id.toString();Ee.has(Ve)?Ee.get(Ve).push(Ue):Ee.set(Ve,[Ue])};for(const Ue of l){const{feature:Ve,id:gt,index:wt,sourceLayerIndex:kt}=Ue,jt=b._featureFilter.needGeometry,Ct=gn(Ve,jt);if(!b._featureFilter.filter(ze,Ct,p))continue;if(jt||(Ct.geometry=Ur(Ve,p,y)),k&&Ve.type!==1&&p.z<=5){const nr=Ct.geometry,rr=.98078528056,Ht=(fr,Er)=>Rt(hE(fr.x,fr.y,p,1),hE(Er.x,Er.y,p,1)){if(!nr.getLayoutProperty("icon-image"))return;const rr=this.getCombinedIconPrimary(nr,It,Ct,p,He,Gt,K);rr&&Ge(rr)}),Bt){const nr=I.evaluate(Ct,{},p).join(","),rr=S.get("text-rotation-alignment")==="map"&&S.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(Cc.vertical)>=0;for(const Ht of Bt.sections)if(Ht.image){const fr=Ht.image.getPrimary().scaleSelf(this.pixelRatio*re),Er=fr.id.toString(),$r=Ee.get(Er)||[];$r.push(fr),Ee.set(Er,$r)}else{const fr=LT(Bt.toString()),Er=Ht.fontStack||nr,$r=Ce[Er]=Ce[Er]||{};this.calculateGlyphDependencies(Ht.text,$r,rr,this.allowVerticalPlacement,fr)}}}if(S.get("symbol-placement")==="line"&&(this.features=function(Ue){const Ve={},gt={},wt=[];let kt=0;function jt(It){wt.push(Ue[It]),kt++}function Ct(It,Lt,$t){const Gt=gt[It];return delete gt[It],gt[Lt]=Gt,wt[Gt].geometry[0].pop(),wt[Gt].geometry[0]=wt[Gt].geometry[0].concat($t[0]),Gt}function Bt(It,Lt,$t){const Gt=Ve[Lt];return delete Ve[Lt],Ve[It]=Gt,wt[Gt].geometry[0].shift(),wt[Gt].geometry[0]=$t[0].concat(wt[Gt].geometry[0]),Gt}function pt(It,Lt,$t){const Gt=$t?Lt[0][Lt[0].length-1]:Lt[0][0];return`${It}:${Gt.x}:${Gt.y}`}for(let It=0;ItIt.geometry)}(this.features)),S.get("symbol-elevation-reference")==="hd-road-markup"){if(this.elevationType="road",u.elevationFeatures){!this.elevationFeatures&&u.elevationFeatures.length>0&&(this.elevationFeatures=[],this.elevationFeatureIdToIndex=new Map);for(const Ue of u.elevationFeatures)this.elevationFeatureIdToIndex.set(Ue.id,this.elevationFeatures.length),this.elevationFeatures.push(Ue)}}else S.get("symbol-z-elevate")&&(this.elevationType="offset");this.elevationType!=="none"&&(this.zOffsetBuffersNeedUpload=!0),this.sortFeaturesByKey&&this.features.sort((Ue,Ve)=>Ue.sortKey-Ve.sortKey)}getCombinedIconPrimary(l,u,p,y,b,S,k){let I,O;if(l.hasLayoutProperty("icon-image")){const z=u.getAppearanceValueAndResolveTokens(l,"icon-image",p,y,b);I=this.getResolvedImageFromTokens(z)}else{const z=u.getValueAndResolveTokens("icon-image",p,y,b);I=this.getResolvedImageFromTokens(z)}if(I){const z=l.hasLayoutProperty("icon-size")?l.getUnevaluatedLayoutProperty("icon-size"):u._unevaluatedLayout._values["icon-size"];O=OE(I,f0(this.zoom,z,this.worldview,b),z,y,this.zoom,S,this.pixelRatio,k,this.worldview,b).iconPrimary}return O}updateSymbolInstanceIconVertices(l,u,p,y,b,S){const{canonical:k,availableImages:I,globalProperties:O,layer:z,iconScaleFactor:U,featureState:q,layoutIconOffset:K,layoutIconSize:X,layoutIconRotate:J}=S;if(l.placedIconSymbolIndex<0)return{vertexOffsetDelta:0,hasChanges:!1};if(u.activeAppearanceIndex===p)return{vertexOffsetDelta:l.numIconVertices,hasChanges:!1};const re=p>=0?z.appearances[p]:null;if(re){const ae=this.getCombinedIconPrimary(re,z,y,k,I,{sortKey:void 0,text:void 0,icon:null,index:l.featureIndex,sourceLayerIndex:l.featureIndex,geometry:[],properties:u.properties,type:"Point",id:u.id},U);if(!ae)return{vertexOffsetDelta:0,hasChanges:!1};const he=ae.toString(),ce=this.iconAtlasPositions&&this.iconAtlasPositions.get(he);if(ce){const{appearanceIconOffset:ye,appearanceIconRotate:Ee}=mZ(re,z,y,k,K,J,X,U);let Ce=Qj(ce,void 0,ye,z.layout.get("icon-anchor").evaluate(y,q,k));const He=ce.sdf,ze=z.layout.get("icon-text-fit").constantOr("none");ze!=="none"&&u.textShaping&&u.iconTextFitPadding&&u.fontScale&&(Ce=z5(Ce,u.textShaping,ze,u.iconTextFitPadding,ye,u.fontScale));const Ge=this.calculateEffectiveAppearanceIconSize(re,O.zoom,y,k,I,U,X),Ue=0,Ve=1+(Math.min(p0,Math.round(Ge*qp))<<1),gt=W5(Ce,Ee,He,ze!=="none",U);u.isUsingAppearanceIconVertexData||(u.isUsingAppearanceIconVertexData=!0,u.layoutBasedIconVertexData=this.icon.snapshotSymbolVertexData(b,l.numIconVertices));const wt=Math.floor(l.numIconVertices/4),kt=Math.min(gt.length,wt);let jt=b;for(let Bt=0;Bt0||l.numVerticalGlyphVertices>0;if(!ye)return{vertexOffsetDelta:ye?l.numHorizontalGlyphVertices+l.numVerticalGlyphVertices:0,hasChanges:!1};if(u.activeAppearanceIndex===p)return{vertexOffsetDelta:l.numHorizontalGlyphVertices+l.numVerticalGlyphVertices,hasChanges:!1};const Ee=p>=0?I.appearances[p]:null;if(Ee&&u.textShaping){const{appearanceTextOffset:Ce,appearanceTextRotate:He,appearanceTextSize:ze}=gZ(Ee,I,y,k,q,X,K);u.fontScale=vZ(ze,u.textScaleFactor);const Ge=Ee.getUnevaluatedLayoutProperty("text-size");let Ue=this.textSizeData,Ve=ae,gt=he;Ee.hasLayoutProperty("text-size")&&(Ue=f0(this.zoom,Ge,this.worldview,ce),Ve=this.textSizeData.kind==="composite"?this.textSizeData.minZoom:0,gt=this.textSizeData.kind==="composite"?this.textSizeData.maxZoom:0);const wt=u.textShaping.bottom-q[1],kt=u.textShaping.left-q[0],jt=u.textShaping.right-q[0];u.textShaping.top=Ce[1]+(u.textShaping.top-q[1]),u.textShaping.bottom=Ce[1]+wt,u.textShaping.left=Ce[0]+kt,u.textShaping.right=Ce[0]+jt;const Ct=fZ(0,u.textShaping,Ce,I,!1,y,z,this.allowVerticalPlacement,He),Bt=ze&&Ue.kind==="composite"?Ge.possiblyEvaluate(new Jn(Ve,{}),k).evaluate(y,U,k):J,pt=ze&&Ue.kind==="composite"?Ge.possiblyEvaluate(new Jn(gt,{}),k).evaluate(y,U,k):re,It=X5(Ee.name,Ue,ze,O,Bt,pt),Lt=Array.isArray(It)?It[1]:ze,$t=0,Gt=1+(Math.min(p0,Math.round(Lt*qp))<<1);u.isUsingAppearanceTextVertexData||(u.isUsingAppearanceTextVertexData=!0,u.layoutBasedTextVertexData=this.text.snapshotSymbolVertexData(b,l.numHorizontalGlyphVertices+l.numVerticalGlyphVertices));for(let mr=0;mr0){const O=new Set(Object.keys(l).map(z=>{const U=Number(z);return!isNaN(U)&&Number.isSafeInteger(U)&&String(U)===z?U:z}));this.text.uboBinder&&this.text.uboBinder.updateFeatures(O,b[0],u,I,p,l,k),this.icon.uboBinder&&this.icon.uboBinder.updateFeatures(O,b[0],u,I,p,l,k)}}}updateRoadElevation(l){if(this.elevationType!=="road"||!this.elevationFeatures||this.elevationStateComplete)return;this.elevationStateComplete=!0,this.hasAnyZOffset=!1;let u=!1;const p=Mt(l),y=1/p;let b=!1,S=!1;for(let k=0;k0||q>0,re=K>0,ae=this.elevationFeatures[I.elevationFeatureIndex];if(ae){const he=new Ot(I.tileAnchorX,I.tileAnchorY),ce=.075+ae.pointElevation(he);I.zOffset!==ce&&(u=!0,I.zOffset=ce),ce!==0&&(this.hasAnyZOffset=!0);const ye=ae.computeSlopeNormal(he,y),Ee=sa(Rr(),Ae(0,0,1),ye);tn(O,O,Ee),tn(z,z,Ee),O[2]*=p,z[2]*=p,O[0]===1&&O[1]===0&&O[2]===0&&z[0]===0&&z[1]===1&&z[2]===0||(b=b||J,S=S||re)}if(J&&(cP(this.text.orientationVertexArray,U,O,z),cP(this.text.orientationVertexArray,q,O,z)),re){const{placedIconSymbolIndex:he,verticalPlacedIconSymbolIndex:ce}=I;he>=0&&cP(this.icon.orientationVertexArray,K,O,z),ce>=0&&cP(this.icon.orientationVertexArray,X,O,z)}}b||(this.text.orientationVertexArray=void 0),S||(this.icon.orientationVertexArray=void 0),u&&(this.zOffsetBuffersNeedUpload=!0,this.zOffsetSortDirty=!0)}updateZOffset(){const l=(b,S,k)=>{p+=S,p>b.length&&b.resize(p);for(let I=-S;I<0;I++)b.emplace(I+p,k)},u=(b,S,k)=>{y+=S,y>b.length&&b.resize(y);for(let I=-S;I<0;I++)b.emplace(I+y,k)};if(!this.zOffsetBuffersNeedUpload)return;this.zOffsetBuffersNeedUpload=!1;let p=0,y=0;for(let b=0;b0;if((k>0||I>0)&&(l(this.text.zOffsetVertexArray,k,z),l(this.text.zOffsetVertexArray,I,z)),U){const{placedIconSymbolIndex:q,verticalPlacedIconSymbolIndex:K}=S;q>=0&&u(this.icon.zOffsetVertexArray,O,z),K>=0&&u(this.icon.zOffsetVertexArray,S.numVerticalIconVertices,z)}}this.text.zOffsetVertexBuffer&&this.text.zOffsetVertexBuffer.updateData(this.text.zOffsetVertexArray),this.icon.zOffsetVertexBuffer&&this.icon.zOffsetVertexBuffer.updateData(this.icon.zOffsetVertexArray)}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(l,u,p,y,b){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(l),this.iconCollisionBox.upload(l)),this.text.upload(l,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload,this.zOffsetBuffersNeedUpload,this.hasAppearances),this.hasAppearances===null&&(this.hasAppearances=this.layers.some(S=>S.appearances&&S.appearances.length>0)),this.icon.upload(l,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload,this.zOffsetBuffersNeedUpload,this.hasAppearances),this.uploaded=!0}updateAppearances(l,u,p,y,b,S=!1){const k={hasLayoutChanges:!1,hasUboChanges:!1};if(!l||!p||!this.featureAppearanceData)return k;const I=u||{},O=this.icon.layoutVertexArray&&this.icon.layoutVertexArray.length>0&&this.icon.layoutVertexArray.arrayBuffer,z=this.text.layoutVertexArray&&this.text.layoutVertexArray.length>0&&this.text.layoutVertexArray.arrayBuffer;if(!O&&!z)return k;const U=this.layers[0],q=U.layout;this.featureAppearances&&this.featureAppearances.appearancesVersion===U.appearancesVersion||(this.featureAppearances=new DCe(U.appearances,U.appearancesVersion));const K=this.featureAppearances.update(y,S);if(K.kind==="no-changes")return k;let X=1,J=0,re=!1,ae=!1;if(O){const[Ce,He]=q.get("icon-size-scale-range");X=fe(1,Ce,He)}let he=1,ce=0,ye=!1;if(z){const[Ce,He]=q.get("text-size-scale-range");he=fe(1,Ce,He)}const Ee=new Map;if(b&&p)for(const Ce of p){const He=b.getImage(Ce,U.scope);if(He){const ze=new au(Ce.toString());Ee.set(ze.toString(),He)}}for(let Ce=0;Cejt.isActive({globals:y,feature:Ve,canonical:l,featureState:Ue})):-1;gt=kt>=0?kt:-1}const wt=ze.activeAppearanceIndex!==gt;if(z){const kt=q.get("text-size"),jt=this.textSizeData.kind==="composite"?this.textSizeData.minZoom:0,Ct=this.textSizeData.kind==="composite"?this.textSizeData.maxZoom:0,Bt={canonical:l,layer:U,featureState:Ue,availableImages:p,textScaleFactor:he,imageMap:Ee,layoutTextOffset:q.get("text-offset").evaluate(Ve,Ue,l).map(It=>It*Pa),layoutTextSize:kt.evaluate(Ve,Ue,l),layoutTextRotate:q.get("text-rotate").evaluate(Ve,Ue,l),layoutMinZoomSize:kt.evaluate(Ve,{zoom:jt},l),layoutMaxZoomSize:kt.evaluate(Ve,{zoom:Ct},l),layoutTextSizeMinZoom:jt,layoutTextSizeMaxZoom:Ct},pt=this.updateSymbolInstanceTextVertices(He,ze,gt,Ve,ce,Bt);ce+=pt.vertexOffsetDelta,ye=ye||pt.hasChanges}if(O){const kt={canonical:l,layer:U,featureState:Ue,availableImages:p,globalProperties:y,iconScaleFactor:X,layoutIconOffset:q.get("icon-offset").evaluate(Ve,Ue,l),layoutIconSize:q.get("icon-size").evaluate(Ve,Ue,l,p),layoutIconRotate:q.get("icon-rotate").evaluate(Ve,Ue,l)},jt=this.updateSymbolInstanceIconVertices(He,ze,gt,Ve,J,kt);J+=jt.vertexOffsetDelta,re=re||jt.hasChanges}if(wt){const kt=He.featureIndex,jt=y?y.brightness:null,Ct=Ue||{},Bt=gt>=0?U.appearances[gt]:null;this.text.uboBinder&&(this.text.uboBinder.layer=U,ae=this.text.uboBinder.updateFeaturePaintForAppearance(kt,Ve,Ct,l,p,jt,Bt)||ae),this.icon.uboBinder&&(this.icon.uboBinder.layer=U,ae=this.icon.uboBinder.updateFeaturePaintForAppearance(kt,Ve,Ct,l,p,jt,Bt)||ae)}ze.activeAppearanceIndex=gt}return re&&this.icon.layoutVertexBuffer&&this.icon.layoutVertexArray.arrayBuffer!==null&&this.icon.layoutVertexArray.length===this.icon.layoutVertexBuffer.length&&this.icon.layoutVertexBuffer.updateData(this.icon.layoutVertexArray),ye&&this.text.layoutVertexBuffer&&this.text.layoutVertexArray.arrayBuffer!==null&&this.text.layoutVertexArray.length===this.text.layoutVertexBuffer.length&&this.text.layoutVertexBuffer.updateData(this.text.layoutVertexArray),{hasLayoutChanges:re||ye,hasUboChanges:ae}}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=CZ(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(l,u){const p=this.lineVertexArray.length;if(l.segment!==void 0)for(const{x:y,y:b}of u)this.lineVertexArray.emplaceBack(y,b);return{lineStartIndex:p,lineLength:this.lineVertexArray.length-p}}addSymbols(l,u,p,y,b,S,k,I,O,z,U,q,K,X,J,re,ae,he){const ce=l.indexArray,ye=l.layoutVertexArray,Ee=l.globeExtVertexArray,Ce=he,He=l.uboBinder?l.uboBinder.getCurrentBatchIndex():void 0,ze=l.segments.prepareSegment(4*Ce,ye,ce,this.canOverlap?S.sortKey:void 0,He),Ge=this.glyphOffsetArray.length,Ue=ze.vertexLength,Ve=this.allowVerticalPlacement&&k===Cc.vertical?Math.PI/2:0,gt=S.text&&S.text.sections;let wt=ye.length,kt=-1;for(let Bt=0;Bt=0)){const Bt=4*jt;for(let pt=0;pt=0?u.rightJustifiedTextSymbolIndex:u.centerJustifiedTextSymbolIndex>=0?u.centerJustifiedTextSymbolIndex:u.leftJustifiedTextSymbolIndex>=0?u.leftJustifiedTextSymbolIndex:u.verticalPlacedTextSymbolIndex>=0?u.verticalPlacedTextSymbolIndex:y),S=$5(this.textSizeData,l,b)/Pa;return this.tilePixelRatio*S}getSymbolInstanceIconSize(l,u,p){const y=this.icon.placedSymbolArray.get(p),b=$5(this.iconSizeData,l,y);return this.tilePixelRatio*b}_commitDebugCollisionVertexUpdate(l,u,p,y){l.emplaceBack(u,-p,-p,y),l.emplaceBack(u,p,-p,y),l.emplaceBack(u,p,p,y),l.emplaceBack(u,-p,p,y)}_updateTextDebugCollisionBoxes(l,u,p,y,b,S,k){for(let I=y;I0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}hasIconTextFit(){return this.hasAnyIconTextFit}addIndicesForPlacedSymbol(l,u){const p=l.placedSymbolArray.get(u),y=p.vertexStartIndex+4*p.numGlyphs;for(let b=p.vertexStartIndex;by[k]-y[I]||b[I]-b[k]),S}getSortedIndexesByZOffset(){if(!this.zOffsetSortDirty)return this.symbolInstanceIndexesSortedZOffset;if(!this.symbolInstanceIndexesSortedZOffset){this.symbolInstanceIndexesSortedZOffset=[];for(let l=0;lthis.symbolInstances.get(u).zOffset-this.symbolInstances.get(l).zOffset)}addToSortKeyRanges(l,u){const p=this.sortKeyRanges[this.sortKeyRanges.length-1];p&&p.sortKey===u?p.symbolInstanceEnd=l+1:this.sortKeyRanges.push({sortKey:u,symbolInstanceStart:l,symbolInstanceEnd:l+1})}sortFeatures(l){if(this.sortFeaturesByY&&this.sortedAngle!==l)if(this.text.segments.get().length>1||this.icon.segments.get().length>1)this.sortFeaturesWithinSegments();else{this.symbolInstanceIndexes=this.getSortedSymbolIndexes(l),this.sortedAngle=l,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const u of this.symbolInstanceIndexes){const p=this.symbolInstances.get(u);this.featureSortOrder.push(p.featureIndex);const{rightJustifiedTextSymbolIndex:y,centerJustifiedTextSymbolIndex:b,leftJustifiedTextSymbolIndex:S,verticalPlacedTextSymbolIndex:k,placedIconSymbolIndex:I,verticalPlacedIconSymbolIndex:O}=p;y>=0&&this.addIndicesForPlacedSymbol(this.text,y),b>=0&&b!==y&&this.addIndicesForPlacedSymbol(this.text,b),S>=0&&S!==b&&S!==y&&this.addIndicesForPlacedSymbol(this.text,S),k>=0&&this.addIndicesForPlacedSymbol(this.text,k),I>=0&&this.addIndicesForPlacedSymbol(this.icon,I),O>=0&&this.addIndicesForPlacedSymbol(this.icon,O)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}getOrCreateSortedSymbolsByBatch(l,u){const p=(this.text.uboBinder&&this.text.uboBinder.maxFeaturesPerBatch>0?this.text.uboBinder:this.icon.uboBinder&&this.icon.uboBinder.maxFeaturesPerBatch>0?this.icon.uboBinder:null).maxFeaturesPerBatch;if(this.symbolsByBatch)for(const y of this.symbolsByBatch.values())for(const b of y){const S=this.symbolInstances.get(b.index);b.rotatedY=0|Math.round(l*S.tileAnchorX+u*S.tileAnchorY)}else{this.symbolsByBatch=new Map;for(let y=0;yb.rotatedY-S.rotatedY||S.featureIndex-b.featureIndex);return this.symbolsByBatch}rebuildTextSegmentIndices(l,u){for(const p of l){const y=p.batchIndex;if(y===void 0)continue;const b=u.get(y);if(!b){p.primitiveOffset=this.text.indexArray.length,p.primitiveLength=0;continue}p.primitiveOffset=this.text.indexArray.length;const S=this.text.indexArray.length;for(const{index:k}of b){const I=this.symbolInstances.get(k),{rightJustifiedTextSymbolIndex:O,centerJustifiedTextSymbolIndex:z,leftJustifiedTextSymbolIndex:U,verticalPlacedTextSymbolIndex:q}=I;O>=0&&this.addIndicesForPlacedSymbol(this.text,O),z>=0&&z!==O&&this.addIndicesForPlacedSymbol(this.text,z),U>=0&&U!==z&&U!==O&&this.addIndicesForPlacedSymbol(this.text,U),q>=0&&this.addIndicesForPlacedSymbol(this.text,q)}p.primitiveLength=this.text.indexArray.length-S}}rebuildIconSegmentIndices(l,u){for(const p of l){const y=p.batchIndex;if(y===void 0)continue;const b=u.get(y);if(!b){p.primitiveOffset=this.icon.indexArray.length,p.primitiveLength=0;continue}p.primitiveOffset=this.icon.indexArray.length;const S=this.icon.indexArray.length;for(const{index:k}of b){const I=this.symbolInstances.get(k),{placedIconSymbolIndex:O,verticalPlacedIconSymbolIndex:z}=I;O>=0&&this.addIndicesForPlacedSymbol(this.icon,O),z>=0&&this.addIndicesForPlacedSymbol(this.icon,z)}p.primitiveLength=this.icon.indexArray.length-S}}sortFeaturesWithinSegments(){this.featureSortOrder=[];const l=Math.sin(this.sortedAngle),u=Math.cos(this.sortedAngle),p=this.getOrCreateSortedSymbolsByBatch(l,u),y=Array.from(p.keys()).sort((b,S)=>b-S);for(const b of y){const S=p.get(b);for(const{index:k}of S){const I=this.symbolInstances.get(k);this.featureSortOrder.push(I.featureIndex)}}this.text.indexArray.clear(),this.icon.indexArray.clear(),this.rebuildTextSegmentIndices(this.text.segments.get(),p),this.rebuildIconSegmentIndices(this.icon.segments.get(),p),this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}getElevationFeatureForText(l){const u=this.symbolInstances.get(this.text.symbolInstanceIndices[l]).elevationFeatureIndex;let p;return this.elevationFeatures&&up in h?String(h[p]):"")}let jZ,PZ,t4;yr(_h,"SymbolBucket",{omit:["layers","collisionBoxArray","compareText","features"]}),_h.addDynamicAttributes=db;class NZ{constructor(l){this.type=l.property.overrides?l.property.overrides.runtimeType:oh,this.defaultValue=l}evaluate(l){if(l.formattedSection){const u=this.defaultValue.property.overrides;if(u&&u.hasOverride(l.formattedSection))return u.getOverride(l.formattedSection)}return l.feature&&l.featureState?this.defaultValue.evaluate(l.feature,l.featureState):this.defaultValue.property.specification.default}eachChild(l){this.defaultValue.isConstant()||l(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}yr(NZ,"FormatSectionOverride",{omit:["defaultValue"]});const r4=()=>t4||(t4={layout:jZ||(jZ=new is({"symbol-placement":new Yt(nt.layout_symbol["symbol-placement"]),"symbol-spacing":new Yt(nt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Yt(nt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ut(nt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Yt(nt.layout_symbol["symbol-z-order"]),"symbol-z-elevate":new Yt(nt.layout_symbol["symbol-z-elevate"]),"symbol-elevation-reference":new Yt(nt.layout_symbol["symbol-elevation-reference"]),"icon-allow-overlap":new Yt(nt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Yt(nt.layout_symbol["icon-ignore-placement"]),"icon-optional":new Yt(nt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Yt(nt.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ut(nt.layout_symbol["icon-size"]),"icon-size-scale-range":new Yt(nt.layout_symbol["icon-size-scale-range"]),"icon-text-fit":new Ut(nt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Ut(nt.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ut(nt.layout_symbol["icon-image"]),"icon-image-use-theme":new Yt({type:"string",default:"default","property-type":"data-constant"}),"icon-rotate":new Ut(nt.layout_symbol["icon-rotate"]),"icon-padding":new Yt(nt.layout_symbol["icon-padding"]),"icon-keep-upright":new Yt(nt.layout_symbol["icon-keep-upright"]),"icon-offset":new Ut(nt.layout_symbol["icon-offset"]),"icon-anchor":new Ut(nt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Yt(nt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Yt(nt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Yt(nt.layout_symbol["text-rotation-alignment"]),"text-field":new Ut(nt.layout_symbol["text-field"]),"text-font":new Ut(nt.layout_symbol["text-font"]),"text-size":new Ut(nt.layout_symbol["text-size"]),"text-size-scale-range":new Yt(nt.layout_symbol["text-size-scale-range"]),"text-max-width":new Ut(nt.layout_symbol["text-max-width"]),"text-line-height":new Ut(nt.layout_symbol["text-line-height"]),"text-letter-spacing":new Ut(nt.layout_symbol["text-letter-spacing"]),"text-justify":new Ut(nt.layout_symbol["text-justify"]),"text-radial-offset":new Ut(nt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Yt(nt.layout_symbol["text-variable-anchor"]),"text-anchor":new Ut(nt.layout_symbol["text-anchor"]),"text-max-angle":new Yt(nt.layout_symbol["text-max-angle"]),"text-writing-mode":new Yt(nt.layout_symbol["text-writing-mode"]),"text-rotate":new Ut(nt.layout_symbol["text-rotate"]),"text-padding":new Yt(nt.layout_symbol["text-padding"]),"text-keep-upright":new Yt(nt.layout_symbol["text-keep-upright"]),"text-transform":new Ut(nt.layout_symbol["text-transform"]),"text-offset":new Ut(nt.layout_symbol["text-offset"]),"text-allow-overlap":new Yt(nt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Yt(nt.layout_symbol["text-ignore-placement"]),"text-optional":new Yt(nt.layout_symbol["text-optional"]),visibility:new Yt(nt.layout_symbol.visibility)})),paint:PZ||(PZ=new is({"icon-opacity":new Ut(nt.paint_symbol["icon-opacity"]),"icon-occlusion-opacity":new Ut(nt.paint_symbol["icon-occlusion-opacity"]),"icon-emissive-strength":new Ut(nt.paint_symbol["icon-emissive-strength"]),"text-emissive-strength":new Ut(nt.paint_symbol["text-emissive-strength"]),"icon-color":new Ut(nt.paint_symbol["icon-color"]),"icon-halo-color":new Ut(nt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ut(nt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ut(nt.paint_symbol["icon-halo-blur"]),"icon-translate":new Yt(nt.paint_symbol["icon-translate"]),"icon-translate-anchor":new Yt(nt.paint_symbol["icon-translate-anchor"]),"icon-image-cross-fade":new Yt(nt.paint_symbol["icon-image-cross-fade"]),"text-opacity":new Ut(nt.paint_symbol["text-opacity"]),"text-occlusion-opacity":new Ut(nt.paint_symbol["text-occlusion-opacity"]),"text-color":new Ut(nt.paint_symbol["text-color"],{runtimeType:pl,getOverride:h=>h.textColor,hasOverride:h=>!!h.textColor}),"text-halo-color":new Ut(nt.paint_symbol["text-halo-color"]),"text-halo-width":new Ut(nt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ut(nt.paint_symbol["text-halo-blur"]),"text-translate":new Yt(nt.paint_symbol["text-translate"]),"text-translate-anchor":new Yt(nt.paint_symbol["text-translate-anchor"]),"icon-color-saturation":new Yt(nt.paint_symbol["icon-color-saturation"]),"icon-color-contrast":new Yt(nt.paint_symbol["icon-color-contrast"]),"icon-color-brightness-min":new Yt(nt.paint_symbol["icon-color-brightness-min"]),"icon-color-brightness-max":new Yt(nt.paint_symbol["icon-color-brightness-max"]),"symbol-z-offset":new Ut(nt.paint_symbol["symbol-z-offset"]),"icon-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"icon-halo-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"text-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"text-halo-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"})}))},t4);class uP extends Yo{constructor(l,u,p,y){super(l,r4(),u,p,y,l.layout?l.layout["icon-image-use-theme"]:null),this._colorAdjustmentMatrix=L([]),this.hasOcclusionOpacityProperties=l.paint!==void 0&&("icon-occlusion-opacity"in l.paint||"text-occlusion-opacity"in l.paint)}_handleSpecialPaintPropertyUpdate(l){l!=="icon-occlusion-opacity"&&l!=="text-occlusion-opacity"||(this.hasOcclusionOpacityProperties=!0)}recalculate(l,u){super.recalculate(l,u),this.appearances&&this.appearances.forEach(y=>{y.recalculate(l,u,this.iconImageUseTheme)}),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));const p=this.layout.get("text-writing-mode");if(p){const y=[];for(const b of p)y.indexOf(b)<0&&y.push(b);this.layout._values["text-writing-mode"]=y}else this.layout._values["text-writing-mode"]=this.layout.get("symbol-placement")==="point"?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getColorAdjustmentMatrix(l,u,p,y){return this._saturation===l&&this._contrast===u&&this._brightnessMin===p&&this._brightnessMax===y||(this._colorAdjustmentMatrix=function(b,S,k,I){b=ls(b),S=ji(S);const O=C(),z=b/3,U=1-2*z,q=[U,z,z,0,z,U,z,0,z,z,U,0,0,0,0,1],K=.5-.5*S,X=I-k;return D(O,[X,0,0,0,0,X,0,0,0,0,X,0,k,k,k,1],[S,0,0,0,0,S,0,0,0,0,S,0,K,K,K,1]),D(O,O,q),O}(l,u,p,y),this._saturation=l,this._contrast=u,this._brightnessMin=p,this._brightnessMax=y),this._colorAdjustmentMatrix}getValueAndResolveTokens(l,u,p,y){const b=this.layout.get(l).evaluate(u,{},p,y),S=this._unevaluatedLayout._values[l];return S.isDataDriven()||Ux(S.value)||!b?b:IZ(u.properties,b)}getAppearanceValueAndResolveTokens(l,u,p,y,b){const S=l.getLayoutProperty(u);if(!S)return;const k=S.evaluate(p,{},y,b),I=l.getUnevaluatedLayoutProperties()._values[u];return I.isDataDriven()||Ux(I.value)||!k||typeof k!="string"?k:IZ(p.properties,k)}createBucket(l){return new _h(l)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const l of r4().paint.overridableProperties){if(!uP.hasPaintOverride(this.layout,l))continue;const u=this.paint.get(l),p=new NZ(u),y=new kv(p,u.property.specification,this.scope,this.options,this.layout.get("icon-image-use-theme"));let b=null;b=u.value.kind==="constant"||u.value.kind==="source"?new hg("source",y):new Ip("composite",y,u.value.zoomStops,u.value.interpolationType),this.paint._values[l]=new Rp(u.property,b,u.parameters)}}_handleOverridablePaintPropertyUpdate(l,u,p){return!(!this.layout||u.isDataDriven()||p.isDataDriven())&&uP.hasPaintOverride(this.layout,l)}static hasPaintOverride(l,u){const p=l.get("text-field"),y=r4().paint.properties[u];let b=!1;const S=k=>{for(const I of k)if(y.overrides&&y.overrides.hasOverride(I))return void(b=!0)};if(p.value.kind==="constant"&&p.value.value instanceof No)S(p.value.value.sections);else if(p.value.kind==="source"){const k=O=>{b||(O instanceof Cr&&js(O.value)===xx?S(O.value.sections):O instanceof wp?S(O.sections):O.eachChild(k))},I=p.value;I._styleExpression&&k(I._styleExpression.expression)}return b}getProgramIds(){return["symbol"]}getDefaultProgramParams(l,u,p){return{config:new ee(this,{zoom:u,lut:p}),overrideFog:!1}}hasElevation(){return this.layout&&this.layout.get("symbol-elevation-reference")==="hd-road-markup"}}let RZ,LZ,DZ,MZ;var dP=Cn([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Uint16",components:2}]);function hP(h,l,u,p,y,b,S,k){const I=[h,l,1,u,p,1,y,b,1],O=[S,k,1],z=T([],I),[U,q,K]=_r(O,O,z);return E(I,I,[U,0,0,0,q,0,0,0,K])}function OZ(h,l,u,p,y,b,S,k){const I=function(O,z,U,q,K,X,J,re){const ae=hP(0,0,1,0,1,1,0,1),he=hP(O,z,U,q,K,X,J,re);return E(he,he,T([],ae))}(h,l,u,p,y,b,S,k);return[I[2]/I[8]/sr,I[5]/I[8]/sr]}function fP(h){return[h[0],Math.min(Math.max(h[1],-85.051129),Et)]}class FZ extends yx{constructor(l,u,p,y){super(),this.id=l,this.dispatcher=p,this.coordinates=u.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.onNorthPole=!1,this.onSouthPole=!1,this.setEventedParent(y),this.options=u,this._dirty=!1}load(l,u){if(this._loaded=u||!1,this.fire(new Pu("dataloading",{dataType:"source"})),this.url=this.options.url,!this.url)return l&&(this.coordinates=l),this._loaded=!0,void this._finishLoading();this._imageRequest=Zm(this.map._requestManager.transformRequest(this.url,mx.Image),(p,y)=>{this._imageRequest=null,this._loaded=!0,p?this.fire(new Xm(p)):y&&(this.image=y,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,l&&(this.coordinates=l),this._finishLoading())})}loaded(){return this._loaded}updateImage(l){return l.url?(this._imageRequest&&l.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=l.url,this.load(l.coordinates,this._loaded),this):this}setTexture(l){if(!(l.handle instanceof WebGLTexture))throw new Error("The provided handle is not a WebGLTexture instance");return this.texture=new IE(this.map.painter.context,l.handle),this.width=l.dimensions[0],this.height=l.dimensions[1],this._dirty=!1,this._loaded=!0,this._finishLoading(),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new Pu("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(l){this.map=l,this.load()}onRemove(l){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),!this.texture||this.texture instanceof IE||this.texture.destroy(),this.boundsBuffer&&(this.boundsBuffer.destroy(),this.elevatedGlobeVertexBuffer&&this.elevatedGlobeVertexBuffer.destroy(),this.elevatedGlobeIndexBuffer&&this.elevatedGlobeIndexBuffer.destroy())}setCoordinates(l){if(this.coordinates=l,this._boundsArray=void 0,this._unsupportedCoords=!1,!l.length)return this;this.onNorthPole=!1,this.onSouthPole=!1;let u=l[0][1],p=l[0][1];for(const b of l)b[1]>p&&(p=b[1]),b[1]Et?this.onNorthPole=!0:y<-85.051129&&(this.onSouthPole=!0),!this.onNorthPole&&!this.onSouthPole){const b=l.map(Tr.fromLngLat);this.tileID=function(S){let k=1/0,I=1/0,O=-1/0,z=-1/0;for(const J of S)k=Math.min(k,J.x),I=Math.min(I,J.y),O=Math.max(O,J.x),z=Math.max(z,J.y);const U=Math.max(O-k,z-I),q=Math.max(0,Math.floor(-Math.log2(U))),K=Math.pow(2,q);let X=Math.floor((k+O)/2*K);return X>1&&(X-=1),new l0(q,X,Math.floor((I+z)/2*K))}(b),this.minzoom=this.maxzoom=this.tileID.z}return this.fire(new Pu("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){!this.texture||this.texture instanceof IE||(this.texture.destroy(),this._dirty=!0),this.texture=null,this._boundsArray=void 0,this._unsupportedCoords=!1}_prepareData(l){for(const re in this.tiles){const ae=this.tiles[re];ae.state!=="loaded"&&(ae.state="loaded",ae.texture=this.texture)}if(this._boundsArray||this.onNorthPole||this.onSouthPole||this._unsupportedCoords)return;const u=m0(new l0(0,0,0),this.map.transform.projection),p=[u.projection.project(this.coordinates[0][0],this.coordinates[0][1]),u.projection.project(this.coordinates[1][0],this.coordinates[1][1]),u.projection.project(this.coordinates[2][0],this.coordinates[2][1]),u.projection.project(this.coordinates[3][0],this.coordinates[3][1])];if(!function(re){const ae=re[1].x-re[0].x,he=re[1].y-re[0].y,ce=re[2].x-re[1].x,ye=re[2].y-re[1].y,Ee=re[3].x-re[2].x,Ce=re[3].y-re[2].y,He=re[0].x-re[3].x,ze=re[0].y-re[3].y,Ge=ae*ye-ce*he,Ue=ce*Ce-Ee*ye,Ve=Ee*ze-He*Ce,gt=He*he-ae*ze;return Ge>0&&Ue>0&&Ve>0&>>0||Ge<0&&Ue<0&&Ve<0&><0}(p))return console.warn("Image source coordinates are defining non-convex area in the Mercator projection"),void(this._unsupportedCoords=!0);const y=m0(this.tileID,this.map.transform.projection),[b,S,k,I]=this.coordinates.map(re=>{const ae=y.projection.project(re[0],re[1]);return SZ(y,ae)._round()});this.perspectiveTransform=OZ(b.x,b.y,S.x,S.y,k.x,k.y,I.x,I.y);const O=this._boundsArray=new xo;O.emplaceBack(b.x,b.y,0,0),O.emplaceBack(S.x,S.y,sr,0),O.emplaceBack(I.x,I.y,0,sr),O.emplaceBack(k.x,k.y,sr,sr),this.boundsBuffer&&(this.boundsBuffer.destroy(),this.elevatedGlobeVertexBuffer&&this.elevatedGlobeVertexBuffer.destroy(),this.elevatedGlobeIndexBuffer&&this.elevatedGlobeIndexBuffer.destroy()),this.boundsBuffer=l.createVertexBuffer(O,dP.members),this.boundsSegments=Si.simpleSegment(0,0,4,2);const z=[],U=function(re){return[fP(re[0]),fP(re[1]),fP(re[2]),fP(re[3])]}(this.coordinates),[q,K,X,J]=function(re){let ae=re[0][0],he=ae,ce=re[0][1],ye=ce;for(let Ee=1;Eehe&&(he=re[Ee][0]),re[Ee][1]ye&&(ye=re[Ee][1]);return[ae,ce,he-ae,ye-ce]}(U);{const re=new xo,[ae,he,ce,ye]=function(Ct){let Bt=Ct[0].x,pt=Bt,It=Ct[0].y,Lt=It;for(let $t=1;$tpt&&(pt=Ct[$t].x),Ct[$t].yLt&&(Lt=Ct[$t].y);return[Bt,It,pt-Bt,Lt-It]}(p),Ee=Ct=>[(Ct.x-ae)/ce,(Ct.y-he)/ye],[Ce,He,ze,Ge]=p.map(Ee),Ue=function(Ct,Bt,pt,It,Lt,$t,Gt,mr){const nr=hP(0,0,1,0,1,1,0,1);return E(nr,nr,T([],hP(Ct,Bt,pt,It,Lt,$t,Gt,mr)))}(Ce[0],Ce[1],He[0],He[1],ze[0],ze[1],Ge[0],Ge[1]);this.elevatedGlobePerspectiveTransform=OZ(Ce[0],Ce[1],He[0],He[1],ze[0],ze[1],Ge[0],Ge[1]);const Ve=(Ct,Bt)=>{z.push(Ct.lng);const pt=Math.round((Ct.lng-q)/X*sr),It=Math.round((Ct.lat-K)/J*sr),Lt=Ee(Bt),$t=_r([],[Lt[0],Lt[1],1],Ue),Gt=Math.round($t[0]/$t[2]*sr),mr=Math.round($t[1]/$t[2]*sr);re.emplaceBack(pt,It,Gt,mr)},gt=p[3].x-p[0].x,wt=p[3].y-p[0].y,kt=p[2].x-p[1].x,jt=p[2].y-p[1].y;for(let Ct=0;Ct<65;Ct++){const Bt=Ct/64,pt=[p[0].x+Bt*gt,p[0].y+Bt*wt],It=[p[1].x+Bt*kt,p[1].y+Bt*jt],Lt=It[0]-pt[0],$t=It[1]-pt[1];for(let Gt=0;Gt<65;Gt++){const mr=Gt/64,nr={x:pt[0]+Lt*mr,y:pt[1]+$t*mr};Ve(u.projection.unproject(nr.x,nr.y),nr)}}this.elevatedGlobeVertexBuffer=l.createVertexBuffer(re,dP.members)}{this.maxLongitudeTriangleSize=0;let re=[],ae=new bs;const he=(ce,ye,Ee)=>{ae.emplaceBack(ce,ye,Ee);const Ce=z[ce],He=z[ye],ze=z[Ee],Ge=Math.min(Math.min(Ce,He),ze),Ue=Math.max(Math.max(Ce,He),ze)-Ge;Ue>this.maxLongitudeTriangleSize&&(this.maxLongitudeTriangleSize=Ue),re.push(Ge+Ue/2)};for(let ce=0;ce<64;ce++)for(let ye=0;ye<64;ye++){const Ee=65*ce+ye,Ce=Ee+1,He=Ee+65,ze=He+1;he(Ee,He,Ce),he(Ce,He,ze)}[re,ae]=function(ce,ye){const Ee=Array.from({length:ce.length},(ze,Ge)=>Ge);Ee.sort((ze,Ge)=>ce[ze]-ce[Ge]);const Ce=[],He=new bs;for(let ze=0;ze{S.segments.push({vertexOffset:0,primitiveOffset:U,vertexLength:u.segments[0].vertexLength,primitiveLength:q,sortKey:void 0,vaos:{}})},I=.51*this.maxLongitudeTriangleSize;if(Math.abs(p[0]-y)<=I){const U=aa(p,0,p.length,y+I);return U===p.length||k(U,os(p,U+1,p.length,y+360-I)-U),S}y0}}let zZ,$Z,UZ,VZ,qZ,GZ,HZ;class WZ extends Yo{constructor(l,u,p,y){super(l,{layout:zZ||(zZ=new is({visibility:new Yt(nt["layout_raster-particle"].visibility)})),paint:$Z||($Z=new is({"raster-particle-array-band":new Yt(nt["paint_raster-particle"]["raster-particle-array-band"]),"raster-particle-count":new Yt(nt["paint_raster-particle"]["raster-particle-count"]),"raster-particle-color":new gg(nt["paint_raster-particle"]["raster-particle-color"]),"raster-particle-max-speed":new Yt(nt["paint_raster-particle"]["raster-particle-max-speed"]),"raster-particle-speed-factor":new Yt(nt["paint_raster-particle"]["raster-particle-speed-factor"]),"raster-particle-fade-opacity-factor":new Yt(nt["paint_raster-particle"]["raster-particle-fade-opacity-factor"]),"raster-particle-reset-rate-factor":new Yt(nt["paint_raster-particle"]["raster-particle-reset-rate-factor"]),"raster-particle-elevation":new Yt(nt["paint_raster-particle"]["raster-particle-elevation"]),"raster-particle-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"})}))},u,p,y),this._updateColorRamp(),this.lastInvalidatedAt=Pl.now()}_clear(){this.colorRampTexture&&(this.colorRampTexture.destroy(),this.colorRampTexture=null),this.tileFramebuffer&&(this.tileFramebuffer.destroy(),this.tileFramebuffer=null),this.particleFramebuffer&&(this.particleFramebuffer.destroy(),this.particleFramebuffer=null)}onRemove(l){this.colorRampTexture&&this.colorRampTexture.destroy(),this.tileFramebuffer&&this.tileFramebuffer.destroy(),this.particleFramebuffer&&this.particleFramebuffer.destroy()}hasColorMap(){return!!this._transitionablePaint._values["raster-particle-color"].value.value}getProgramIds(){return["rasterParticle"]}hasOffscreenPass(){return this.visibility!=="none"}isDraped(l){return!1}_handleSpecialPaintPropertyUpdate(l){l!=="raster-particle-color"&&l!=="raster-particle-max-speed"||(this._updateColorRamp(),this._invalidateAnimationState()),l==="raster-particle-count"&&this._invalidateAnimationState()}_updateColorRamp(){if(!this.hasColorMap())return;const l=this._transitionablePaint._values["raster-particle-color"].value.expression,u=this._transitionablePaint._values["raster-particle-max-speed"].value.expression.evaluate({zoom:0});this.colorRamp=pE({expression:l,evaluationKey:"rasterParticleSpeed",image:this.colorRamp,clips:[{start:0,end:u}],resolution:256}),this.colorRampTexture=null}_invalidateAnimationState(){this.lastInvalidatedAt=Pl.now()}tileCoverLift(){return this.paint.get("raster-particle-elevation")}}class zCe extends Yo{constructor(l,u){super(l,{},u,null),this.implementation=l,l.slot&&(this.slot=l.slot)}is3D(l){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}isDraped(l){return this.implementation.renderToTile!==void 0}shouldRedrape(){return!!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(l){this.implementation.onAdd&&this.implementation.onAdd(l,l.painter.context.gl)}onRemove(l){this.implementation.onRemove&&this.implementation.onRemove(l,l.painter.context.gl)}}function i4(h,l,u){const p=[0,0,1],y=Pn([]);return ki(y,y,u?-Hn(h)+Math.PI:Hn(h)),Yn(y,y,-Hn(l)),tn(p,p,y),_t(p,p)}class pP{constructor(l,u,p,y){this.message=(l?`${l}: `:"")+p,y&&(this.identifier=y),u!=null&&u.__line__&&(this.line=u.__line__)}}function s4(h,l){const u=h.indexOf("://")===-1;try{return new URL(h,u&&l?"http://example.com":void 0),!0}catch{return!1}}class KZ{constructor(l,u){this.feature=l,this.instancedDataOffset=u,this.instancedDataCount=0,this.rotation=[0,0,0],this.scale=[1,1,1],this.translation=[0,0,0]}}class YZ{constructor(){this.maxScale=1,this.maxXYTranslationDistance=0,this.instancedDataArray=new sE,this.instancesEvaluatedElevation=[],this.features=[],this.idToFeaturesIndex={}}colorForInstance(l){const u=16*l,p=this.instancedDataArray.float32;let y=Math.floor(p[u+2]);const b=1.05*(p[u+2]-y);return y/=100,[p[u]%1*1.05,p[u+1]%1*1.05,b,y]}tileCoordinatesForInstance(l){const u=16*l,p=this.instancedDataArray.float32;let y=p[u+0];return y=y>sr?y-sr:y,new Ot(Math.trunc(y),Math.trunc(p[u+1]))}translationForInstance(l){const u=16*l,p=this.instancedDataArray.float32;return[p[u+4],p[u+5],p[u+6]]}rotationScaleForInstance(l){const u=16*l,p=this.instancedDataArray.float32;return[p[u+7],p[u+8],p[u+9],p[u+10],p[u+11],p[u+12],p[u+13],p[u+14],p[u+15]]}transformForInstance(l){const u=16*l,p=this.instancedDataArray.float32;return[p[u+7],p[u+8],p[u+9],p[u+4],p[u+10],p[u+11],p[u+12],p[u+5],p[u+13],p[u+14],p[u+15],p[u+6],0,0,0,1]}}class a4{constructor(l){this.zoom=l.zoom,this.canonical=l.canonical,this.overscaledZ=this.canonical.z+Math.log2(l.overscaling),this.layers=l.layers,this.layerIds=this.layers.map(u=>u.fqid),this.projection=l.projection,this.index=l.index,this.worldview=l.worldview,this.hasZoomDependentProperties=this.layers[0].isZoomDependent(),this.stateDependentLayerIds=this.layers.filter(u=>u.isStateDependent()).map(u=>u.id),this.hasPattern=!1,this.instancesPerModel={},this.validForExaggeration=0,this.maxVerticalOffset=0,this.maxScale=0,this.maxHeight=0,this.lookupDim=this.zoom>this.canonical.z+1?0:this.zoom>this.canonical.z?256:this.zoom>15?75:100,this.instanceCount=0,this.terrainElevationMin=0,this.terrainElevationMax=0,this.validForDEMTile={id:null,timestamp:0},this.modelUris=[],this.modelsRequested=!1,this.activeReplacements=[],this.replacementUpdateTime=0,this.styleDefinedModelURLs=l.styleDefinedModelURLs,this.hasAppearances=null}updateFootprints(l,u){}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}populate(l,u,p,y){this.tileToMeter=Mt(p);const b=this.layers[0]._featureFilter.needGeometry;this.lookup=new Uint8Array(this.lookupDim*this.lookupDim);const S=this.layers[0].paint.get("model-elevation-reference")==="hd-road-markup"?u.elevationFeatures:void 0;for(const{feature:k,id:I,index:O,sourceLayerIndex:z}of l){const U=I??(k.properties&&k.properties.hasOwnProperty("id")?k.properties.id:void 0),q=gn(k,b);if(!this.layers[0]._featureFilter.filter(new Jn(this.zoom,{worldview:this.worldview,activeFloors:u.activeFloors}),q,p))continue;const K={id:U,sourceLayerIndex:z,index:O,geometry:b?q.geometry:Ur(k,p,y),properties:k.properties,type:k.type,patterns:{}},X=this.addFeature(K,K.geometry,q,S,p);X&&u.featureIndex.insert(k,K.geometry,O,z,this.index,this.instancesPerModel[X].instancedDataArray.length,256)}this.lookup=null}evaluateQueryRenderedFeaturePadding(){const l=this.layers[0].modelManager,u=this.layers[0].scope;let p=0;for(const y of this.modelUris){const b=l.getModel(y,u);if(!b)continue;const S=this.instancesPerModel[y];if(S){const k=.5*lt(b.aabb.max,b.aabb.min)*S.maxScale+S.maxXYTranslationDistance,I=Math.min(sr,Math.max(k/this.tileToMeter,256));p=Math.max(I,p)}}return p}update(l,u,p,y){for(const b in this.instancesPerModel){const S=this.instancesPerModel[b];for(const k in l)S.idToFeaturesIndex.hasOwnProperty(k)&&(this.evaluate(S.features[S.idToFeaturesIndex[k]],l[k],S,!0),this.uploaded=!1)}this.maxHeight=0}updateZoomBasedPaintProperties(){if(!this.hasZoomDependentProperties)return!1;let l=!1;for(const u in this.instancesPerModel){const p=this.instancesPerModel[u];for(const y of p.features){const b=this.layers[0],S=y.feature,k=this.canonical,I=b.paint.get("model-rotation").evaluate(S,{},k),O=b.paint.get("model-scale").evaluate(S,{},k),z=b.paint.get("model-translation").evaluate(S,{},k);Sr(y.rotation,I)&&Sr(y.scale,O)&&Sr(y.translation,z)||(this.evaluate(y,y.featureStates,p,!0),l=!0)}}return l}updateReplacement(l,u,p,y){if(u.updateTime===this.replacementUpdateTime)return!1;this.replacementUpdateTime=u.updateTime;const b=u.getReplacementRegionsForTile(l.toUnwrapped(),!0);if(Rj(this.activeReplacements,b))return!1;this.activeReplacements=b;let S=!1;for(const k in this.instancesPerModel){const I=this.instancesPerModel[k],O=I.instancedDataArray;for(const z of I.features){const U=z.instancedDataOffset,q=z.instancedDataCount;for(let K=0;Ksr;J=re?J-sr:J;const ae=Math.floor(J),he=Math.floor(O.float32[X+1]);let ce=!1;for(const ye of this.activeReplacements)if(!jK(ye,p,Lj.Model,y)&&!(ye.min.x>ae||ae>ye.max.x||ye.min.y>he||he>ye.max.y)&&(ce=DK(LK(ae,he,l.canonical,ye.footprintTileId.canonical),ye.footprint),ce))break;O.float32[X]=ce?J+sr:J,S=S||ce!==re}}}return S}isEmpty(){for(const l in this.instancesPerModel)if(this.instancesPerModel[l].instancedDataArray.length!==0)return!1;return!0}uploadPending(){return!this.uploaded}upload(l){if(!this.uploaded)for(const u in this.instancesPerModel){const p=this.instancesPerModel[u];p.instancedDataArray.length<0||p.instancedDataArray.length===0||(p.instancedDataBuffer?p.instancedDataBuffer.updateData(p.instancedDataArray):p.instancedDataBuffer=l.createVertexBuffer(p.instancedDataArray,ske.members,!0,void 0,this.instanceCount))}this.uploaded=!0}destroy(l){for(const p in this.instancesPerModel){const y=this.instancesPerModel[p];y.instancedDataArray.length!==0&&y.instancedDataBuffer&&y.instancedDataBuffer.destroy()}const u=this.layers[0].modelManager;if(l&&u&&this.modelUris&&this.modelsRequested)for(const p of this.modelUris)u.removeModel(p,"",!0)}addFeature(l,u,p,y,b){const S=this.layers[0],k=S.layout.get("model-id"),I=S.layout.get("model-allow-density-reduction"),O=k.evaluate(p,{},this.canonical);if(!O)return zr(`modelId is not evaluated for layer ${S.id} and it is not going to get rendered.`),O;(s4(O,!1)||this.styleDefinedModelURLs[O]!==void 0)&&(this.modelUris.includes(O)||this.modelUris.push(O)),this.instancesPerModel[O]||(this.instancesPerModel[O]=new YZ);const z=this.instancesPerModel[O],U=z.instancedDataArray,q=new KZ(p,U.length);let K;y&&(K=Pi.getElevationFeature(l,y));for(const X of u)for(const J of X){if(J.x<0||J.x>=sr||J.y<0||J.y>=sr)continue;if(this.lookupDim!==0&&I){const ae=(this.lookupDim-1)/sr,he=this.lookupDim*(J.y*ae|0)+J.x*ae|0;if(this.lookup){if(this.lookup[he]!==0)continue;this.lookup[he]=1}}this.instanceCount++;const re=U.length;if(U.resize(re+1),y){z.instancesRoadElevation||(z.instancesRoadElevation=[]);const ae=K?K.pointElevation(new Ot(J.x,J.y)):0;z.instancesRoadElevation.push(ae)}z.instancesEvaluatedElevation.push(0),U.float32[16*re]=J.x,U.float32[16*re+1]=J.y}return q.instancedDataCount=z.instancedDataArray.length-q.instancedDataOffset,q.instancedDataCount>0&&(l.id&&(z.idToFeaturesIndex[l.id]=z.features.length),z.features.push(q),this.evaluate(q,{},z,!1)),O}getModelUris(){return this.modelUris}evaluate(l,u,p,y){const b=this.layers[0],S=l.feature,k=this.canonical,I=l.rotation=b.paint.get("model-rotation").evaluate(S,u,k),O=l.scale=b.paint.get("model-scale").evaluate(S,u,k),z=l.translation=b.paint.get("model-translation").evaluate(S,u,k),U=Object.assign({},b.paint.get("model-color").evaluate(S,u,k));U.a=b.paint.get("model-color-mix-intensity").evaluate(S,u,k);const q=[];this.maxVerticalOffset0?Math.sqrt(K):0;p.maxScale=Math.max(Math.max(p.maxScale,O[0]),Math.max(O[1],O[2])),p.maxXYTranslationDistance=Math.max(p.maxXYTranslationDistance,X),this.maxScale=Math.max(Math.max(this.maxScale,O[0]),Math.max(O[1],O[2])),_Y(q,I,O);const J=Math.round(100*U.a)+U.b/1.05;for(let re=0;re10?this.tileToMeter:Mt(k,Ee)),ce[he+4]=z[0],ce[he+5]=z[1],ce[he+6]=z[2]+(p.instancesRoadElevation?p.instancesRoadElevation[ae]:0)+ye,ce[he+7]=q[0],ce[he+8]=q[1],ce[he+9]=q[2],ce[he+10]=q[4],ce[he+11]=q[5],ce[he+12]=q[6],ce[he+13]=q[8],ce[he+14]=q[9],ce[he+15]=q[10],p.instancesEvaluatedElevation[ae]=z[2]}}}yr(a4,"ModelBucket",{omit:["layers"]}),yr(YZ,"PerModelAttributes"),yr(KZ,"ModelFeature");class fb{constructor(l,u,p){this._demTile=l,this._dem=this._demTile.dem,this._scale=u,this._offset=p}static create(l,u,p){const y=p||l.findDEMTileFor(u);if(!y||!y.dem)return;const b=y.dem,S=y.tileID,k=1<O.fqid),this.stateDependentLayerIds=this.layers.filter(O=>O.isStateDependent()).map(O=>O.id),this.modelTraits|=sb.CoordinateSpaceTile,this.uploaded=!1,this.hasPattern=!1,y&&(this.modelTraits|=sb.HasMapboxMeshFeatures),b&&(this.modelTraits|=sb.HasMeshoptCompression),this.zoom=-1,this.terrainExaggeration=1,this.projection={name:"mercator"},this.replacementUpdateTime=0,this.elevationReadFromZ=255,this.brightness=S,this.worldview=I,this.dirty=!0,this.needsUpload=!1,this.filter=null,this.nodesInfo=[];for(const O of u)this.nodesInfo.push(new JZ(O)),XZ(O,k.featureIndexArray.length,k.grid),k.featureIndexArray.emplaceBack(this.nodesInfo.length-1,0,k.bucketLayerIDs.length-1,0);this.states={},this.hasAppearances=null}updateFootprints(l,u){for(const p of this.getNodesInfo()){const y=p.node;y.footprint&&u.push({footprint:y.footprint,id:l})}}updateAppearances(l,u,p,y){return{hasLayoutChanges:!1,hasUboChanges:!1}}update(l){const u=Object.keys(l).length!==0;if(u&&!this.stateDependentLayers.length)return;const p=u?this.stateDependentLayers:this.layers;if(!Po(l,this.states))for(const y of p)this.evaluate(y,l);this.states=structuredClone(l)}populate(){console.log("populate 3D model bucket")}uploadPending(){return!this.uploaded||this.needsUpload}upload(l){if(!this.needsUpload)return;const u=this.getNodesInfo();for(const p of u){const y=p.node;this.uploaded?this.updatePbrBuffer(y):T5(y,l,!0)}for(const p of u)Wj(p.node);this.uploaded=!0,this.needsUpload=!1}updatePbrBuffer(l){let u=!1;if(!l.meshes)return u;for(const p of l.meshes)p.pbrBuffer&&(p.pbrBuffer.updateData(p.featureArray),u=!0);return u}needsReEvaluation(l,u,p){const y=l.transform.projectionOptions,b=l.style.getBrightness(),S=this.brightness!==b;if(!this.uploaded||this.dirty||y.name!==this.projection.name||GE(p.paint.get("model-color").value,S)||GE(p.paint.get("model-color-mix-intensity").value,S)||GE(p.paint.get("model-roughness").value,S)||GE(p.paint.get("model-emissive-strength").value,S)||GE(p.paint.get("model-height-based-emissive-strength-multiplier").value,S)){this.projection=y,this.brightness=b;const k=this.getNodesInfo();for(const I of k)I.state=null;return!0}return!1}evaluateTransform(l,u){if(l.transform.zoom===this.zoom)return;this.zoom=l.transform.zoom;const p=this.getNodesInfo(),y=this.id.canonical;for(const b of p){const S=b.feature;b.evaluatedTranslation=u.paint.get("model-translation").evaluate(S,{},y),b.evaluatedScale=u.paint.get("model-scale").evaluate(S,{},y)}}evaluate(l,u){const p=this.getNodesInfo();for(const y of p){if(!y.node.meshes)continue;const b=y.feature,S=u&&u[b.id];if(Po(S,y.state))continue;y.state=structuredClone(S);const k=y.node.meshes&&y.node.meshes[0].featureData,I=y.evaluatedColor[2],O=y.evaluatedRMEA[2],z=this.id.canonical;if(y.hasTranslucentParts=!1,k){for(let U=0;U=Ce)continue;const Bt=o4[Ct],pt=Math.abs(Bt);pt>Ve&&(Ue=Bt,Ve=pt,gt=jt,wt=kt)}if(Ve>.1){const kt=1-(Ce+.5*Math.abs(gt*wt))/X;let jt=u._dem.get(ze,He)+Ue*kt;const Ct=u._dem.get(ze+gt,He+wt),Bt=u._dem.get(ze-gt,He-wt,!0);(jt-Ct)*(jt-Bt)>0&&(jt=(Ct+Bt)/2),o4[Ge]=u._dem.set(ze,He,jt),g0[Ge]=Ce}}}}}k&&(u._demTile.needsDEMTextureUpload=!0,u._dem._timestamp=Pl.now())}setFilter(l){this.filter=l?Bv(l):null}getNodesInfo(){return this.filter?this.nodesInfo.filter(l=>this.filter.filter(new Jn(this.id.overscaledZ,{worldview:this.worldview}),l.feature,this.id.canonical)):this.nodesInfo}destroy(){const l=this.getNodesInfo();for(const u of l)Wj(u.node),E5(u.node)}isEmpty(){return!this.nodesInfo.length}updateReplacement(l,u){if(u.updateTime===this.replacementUpdateTime)return;this.replacementUpdateTime=u.updateTime;const p=u.getReplacementRegionsForTile(l.toUnwrapped());for(const y of this.getNodesInfo()){const b=y.node.footprint;y.hiddenByReplacement=!!b&&!p.find(S=>S.footprint===b)}}getHeightAtTileCoord(l,u){const p=[],y=[0,0,0],b=L([]);for(const S of this.getNodesInfo()){const k=S.node.meshes[0],I=k.transformedAabb;if(lI.max[0]||u>I.max[1])continue;if(S.node.hidden===!0)return{height:1/0,maxHeight:S.feature.properties.height,hidden:!1,verticalScale:S.evaluatedScale[2]};M(b,S.node.globalMatrix),y[0]=l,y[1]=u,xr(y,y,b);const O=(y[0]-k.aabb.min[0])/(k.aabb.max[0]-k.aabb.min[0])*d0|0,z=Math.min(63,(y[1]-k.aabb.min[1])/(k.aabb.max[1]-k.aabb.min[1])*d0|0)*d0+Math.min(63,O),U=k.heightmap[z];if(!(U<0&&S.node.footprint))return S.hiddenByReplacement?void 0:{height:U,maxHeight:S.feature.properties.height,hidden:!1,verticalScale:S.evaluatedScale[2]};if(S.node.footprint.grid.query(new Ot(l,u),new Ot(l,u),p),p.length>0)return{height:void 0,maxHeight:S.feature.properties.height,hidden:S.hiddenByReplacement,verticalScale:S.evaluatedScale[2]}}}}function GE(h,l){return h instanceof hg&&!h.isLightConstant&&l}function $Ce(h,l,u,p,y,b,S,k){let I=(61440&l|(61440&l)>>4)>>8,O=(3840&l|(3840&l)>>4)>>4,z=240&l|(240&l)>>4;u[3]>0&&(I=Zr(I,255*u[0],u[3]),O=Zr(O,255*u[1],u[3]),z=Zr(z,255*u[2],u[3]));const U=I<<8|O,q=z<<8|Math.floor(255*p[3]),K=function(Ce){const He=fe(Ce,0,2);return Math.min(Math.round(.5*He*255),255)}(p[2])<<8|15*p[0]<<4|15*p[1],X=fe(y[0],0,1),J=fe(y[1],0,1),re=fe(y[2],0,1),ae=fe(y[3],0,1);let he,ce,ye,Ee;if(X!==J&&S!==b&&J!==X){const Ce=S-b;ce=1/(Ce*(J-X)),ye=-(b+Ce*X)/(Ce*(J-X));const He=fe(y[4],-1,1);Ee=Math.pow(10,He),he=255*re<<8|255*ae}else he=65535,ce=0,ye=1,Ee=1;if(h.emplaceBack(U,q,K,he,ce,ye,Ee),k){const Ce=k.length;k.clear();for(let He=0;He>16&65535,z=b?I>>16&65535:65535&I,U=(15&z)<8?15&z:0,q=h.evaluatedRMEA[U],K=h.evaluatedColor[U],X=h.emissionHeightBasedParams[U];let J;if(k&&U===2&&p.lights&&(J=new Wv,J.resize(10*p.lights.length)),$Ce(S.featureArray,O,K,q,X,S.aabb.min[2],S.aabb.max[2],J),J&&k){k=!1;const re=p.meshes[p.lightMeshIndex];re.featureArray=J,re.featureArray._trim()}}S.featureArray._trim(),y++}}yr(mP,"Tiled3dModelBucket",{omit:["layers"]}),yr(JZ,"Tiled3dModelFeature");const VCe=["id","tile","layer","source","sourceLayer","state"];class y0{constructor(l,u,p,y,b){this.type="Feature",this._vectorTileFeature=l,this._z=u,this._x=p,this._y=y,this.properties=l?l.properties:{},this.id=b}clone(){const l=new y0(this._vectorTileFeature,this._z,this._x,this._y,this.id);return this.state&&(l.state=Object.assign({},this.state)),this.layer&&(l.layer=Object.assign({},this.layer)),this.source&&(l.source=this.source),this.sourceLayer&&(l.sourceLayer=this.sourceLayer),l}get geometry(){return this._geometry===void 0&&this._vectorTileFeature&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._x,this._y,this._z).geometry),this._geometry}set geometry(l){this._geometry=l}toJSON(){const l={type:"Feature",state:void 0,geometry:this.geometry,properties:this.properties};for(const u of VCe)this[u]!==void 0&&(l[u]=this[u]);return l}}class x0 extends yx{constructor(l,u,p,y){super(),this.id=l,this.type="model",this.models=[],this._options=u,this._modelsInfo=new Map,this._abortController=null}cancelModelRequests(){this._abortController&&(this._abortController.abort(),this._abortController=null)}loadGLTFFromURI(l,u){return mY(this.map._requestManager.transformRequest(l,mx.Model).url,u)}async loadModel(l,u,p){try{const y=await this.loadGLTFFromURI(u.uri,p);if(p.aborted)return;const b=this._modelsInfo.get(l);if(!b)return;const S=k5(y),k=b.modelSpec,I=new vY(l,k.uri,k.position,k.orientation,S);x0.applyModelSpecification(I,k),I.computeBoundsAndApplyParent(),this.models.push(I),b.model=I}catch(y){if(y instanceof Error&&y.name==="AbortError")return;const b=y instanceof Error?y.message:"Unknown error";this.fire(new Xm(new Error(`Could not load model ${l} from ${u.uri}: ${b}`)))}}async load(){this._abortController||(this._abortController=new AbortController);const l=this._abortController.signal,u=[];for(const p in this._options.models){const y=this._options.models[p],b=this._modelsInfo.get(p);if(b&&b.model){b.modelSpec=y;const S=b.model;S.position=y.position!=null?new Qe(y.position[0],y.position[1]):new Qe(0,0),S.orientation=y.orientation!=null?y.orientation:[0,0,0],x0.applyModelSpecification(S,y),S.computeBoundsAndApplyParent(),this.models.push(S)}else b?b.modelSpec=y:(this._modelsInfo.set(p,{modelSpec:y,model:null}),u.push(this.loadModel(p,y,l)))}u.length!==0?(await Promise.allSettled(u),l.aborted||this.fire(new Pu("data",{dataType:"source",sourceDataType:"metadata"}))):this.loaded()&&this.fire(new Pu("data",{dataType:"source",sourceDataType:"metadata"}))}static applyModelSpecification(l,u){u.nodeOverrides&&x0.convertNodeOverrides(l,u.nodeOverrides),u.materialOverrides&&x0.convertMaterialOverrides(l,u.materialOverrides),u.nodeOverrideNames&&(l.nodeOverrideNames=[...u.nodeOverrideNames]),u.materialOverrideNames&&(l.materialOverrideNames=[...u.materialOverrideNames]),u.featureProperties&&(l.featureProperties=u.featureProperties)}static convertNodeOverrides(l,u){if(Array.isArray(u)&&u.every(p=>typeof p=="string")){l.nodeOverrideNames=[];for(const p of u)l.nodeOverrideNames.push(p)}else Object.entries(u).forEach(([p,y])=>{const b={orientation:[0,0,0]};if(y.hasOwnProperty("orientation")){const S=y.orientation;S&&(b.orientation=S)}l.nodeOverrides.set(p,b)})}static convertMaterialOverrides(l,u){if(Array.isArray(u)&&u.every(p=>typeof p=="string")){l.materialOverrideNames=[];for(const p of u)l.materialOverrideNames.push(p)}else Object.entries(u).forEach(([p,y])=>{const b={color:new Wn(1,1,1),colorMix:0,emissionStrength:0,opacity:1},S=y["model-color"];S!==void 0&&(b.color.r=S[0],b.color.g=S[1],b.color.b=S[2]);const k=y["model-color-mix-intensity"];k!==void 0&&(b.colorMix=k);const I=y["model-emissive-strength"];I!==void 0&&(b.emissionStrength=I);const O=y["model-opacity"];O!==void 0&&(b.opacity=O),l.materialOverrides.set(p,b)})}onAdd(l){this.map=l,this.load()}hasTransition(){return!1}loaded(){if(this._modelsInfo.size===0)return!0;for(const l of this._modelsInfo.values())if(l.model==null)return!1;return!0}getModels(){return this.models}loadTile(l,u){}serialize(){return this._options}setProperty(l,u){return!1}reload(){this.cancelModelRequests();const l=Lp(this.id,this.scope);this.map.style.clearSource(l),this.models=[],this._modelsInfo.clear(),this.load()}onRemove(l){this.cancelModelRequests()}setModels(l){this.models=[];const u=new Map;for(const p in l){const y=l[p],b=this._modelsInfo.get(p);b&&b.modelSpec.uri===y.uri&&u.set(p,b)}if(this._modelsInfo.size!==u.size){this.cancelModelRequests();for(const[p,y]of u)y.model||u.delete(p)}this._modelsInfo=u,this._options.models=l,this.load()}}function l4(h,l,u,p){const y=1<I>=Ee.vertexArrayOffset&&Iye.polygon).flat());const re=K?k:null,[ae,he]=eY(b,p,U,z,O,S,re,q,X,b.center.lat,h.tileID.canonical),ce=h.queryGeometry;return JK(ae,he,ce.isPointQuery()?ce.screenBounds:ce.screenGeometry)}},building:class extends Yo{constructor(h,l,u,p){super(h,{layout:kY||(kY=new is({visibility:new Yt(nt.layout_building.visibility),"building-facade":new Ut(nt.layout_building["building-facade"]),"building-facade-floors":new Ut(nt.layout_building["building-facade-floors"]),"building-facade-unit-width":new Ut(nt.layout_building["building-facade-unit-width"]),"building-facade-window":new Ut(nt.layout_building["building-facade-window"]),"building-roof-shape":new Ut(nt.layout_building["building-roof-shape"]),"building-height":new Ut(nt.layout_building["building-height"]),"building-base":new Ut(nt.layout_building["building-base"]),"building-flood-light-wall-radius":new Ut(nt.layout_building["building-flood-light-wall-radius"]),"building-flood-light-ground-radius":new Ut(nt.layout_building["building-flood-light-ground-radius"]),"building-flip-roof-orientation":new Ut(nt.layout_building["building-flip-roof-orientation"])})),paint:CY||(CY=new is({"building-opacity":new Yt(nt.paint_building["building-opacity"]),"building-ambient-occlusion-intensity":new Yt(nt.paint_building["building-ambient-occlusion-intensity"]),"building-ambient-occlusion-ground-intensity":new Yt(nt.paint_building["building-ambient-occlusion-ground-intensity"]),"building-ambient-occlusion-ground-radius":new Yt(nt.paint_building["building-ambient-occlusion-ground-radius"]),"building-ambient-occlusion-ground-attenuation":new Yt(nt.paint_building["building-ambient-occlusion-ground-attenuation"]),"building-vertical-scale":new Yt(nt.paint_building["building-vertical-scale"]),"building-cast-shadows":new Yt(nt.paint_building["building-cast-shadows"]),"building-color":new Ut(nt.paint_building["building-color"]),"building-emissive-strength":new Ut(nt.paint_building["building-emissive-strength"]),"building-facade-emissive-chance":new Yt(nt.paint_building["building-facade-emissive-chance"]),"building-cutoff-fade-range":new Yt(nt.paint_building["building-cutoff-fade-range"]),"building-front-cutoff":new Yt(nt.paint_building["building-front-cutoff"]),"building-flood-light-color":new Yt(nt.paint_building["building-flood-light-color"]),"building-flood-light-intensity":new Yt(nt.paint_building["building-flood-light-intensity"]),"building-flood-light-ground-attenuation":new Yt(nt.paint_building["building-flood-light-ground-attenuation"]),"building-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"}),"building-flood-light-color-use-theme":new Ut({type:"string",default:"default","property-type":"data-driven"})}))},l,u,p),this._stats={numRenderedVerticesInShadowPass:0,numRenderedVerticesInTransparentPass:0}}createBucket(h){return new AY(h)}cutoffRange(){return this.paint.get("building-cutoff-fade-range")}hasShadowPass(){return this.paint.get("building-cast-shadows")}hasLightBeamPass(){return!0}canCastShadows(){return!0}is3D(h){return!0}queryRadius(h){return 0}queryIntersectsFeature(h,l,u,p,y,b,S,k,I,O){let z=this.layout.get("building-height").evaluate(l,u);const U=this.layout.get("building-base").evaluate(l,u),q=h.tile.getBucket(this).getFootprint(l);if(q){if(q.hiddenFlags!==0)return!1;z=q.height}const[K,X]=eY(b,p,U,z,new Ot(0,0),S,null,[0,0],1,b.center.lat,h.tileID.canonical),J=h.queryGeometry;return JK(K,X,J.isPointQuery()?J.screenBounds:J.screenGeometry)}},line:class extends Yo{constructor(h,l,u,p){const y=FY();super(h,y,l,u,p),y.layout&&(this.layout=new fh(y.layout)),this.gradientVersion=0,this.hasElevatedBuckets=!1,this.hasNonElevatedBuckets=!1}_handleSpecialPaintPropertyUpdate(h){if(h==="line-gradient"){const l=this._transitionablePaint._values["line-gradient"].value.expression;this.stepInterpolant=l._styleExpression&&l._styleExpression.expression instanceof Nx,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}widthExpression(){return this._transitionablePaint._values["line-width"].value.expression}emissiveStrengthExpression(){return this._transitionablePaint._values["line-emissive-strength"].value.expression}recalculate(h,l){super.recalculate(h,l),this.paint._values["line-floorwidth"]=(()=>{if(PE)return PE;const u=FY();return PE=new Oke(u.paint.properties["line-width"].specification),PE.useIntegerZoom=!0,PE})().possiblyEvaluate(this._transitioningPaint._values["line-width"].value,h)}createBucket(h){return new Yj(h)}getProgramIds(){const h=[this.paint.get("line-pattern").constantOr(1)?"linePattern":"line"];return this.paint.get("line-blend-mode")!=="default"&&h.push("lineBlendComposite"),h}getDefaultProgramParams(h,l,u){if(h==="lineBlendComposite")return{};const p=MY(this);return{config:new ee(this,{zoom:l,lut:u}),defines:p,overrideFog:!1}}queryRadius(h){const l=h,u=BY(bg("line-width",this,l),bg("line-gap-width",this,l)),p=bg("line-offset",this,l);return u/2+Math.abs(p)+_j(this.paint.get("line-translate"))}queryIntersectsFeature(h,l,u,p,y,b){if(h.queryGeometry.isAboveHorizon)return!1;const S=OW(h.tilespaceGeometry,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),b.angle,h.pixelToTileUnitsFactor),k=h.pixelToTileUnitsFactor/2*BY(this.paint.get("line-width").evaluate(l,u),this.paint.get("line-gap-width").evaluate(l,u)),I=this.paint.get("line-offset").evaluate(l,u);return I&&(p=function(O,z){const U=[],q=new Ot(0,0);for(let K=0;K=3){for(let X=0;X{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}}class eX{constructor(l){this._stringToNumber={},this._numberToString=[];for(let u=0;u=0&&q[3]>=0&&O.insert(I,q[0],q[1],q[2],q[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new Xn(new Zj(this.rawTileData)).layers,this.sourceLayerCoder=new eX(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={};for(const l in this.vtLayers)this.vtFeatures[l]=[]}return this.vtLayers}query(l,u){const{tilespaceGeometry:p,transform:y,tileTransform:b,pixelPosMatrix:S,availableImages:k,worldview:I}=u;this.loadVTLayers(),this.serializedLayersCache.clear();const O=u.queryRadius?u.queryRadius:0,z=p.bufferedTilespaceBounds,U=this.grid.query(z.min.x,z.min.y,z.max.x,z.max.y,(J,re,ae,he)=>yf(p.bufferedTilespaceGeometry,J-O,re-O,ae+O,he+O));U.sort(WCe);let q=null;y.elevation&&U.length>0&&(q=fb.create(y.elevation,this.tileID));const K={};let X;for(let J=0;J(he||(he=Ur(ce,this.tileID.canonical,b)),ye.queryIntersectsFeature(p,ce,Ee,he,this.z,y,S,q,Ce,u.scope)))}return K}loadMatchingFeature(l,u,p,y,b,S){const{featureIndex:k,bucketIndex:I,sourceLayerIndex:O,layoutVertexArrayOffset:z}=u,U=this.bucketLayerIDs[I],q=p.layers,K=Object.keys(q);if(K.length&&!Br(K,U))return;const X=p.sourceCache,J=this.sourceLayerCoder.decode(O),re=this.vtLayers[J].feature(k),ae=this.getId(re,J);for(let he=0;he`${k.key}: ${k.message}`).join(", ");return void zr(`Failed to create expression for promoteId: ${S}`)}this.promoteIdExpression=b.value}p=this.promoteIdExpression.evaluate({zoom:0},l)}else p=l.properties[y];typeof p=="boolean"&&(p=Number(p))}return p}}function rX(h,l,u,p,y){return zt(h,(b,S)=>{const k=l instanceof fh?l.get(S):null;return k&&k.evaluate?k.evaluate(u,p,void 0,y):k})}function WCe(h,l){return l-h}function nX(h,l){const u={};if(!l)return u;for(const p of h){const y=p.layerIds.map(b=>l.getLayer(b)).filter(Boolean);if(y.length!==0){p.layers=y,p.stateDependentLayerIds&&(p.stateDependentLayers=p.stateDependentLayerIds.map(b=>y.filter(S=>S.id===b)[0]));for(const b of y)u[b.fqid]=p}}return u}yr(tX,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});const wd=32,Tf=33,Cg=new Uint16Array(8184);for(let h=0;h<2046;h++){let l=h+2,u=0,p=0,y=0,b=0,S=0,k=0;for(1&l?y=b=S=wd:u=p=k=wd;(l>>=1)>1;){const O=u+y>>1,z=p+b>>1;1&l?(y=u,b=p,u=S,p=k):(u=y,p=b,y=S,b=k),S=O,k=z}const I=4*h;Cg[I+0]=u,Cg[I+1]=p,Cg[I+2]=y,Cg[I+3]=b}const Ef=new Uint16Array(2178),Ig=new Uint8Array(1089),gP=new Uint16Array(1089);function iX(h){return h===0?-.03125:h===32?.03125:0}const sX={Other:0,Symbol:1,FillExtrusion:2},aX={type:2,extent:sr,loadGeometry:()=>[[new Ot(0,0),new Ot(8193,0),new Ot(8193,8193),new Ot(0,8193),new Ot(0,0)]]};class KCe{constructor(){this.tasks={},this.taskQueue=[],ht(["process"],this),this.invoker=new HCe(this.process),this.nextId=0}add(l,u){const p=this.nextId++,y=function({type:b,renderSourceType:S,zoom:k}){k=k||0;const I=S===sX.Symbol;return b==="message"?0:b!=="maybePrepare"||I?b!=="parseTile"||I?b==="parseTile"&&I?300-k:b==="maybePrepare"&&I?400-k:500:200-k:100-k}(u);if(y===0){try{l()}finally{}return null}return this.tasks[p]={fn:l,metadata:u,priority:y,id:p},this.taskQueue.push(p),this.invoker.trigger(),{cancel:()=>{delete this.tasks[p]}}}process(){try{if(this.taskQueue=this.taskQueue.filter(p=>!!this.tasks[p]),!this.taskQueue.length)return;const l=this.pick();if(l===null)return;const u=this.tasks[l];if(delete this.tasks[l],this.taskQueue.length&&this.invoker.trigger(),!u)return;u.fn()}finally{}}pick(){let l=null,u=1/0;for(let y=0;y>16&255)/255,(h>>8&255)/255,(255&h)/255,1)}function aIe(h,l,u){h===1?(l.rgb_color=_P(u.readVarint()),l.paint="rgb_color"):h===2?(l.linear_gradient_idx=u.readVarint(),l.paint="linear_gradient_idx"):h===3?(l.radial_gradient_idx=u.readVarint(),l.paint="radial_gradient_idx"):h===5?u.readPackedFloat(l.dasharray):h===6?l.dashoffset=u.readFloat():h===7?l.miterlimit=u.readFloat():h===8?l.opacity=u.readVarint():h===9?l.width=u.readFloat():h===10?l.linecap=u.readVarint():h===11&&(l.linejoin=u.readVarint())}function oIe(h,l,u){h===1?l.transform=xP(u,u.readVarint()+u.pos):h===2?l.spread_method=u.readVarint():h===3?l.stops.push(cX(u,u.readVarint()+u.pos)):h===4?l.x1=u.readFloat():h===5?l.y1=u.readFloat():h===6?l.x2=u.readFloat():h===7&&(l.y2=u.readFloat())}function cX(h,l){return h.readFields(lIe,{offset:0,opacity:255,rgb_color:c4},l)}function lIe(h,l,u){h===1?l.offset=u.readFloat():h===2?l.opacity=u.readVarint():h===3&&(l.rgb_color=_P(u.readVarint()))}function cIe(h,l,u){h===1?l.transform=xP(u,u.readVarint()+u.pos):h===2?l.spread_method=u.readVarint():h===3?l.stops.push(cX(u,u.readVarint()+u.pos)):h===4?l.cx=u.readFloat():h===5?l.cy=u.readFloat():h===6?l.r=u.readFloat():h===7?l.fx=u.readFloat():h===8?l.fy=u.readFloat():h===9&&(l.fr=u.readFloat())}function uIe(h,l,u){h===1?l.transform=xP(u,u.readVarint()+u.pos):h===2?l.clip_path_idx=u.readVarint():h===3&&l.children.push(yP(u,u.readVarint()+u.pos))}function dIe(h,l,u){h===1?l.left=l.top=u.readFloat():h===2?l.width=l.height=u.readFloat():h===3?l.top=u.readFloat():h===4?l.height=u.readFloat():h===5?l.mask_type=u.readVarint():h===6?l.mask_idx=u.readVarint():h===7&&l.children.push(yP(u,u.readVarint()+u.pos))}class hIe{static calculate(l={},u=[]){const p=new Map,y=new Map;if(Object.keys(l).length===0)return p;u.forEach(b=>{y.set(b.name,b.rgb_color||new Wn(0,0,0))});for(const[b,S]of Object.entries(l))y.has(b)?p.set(y.get(b).toString(),S):console.warn(`Ignoring unknown image variable "${b}"`);return p}}function pb(h,l=255,u){const p=l/255,y=h.toString(),b=u.has(y)?u.get(y).clone():h.clone();return b.a*=p,b.toString()}function HE(h,l){if(!ru()){const u=document.createElement("canvas");return u.width=h,u.height=l,u}return new OffscreenCanvas(h,l)}let u4,WE=null;function d4(h,l,u,p,y){for(const b of p.children)uX(h,l,u,b,y)}function uX(h,l,u,p,y){p.group?(h.save(),function(b,S,k,I,O){const z=I.mask_idx!=null?k.masks[I.mask_idx]:null,U=I.clip_path_idx!=null?k.clip_paths[I.clip_path_idx]:null;if(I.transform&&(S=mb(I.transform).preMultiplySelf(S)),!function(X,J,re){return X.opacity!==255||J||re}(I,U!=null,z!=null))return void d4(b,S,k,I,O);const q=HE(b.canvas.width,b.canvas.height),K=q.getContext("2d");d4(K,S,k,I,O),U&&yX(K,S,k,U),z&&xX(K,S,k,z,O),b.globalAlpha=I.opacity/255,b.drawImage(q,0,0)}(h,l,u,p.group,y),h.restore()):p.path&&(h.save(),function(b,S,k,I,O){b.setTransform(S),I.paint_order===1?(dX(b,k,I,O),fX(b,k,I,O)):(fX(b,k,I,O),dX(b,k,I,O))}(h,l,u,p.path,y),h.restore())}function dX(h,l,u,p){const y=u.fill;if(!y)return;const b=y.opacity/255;switch(h.save(),h.beginPath(),_X(u,h),y.paint){case"rgb_color":h.fillStyle=pb(y.rgb_color,y.opacity,p);break;case"linear_gradient_idx":{const S=l.linear_gradients[y.linear_gradient_idx];S.transform&&h.setTransform(mb(S.transform).preMultiplySelf(h.getTransform())),h.fillStyle=pX(h,S,b,p);break}case"radial_gradient_idx":{const S=l.radial_gradients[y.radial_gradient_idx];S.transform&&h.setTransform(mb(S.transform).preMultiplySelf(h.getTransform())),h.fillStyle=mX(h,S,b,p)}}h.fill(hX(u)),h.restore()}function hX(h){return h.rule===1?"nonzero":h.rule===2?"evenodd":void 0}function fX(h,l,u,p){const y=u.stroke;if(!y)return;const b=vX(u);h.lineWidth=y.width,h.miterLimit=y.miterlimit,h.setLineDash(y.dasharray),h.lineDashOffset=y.dashoffset;const S=y.opacity/255;switch(y.paint){case"rgb_color":h.strokeStyle=pb(y.rgb_color,y.opacity,p);break;case"linear_gradient_idx":h.strokeStyle=pX(h,l.linear_gradients[y.linear_gradient_idx],S,p,!0);break;case"radial_gradient_idx":h.strokeStyle=mX(h,l.radial_gradients[y.radial_gradient_idx],S,p,!0)}switch(y.linejoin){case 2:case 1:h.lineJoin="miter";break;case 3:h.lineJoin="round";break;case 4:h.lineJoin="bevel"}switch(y.linecap){case 1:h.lineCap="butt";break;case 2:h.lineCap="round";break;case 3:h.lineCap="square"}h.stroke(b)}function pX(h,l,u,p,y=!1){if(l.stops.length===1){const q=l.stops[0];return pb(q.rgb_color,q.opacity*u,p)}const{x1:b,y1:S,x2:k,y2:I}=l;let O=new DOMPoint(b,S),z=new DOMPoint(k,I);if(y){const q=mb(l.transform);O=q.transformPoint(O),z=q.transformPoint(z)}const U=h.createLinearGradient(O.x,O.y,z.x,z.y);for(const q of l.stops)U.addColorStop(q.offset,pb(q.rgb_color,q.opacity*u,p));return U}function mX(h,l,u,p,y=!1){if(l.stops.length===1){const ae=l.stops[0];return pb(ae.rgb_color,ae.opacity*u,p)}const b=mb(l.transform),{fx:S,fy:k,fr:I,cx:O,cy:z,r:U}=l;let q=new DOMPoint(S,k),K=new DOMPoint(O,z),X=I,J=U;if(y){q=b.transformPoint(q),K=b.transformPoint(K);const ae=(b.a+b.d)/2;X=I*ae,J=l.r*ae}const re=h.createRadialGradient(q.x,q.y,X,K.x,K.y,J);for(const ae of l.stops)re.addColorStop(ae.offset,pb(ae.rgb_color,ae.opacity*u,p));return re}function gX(h,l,u,p){const y=p.transform?mb(p.transform).preMultiplySelf(l):l,b=HE(h.canvas.width,h.canvas.height),S=b.getContext("2d");for(const I of p.children)if(I.group)gX(S,y,u,I.group);else if(I.path){const O=I.path,z=new Path2D;z.addPath(vX(O),y),S.fill(z,hX(O))}const k=p.clip_path_idx!=null?u.clip_paths[p.clip_path_idx]:null;k&&yX(S,y,u,k),h.globalCompositeOperation="source-over",h.drawImage(b,0,0)}function yX(h,l,u,p){const y=HE(h.canvas.width,h.canvas.height);gX(y.getContext("2d"),l,u,p),h.globalCompositeOperation="destination-in",h.drawImage(y,0,0)}function xX(h,l,u,p,y){if(p.children.length===0)return;const b=p.mask_idx!=null?u.masks[p.mask_idx]:null;b&&xX(h,l,u,b,y);const S=h.canvas.width,k=h.canvas.height,I=HE(S,k),O=I.getContext("2d"),z=p.width,U=p.height,q=p.left,K=p.top,X=new Path2D,J=new Path2D;J.rect(q,K,z,U),X.addPath(J,l),O.clip(X);for(const he of p.children)uX(O,l,u,he,y);const re=O.getImageData(0,0,S,k),ae=re.data;if(p.mask_type===1)for(let he=0;hel[S])return null}else{const k=1/p[S];let I=(h[S]-u[S])*k,O=(l[S]-u[S])*k;if(I>O){const z=I;I=O,O=z}if(I>y&&(y=I),Ob)return null}return y}function SX(h,l,u,p,y,b,S,k,I,O,z){const U=p-h,q=y-l,K=b-u,X=S-h,J=k-l,re=I-u,ae=z[1]*re-z[2]*J,he=z[2]*X-z[0]*re,ce=z[0]*J-z[1]*X,ye=U*ae+q*he+K*ce;if(Math.abs(ye)<1e-15)return null;const Ee=1/ye,Ce=O[0]-h,He=O[1]-l,ze=O[2]-u,Ge=(Ce*ae+He*he+ze*ce)*Ee;if(Ge<0||Ge>1)return null;const Ue=He*K-ze*q,Ve=ze*U-Ce*K,gt=Ce*q-He*U,wt=(z[0]*Ue+z[1]*Ve+z[2]*gt)*Ee;return wt<0||Ge+wt>1?null:(X*Ue+J*Ve+re*gt)*Ee}function TX(h,l,u){return(h-l)/(u-l)}function EX(h,l,u,p,y,b,S,k,I){const O=1<{const he=re?1:0,ce=(K+1)*J-he,ye=X*J,Ee=(X+1)*J-he;ae[0]=K*J,ae[1]=ye,ae[2]=ce,ae[3]=Ee};let U=new bX(I);const q=[];for(let K=0;K=1;I/=2){const K=k[k.length-1];U=new bX(I);for(let X=0;X0;){const{idx:X,t:J,nodex:re,nodey:ae,depth:he}=K.pop();if(this.leaves[X]){EX(re,ae,he,l,u,p,y,U,q);const ye=1<=Ct[2])return J}continue}let ce=0;for(let ye=0;ye=O[z[ze]]&&(z.splice(ze,0,ye),He=!0);He||(z[ce]=ye),ce++}}for(let ye=0;ye=this.dim+1||u<-1||u>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(u+1)*this.stride+(l+1)}static pack(l,u){const p=[0,0,0,0],y=bP.getUnpackVector(u);let b=Math.floor((l+y[3])/y[2]);return p[2]=b%256,b=Math.floor(b/256),p[1]=b%256,b=Math.floor(b/256),p[0]=b,p}getPixels(){return new lK({width:this.stride,height:this.stride},this.pixels)}backfillBorder(l,u,p){if(this.dim!==l.dim)throw new Error("dem dimension mismatch");let y=u*this.dim,b=u*this.dim+this.dim,S=p*this.dim,k=p*this.dim+this.dim;switch(u){case-1:y=b-1;break;case 1:b=y+1}switch(p){case-1:S=k-1;break;case 1:k=S+1}const I=-u*this.dim,O=-p*this.dim;for(let z=S;z=1;p--){const y=p===1?1:0,b=p===2?1:0;for(let S=0;S>>1^-(1&h[l]);return h}function AIe(h,l){switch(l){case"uint32":return h;case"uint16":for(let u=0;u>4|(61440&p)>>8|(240&y)<<4|61440&y,h[u+1]=15&p|(3840&p)>>4|(15&y)<<8|(3840&y)<<4}return h;case"uint8":for(let u=0;u>6|(192&y)>>4|(192&b)>>2|192&S,h[u+1]=(48&p)>>4|(48&y)>>2|48&b|(48&S)<<2,h[u+2]=(12&p)>>2|12&y|(12&b)<<2|(12&S)<<4,h[u+3]=3&p|(3&y)<<2|(3&b)<<4|(3&S)<<6}return h;default:throw new Error(`Invalid pixel format, "${l}"`)}}yr(bP,"DEMData"),yr(AX,"DemMinMaxQuadTree",{omit:["dem"]});var Ou=Uint8Array,KE=Uint16Array,kIe=Int32Array,CX=new Ou([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),IX=new Ou([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),CIe=new Ou([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jX=function(h,l){for(var u=new KE(31),p=0;p<31;++p)u[p]=l+=1<>1|(21845&_a)<<1;RX[_a]=((65280&(gb=(61680&(gb=(52428&gb)>>2|(13107&gb)<<2))>>4|(3855&gb)<<4))>>8|(255&gb)<<8)>>1}var YE=function(h,l,u){for(var p=h.length,y=0,b=new KE(l);y>I]=O;return S},ZE=new Ou(288);for(_a=0;_a<144;++_a)ZE[_a]=8;for(_a=144;_a<256;++_a)ZE[_a]=9;for(_a=256;_a<280;++_a)ZE[_a]=7;for(_a=280;_a<288;++_a)ZE[_a]=8;var LX=new Ou(32);for(_a=0;_a<32;++_a)LX[_a]=5;var PIe=YE(ZE,9),NIe=YE(LX,5),f4=function(h){for(var l=h[0],u=1;ul&&(l=h[u]);return l},vh=function(h,l,u){var p=l/8|0;return(h[p]|h[p+1]<<8)>>(7&l)&u},p4=function(h,l){var u=l/8|0;return(h[u]|h[u+1]<<8|h[u+2]<<16)>>(7&l)},RIe=function(h){return(h+7)/8|0},LIe=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],bh=function(h,l,u){var p=new Error(l||LIe[h]);if(p.code=h,Error.captureStackTrace&&Error.captureStackTrace(p,bh),!u)throw p;return p},DIe=new Ou(0),MIe=typeof TextDecoder<"u"&&new TextDecoder;try{MIe.decode(DIe,{stream:!0})}catch{}const OIe={gzip_data:"gzip"};class Sd extends Error{constructor(l){super(l),this.name="MRTError"}}const FIe={0:"uint32",1:"uint32",2:"uint16",3:"uint8"},DX={uint32:1,uint16:2,uint8:4},BIe={uint32:Uint32Array,uint16:Uint16Array,uint8:Uint8Array};let m4;class wP{constructor(l=5){this.x=NaN,this.y=NaN,this.z=NaN,this.layers={},this._cacheSize=l}getLayer(l){const u=this.layers[l];if(!u)throw new Sd(`Layer '${l}' not found`);return u}getHeaderLength(l){const u=new Uint8Array(l),p=new DataView(l);if(u[0]!==13)throw new Sd("File is not a valid MRT.");return p.getUint32(1,!0)}parseHeader(l){const u=new Uint8Array(l),p=this.getHeaderLength(l);if(u.length= ${p} but got buffer of length ${u.length}`);const y=new m4(u.subarray(0,p)).readFields(gIe,{headerLength:0,x:0,y:0,z:0,layers:[]},void 0);if(!isNaN(this.x)&&(this.x!==y.x||this.y!==y.y||this.z!==y.z))throw new Sd(`Invalid attempt to parse header ${y.z}/${y.x}/${y.y} for tile ${this.z}/${this.x}/${this.y}`);this.x=y.x,this.y=y.y,this.z=y.z;for(const b of y.layers)this.layers[b.name]=new MX(b,{cacheSize:this._cacheSize});return this}createDecodingTask(l){const u=[],p=this.getLayer(l.layerName);for(let y of l.blockIndices){const b=p.dataIndex[y],S=b.firstByte-l.firstByte,k=b.lastByte-l.firstByte;if(p._blocksInProgress.has(y))continue;const I={layerName:p.name,firstByte:S,lastByte:k,pixelFormat:p.pixelFormat,blockIndex:y,blockShape:[b.bands.length].concat(p.bandShape),buffer:p.buffer,codec:b.codec.codec,filters:b.filters.map(O=>O.filter)};p._blocksInProgress.add(y),u.push(I)}return new OX(u,()=>{u.forEach(y=>p._blocksInProgress.delete(y.blockIndex))},(y,b)=>{if(u.forEach(S=>p._blocksInProgress.delete(S.blockIndex)),y)throw y;b.forEach(S=>{this.getLayer(S.layerName).processDecodedData(S)})})}}class MX{constructor({version:l,name:u,units:p,tileSize:y,pixelFormat:b,buffer:S,dataIndex:k},I){if(this.version=l,this.version!==1)throw new Sd(`Cannot parse raster layer encoded with MRT version ${l}`);this.name=u,this.units=p,this.tileSize=y,this.buffer=S,this.pixelFormat=FIe[b],this.dataIndex=k,this.bandShape=[y+2*S,y+2*S,DX[this.pixelFormat]],this._decodedBlocks=new vP(I?I.cacheSize:5),this._blocksInProgress=new Set}get dimension(){return DX[this.pixelFormat]}get cacheSize(){return this._decodedBlocks.capacity}getBandList(){return this.dataIndex.map(({bands:l})=>l).flat()}processDecodedData(l){const u=l.blockIndex.toString();this._decodedBlocks.get(u)||this._decodedBlocks.put(u,l.data)}getBlockForBand(l){let u=0;switch(typeof l){case"string":for(const[p,y]of this.dataIndex.entries()){for(const[b,S]of y.bands.entries())if(S===l)return{bandIndex:u+b,blockIndex:p,blockBandIndex:b};u+=y.bands.length}break;case"number":for(const[p,y]of this.dataIndex.entries()){if(l>=u&&lthis.cacheSize)throw new Sd(`Number of blocks to decode (${b.size}) exceeds cache size (${this.cacheSize}).`);return{layerName:this.name,firstByte:u,lastByte:p,blockIndices:y}}hasBand(l){const{blockIndex:u}=this.getBlockForBand(l);return u>=0}hasDataForBand(l){const{blockIndex:u}=this.getBlockForBand(l);return u>=0&&!!this._decodedBlocks.get(u.toString())}getBandView(l){const{blockIndex:u,blockBandIndex:p}=this.getBlockForBand(l);if(u<0)throw new Sd(`Band not found: ${JSON.stringify(l)}`);const y=this._decodedBlocks.get(u.toString());if(!y)throw new Sd(`Data for band ${JSON.stringify(l)} of layer "${this.name}" not decoded.`);const b=this.dataIndex[u],S=this.bandShape.reduce((O,z)=>O*z,1),k=p*S,I=y.subarray(k,k+S);return{data:I,bytes:new Uint8Array(I.buffer).subarray(I.byteOffset,I.byteOffset+I.byteLength),tileSize:this.tileSize,buffer:this.buffer,pixelFormat:this.pixelFormat,dimension:this.dimension,offset:b.offset,scale:b.scale}}}wP.setPbf=function(h){m4=h};class OX{constructor(l,u,p){this.tasks=l,this._onCancel=u,this._onComplete=p,this._finalized=!1}cancel(){this._finalized||(this._onCancel(),this._finalized=!0)}complete(l,u){this._finalized||(this._onComplete(l,u),this._finalized=!0)}}wP.performDecoding=function(h,l){const u=new Uint8Array(h);return Promise.all(l.tasks.map(p=>{const{layerName:y,firstByte:b,lastByte:S,pixelFormat:k,blockShape:I,blockIndex:O,filters:z,codec:U}=p,q=u.subarray(b,S+1),K=new Uint32Array(I[0]*I[1]*I[2]);let X;if(U!=="gzip_data")throw new Sd(`Unhandled codec: ${U}`);return X=function(J,re){if(!globalThis.DecompressionStream&&re==="gzip_data")return Promise.resolve((Ee=function(ze){ze[0]==31&&ze[1]==139&&ze[2]==8||bh(6,"invalid gzip data");var Ge=ze[3],Ue=10;4&Ge&&(Ue+=2+(ze[10]|ze[11]<<8));for(var Ve=(Ge>>3&1)+(Ge>>4&1);Ve>0;Ve-=!ze[Ue++]);return Ue+(2&Ge)}(ae=J),Ee+8>ae.length&&bh(6,"invalid gzip data"),function(ze,Ge,Ue,Ve){var gt=ze.length;if(!gt||Ge.f&&!Ge.l)return Ue||new Ou(0);var wt=!Ue,kt=wt||Ge.i!=2,jt=Ge.i;wt&&(Ue=new Ou(3*gt));var Ct=function(gs){var Zo=Ue.length;if(gs>Zo){var Ha=new Ou(Math.max(2*Zo,gs));Ha.set(Ue),Ue=Ha}},Bt=Ge.f||0,pt=Ge.p||0,It=Ge.b||0,Lt=Ge.l,$t=Ge.d,Gt=Ge.m,mr=Ge.n,nr=8*gt;do{if(!Lt){Bt=vh(ze,pt,1);var rr=vh(ze,pt+1,3);if(pt+=3,!rr){var Ht=ze[(ei=RIe(pt)+4)-4]|ze[ei-3]<<8,fr=ei+Ht;if(fr>gt){jt&&bh(0);break}kt&&Ct(It+Ht),Ue.set(ze.subarray(ei,fr),It),Ge.b=It+=Ht,Ge.p=pt=8*fr,Ge.f=Bt;continue}if(rr==1)Lt=PIe,$t=NIe,Gt=9,mr=5;else if(rr==2){var Er=vh(ze,pt,31)+257,$r=vh(ze,pt+10,15)+4,Lr=Er+vh(ze,pt+5,31)+1;pt+=14;for(var on=new Ou(Lr),On=new Ou(19),ln=0;ln<$r;++ln)On[CIe[ln]]=vh(ze,pt+3*ln,7);pt+=3*$r;var Fn=f4(On),yn=(1<>4)<16)on[ln++]=ei;else{var Ai=0,us=0;for(ei==16?(us=3+vh(ze,pt,3),pt+=2,Ai=on[ln-1]):ei==17?(us=3+vh(ze,pt,7),pt+=3):ei==18&&(us=11+vh(ze,pt,127),pt+=7);us--;)on[ln++]=Ai}}var Na=on.subarray(0,Er),ds=on.subarray(Er);Gt=f4(Na),mr=f4(ds),Lt=YE(Na,Gt),$t=YE(ds,mr)}else bh(1);if(pt>nr){jt&&bh(0);break}}kt&&Ct(It+131072);for(var ws=(1<>4;if((pt+=15&Ai)>nr){jt&&bh(0);break}if(Ai||bh(2),vo<256)Ue[It++]=vo;else{if(vo==256){Ss=pt,Lt=null;break}var Ra=vo-254;vo>264&&(Ra=vh(ze,pt,(1<<(Ns=CX[ln=vo-257]))-1)+NX[ln],pt+=Ns);var vn=$t[p4(ze,pt)&Hs],gl=vn>>4;if(vn||bh(3),pt+=15&vn,ds=jIe[gl],gl>3){var Ns=IX[gl];ds+=p4(ze,pt)&(1<nr){jt&&bh(0);break}kt&&Ct(It+131072);var Ga=It+Ra;if(Itgs.length)&&(Ha=gs.length),new Ou(gs.subarray(0,Ha))}(Ue,0,It):Ue.subarray(0,It)}(ae.subarray(Ee,-8),{i:2},new Ou(((ce=ae)[(ye=ce.length)-4]|ce[ye-3]<<8|ce[ye-2]<<16|ce[ye-1]<<24)>>>0),he)));var ae,he,ce,ye,Ee;const Ce=OIe[re];if(!Ce)throw new Error(`Unhandled codec: ${re}`);const He=new globalThis.DecompressionStream(Ce);return new Response(new Blob([J]).stream().pipeThrough(He)).arrayBuffer().then(ze=>new Uint8Array(ze))}(q,U).then(J=>(function(re,ae){re.readFields(wIe,ae)}(new m4(J),K),new BIe[k](K.buffer))),X.then(J=>{for(let re=z.length-1;re>=0;re--)switch(z[re]){case"delta_filter":TIe(J,I);break;case"zigzag_filter":EIe(J);break;case"bitshuffle_filter":AIe(J,k);break;default:throw new Sd(`Unhandled filter "${z[re]}"`)}return{layerName:y,blockIndex:O,data:J}}).catch(J=>{throw J})}))},yr(OX,"MRTDecodingBatch",{omit:["_onCancel","_onComplete"]}),yr(wP,"MapboxRasterTile"),yr(MX,"MapboxRasterLayer",{omit:["_blocksInProgress"]});const FX=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class g4{static from(l){if(!(l instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[u,p]=new Uint8Array(l,0,2);if(u!==219)throw new Error("Data does not appear to be in a KDBush format.");const y=p>>4;if(y!==1)throw new Error(`Got v${y} data when expected v1.`);const b=FX[15&p];if(!b)throw new Error("Unrecognized array type.");const[S]=new Uint16Array(l,2,1),[k]=new Uint32Array(l,4,1);return new g4(k,S,b,l)}constructor(l,u=64,p=Float64Array,y){if(isNaN(l)||l<0)throw new Error(`Unpexpected numItems value: ${l}.`);this.numItems=+l,this.nodeSize=Math.min(Math.max(+u,2),65535),this.ArrayType=p,this.IndexArrayType=l<65536?Uint16Array:Uint32Array;const b=FX.indexOf(this.ArrayType),S=2*l*this.ArrayType.BYTES_PER_ELEMENT,k=l*this.IndexArrayType.BYTES_PER_ELEMENT,I=(8-k%8)%8;if(b<0)throw new Error(`Unexpected typed array class: ${p}.`);y&&y instanceof ArrayBuffer?(this.data=y,this.ids=new this.IndexArrayType(this.data,8,l),this.coords=new this.ArrayType(this.data,8+k+I,2*l),this._pos=2*l,this._finished=!0):(this.data=new ArrayBuffer(8+S+k+I),this.ids=new this.IndexArrayType(this.data,8,l),this.coords=new this.ArrayType(this.data,8+k+I,2*l),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+b]),new Uint16Array(this.data,2,1)[0]=u,new Uint32Array(this.data,4,1)[0]=l)}add(l,u){const p=this._pos>>1;return this.ids[p]=p,this.coords[this._pos++]=l,this.coords[this._pos++]=u,p}finish(){const l=this._pos>>1;if(l!==this.numItems)throw new Error(`Added ${l} items when expected ${this.numItems}.`);return y4(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(l,u,p,y){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:b,coords:S,nodeSize:k}=this,I=[0,b.length-1,0],O=[];for(;I.length;){const z=I.pop()||0,U=I.pop()||0,q=I.pop()||0;if(U-q<=k){for(let re=q;re<=U;re++){const ae=S[2*re],he=S[2*re+1];ae>=l&&ae<=p&&he>=u&&he<=y&&O.push(b[re])}continue}const K=q+U>>1,X=S[2*K],J=S[2*K+1];X>=l&&X<=p&&J>=u&&J<=y&&O.push(b[K]),(z===0?l<=X:u<=J)&&(I.push(q),I.push(K-1),I.push(1-z)),(z===0?p>=X:y>=J)&&(I.push(K+1),I.push(U),I.push(1-z))}return O}within(l,u,p){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:y,coords:b,nodeSize:S}=this,k=[0,y.length-1,0],I=[],O=p*p;for(;k.length;){const z=k.pop()||0,U=k.pop()||0,q=k.pop()||0;if(U-q<=S){for(let re=q;re<=U;re++)zX(b[2*re],b[2*re+1],l,u)<=O&&I.push(y[re]);continue}const K=q+U>>1,X=b[2*K],J=b[2*K+1];zX(X,J,l,u)<=O&&I.push(y[K]),(z===0?l-p<=X:u-p<=J)&&(k.push(q),k.push(K-1),k.push(1-z)),(z===0?l+p>=X:u+p>=J)&&(k.push(K+1),k.push(U),k.push(1-z))}return I}}function y4(h,l,u,p,y,b){if(y-p<=u)return;const S=p+y>>1;BX(h,l,S,p,y,b),y4(h,l,u,p,S-1,1-b),y4(h,l,u,S+1,y,1-b)}function BX(h,l,u,p,y,b){for(;y>p;){if(y-p>600){const O=y-p+1,z=u-p+1,U=Math.log(O),q=.5*Math.exp(2*U/3),K=.5*Math.sqrt(U*q*(O-q)/O)*(z-O/2<0?-1:1);BX(h,l,u,Math.max(p,Math.floor(u-z*q/O+K)),Math.min(y,Math.floor(u+(O-z)*q/O+K)),b)}const S=l[2*u+b];let k=p,I=y;for(XE(h,l,p,u),l[2*y+b]>S&&XE(h,l,p,y);kS;)I--}l[2*p+b]===S?XE(h,l,p,I):(I++,XE(h,l,I,y)),I<=u&&(p=I+1),u<=I&&(y=I-1)}}function XE(h,l,u,p){x4(h,u,p),x4(l,2*u,2*p),x4(l,2*u+1,2*p+1)}function x4(h,l,u){const p=h[l];h[l]=h[u],h[u]=p}function zX(h,l,u,p){const y=h-u,b=l-p;return y*y+b*b}s.$=ag,s.A=class{constructor(h,l,u){this.target=h,this.parent=l,this.mapId=u,this.callbacks={},this.cancelCallbacks={},ht(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.scheduler=new KCe}send(h,l,u,p,y=!1,b){const S=Math.round(1e18*Math.random()).toString(36).substring(0,10);u&&(u.metadata=b,this.callbacks[S]=u);const k=new Set;return this.target.postMessage({id:S,type:h,hasCallback:!!u,targetMapId:p,mustQueue:y,sourceMapId:this.mapId,data:uh(l,k)},k),{cancel:()=>{u&&delete this.callbacks[S],this.target.postMessage({id:S,type:"",targetMapId:p,sourceMapId:this.mapId})}}}receive(h){const l=h.data;if(!l)return;const u=l.id;if(u&&(!l.targetMapId||this.mapId===l.targetMapId))if(l.type===""){const p=this.cancelCallbacks[u];delete this.cancelCallbacks[u],p&&p.cancel()}else if(l.mustQueue||Ii(self)){const p=this.callbacks[u],y=this.scheduler.add(()=>this.processTask(u,l),p&&p.metadata||{type:"message"});y&&(this.cancelCallbacks[u]=y)}else this.processTask(u,l)}processTask(h,l){if(delete this.cancelCallbacks[h],l.type===""){const u=this.callbacks[h];delete this.callbacks[h],u&&(l.error?u(mf(l.error)):u(null,mf(l.data)))}else{const u=new Set,p=l.hasCallback?(b,S)=>{this.target.postMessage({id:h,type:"",sourceMapId:this.mapId,error:b?uh(b):null,data:uh(S,u)},u)}:()=>{},y=mf(l.data);if(this.parent[l.type])this.parent[l.type](l.sourceMapId,y,p);else if(this.parent.getWorkerSource){const b=l.type.split("."),{source:S,scope:k}=y;this.parent.getWorkerSource(l.sourceMapId,{type:b[0],source:S,scope:k,uid:0})[b[1]](y,p)}else p(new Error(`Could not find function ${l.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},s.B=Xm,s.C=Pu,s.D=au,s.E=yx,s.F=Lp,s.G=2,s.H=LE,s.I=rc,s.J=iZ,s.K=iv,s.L=nj,s.M=wx,s.N=Sx,s.O=Av,s.P=Ot,s.Q=Ev,s.R=mx,s.S=bT,s.T=Sf,s.U=Ux,s.V=pP,s.W=Fv,s.X=pf,s.Y=ST,s.Z=md,s._=kp,s.a=function(h){return Rn.API_CDN_URL_REGEX.test(h)},s.a$=Zj,s.a0=ja,s.a1=Tx,s.a2=sv,s.a3=XS,s.a4=UT,s.a5=class extends pP{},s.a6=wT,s.a7=zI,s.a8=nt,s.a9=function(h){const l=h.value;return l?sv(l)?s4(l,!0)?[]:[new pP(h.key,l,`invalid url "${l}"`)]:[new pP(h.key,l,`string expected, "${wx(l)}" found`)]:[]},s.aA=NY,s.aB=function(h){let l=1/0,u=1/0,p=-1/0,y=-1/0;for(const b of h)l=Math.min(l,b.x),u=Math.min(u,b.y),p=Math.max(p,b.x),y=Math.max(y,b.y);return{min:new Ot(l,u),max:new Ot(p,y)}},s.aC=fe,s.aD=D,s.aE=ur,s.aF=Ne,s.aG=Rl,s.aH=Nt,s.aI=pr,s.aJ=function(h,l){const u={};for(let p=0;p=0?l.slice(u+1):""}catch{return""}},s.aN=class{constructor(h){this.entries={},this.scheduler=h}request(h,l,u,p){const y=this.entries[h]=this.entries[h]||{callbacks:[]};if(y.result){const[b,S]=y.result;return this.scheduler?this.scheduler.add(()=>{p(b,S)},l):p(b,S),()=>{}}return y.callbacks.push(p),y.cancel||(y.cancel=u((b,S)=>{y.result=[b,S];for(const k of y.callbacks)this.scheduler?this.scheduler.add(()=>{k(b,S)},l):k(b,S);setTimeout(()=>delete this.entries[h],3e3)})),()=>{y.result||(y.callbacks=y.callbacks.filter(b=>b!==p),y.callbacks.length||(y.cancel(),delete this.entries[h]))}}},s.aO=function(h,l,u){const p=JSON.stringify(h.request);return h.data&&(this.deduped.entries[p]={result:[null,h.data]}),this.deduped.request(p,{type:"parseTile",renderSourceType:h.renderSourceType,zoom:h.tileZoom},y=>{const b=Ym(h.request,(S,k,I)=>{S?KS(S)?y(null,null):y(S):k&&y(null,{rawData:k,vectorTile:u?void 0:new Xn(new Zj(k)),responseHeaders:new Map(I.entries())})});return()=>{b.cancel(),y(null,null)}},l)},s.aP=function(h){return h?{cacheControl:h.get("cache-control"),expires:h.get("expires")}:{cacheControl:void 0,expires:void 0}},s.aQ=function(h){qS++,qS>Y_&&(h.getActor().send("enforceCacheSizeLimit",K_),qS=0)},s.aR=ml,s.aS=BZ,s.aT=WZ,s.aU=Qe,s.aV=FZ,s.aW=function(h,l){const u=document.createElement("video");u.muted=!0,u.onloadstart=function(){l(null,u)};for(let p=0;p{}}},s.aX=IE,s.aY=x0,s.aZ=ht,s.a_=wP,s.aa=Ov,s.ab=is,s.ac=Yt,s.ad=class{constructor(h){this.specification=h}possiblyEvaluate(h,l){return In(h.expression.evaluate(l))}interpolate(h,l,u){return{x:Zr(h.x,l.x,u),y:Zr(h.y,l.y,u),z:Zr(h.z,l.z,u),azimuthal:Zr(h.azimuthal,l.azimuthal,u),polar:Zr(h.polar,l.polar,u)}}},s.ae=Jn,s.af=Ip,s.ag=Tr,s.ah=xr,s.ai=Oe,s.aj=Me,s.ak=fh,s.al=$p,s.am=Zr,s.an=sr,s.ao=Nu,s.ap=Hn,s.aq=Wn,s.ar=class{constructor(h){this.specification=h}possiblyEvaluate(h,l){return function([u,p]){const y=In([1,u,p]);return{x:y.x,y:y.y,z:y.z}}(h.expression.evaluate(l))}interpolate(h,l,u){return{x:Zr(h.x,l.x,u),y:Zr(h.y,l.y,u),z:Zr(h.z,l.z,u)}}},s.as=function(h,l,u=0,p=!0){const y=new Ot(u,u),b=h.sub(y),S=l.add(y),k=[b,new Ot(S.x,b.y),S,new Ot(b.x,S.y)];return p&&k.push(b.clone()),k},s.at=function(h,l){const u=[];for(let p=0;pthis.buckets[U].layers.some(q=>S.has(q.fqid))),I=Object.keys(this.buckets).some(U=>this.buckets[U].layers.some(q=>q.hasTransition&&q.hasTransition())),O=this._firstPrepareComplete&&b!==this._lastAvailableImagesCount;this._hasAppearances===null&&(this._hasAppearances=this.hasAppearances(l));const z=this._lastUpdatedBrightness!==p;this._lastAvailableImagesCount=b,this._firstPrepareComplete=!0,(this._lastUpdatedBrightness||p||this._hasAppearances||k||I||O)&&(!(this._hasAppearances||k||I||O)&&this._lastUpdatedBrightness&&p&&Math.abs(this._lastUpdatedBrightness-p)<.001||(this.updateBuckets(l,z,void 0,O||k||I,S,y),this._lastUpdatedBrightness=p))}evaluateQueryRenderedFeaturePadding(){let h=0;for(const l in this.buckets){const u=this.buckets[l];u.evaluateQueryRenderedFeaturePadding&&(h=Math.max(h,u.evaluateQueryRenderedFeaturePadding()))}return h}queryRenderedFeatures(h,l,u,p,y,b,S){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData&&!this.latestFeatureIndex.is3DTile)return{};const k=this.evaluateQueryRenderedFeaturePadding(),I=function(O,z){const U=Q([],[.5*O.width,.5*-O.height,1]);return B(U,U,[1,-1,0]),D(U,U,O.calculateProjMatrix(z.toUnwrapped())),Float32Array.from(U)}(y,this.tileID);return this.latestFeatureIndex.query(h,{tilespaceGeometry:l,pixelPosMatrix:I,transform:p,availableImages:u,tileTransform:this.tileTransform,worldview:this.worldview,queryRadius:k,scope:S})}querySourceFeatures(h,l){const u=this.latestFeatureIndex;if(!u||!u.rawTileData)return;const p=u.loadVTLayers(),y=l?l.sourceLayer:"",b=p._geojsonTileLayer||p[y];if(!b)return;const S=Bv(l&&l.filter),{z:k,x:I,y:O}=this.tileID.canonical,z={z:k,x:I,y:O};for(let U=0;Uu)p=!1;else if(l)if(this.expirationTimeu.appearances&&u.appearances.length>0))return!0;return!1}updateBuckets(h,l,u,p,y,b){if(!this.latestFeatureIndex||!h.style)return;const S=b||h.style.listImages(),k=h.style.getBrightness(),I=y||new Set;for(const O in this.buckets){if(!h.style.hasLayer(O))continue;const z=this.buckets[O],U=z.layers[0],q=U.sourceLayer||"_geojsonTileLayer",K=h.style.getLayerSourceCache(U),X=z.layers.some(Ee=>I.has(Ee.fqid)),J=(p||X)&&z instanceof _h?h.style.getOwnLayer(O):void 0;let re=u&&u[q]||{};K&&!u&&(re=K._state.getState(q,void 0));const ae=this.imageAtlas?Object.fromEntries(this.imageAtlas.patternPositions):{},he=Object.keys(re).length>0&&!l;z.hasAppearances=z.layers.some(Ee=>Ee.appearances&&Ee.appearances.length>0);const ce=he?z.stateDependentLayers:z.layers;if(he&&z.stateDependentLayers.length!==0||l||X||p){const Ee=this.latestFeatureIndex.loadVTLayers()[q];if(z.update(re,Ee,S,ae,ce,l,k,this.tileID.canonical),(p||X)&&!l&&z instanceof _h&&J&&J.type==="symbol"){const Ce=z;Ce.text&&Ce.text.uboBinder&&Ce.text.uboBinder.updateDynamicExpressions(J,Ee,this.tileID.canonical,S,re,k),Ce.icon&&Ce.icon.uboBinder&&Ce.icon.uboBinder.updateDynamicExpressions(J,Ee,this.tileID.canonical,S,re,k)}if(z instanceof _h){const Ce=z,He=h.context;Ce.text&&Ce.text.uboBinder&&Ce.text.uboBinder.upload(He),Ce.icon&&Ce.icon.uboBinder&&Ce.icon.uboBinder.upload(He)}}if(he&&z.stateDependentLayers.length!==0||l||z.hasAppearances){const Ee={zoom:h.transform.zoom,pitch:h.transform.pitch,brightness:h.style.getBrightness()||0,worldview:h.worldview},Ce=z.updateAppearances(this.tileID.canonical,re,S,Ee,h.imageManager,he&&z.stateDependentLayers.length!==0);if(Ce&&Ce.hasUboChanges){const He=h.context;z instanceof _h&&z.text&&z.text.uboBinder&&z.text.uboBinder.upload(He),z instanceof _h&&z.icon&&z.icon.uboBinder&&z.icon.uboBinder.upload(He)}}(z instanceof Yj||z instanceof jj)&&h._terrain&&h._terrain.enabled&&K&&z.uploadPending()&&h._terrain._clearRenderCacheForTile(K.id,this.tileID);const ye=h&&h.style&&h.style.getOwnLayer(O);ye&&(this.queryPadding=Math.max(this.queryPadding,ye.queryRadius(z)||0))}}holdingForFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil=0;J--){const re=4*J,ae=Cg[re+0],he=Cg[re+1],ce=Cg[re+2],ye=Cg[re+3],Ee=ae+ce>>1,Ce=he+ye>>1,He=Ee+Ce-he,ze=Ce+ae-Ee,Ge=he*Tf+ae,Ue=ye*Tf+ce,Ve=Ce*Tf+Ee,gt=Math.hypot((Ef[2*Ge+0]+Ef[2*Ue+0])/2-Ef[2*Ve+0],(Ef[2*Ge+1]+Ef[2*Ue+1])/2-Ef[2*Ve+1])>=16;Ig[Ve]=Ig[Ve]||(gt?1:0),J<1022&&(Ig[Ve]=Ig[Ve]||Ig[(he+ze>>1)*Tf+(ae+He>>1)]||Ig[(ye+ze>>1)*Tf+(ce+He>>1)])}const z=new xo,U=new bs;let q=0;function K(J,re){const ae=re*Tf+J;return gP[ae]===0&&(z.emplaceBack(Ef[2*ae+0],Ef[2*ae+1],J*sr/wd,re*sr/wd),gP[ae]=++q),gP[ae]-1}function X(J,re,ae,he,ce,ye){const Ee=J+ae>>1,Ce=re+he>>1;if(Math.abs(J-ce)+Math.abs(re-ye)>1&&Ig[Ce*Tf+Ee])X(ce,ye,J,re,Ee,Ce),X(ae,he,ce,ye,Ee,Ce);else{const He=K(J,re),ze=K(ae,he),Ge=K(ce,ye);U.emplaceBack(He,ze,Ge)}}return X(0,0,wd,wd,wd,0),X(wd,wd,0,0,0,wd),{vertices:z,indices:U}}(this.tileID.canonical,l);p=b.vertices,y=b.indices}else{p=new xo,y=new bs;for(const{x:S,y:k}of u)p.emplaceBack(S,k,0,0);const b=eb(p.int16.subarray(0,4*p.length),void 0,4);for(let S=0;S0&&(S=M(new Float64Array(16),l.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(h,p,l,y,S,b),this._makeGlobeTileDebugTextBuffer(h,p,l,y,S,b)}_globePoint(h,l,u,p,y,b,S){let k=hE(h,l,u);if(b){const I=1<.5?q=-1:U<-.5&&(q=1);let K=(h/sr+u.x)/I+q,X=(l/sr+u.y)/I;K=(K-O)*p._pixelsPerMercatorPixel+O,X=(X-z)*p._pixelsPerMercatorPixel+z;const J=[K*p.worldSize,X*p.worldSize,0];xr(J,J,b),k=zp(k,J,S)}return xr(k,k,y)}_makeGlobeTileDebugBorderBuffer(h,l,u,p,y,b){const S=new ic,k=new Op,I=new _d,O=(U,q,K,X,J)=>{const re=(K-U)/(J-1),ae=(X-q)/(J-1),he=S.length;for(let ce=0;ceO*U+q;for(let U=0;U1)return!1;const u=l.getSource().maxzoom,p=1<1)return l;const y=p.getSource().maxzoom,b=1<{const k=this.getAtTileOffset(h,y,b,S),I=p.upVector(h.canonical,y.x,y.y);return Ze(I,I,k*p.upVectorScale(h.canonical,l,u).metersToTile),I}}getForTilePoints(h,l,u,p){if(this.isUsingMockSource())return!1;const y=fb.create(this,h,p);return!!y&&(l.forEach(b=>{b[2]=this.exaggeration()*y.getElevationAt(b[0],b[1],u)}),!0)}getMinMaxForTile(h){if(this.isUsingMockSource())return null;const l=this.findDEMTileFor(h);if(!l||!l.dem)return null;const u=l.dem.tree,p=l.tileID,y=1<0&&(p+=(h[y]-0)*(h[y]-0)),l[y]<0&&(p+=(0-l[y])*(0-l[y]));return p},s.cL=function(h){return h*h*h*h*h},s.cM=ft,s.cN=45,s.cO=Xv,s.cP=function(h,l,u){const p=Math.sqrt(h*h+l*l+u*u),y=p>0?Math.acos(u/p)*Cs:0;let b=h!==0||l!==0?Math.atan2(-l,-h)*Cs+90:0;return b<0&&(b+=360),[p,b,y]},s.cQ=Ae,s.cR=In,s.cS=Mt,s.cT=ge,s.cU=ii,s.cV=je,s.cW=function(h){return[Math.pow(h[0],1/2.2),Math.pow(h[1],1/2.2),Math.pow(h[2],1/2.2)]},s.cX=mY,s.cY=k5,s.cZ=vY,s.c_=s4,s.ca=2,s.cb=7,s.cc=6,s.cd=vt,s.ce=Te,s.cf=we,s.cg=0,s.ch=1,s.ci=4,s.cj=5,s.ck=Jv,s.cl=sc,s.cm=yY,s.cn=l0,s.co=HW,s.cp=function(h,l,u,p,y,b,S,k,I){if(I.name==="globe")return HW(h,l,new l0(u,p,y),!1);const O=m0({z:u,x:p,y},I);return new ii([(b+O.x/O.scale)*l,l*(O.y/O.scale),S],[(b+O.x2/O.scale)*l,l*(O.y2/O.scale),k])},s.cq=function(h,l,u){return h[0]=Math.min(l[0],u[0]),h[1]=Math.min(l[1],u[1]),h[2]=Math.min(l[2],u[2]),h[3]=Math.min(l[3],u[3]),h},s.cr=function(h,l,u){return h[0]=Math.max(l[0],u[0]),h[1]=Math.max(l[1],u[1]),h[2]=Math.max(l[2],u[2]),h[3]=Math.max(l[3],u[3]),h},s.cs=function(h){const l=Math.round((h+45+360)%360/90)%4;return tu[l]},s.ct=Et,s.cu=Dt,s.cv=6,s.cw=function(h){const l=L(new Float64Array(16));D(l,h.pixelMatrix,h.globeMatrix);const u=[0,Be,0],p=[0,We,0];return xr(u,u,l),xr(p,p,l),[u[0]>0&&u[0]<=h.width&&u[1]>0&&u[1]<=h.height&&!K3(h,new Qe(h.center.lat,90)),p[0]>0&&p[0]<=h.width&&p[1]>0&&p[1]<=h.height&&!K3(h,new Qe(h.center.lat,-90))]},s.cx=function(h,l){const{scale:u}=h.tileTransform,p=u*sr/(h.tileSize*Math.pow(2,l.zoom-h.tileID.overscaledZ+h.tileID.canonical.z));return function(y,b,S){var k=b[1],I=b[2],O=b[3],z=S[0],U=S[1];return y[0]=b[0]*z,y[1]=k*z,y[2]=I*U,y[3]=O*U,y}(new Float32Array(4),l.inverseAdjustmentMatrix,[p,p])},s.cy=Vj,s.cz=be,s.d=function(h){return Rn.API_TILEJSON_REGEX.test(h)},s.d$=K2e,s.d0=ps,s.d1=class{static calculate(h,l,u){const p=new Set,y=new Map,b=new Set,S=new Set;for(const I of Object.values(h))for(const[O,z]of Object.entries(I.floors)){b.add(O),z.isDefault&&S.add(O),z.conflicts&&y.set(O,z.conflicts);const U=O===l,q=z.connections&&l&&z.connections.has(l);(U||q)&&p.add(O)}const k=I=>{const O=y.get(I)||new Set;for(const z of p)if((y.get(z)||new Set).has(I)||O.has(z))return!0;return!1};if(u)for(const I of u)b.has(I)&&(k(I)||p.add(I));for(const I of S)p.has(I)||k(I)||p.add(I);return p}},s.d2=eP,s.d3=H5,s.d4=Zn,s.d5=function(){return{API_URL:Rn.API_URL,DRACO_URL:Rn.DRACO_URL,MESHOPT_URL:Rn.MESHOPT_URL,MESHOPT_SIMD_URL:Rn.MESHOPT_SIMD_URL,BUILDING_GEN_URL:Rn.BUILDING_GEN_URL}},s.d6=ej,s.d7=US,s.d8=af,s.d9=dr,s.dA=bj,s.dB=ic,s.dC=bs,s.dD=function(h,l){return[Math.pow(h[0],2.2)*l,Math.pow(h[1],2.2)*l,Math.pow(h[2],2.2)*l]},s.dE=_,s.dF=function(h,l){var u=Math.sin(l),p=Math.cos(l);return h[0]=p,h[1]=u,h[2]=0,h[3]=-u,h[4]=p,h[5]=0,h[6]=0,h[7]=0,h[8]=1,h},s.dG=_r,s.dH=KW,s.dI=ji,s.dJ=ls,s.dK=n4,s.dL=function(h,l){const u=[0,0,0];return xr(u,u,fE(vf(l.canonical))),xr(u,u,h),u},s.dM=h=>({u_matrix:new d(h),u_texsize:new du(h),u_pixels_to_tile_units:new A(h),u_device_pixel_ratio:new la(h),u_width_scale:new la(h),u_floor_width_scale:new la(h),u_image:new a0(h),u_units_to_pixels:new du(h),u_tile_units_to_pixels:new la(h),u_alpha_discard_threshold:new la(h),u_trim_offset:new du(h),u_trim_fade_range:new du(h),u_trim_gradient_mix_range:new du(h),u_trim_color:new Xv(h),u_zbias_factor:new la(h),u_tile_to_meter:new la(h),u_ground_shadow_factor:new o0(h),u_pattern_transition:new la(h)}),s.dN=h=>({u_matrix:new d(h),u_pixels_to_tile_units:new A(h),u_device_pixel_ratio:new la(h),u_width_scale:new la(h),u_floor_width_scale:new la(h),u_units_to_pixels:new du(h),u_dash_image:new a0(h),u_gradient_image:new a0(h),u_image_height:new la(h),u_texsize:new du(h),u_tile_units_to_pixels:new la(h),u_alpha_discard_threshold:new la(h),u_trim_offset:new du(h),u_trim_fade_range:new du(h),u_trim_gradient_mix_range:new du(h),u_trim_color:new Xv(h),u_zbias_factor:new la(h),u_tile_to_meter:new la(h),u_ground_shadow_factor:new o0(h)}),s.dO=h=>({u_camera_to_center_distance:new la(h),u_extrude_scale:new A(h),u_device_pixel_ratio:new la(h),u_matrix:new d(h),u_inv_rot_matrix:new d(h),u_merc_center:new du(h),u_tile_id:new o0(h),u_zoom_transition:new la(h),u_up_dir:new o0(h),u_emissive_strength:new la(h)}),s.dP=eE,s.dQ=Wke,s.dR=class{constructor(h,l,u,p){this.context=h,this.format=p,this.size=u,this.texture=h.gl.createTexture();const[y,b,S]=this.size,{gl:k}=h;k.bindTexture(k.TEXTURE_3D,this.texture),h.pixelStoreUnpackFlipY.set(!1),h.pixelStoreUnpack.set(1),h.pixelStoreUnpackPremultiplyAlpha.set(!1),"data"in l&&l.data&&k.texImage3D(k.TEXTURE_3D,0,this.format,y,b,S,0,v5(this.format),b5(this.format),l.data)}bind(h,l){const{context:u}=this,{gl:p}=u;p.bindTexture(p.TEXTURE_3D,this.texture),h!==this.minFilter&&(p.texParameteri(p.TEXTURE_3D,p.TEXTURE_MAG_FILTER,h),p.texParameteri(p.TEXTURE_3D,p.TEXTURE_MIN_FILTER,h),this.minFilter=h),l!==this.wrapS&&(p.texParameteri(p.TEXTURE_3D,p.TEXTURE_WRAP_S,l),p.texParameteri(p.TEXTURE_3D,p.TEXTURE_WRAP_T,l),this.wrapS=l)}destroy(){const{gl:h}=this.context;h.deleteTexture(this.texture),this.texture=null}},s.dS=QW,s.dT=(h,l,u,p,y,b)=>{const S=h.transform,k=S.projection.name==="globe";let I;if(b.paint.get("circle-pitch-alignment")==="map")if(k){const z=KW(S.zoom,l.canonical)*S._pixelsPerMercatorPixel;I=Float32Array.from([z,0,0,z])}else I=S.calculatePixelsToTileUnitsMatrix(u);else I=new Float32Array([S.pixelsToGLUnits[0],0,0,S.pixelsToGLUnits[1]]);const O={u_camera_to_center_distance:h.transform.getCameraToCenterDistance(S.projection),u_matrix:h.translatePosMatrix(l.projMatrix,u,b.paint.get("circle-translate"),b.paint.get("circle-translate-anchor")),u_device_pixel_ratio:Pl.devicePixelRatio,u_extrude_scale:I,u_inv_rot_matrix:eAe,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0],u_emissive_strength:b.paint.get("circle-emissive-strength")};if(k){O.u_inv_rot_matrix=p,O.u_merc_center=y,O.u_tile_id=[l.canonical.x,l.canonical.y,1<{const z=h.transform,U=z.pitch<15?RY(.07,.7,fe((14-z.zoom)/5,0,1)):.07,q=u.paint.get("line-trim-color-use-theme").constantOr("default")==="none";return{u_matrix:DY(h,l,u,p),u_texsize:l.imageAtlasTexture?l.imageAtlasTexture.size:[0,0],u_pixels_to_tile_units:z.calculatePixelsToTileUnitsMatrix(l),u_device_pixel_ratio:y,u_width_scale:b,u_floor_width_scale:S,u_image:0,u_tile_units_to_pixels:LY(l,z),u_units_to_pixels:[1/z.pixelsToGLUnits[0],1/z.pixelsToGLUnits[1]],u_alpha_discard_threshold:0,u_trim_offset:k,u_trim_fade_range:u.paint.get("line-trim-fade-range"),u_trim_gradient_mix_range:[1,1],u_trim_color:u.paint.get("line-trim-color").toPremultipliedRenderColor(q?null:u.lut).toArray01(),u_zbias_factor:U,u_tile_to_meter:Mt(l.tileID.canonical,0),u_ground_shadow_factor:I,u_pattern_transition:O}},s.dX=(h,l,u,p,y,b,S,k,I,O)=>{const z=h.transform,U=z.calculatePixelsToTileUnitsMatrix(l),q=u.paint.get("line-trim-color-use-theme").constantOr("default")==="none",K=z.pitch<15?RY(.07,.7,fe((14-z.zoom)/5,0,1)):.07;return{u_matrix:DY(h,l,u,p),u_pixels_to_tile_units:U,u_device_pixel_ratio:b,u_width_scale:S,u_floor_width_scale:k,u_units_to_pixels:[1/z.pixelsToGLUnits[0],1/z.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:y,u_texsize:OY(u)&&l.lineAtlasTexture?l.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:LY(l,h.transform),u_alpha_discard_threshold:0,u_trim_offset:I,u_trim_fade_range:u.paint.get("line-trim-fade-range"),u_trim_gradient_mix_range:[1,1],u_trim_color:u.paint.get("line-trim-color").toPremultipliedRenderColor(q?null:u.lut).toArray01(),u_zbias_factor:K,u_tile_to_meter:Mt(l.tileID.canonical,0),u_ground_shadow_factor:O}},s.dY=it,s.dZ=pE,s.d_=bt,s.da=function(h){const l=h.indexOf(Yx);return l>=0?h.slice(0,l):h},s.db=function(h){return h.indexOf(Yx)>=0},s.dc=function(h){const l=h.lastIndexOf(Yx);return l>=0?h.slice(l+1):""},s.dd=function(h){const l=[],u=h.id;return u===void 0&&l.push({message:`layers.${u}: missing required property "id"`}),h.render===void 0&&l.push({message:`layers.${u}: missing required method "render"`}),h.renderingMode&&h.renderingMode!=="2d"&&h.renderingMode!=="3d"&&l.push({message:`layers.${u}: property "renderingMode" must be either "2d" or "3d"`}),l},s.de=function(h,l,u,p){return h.type==="custom"?new zCe(h,l):new GCe[h.type](h,l,u,p)},s.df=Pt,s.dg=Bv,s.dh=lj,s.di=class extends y0{constructor(h,l){super(h._vectorTileFeature,h._z,h._x,h._y,h.id),h.state&&(this.state=Object.assign({},h.state)),this.target=l.target,this.namespace=l.namespace,l.properties&&(this.properties=l.properties),this.target&&("featuresetId"in this.target&&!this.target.importId||"layerId"in this.target)&&(this.source=h.source,this.sourceLayer=h.sourceLayer,this.layer=h.layer)}toJSON(){const h=super.toJSON();return h.target=this.target,h.namespace=this.namespace,h}},s.dj=FT,s.dk=function(h){return h({pluginStatus:Ko,pluginURL:bc}),FT.on("pluginStateChange",h),h},s.dl=V3,s.dm=class extends uu{constructor(h){super(h),this.current=g}set(h,l,u){if(this.fetchUniformLocation(h,l)){for(let p=0;p<9;p++)if(u[p]!==this.current[p]){this.current=u,this.gl.uniformMatrix3fv(this.location,!1,u);break}}}},s.dn=fx,s.dp=function(h,l,u){const p=$p(u.zoom),y=h.style.map._antialias,b=h.terrain&&h.terrain.exaggeration()>0;return p===0&&!y&&!b},s.dq=function(h){const l=h.pixelsPerMeter,u=l/ot(1,h.center.lat),p=L(new Float64Array(16));return B(p,p,[h.point.x,h.point.y,0]),V(p,p,[u,u,l]),Float32Array.from(p)},s.dr=wj,s.ds=function(h){const l=80.051129;h=fe(h,-80.051129,l)/l*90;const u=Math.pow(Math.abs(Math.sin(Hn(h))),3);return Math.round(u*(Ye.length-1))},s.dt=function(h,l,u,p){const y=l.getNorth(),b=l.getSouth(),S=l.getWest(),k=l.getEast(),I=1<0){const X=180/p;E(K,K,[X/O+1,0,0,0,X/z+1,0,-.5*X/U,.5*X/q,1])}return K[2]=I,K[5]=h.x,K[8]=h.y,K},s.du=fE,s.dv=vf,s.dw=function(h,l,u){const p=L(new Float64Array(16)),y=(l/(1<0&&++this._updateTime,this._activeRegions=[],this._prevRegions=[]}get updateTime(){return this._updateTime}getReplacementRegionsForTile(h,l=!1){const u=NK(new Ot(0,0),new Ot(sr,sr),h),p=[];if(l&&!c5(u,this._globalClipBounds))return p;for(const y of this._activeRegions){if(y.hiddenByOverlap||!c5(u,y))continue;const b=MAe(y.min,y.max,h);p.push({min:b.min,max:b.max,sourceId:this._sourceIds[y.priority],footprint:y.footprint,footprintTileId:y.tileId,order:y.order,clipMask:y.clipMask,clipScope:y.clipScope})}return p}setSources(h){this._setSources(h.map(l=>({getSourceId:()=>l.cache.id,getFootprints:()=>{const u=[];for(const p of l.cache.getVisibleCoordinates()){const y=l.cache.getTile(p).buckets[l.layer];y&&y.updateFootprints(p.toUnwrapped(),u)}return u},getOrder:()=>l.order,getClipMask:()=>l.clipMask,getClipScope:()=>l.clipScope})))}_addSource(h){const l=h.getFootprints();if(l.length===0)return;const u=h.getOrder(),p=h.getClipMask(),y=h.getClipScope();for(const b of l){if(!b.footprint)continue;const S=NK(b.footprint.min,b.footprint.max,b.id);this._activeRegions.push({min:S.min,max:S.max,hiddenByOverlap:!1,priority:this._sourceIds.length,tileId:b.id,footprint:b.footprint,order:u,clipMask:p,clipScope:y})}this._sourceIds.push(h.getSourceId())}_computeReplacement(){this._activeRegions.sort((l,u)=>l.priority-u.priority||Nj(l.min,u.min)||Nj(l.max,u.max)||l.order-u.order||l.clipMask-u.clipMask||function(p,y){const b=(S,k)=>S+k;return p.length-y.length||p.reduce(b,"").localeCompare(y.reduce(b,""))}(l.clipScope,u.clipScope));let h=this._activeRegions.length!==this._prevRegions.length;if(!h){let l=0;for(;!h&&l!==this._activeRegions.length;){const u=this._activeRegions[l],p=this._prevRegions[l];h=u.priority!==p.priority||!PK(u,p)||u.order!==p.order||u.clipMask!==p.clipMask||!Po(u.clipScope,p.clipScope),this._activeRegions[l].hiddenByOverlap=p.hiddenByOverlap,++l}}if(h){++this._updateTime;for(const u of this._activeRegions)u.order!==wE&&(this._globalClipBounds.min.x=Math.min(this._globalClipBounds.min.x,u.min.x),this._globalClipBounds.min.y=Math.min(this._globalClipBounds.min.y,u.min.y),this._globalClipBounds.max.x=Math.max(this._globalClipBounds.max.x,u.max.x),this._globalClipBounds.max.y=Math.max(this._globalClipBounds.max.y,u.max.y));const l=u=>{const p=this._activeRegions;if(u>=p.length)return u;const y=p[u].priority;for(;u1){let u=0,p=l(u);for(;u!==p;){let y=u;const b=u;for(;y!==p;){const S=this._activeRegions[y];S.hiddenByOverlap=!1;for(let k=0;k=0;l--)this._addSource(h[l]);this._computeReplacement()}},s.eH=xo,s.eI=dP,s.eJ=Op,s.eK=wE,s.eL=class{constructor(h){this._createGrid(h),this._createPoles(h)}destroy(){this._poleIndexBuffer.destroy(),this._gridBuffer.destroy(),this._gridIndexBuffer.destroy(),this._poleNorthVertexBuffer.destroy(),this._poleSouthVertexBuffer.destroy();for(const h of this._poleSegments)h.destroy();for(const h of this._gridSegments)h.withSkirts.destroy(),h.withoutSkirts.destroy()}_fillGridMeshWithLods(h,l){const u=new ic,p=new bs,y=[],b=h+1+2,S=l[0]+1,k=l[0]+1+(1+l.length),I=(O,z,U)=>{let q=O===b-1?O-2:O===0?O:O-1;return q+=U?24575:0,[q,z]};for(let O=0;O>>=0,h=Math.imul(2747636419^h,2654435769)>>>0,h=Math.imul(h^h>>>16,2654435769)>>>0,(h=Math.imul(h^h>>>16,2654435769)>>>0)/4294967296},s.ec=qW,s.ed=H3,s.ee=lu,s.ef=W,s.eg=function(h,l){return h[0]=l[0],h[1]=l[1],h[2]=l[2],h[3]=l[4],h[4]=l[5],h[5]=l[6],h[6]=l[8],h[7]=l[9],h[8]=l[10],h},s.eh=Dp,s.ei=t0,s.ej=function(h,l,u,p,y){return fe((h-l)/(u-l)*(y-p)+p,p,y)},s.ek=ki,s.el=function(h,l){var u=l[0],p=l[1],y=l[2],b=l[3],S=l[4],k=l[5],I=l[6],O=l[7],z=l[8],U=z*S-k*O,q=-z*b+k*I,K=O*b-S*I,X=u*U+p*q+y*K;return X?(h[0]=U*(X=1/X),h[1]=(-z*p+y*O)*X,h[2]=(k*p-y*S)*X,h[3]=q*X,h[4]=(z*u-y*I)*X,h[5]=(-k*u+y*b)*X,h[6]=K*X,h[7]=(-O*u+p*I)*X,h[8]=(S*u-p*b)*X,h):null},s.em=MI,s.en=2,s.eo=Xt,s.ep=Rr,s.eq=ie,s.er=function(h,l){var u=new m(3);ie(u,l);var p=1/u[0],y=1/u[1],b=1/u[2],S=l[0]*p,k=l[1]*y,I=l[2]*b,O=l[4]*p,z=l[5]*y,U=l[6]*b,q=l[8]*p,K=l[9]*y,X=l[10]*b,J=S+z+X,re=0;return J>0?(re=2*Math.sqrt(J+1),h[3]=.25*re,h[0]=(U-K)/re,h[1]=(q-I)/re,h[2]=(k-O)/re):S>z&&S>X?(re=2*Math.sqrt(1+S-z-X),h[3]=(U-K)/re,h[0]=.25*re,h[1]=(k+O)/re,h[2]=(q+I)/re):z>X?(re=2*Math.sqrt(1+z-S-X),h[3]=(q-I)/re,h[0]=(k+O)/re,h[1]=.25*re,h[2]=(U+K)/re):(re=2*Math.sqrt(1+X-S-z),h[3]=(k-O)/re,h[0]=(q+I)/re,h[1]=(U+K)/re,h[2]=.25*re),h},s.es=function(h,l){var u=2*Math.acos(l[3]),p=Math.sin(u/2);return p>f?(h[0]=l[0]/p,h[1]=l[1]/p,h[2]=l[2]/p):(h[0]=1,h[1]=0,h[2]=0),u},s.et=l4,s.eu=Hj,s.ev=Gj,s.ew=[1,1,1],s.ex=fb,s.ey=function(h,l,u,p){var y=l[0],b=l[1],S=l[2],k=l[3];return h[0]=y+p*(u[0]-y),h[1]=b+p*(u[1]-b),h[2]=S+p*(u[2]-S),h[3]=k+p*(u[3]-k),h},s.ez=sb,s.f=Jl,s.f0=ZW,s.f1=function(h){const l=[0,0,0],u=L(new Float64Array(16));return D(u,h.pixelMatrix,h.globeMatrix),xr(l,l,u),new Ot(l[0],l[1])},s.f2=BT,s.f3=function(h,l,u=!1){if(Ko===nc.deferred||Ko===nc.loading||Ko===nc.loaded)throw new Error("setRTLTextPlugin cannot be called multiple times.");bc=Pl.resolveURL(h),Ko=nc.deferred,xd=l,OT(),u||tj()},s.f4=so,s.f5=yo,s.f6=xa,s.f7=function(h){const l=cI();if(!l)return;const u=l.delete(yp);h&&u.then(()=>h()).catch(h)},s.f8=yr,s.f9=wg,s.fA=en,s.fB=function(h){let l=0;if(new Uint32Array(h,0,1)[0]!==uY){const u=new Uint32Array(h,0,7),[,,p,y,b,S]=u;l=u.byteLength+y+b+S+b,(p!==h.byteLength||l>=h.byteLength)&&zr("Invalid b3dm header information.")}return pY(h,l)},s.fC=function(h,l){const u=k5(h);for(const p of u){for(const y of p.meshes)fke(y);p.lights&&(p.lightMeshIndex=p.meshes.length,p.meshes.push(pke(p.lights,l)))}return u},s.fD=mP,s.fE=Ii,s.fF=hh,s.fG=nc,s.fH=function(h){Z_(),pd!=null&&pd.then(l=>{l.keys().then(u=>{for(let p=0;pzr(y.message))}).catch(u=>zr(u.message))}).catch(l=>zr(l.message))},s.fa=2,s.fb=ch,s.fc=m0,s.fd=aE,s.fe=eX,s.ff=tX,s.fg=IY,s.fh=fn,s.fi="hd_road_elevation",s.fj=Pi,s.fk=zt,s.fl=jj,s.fm=Up,s.fn=q5,s.fo=1,s.fp=_h,s.fq=function(h,l,u,p,y,b,S,k=1,I,O,z,U){h.createArrays(),h.tilePixelRatio=sr/(512*h.overscaling),h.compareText={},h.iconsNeedLinear=!1;const q=h.layers[0].layout,K=h.layers[0]._unevaluatedLayout._values,X={};X.scaleFactor=k,X.textSizeScaleRange=q.get("text-size-scale-range"),X.iconSizeScaleRange=q.get("icon-size-scale-range");const[J,re]=X.textSizeScaleRange,[ae,he]=X.iconSizeScaleRange;X.textScaleFactor=fe(X.scaleFactor,J,re),X.iconScaleFactor=fe(X.scaleFactor,ae,he);const ce=K["text-size"],ye=K["icon-size"];if(h.textSizeData.kind==="composite"){const{minZoom:Ue,maxZoom:Ve}=h.textSizeData;X.compositeTextSizes=[ce.possiblyEvaluate(new Jn(Ue,{worldview:z}),b),ce.possiblyEvaluate(new Jn(Ve,{worldview:z}),b)]}if(h.iconSizeData.kind==="composite"){const{minZoom:Ue,maxZoom:Ve}=h.iconSizeData;X.compositeIconSizes=[ye.possiblyEvaluate(new Jn(Ue,{worldview:z}),b,U),ye.possiblyEvaluate(new Jn(Ve,{worldview:z}),b,U)]}X.layoutTextSize=ce.possiblyEvaluate(new Jn(S+1,{worldview:z}),b),X.layoutIconSize=ye.possiblyEvaluate(new Jn(S+1,{worldview:z}),b,U),X.textMaxSize=ce.possiblyEvaluate(new Jn(18,{worldview:z}),b);const Ee=q.get("symbol-placement"),Ce=q.get("text-rotation-alignment")==="map"&&Ee!=="point",He=q.get("text-size");let ze=!1;const Ge=[];for(const Ue of h.features){const Ve=q.get("text-font").evaluate(Ue,{},b).join(","),gt=He.evaluate(Ue,{},b)*X.textScaleFactor,wt=X.layoutTextSize.evaluate(Ue,{},b)*X.textScaleFactor,kt=X.layoutIconSize.evaluate(Ue,{},b,U)*X.iconScaleFactor,jt={horizontal:{},vertical:void 0},Ct=Ue.text;let Bt,pt=[0,0];if(Ct){const yn=Ct.toString(),ms=q.get("text-letter-spacing").evaluate(Ue,{},b)*Pa,ei=q.get("text-line-height").evaluate(Ue,{},b)*Pa,Vn=I3(yn)?ms:0,Ai=q.get("text-anchor").evaluate(Ue,{},b),us=q.get("text-variable-anchor");if(!us){const Ss=q.get("text-radial-offset").evaluate(Ue,{},b);if(Ss)pt=pZ(Ai,[Ss*Pa,K5]);else{const vo=q.get("text-offset").evaluate(Ue,{},b);pt=[vo[0]*Pa,vo[1]*Pa]}}let Na=Ce?"center":q.get("text-justify").evaluate(Ue,{},b);const ds=Ee==="point",ws=ds?q.get("text-max-width").evaluate(Ue,{},b)*Pa:1/0,Hs=Ss=>{h.allowVerticalPlacement&<(yn)&&(jt.vertical=O5(Ct,l,u,y,Ve,ws,ei,Ai,Ss,Vn,pt,Cc.vertical,!0,wt,gt,I,X.textScaleFactor))};if(!Ce&&us){const Ss=Na==="auto"?us.map(Ra=>Y5(Ra)):[Na];let vo=!1;for(let Ra=0;Ra=0||!LT(yn)){const Ss=O5(Ct,l,u,y,Ve,ws,ei,Ai,Na,Vn,pt,Cc.horizontal,!1,wt,gt,I,X.textScaleFactor);Ss&&(jt.horizontal[Na]=Ss)}Hs(ds?"left":Na)}}let It,Lt,$t,Gt,mr,nr,rr=!1;const Ht=q.get("icon-text-fit").evaluate(Ue,{},b);if(Ue.icon&&Ue.icon.hasPrimary()){const yn=OE(Ue.icon,h.iconSizeData,K["icon-size"],b,h.zoom,Ue,I,X.iconScaleFactor,z,U);It=yn.iconPrimary,$t=yn.iconSecondary;const ms=It.toString();if(Lt=p.get(ms),Lt&&(mr=q.get("icon-offset").evaluate(Ue,{},b),nr=q.get("icon-anchor").evaluate(Ue,{},b),Bt=Qj(y.get(ms),$t?y.get($t.toString()):void 0,mr,nr),rr=Lt.sdf,h.sdfIcons===void 0?h.sdfIcons=Lt.sdf:h.sdfIcons!==Lt.sdf&&zr("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(Lt.pixelRatio!==h.pixelRatio||q.get("icon-rotate").constantOr(1)!==0)&&(h.iconsNeedLinear=!0)),$t){const ei=$t.toString();Gt=p.get(ei)}}ze=ze||!(!Ue.icon||!Ue.icon.hasSecondary());const fr=sP(jt.horizontal)||jt.vertical;h.iconsInText||(h.iconsInText=!!fr&&fr.iconsInText);const Er=wt*X.textScaleFactor/Pa,{defaultShapedIcon:$r,verticallyShapedIcon:Lr}=TCe(h,Bt,q,Ue,b,jt,Er,mr,Ht);Ht!=="none"&&Bt&&(ZY(Bt)||XY(Bt))&&(iP(0,Lt,It,Bt,$r,Ht,O,p,y),iP(0,Gt,$t,Bt,$r,Ht,O,p,y),Lr&&(iP(0,Lt,It,Bt,Lr,Ht,O,p,y),iP(0,Gt,$t,Bt,Lr,Ht,O,p,y))),Bt=$r;const{iconBBox:on,iconVerticalBBox:On,textBBox:ln,textVerticalBBox:Fn}=_Ce(h,Bt,Lr,q,Ue,b,kt,mr,X,y,nr,jt,wt,pt,U);Ge.push({feature:Ue,shapedTextOrientations:jt,shapedText:fr,shapedIcon:Bt,iconPrimary:It,iconSecondary:$t,iconOffset:mr,iconAnchor:nr,verticallyShapedIcon:Lr,layoutTextSize:wt,layoutIconSize:kt,textOffset:pt,isSDFIcon:rr,iconTextFit:Ht,iconCollisionBounds:on,iconVerticalCollisionBounds:On,textCollisionBounds:ln,textVerticalCollisionBounds:Fn})}return{featureData:Ge,sizes:X,hasAnySecondaryIcon:ze,textAlongLine:Ce,symbolPlacement:Ee}},s.fr=G5,s.fs=V5,s.ft=aZ,s.fu=oZ,s.fv=function(h,l,u,p,y,b,S,k,I,O){h.iconAtlasPositions=O.iconPositions;const{featureData:z,hasAnySecondaryIcon:U,sizes:q,textAlongLine:K,symbolPlacement:X}=l;for(const J of z){const{shapedIcon:re,verticallyShapedIcon:ae,feature:he,shapedTextOrientations:ce,shapedText:ye,layoutTextSize:Ee,textOffset:Ce,isSDFIcon:He,iconPrimary:ze,iconSecondary:Ge,iconTextFit:Ue,iconOffset:Ve,iconCollisionBounds:gt,iconVerticalCollisionBounds:wt,textCollisionBounds:kt}=J;xZ(re,O.iconPositions,ze,Ge),xZ(ae,O.iconPositions,ze,Ge),SCe(ce,O.iconPositions),wCe(ze,Ge,O.iconPositions),(ye||re)&&ECe(h,he,ce,re,ae,I,q,Ee,0,Ce,He,p,y,S,k,U,Ue,Ve,K,X,gt,wt,kt)}u&&h.generateCollisionDebugBuffers(b,h.collisionBoxArray,q.textScaleFactor)},s.fw=Yj,s.fx=Xn,s.fy=function(h){return h<=1?1:Math.pow(2,Math.floor(Math.log2(h)))},s.fz=bP,s.g=Rn,s.h=function(h,l){return Km(Object.assign(h,{method:"GET"}),l)},s.i=function(h){return Rn.API_STYLE_REGEX.test(h)&&!ec(h)},s.j=function(h){return btoa(encodeURIComponent(h).replace(/%([0-9A-F]{2})/g,(l,u)=>String.fromCharCode(+("0x"+u))))},s.k=X_,s.l=function(h){return decodeURIComponent(atob(h).split("").map(l=>"%"+("00"+l.charCodeAt(0).toString(16)).slice(-2)).join(""))},s.m=function(h,l){return Km(Object.assign(h,{type:"json"}),l)},s.n=Zm,s.o=Pl,s.p=function(h,l){return Km(Object.assign(h,{method:"POST"}),l)},s.q=Do,s.r=dt,s.s=function(h){try{const l=self[h];return l.setItem("_mapbox_test_",1),l.removeItem("_mapbox_test_"),!0}catch{return!1}},s.t=et,s.u=function(){return function h(l){return l?(l^Math.random()*(16>>l/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,h)}()},s.v=function(h){return!!h&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(h)},s.w=zr,s.x=class{constructor(h){this.cache=new Map,this.textures=new Map,this.textureAccessTimes=new Map,this.textureMemoryUsed=0,this.maxTextureMemory=1024*(h&&h.maxTextureMemoryMB?h.maxTextureMemoryMB:256)*1024,this.finalizationRegistry=new FinalizationRegistry(l=>{this.cache.delete(l),this.clearExpiredTextures()})}calculateTextureMemory(h){return h.image?Math.ceil(h.image.width*h.image.height*4*(h.patternPositions.size>0?1.33:1)):0}evictTexture(h){const l=this.textures.get(h);if(l){const u=this.calculateTextureMemory(h);l.destroy(),this.textures.delete(h),this.textureAccessTimes.delete(h),this.textureMemoryUsed-=u}}evictTexturesIfNeeded(h){for(;this.textureMemoryUsed+h>this.maxTextureMemory&&this.textures.size>0;){let l=null,u=1/0;for(const[p]of this.textures.entries()){const y=this.textureAccessTimes.get(p)||0;ythis._layers[dr.id]),dt=rt[0];if(dt.visibility==="none")continue;const it=dt.source||"";let ht=this.familiesBySource[it];ht||(ht=this.familiesBySource[it]=Object.create(null));const zt=dt.sourceLayer||"_geojsonTileLayer";let Pt=ht[zt];Pt||(Pt=ht[zt]=[]),Pt.push(rt)}}}const C=1*f.fa;class N{constructor(de){const fe={},Me=[];for(const dt in de){const it=de[dt],ht=fe[dt]={};for(const zt in it.glyphs){const Pt=it.glyphs[+zt];if(!Pt||Pt.bitmap.width===0||Pt.bitmap.height===0)continue;const dr=Pt.metrics.localGlyph?C:1,Br={x:0,y:0,w:Pt.bitmap.width+2*dr,h:Pt.bitmap.height+2*dr};Me.push(Br),ht[zt]=Br}}const{w:Ke,h:et}=f.J(Me),rt=new f.f9({width:Ke||1,height:et||1});for(const dt in de){const it=de[dt];for(const ht in it.glyphs){const zt=it.glyphs[+ht];if(!zt||zt.bitmap.width===0||zt.bitmap.height===0)continue;const Pt=fe[dt][ht],dr=zt.metrics.localGlyph?C:1;f.f9.copy(zt.bitmap,rt,{x:0,y:0},{x:Pt.x+dr,y:Pt.y+dr},zt.bitmap)}}this.image=rt,this.positions=fe}}function L(ct,de,fe){ct[de]?fe&&(ct[de].center=fe):ct[de]={floorIds:new Set,center:fe||[0,0],floors:{}}}function M(ct,de,fe,Me){for(const Ke of de)L(ct,Ke),ct[Ke].floors[fe]=Me,ct[Ke].floorIds.add(fe)}function D(ct){return{id:ct.properties.id.toString(),center:[ct.properties.center_lon||0,ct.properties.center_lat||0]}}function B(ct,de){const fe=ct.properties.id.toString(),Me=!!ct.properties.is_default&&ct.properties.is_default,Ke=ct.properties.connected_floor_ids?new Set(ct.properties.connected_floor_ids.toString().split(";")):new Set,et=ct.properties.conflicted_floor_ids?new Set(ct.properties.conflicted_floor_ids.toString().split(";")):new Set,rt=ct.properties.structure_ids?new Set(ct.properties.structure_ids.toString().split(";")):new Set,dt=ct.properties.name.toString(),it=ct.properties.z_index,ht=function(zt,Pt){const dr=zt.loadGeometry();if(!dr||dr.length===0)return;const Br=dr.map(qr=>qr.map(zr=>f.fb(zr,Pt,zt.extent)));return Br.length===0?void 0:{type:"Polygon",coordinates:[Br[0]]}}(ct,de);return{id:fe,isDefault:Me,connections:Ke,conflicts:et,buildings:rt,name:dt,zIndex:it,geometry:ht}}function V(ct,de){return de.every(fe=>ct.properties&&ct.properties[fe]!=null)}function G(ct){return V(ct,["type","id","name"])&&ct.properties.type==="structure"}function W(ct){return V(ct,["type","id","name","z_index"])&&ct.properties.type==="floor"}f.f8(N,"GlyphAtlas");class Z{constructor(de){this.tileID=new f.aR(de.tileID.overscaledZ,de.tileID.wrap,de.tileID.canonical.z,de.tileID.canonical.x,de.tileID.canonical.y),this.tileZoom=de.tileZoom,this.uid=de.uid,this.zoom=de.zoom,this.lut=de.lut,this.canonical=de.tileID.canonical,this.pixelRatio=de.pixelRatio,this.tileSize=de.tileSize,this.source=de.source,this.scope=de.scope,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=de.showCollisionBoxes,this.collectResourceTiming=!!de.request&&de.request.collectResourceTiming,this.promoteId=de.promoteId,this.renderSourceType=de.renderSourceType,this.tileTransform=f.fc(de.tileID.canonical,de.projection),this.projection=de.projection,this.worldview=de.worldview,this.localizableLayerIds=de.localizableLayerIds,this.brightness=de.brightness,this.extraShadowCaster=!!de.extraShadowCaster,this.tessellationStep=de.tessellationStep,this.scaleFactor=de.scaleFactor,this.worldview=de.worldview,this.indoor=de.indoor}parse(de,fe,Me,Ke,et,rt){this.status="parsing",this.data=de,this.collisionBoxArray=new f.fd;const dt=new f.fe(Object.keys(de.layers).sort()),it=new f.ff(this.tileID,this.promoteId);it.bucketLayerIDs=[];const ht={},zt=new f.fg(256,256),Pt={featureIndex:it,iconDependencies:new Map,patternDependencies:new Map,glyphDependencies:{},lineAtlas:zt,availableImages:Me,brightness:this.brightness,scaleFactor:this.scaleFactor,elevationFeatures:void 0,activeFloors:void 0};this.indoor&&(Pt.activeFloors=function(zr,sn,Tn,In){const Ii=sn.indoorState.activeFloorsVisible;if(!sn.sourceLayers)return Ii?sn.indoorState.activeFloors:void 0;const Ms=function(pi,os){if(!pi)return f.w("No source layers defined in indoor specification"),os;if(pi.size===0)return os;const aa=pi.difference(os);for(const ji of aa)f.w(`Missing source layer required in indoor specification: ${ji}`);return os.intersection(os)}(sn.sourceLayers,new Set(Object.keys(zr.layers))),Is=sn.indoorState,xs=function(pi,os,aa,ji,ls){const _s={};for(const Rn of os){const xa=pi.layers[Rn];if(xa)for(let yo=0;yo=ji.maxzoom||ji.visibility==="none")continue;Q(aa,this.zoom,Pt.brightness,Me,this.worldview,Pt.activeFloors);const ls=ht[ji.id]=ji.createBucket({index:it.bucketLayerIDs.length,layers:aa,zoom:this.zoom,lut:this.lut,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Is,sourceID:this.source,projection:this.projection.spec,tessellationStep:this.tessellationStep,styleDefinedModelURLs:Ke,worldview:this.worldview,localizable:pi,availableImages:Me,maxUniformBufferBindings:this.maxUniformBufferBindings,maxUniformBlockSizeDwords:this.maxUniformBlockSizeDwords,disableSymbolUBO:this.disableSymbolUBO});it.bucketLayerIDs.push(aa.map(Rn=>f.F(Rn.id,Rn.scope)));let _s=ls.prepare?ls.prepare():null;_s!=null?(_s=_s.then(()=>ls.populate(xs,Pt,this.tileID.canonical,this.tileTransform)),dr.push(_s)):ls.populate(xs,Pt,this.tileID.canonical,this.tileTransform)}}const qr=()=>{zt.trim();const zr=!(!Pt.elevationFeatures||!Pt.elevationFeatures.some(ji=>ji.heightRange.min<0));let sn,Tn,In,Ii,Ms,Is,xs;const pi={type:"maybePrepare",renderSourceType:this.renderSourceType,zoom:this.zoom},os=()=>{if(sn)return this.status="done",rt(sn);if(this.extraShadowCaster)this.status="done",rt(null,{buckets:Object.values(ht).filter(ji=>!ji.isEmpty()),featureIndex:it,collisionBoxArray:null,hasTunnelGeometry:zr,glyphAtlasImage:null,lineAtlas:null,imageAtlas:null,brightness:Pt.brightness,glyphMap:null,iconMap:null,glyphPositions:null});else if(Tn&&In&&Ii&&xs){const ls=new N(Tn),_s=new Map;for(const[yo,so]of In.entries()){const{imagePosition:Jl}=f.fn(yo,so,f.fo);_s.set(yo,Jl)}const Rn={};for(const yo in ht){const so=ht[yo];so instanceof f.fp&&(Q(so.layers,this.zoom,Pt.brightness,Me,this.worldview,Pt.activeFloors),Rn[yo]=f.fq(so,Tn,ls.positions,In,_s,this.tileID.canonical,this.tileZoom,this.scaleFactor,this.pixelRatio,Ms,this.worldview,Me))}const xa={iconsPending:!0,patternsPending:!0};this.rasterizeIfNeeded(et,In,Ms,()=>{xa.iconsPending=!1,aa(Rn,ls,xa,void 0,xs)}),this.rasterizeIfNeeded(et,Ii,Is,()=>{xa.patternsPending=!1,aa(Rn,ls,xa,void 0,xs)})}},aa=(ji,ls,_s,Rn,xa)=>{if(_s.iconsPending||_s.patternsPending)return;const yo=In.size>0||Ii.size>0,so=Object.keys(ji).length>0;if(!yo&&!so)return this.status="done",void rt(null,{buckets:Object.values(ht).filter(ec=>!ec.isEmpty()),featureIndex:it,collisionBoxArray:this.collisionBoxArray,hasTunnelGeometry:zr,glyphAtlasImage:ls.image,lineAtlas:zt,imageAtlas:null,brightness:Pt.brightness});const Jl=(ec,dd)=>{for(const fl in ht){const tc=ht[fl];if(fl in ji)f.fv(tc,ji[fl],this.showCollisionBoxes,Me,this.tileID.canonical,this.tileZoom,this.projection,this.brightness,In,dd);else if(tc.hasPattern&&(tc instanceof f.fw||tc instanceof f.fl||tc instanceof f.e0)){Q(tc.layers,this.zoom,Pt.brightness,Me,this.worldview,Pt.activeFloors);const hd=Object.fromEntries(dd.patternPositions);tc.addFeatures(Pt,this.tileID.canonical,hd,Me,this.tileTransform,this.brightness)}}this.status="done",rt(null,{buckets:Object.values(ht).filter(fl=>!fl.isEmpty()),featureIndex:it,collisionBoxArray:this.collisionBoxArray,hasTunnelGeometry:zr,glyphAtlasImage:ls.image,lineAtlas:zt,imageAtlas:ec,brightness:Pt.brightness})};if(yo){const ec=new Map,dd=f.fr(In,ec),fl=f.fr(Ii,ec),tc=new f.fs(dd,fl,xa,this.lut,ec);et.send("checkAtlasCache",{descriptor:tc,scope:this.scope},(hd,xc)=>{let fd,ru;if(hd&&f.w(`[Worker] Error checking atlas cache: ${hd.message}`),xc)fd=new f.ft(xc.sourceHash),ru=xc;else{const Pl=new f.fu(In,Ii,this.lut,xa);fd=Pl,ru=Pl}Jl(fd,ru)})}else Jl(null,{iconPositions:new Map,patternPositions:new Map})};if(!this.extraShadowCaster){const ji=f.fk(Pt.glyphDependencies,Rn=>Object.keys(Rn).map(Number));Object.keys(ji).length?et.send("getGlyphs",{uid:this.uid,stacks:ji},(Rn,xa)=>{sn||(sn=Rn,Tn=xa,os())},void 0,!1,pi):Tn={},xs=new Map;const ls=Array.from(Pt.iconDependencies.keys()).map(Rn=>f.I.parse(Rn));ls.length?et.send("getImages",{images:ls,source:this.source,scope:this.scope,tileID:this.tileID,type:"icons"},(Rn,xa)=>{if(!sn){sn=Rn,In=new Map,Ms=this.updateImageMapAndGetImageTaskQueue(In,xa.images,Pt.iconDependencies);for(const[yo,so]of xa.versions.entries())xs.set(yo,so);os()}},void 0,!1,pi):(In=new Map,Ms=new Map);const _s=Array.from(Pt.patternDependencies.keys()).map(Rn=>f.I.parse(Rn));_s.length?et.send("getImages",{images:_s,source:this.source,scope:this.scope,tileID:this.tileID,type:"patterns"},(Rn,xa)=>{if(!sn){sn=Rn,Ii=new Map,Is=this.updateImageMapAndGetImageTaskQueue(Ii,xa.images,Pt.patternDependencies);for(const[yo,so]of xa.versions.entries())xs.set(yo,so);os()}},void 0,!1,pi):(Ii=new Map,Is=new Map)}if(Pt.elevationFeatures&&Pt.elevationFeatures.length>0){const ji=[];for(const _s of Object.values(ht))if(_s instanceof f.fl){const Rn=_s.getUnevaluatedPortalGraph();Rn&&ji.push(Rn)}const ls=f.fm.evaluate(ji);for(const _s of Object.values(ht))if(_s instanceof f.fl){const Rn=de.layers[dt.decode(_s.sourceLayerIndex)];_s.setEvaluatedPortalGraph(ls,Rn,this.tileID.canonical,Pt.availableImages,Pt.brightness)}}os()};dr.length>0?Promise.allSettled(dr).then(qr).catch(rt):qr()}updateParameters(de){this.scaleFactor=de.scaleFactor,this.showCollisionBoxes=de.showCollisionBoxes,this.projection=de.projection,this.brightness=de.brightness,this.tileTransform=f.fc(de.tileID.canonical,de.projection),this.extraShadowCaster=de.extraShadowCaster,this.lut=de.lut,this.worldview=de.worldview,this.indoor=de.indoor}rasterizeIfNeeded(de,fe,Me,Ke){Array.from(fe.values()).some(et=>et.usvg)?this.rasterize(de,fe,Me,Ke):Ke()}updateImageMapAndGetImageTaskQueue(de,fe,Me){const Ke=new Map;for(const et of fe.keys()){const rt=Me.get(et)||[];for(const dt of rt){const it=dt.toString(),ht=fe.get(dt.id.toString());ht.usvg?Ke.has(it)||(Ke.set(it,dt),de.set(it,Object.assign({},ht))):de.set(it,ht)}}return Ke}rasterize(de,fe,Me,Ke){this.rasterizeTask=de.send("rasterizeImages",{scope:this.scope,tasks:Me},(et,rt)=>{if(!et)for(const[dt,it]of rt.entries()){const ht=Object.assign(fe.get(dt),{data:it});fe.set(dt,ht)}Ke()})}cancelRasterize(){this.rasterizeTask&&this.rasterizeTask.cancel()}}function Q(ct,de,fe,Me,Ke,et){const rt=new f.ae(de,{brightness:fe,worldview:Ke,activeFloors:et});for(const dt of ct)dt.recalculate(rt,Me)}class se extends f.E{constructor({actor:de,layerIndex:fe,availableImages:Me,availableModels:Ke,isSpriteLoaded:et,tileProvider:rt,brightness:dt,maxUniformBufferBindings:it,maxUniformBlockSizeDwords:ht,disableSymbolUBO:zt}){super(),this.actor=de,this.layerIndex=fe,this.availableImages=Me,this.availableModels=Ke,this.loadVectorData=f.aO,this.tileProvider=rt,this.loading={},this.loaded={},this.deduped=new f.aN(de.scheduler),this.isSpriteLoaded=et,this.scheduler=de.scheduler,this.brightness=dt,this.maxUniformBufferBindings=it,this.maxUniformBlockSizeDwords=ht,this.disableSymbolUBO=zt}loadTileData(de,fe){if(!this.tileProvider)return this.loadVectorData(de,fe);const Me=new AbortController,{z:Ke,x:et,y:rt}=de.tileID.canonical;return this.tileProvider.loadTile({z:Ke,x:et,y:rt},{request:de.request,signal:Me.signal}).then(dt=>{if(Me.signal.aborted)return;if(dt==null){const ht=new Error("Tile not found");return ht.status=404,fe(ht)}if(dt.data===null)return fe(null,null);const it=new Map;dt.expires&&it.set("expires",dt.expires),dt.cacheControl&&it.set("cache-control",dt.cacheControl),fe(null,{rawData:dt.data,responseHeaders:it})}).catch(dt=>{Me.signal.aborted||fe(dt instanceof Error?dt:new Error(String(dt)))}),()=>Me.abort()}loadTile(de,fe){const Me=de.uid,Ke=de&&de.request,et=Ke&&Ke.collectResourceTiming,rt=this.loading[Me]=new Z(de);rt.maxUniformBufferBindings=this.maxUniformBufferBindings,rt.maxUniformBlockSizeDwords=this.maxUniformBlockSizeDwords,rt.disableSymbolUBO=this.disableSymbolUBO,rt.abort=this.loadTileData(de,(dt,it)=>{const ht=!this.loading[Me];if(delete this.loading[Me],rt.cancelRasterize(),ht||dt||!it)return rt.status="done",ht||(this.loaded[Me]=rt),fe(dt);const zt=it.rawData,Pt={},dr=f.aP(it.responseHeaders);dr&&dr.expires&&(Pt.expires=dr.expires),dr&&dr.cacheControl&&(Pt.cacheControl=dr.cacheControl),rt.vectorTile=it.vectorTile||new f.fx(new f.a$(zt));const Br=()=>{rt.parse(rt.vectorTile,this.layerIndex,this.availableImages,this.availableModels,this.actor,(qr,zr)=>{if(qr||!zr)return fe(qr);const sn={};if(et){const Tn=m(Ke);Tn.length>0&&(sn.resourceTiming=JSON.parse(JSON.stringify(Tn)))}fe(null,Object.assign({rawTileData:zt.slice(0),responseHeaders:it.responseHeaders},zr,Pt,sn))})};this.isSpriteLoaded?Br():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(Br,{type:"parseTile",renderSourceType:de.renderSourceType,zoom:de.tileZoom}):Br()}),this.loaded=this.loaded||{},this.loaded[Me]=rt})}reloadTile(de,fe){const Me=this.loaded,Ke=de.uid;if(Me&&Me[Ke]){const et=Me[Ke];et.updateParameters(de);const rt=(dt,it)=>{const ht=et.reloadCallback;ht&&(delete et.reloadCallback,et.parse(et.vectorTile,this.layerIndex,this.availableImages,this.availableModels,this.actor,ht)),fe(dt,it)};et.status==="parsing"?et.reloadCallback=rt:et.status==="done"&&(et.vectorTile?et.parse(et.vectorTile,this.layerIndex,this.availableImages,this.availableModels,this.actor,rt):rt())}else fe(null,void 0)}abortTile(de,fe){const Me=de.uid,Ke=this.loading[Me];Ke&&(Ke.abort&&Ke.abort(),delete this.loading[Me]),fe()}removeTile(de,fe){const Me=this.loaded,Ke=de.uid;Me&&Me[Ke]&&delete Me[Ke],fe()}}class ie{constructor(de){this.loading={}}loadTile(de,fe){const Me=de.uid,{cancel:Ke}=f.b1(de.request,(et,rt,dt)=>{const it=!this.loading[Me];if(delete this.loading[Me],it||et||!rt)return fe(et);this.decodeTile(Me,rt,de.encoding).then(ht=>{const{expires:zt,cacheControl:Pt}=f.aP(dt);fe(null,Object.assign(ht,{expires:zt,cacheControl:Pt}))}).catch(ht=>fe(ht))});this.loading[Me]={cancel:Ke}}async decodeTile(de,fe,Me){const Ke=await createImageBitmap(new Blob([new Uint8Array(fe)],{type:"image/png"})),et=1-(Ke.width-f.fy(Ke.width))/2,rt=et<1,dt=this.getImageData(Ke,et);return Ke.close(),{dem:new f.fz(de,dt,Me,rt),borderReady:rt}}reloadTile(de,fe){fe(null,null)}abortTile(de,fe){const Me=de.uid,Ke=this.loading[Me];Ke&&(Ke.cancel(),delete this.loading[Me]),fe()}removeTile(de,fe){fe()}getImageData(de,fe){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(de.width,de.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=de.width,this.offscreenCanvas.height=de.height,this.offscreenCanvasContext.drawImage(de,0,0,de.width,de.height);const Me=this.offscreenCanvasContext.getImageData(-fe,-fe,de.width+2*fe,de.height+2*fe);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),Me}}f.a_.setPbf(f.a$);class ue{constructor(de){this._mrt=new f.a_(de.partial?30:1/0),this._isHeaderLoaded=!1,this.uid=de.uid,this.tileID=de.tileID,this.source=de.source}parse(de,fe){const Me=this._mrt;this.status="parsing",this._entireBuffer=de;try{Me.parseHeader(de),this._isHeaderLoaded=!0;const Ke=[];for(const et in Me.layers){const rt=Me.getLayer(et),dt=rt.getDataRange(rt.getBandList()),it=Me.createDecodingTask(dt),ht=de.slice(dt.firstByte,dt.lastByte+1),zt=f.a_.performDecoding(ht,it).then(Pt=>it.complete(null,Pt)).catch(Pt=>it.complete(Pt,null));Ke.push(zt)}Promise.allSettled(Ke).then(()=>fe(null,Me)).catch(et=>fe(et))}catch(Ke){fe(Ke)}}}class be{constructor({actor:de}){this.actor=de,this.loading={},this.loaded={}}loadTile(de,fe){const Me=de.uid,Ke=de.request,et=this.loading[Me]=new ue(de),{cancel:rt}=f.b1(Ke,(dt,it,ht)=>{const zt=!this.loading[Me];if(delete this.loading[Me],zt||dt||!it)return et.status="done",zt||(this.loaded[Me]=et),fe(dt);et.parse(it,(Pt,dr)=>{if(Pt||!dr)return fe(Pt);fe(null,dr,ht)}),this.loaded[Me]=et});et.abort=rt}reloadTile(de,fe){fe(null,void 0)}abortTile(de,fe){const Me=de.uid,Ke=this.loading[Me];Ke&&(Ke.abort&&Ke.abort(),delete this.loading[Me]),fe()}removeTile(de,fe){const Me=de.uid;this.loaded[Me]&&delete this.loaded[Me],fe()}decodeRasterArray(de,fe){f.a_.performDecoding(de.buffer,de.task).then(Me=>fe(null,Me)).catch(Me=>fe(Me))}}const Te=f.fA.prototype.toGeoJSON;class we{constructor(de){this._feature=de,this.extent=f.an,this.type=de.type,this.properties=de.tags,"id"in de&&!isNaN(de.id)&&(this.id=parseInt(de.id,10))}loadGeometry(){if(this._feature.type===1){const de=[];for(const fe of this._feature.geometry)de.push([new f.P(fe[0],fe[1])]);return de}{const de=[];for(const fe of this._feature.geometry){const Me=[];for(const Ke of fe)Me.push(new f.P(Ke[0],Ke[1]));de.push(Me)}return de}}toGeoJSON(de,fe,Me){return Te.call(this,de,fe,Me)}}class Oe{constructor(de,fe){this.name=de,this.extent=f.an,this.length=fe.length,this._jsonFeatures=fe}feature(de){return new we(this._jsonFeatures[de])}}class Ae{constructor(de){this.layers={},this.extent=f.an;for(const fe of Object.keys(de))this.layers[fe]=new Oe(fe,de[fe])}}const Se=64/4096;class ge{constructor(){this.features=new Map}clear(){this.features.clear()}load(de=[],fe){for(const Me of de){const Ke=Me.id;if(Ke==null)continue;let et=this.features.get(Ke);et&&this.updateCache(et,fe),Me.geometry?(et=_e(Me),this.updateCache(et,fe),this.features.set(Ke,et)):this.features.delete(Ke),this.updateCache(et,fe)}}updateCache(de,fe){for(const{canonical:Me,uid:Ke}of Object.values(fe)){const{z:et,x:rt,y:dt}=Me;je(de,Math.pow(2,et),rt,dt)&&delete fe[Ke]}}getTile(de,fe,Me){const Ke=Math.pow(2,de),et=[];for(const rt of this.features.values())je(rt,Ke,fe,Me)&&et.push(at(rt,Ke,fe,Me));return{features:et}}getFeatures(){return[...this.features.values()]}}function je({minX:ct,minY:de,maxX:fe,maxY:Me},Ke,et,rt){return ct<(et+1+Se)/Ke&&de<(rt+1+Se)/Ke&&fe>(et-Se)/Ke&&Me>(rt-Se)/Ke}function _e(ct){const{id:de,geometry:fe,properties:Me}=ct;if(!fe)return;if(fe.type==="GeometryCollection")throw new Error("GeometryCollection not supported in dynamic mode.");const{type:Ke,coordinates:et}=fe,rt={id:de,type:1,geometry:[],tags:Me,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},dt=rt.geometry;if(Ke==="Point")xe(et,dt,rt);else if(Ke==="MultiPoint")for(const it of et)xe(it,dt,rt);else if(Ke==="LineString")rt.type=2,Pe(et,dt,rt);else if(Ke==="MultiLineString")rt.type=2,Ze(et,dt,rt);else if(Ke==="Polygon")rt.type=3,Ze(et,dt,rt,!0);else{if(Ke!=="MultiPolygon")throw new Error("Input data is not a valid GeoJSON object.");rt.type=3;for(const it of et)Ze(it,dt,rt,!0)}return rt}function xe([ct,de],fe,Me){const Ke=f.aH(ct);let et=f.aL(de);et=et<0?0:et>1?1:et,fe.push(Ke,et),Me.minX=Math.min(Me.minX,Ke),Me.minY=Math.min(Me.minY,et),Me.maxX=Math.max(Me.maxX,Ke),Me.maxY=Math.max(Me.maxY,et)}function Pe(ct,de,fe,Me=!1,Ke=!1){const et=[];for(const rt of ct)xe(rt,et,fe);de.push(et),Me&&function(rt,dt){let it=0;for(let ht=0,zt=rt.length,Pt=zt-2;ht0===dt)for(let ht=0,zt=rt.length;ht=rt&&Pt>=rt||(ht>=rt?(zt+=Math.round(qr*((rt-ht)/Br)),ht=rt):Pt>=rt&&(dr=zt+Math.round(qr*((rt-ht)/Br)),Pt=rt),zt>=rt&&dr>=rt||(zt>=rt?(ht+=Math.round(Br*((rt-zt)/qr)),zt=rt):dr>=rt&&(Pt=ht+Math.round(Br*((rt-zt)/qr)),dr=rt),dt&&ht===dt[dt.length-1][0]&&zt===dt[dt.length-1][1]||(dt=[[ht,zt]],Ke.push(dt)),dt.push([Pt,dr])))))}}function xt(ct,de,fe,Me,Ke){const et=(fe-Se)/de,rt=(Me-Se)/de,dt=(fe+1+Se)/de,it=(Me+1+Se)/de;function ht(dr,Br){let qr=0;return drdt&&(qr|=2),Brit&&(qr|=8),qr}let zt=[];for(let dr=1;dr<=8;dr*=2){let Br=ct[ct.length-2],qr=ct[ct.length-1],zr=!(ht(Br,qr)&dr);for(let sn=0;sn>31}function vt(ct,de){const{geometry:fe,type:Me}=ct;let Ke=0,et=0;if(Me===1){de.writeVarint(Rt(1,fe.length));for(const rt of fe){const dt=rt[0]-Ke,it=rt[1]-et;de.writeVarint(er(dt)),de.writeVarint(er(it)),Ke+=dt,et+=it}}else for(const rt of fe){if(rt.length===0)continue;de.writeVarint(Rt(1,1));const dt=rt.length-(Me===3?1:0);for(let it=0;itct},tn=Math.fround||(or=new Float32Array(1),ct=>(or[0]=+ct,or[0]));var or;class Sr{constructor(de){this.options=Object.assign(Object.create(_r),de),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(de){const{log:fe,minZoom:Me,maxZoom:Ke}=this.options;fe&&console.time("total time");const et=`prepare ${de.length} points`;fe&&console.time(et),this.points=de;const rt=[];for(let it=0;it=Me;it--){const ht=+Date.now();dt=this.trees[it]=this._createTree(this._cluster(dt,it)),fe&&console.log("z%d: %d clusters in %dms",it,dt.numItems,+Date.now()-ht)}return fe&&console.timeEnd("total time"),this}getClusters(de,fe){let Me=((de[0]+180)%360+360)%360-180;const Ke=Math.max(-90,Math.min(90,de[1]));let et=de[2]===180?180:((de[2]+180)%360+360)%360-180;const rt=Math.max(-90,Math.min(90,de[3]));if(de[2]-de[0]>=360)Me=-180,et=180;else if(Me>et){const Pt=this.getClusters([Me,Ke,180,rt],fe),dr=this.getClusters([-180,Ke,et,rt],fe);return Pt.concat(dr)}const dt=this.trees[this._limitZoom(fe)],it=dt.range(Je(Me),Tt(rt),Je(et),Tt(Ke)),ht=dt.data,zt=[];for(const Pt of it){const dr=this.stride*Pt;zt.push(ht[dr+5]>1?jr(ht,dr,this.clusterProps):this.points[ht[dr+3]])}return zt}getChildren(de){const fe=this._getOriginId(de),Me=this._getOriginZoom(de),Ke="No cluster with the specified id.",et=this.trees[Me];if(!et)throw new Error(Ke);const rt=et.data;if(fe*this.stride>=rt.length)throw new Error(Ke);const dt=this.options.radius/(this.options.extent*Math.pow(2,Me-1)),it=et.within(rt[fe*this.stride],rt[fe*this.stride+1],dt),ht=[];for(const zt of it){const Pt=zt*this.stride;rt[Pt+4]===de&&ht.push(rt[Pt+5]>1?jr(rt,Pt,this.clusterProps):this.points[rt[Pt+3]])}if(ht.length===0)throw new Error(Ke);return ht}getLeaves(de,fe,Me){const Ke=[];return this._appendLeaves(Ke,de,fe=fe||10,Me=Me||0,0),Ke}getTile(de,fe,Me){const Ke=this.trees[this._limitZoom(de)],et=Math.pow(2,de),{extent:rt,radius:dt}=this.options,it=dt/rt,ht=(Me-it)/et,zt=(Me+1+it)/et,Pt={features:[]};return this._addTileFeatures(Ke.range((fe-it)/et,ht,(fe+1+it)/et,zt),Ke.data,fe,Me,et,Pt),fe===0&&this._addTileFeatures(Ke.range(1-it/et,ht,1,zt),Ke.data,et,Me,et,Pt),fe===et-1&&this._addTileFeatures(Ke.range(0,ht,it/et,zt),Ke.data,-1,Me,et,Pt),Pt.features.length?Pt:null}getClusterExpansionZoom(de){let fe=this._getOriginZoom(de)-1;for(;fe<=this.options.maxZoom;){const Me=this.getChildren(de);if(fe++,Me.length!==1)break;de=Me[0].properties.cluster_id}return fe}_appendLeaves(de,fe,Me,Ke,et){const rt=this.getChildren(fe);for(const dt of rt){const it=dt.properties;if(it&&it.cluster?et+it.point_count<=Ke?et+=it.point_count:et=this._appendLeaves(de,it.cluster_id,Me,Ke,et):et1;let zt,Pt,dr;if(ht)zt=Qt(fe,it,this.clusterProps),Pt=fe[it],dr=fe[it+1];else{const zr=this.points[fe[it+3]];zt=zr.properties;const[sn,Tn]=zr.geometry.coordinates;Pt=Je(sn),dr=Tt(Tn)}const Br={type:1,geometry:[[Math.round(this.options.extent*(Pt*et-Me)),Math.round(this.options.extent*(dr*et-Ke))]],tags:zt};let qr;qr=ht||this.options.generateId?fe[it+3]:this.points[fe[it+3]].id,qr!==void 0&&(Br.id=qr),rt.features.push(Br)}}_limitZoom(de){return Math.max(this.options.minZoom,Math.min(Math.floor(+de),this.options.maxZoom+1))}_cluster(de,fe){const{radius:Me,extent:Ke,reduce:et,minPoints:rt}=this.options,dt=Me/(Ke*Math.pow(2,fe)),it=de.data,ht=[],zt=this.stride;for(let Pt=0;Ptfe&&(sn+=it[In+5])}if(sn>zr&&sn>=rt){let Tn,In=dr*zr,Ii=Br*zr,Ms=-1;const Is=(Pt/zt<<5)+(fe+1)+this.points.length;for(const xs of qr){const pi=xs*zt;if(it[pi+2]<=fe)continue;it[pi+2]=fe;const os=it[pi+5];In+=it[pi]*os,Ii+=it[pi+1]*os,it[pi+4]=Is,et&&(Tn||(Tn=this._map(it,Pt,!0),Ms=this.clusterProps.length,this.clusterProps.push(Tn)),et(Tn,this._map(it,pi)))}it[Pt+4]=Is,ht.push(In/sn,Ii/sn,1/0,Is,-1,sn),et&&ht.push(Ms)}else{for(let Tn=0;Tn1)for(const Tn of qr){const In=Tn*zt;if(!(it[In+2]<=fe)){it[In+2]=fe;for(let Ii=0;Ii>5}_getOriginZoom(de){return(de-this.points.length)%32}_map(de,fe,Me){if(de[fe+5]>1){const rt=this.clusterProps[de[fe+6]];return Me?Object.assign({},rt):rt}const Ke=this.points[de[fe+3]].properties,et=this.options.map(Ke);return Me&&et===Ke?Object.assign({},et):et}}function jr(ct,de,fe){return{type:"Feature",id:ct[de+3],properties:Qt(ct,de,fe),geometry:{type:"Point",coordinates:[(Me=ct[de],360*(Me-.5)),Dt(ct[de+1])]}};var Me}function Qt(ct,de,fe){const Me=ct[de+5],Ke=Me>=1e4?`${Math.round(Me/1e3)}k`:Me>=1e3?Math.round(Me/100)/10+"k":Me,et=ct[de+6],rt=et===-1?{}:Object.assign({},fe[et]);return Object.assign(rt,{cluster:!0,cluster_id:ct[de+3],point_count:Me,point_count_abbreviated:Ke})}function Je(ct){return ct/360+.5}function Tt(ct){const de=Math.sin(ct*Math.PI/180),fe=.5-.25*Math.log((1+de)/(1-de))/Math.PI;return fe<0?0:fe>1?1:fe}function Dt(ct){const de=(180-360*ct)*Math.PI/180;return 360*Math.atan(Math.exp(de))/Math.PI-90}function cr(ct,de,fe,Me){let Ke=Me;const et=de+(fe-de>>1);let rt,dt=fe-de;const it=ct[de],ht=ct[de+1],zt=ct[fe],Pt=ct[fe+1];for(let dr=de+3;drKe)rt=dr,Ke=Br;else if(Br===Ke){const qr=Math.abs(dr-et);qrMe&&(rt-de>3&&cr(ct,de,rt,Me),ct[rt+2]=Ke,fe-rt>3&&cr(ct,rt,fe,Me))}function lr(ct,de,fe,Me,Ke,et){let rt=Ke-fe,dt=et-Me;if(rt!==0||dt!==0){const it=((ct-fe)*rt+(de-Me)*dt)/(rt*rt+dt*dt);it>1?(fe=Ke,Me=et):it>0&&(fe+=rt*it,Me+=dt*it)}return rt=ct-fe,dt=de-Me,rt*rt+dt*dt}function ur(ct,de,fe,Me){const Ke={id:ct??null,type:de,geometry:fe,tags:Me,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(de==="Point"||de==="MultiPoint"||de==="LineString")Rr(Ke,fe);else if(de==="Polygon")Rr(Ke,fe[0]);else if(de==="MultiLineString")for(const et of fe)Rr(Ke,et);else if(de==="MultiPolygon")for(const et of fe)Rr(Ke,et[0]);return Ke}function Rr(ct,de){for(let fe=0;fe0&&(rt+=Me?(Ke*zt-ht*et)/2:Math.sqrt(Math.pow(ht-Ke,2)+Math.pow(zt-et,2))),Ke=ht,et=zt}const dt=de.length-3;de[2]=1,cr(de,0,dt,fe),de[dt+2]=1,de.size=Math.abs(rt),de.start=0,de.end=de.size}function wi(ct,de,fe,Me){for(let Ke=0;Ke1?1:fe}function vi(ct,de,fe,Me,Ke,et,rt,dt){if(Me/=de,et>=(fe/=de)&&rt=Me)return null;const it=[];for(const ht of ct){const zt=ht.geometry;let Pt=ht.type;const dr=Ke===0?ht.minX:ht.minY,Br=Ke===0?ht.maxX:ht.maxY;if(dr>=fe&&Br=Me)continue;let qr=[];if(Pt==="Point"||Pt==="MultiPoint")sa(zt,qr,fe,Me,Ke);else if(Pt==="LineString")ts(zt,qr,fe,Me,Ke,!1,dt.lineMetrics);else if(Pt==="MultiLineString")ni(zt,qr,fe,Me,Ke,!1);else if(Pt==="Polygon")ni(zt,qr,fe,Me,Ke,!0);else if(Pt==="MultiPolygon")for(const zr of zt){const sn=[];ni(zr,sn,fe,Me,Ke,!0),sn.length&&qr.push(sn)}if(qr.length){if(dt.lineMetrics&&Pt==="LineString"){for(const zr of qr)it.push(ur(ht.id,Pt,zr,ht.tags));continue}Pt!=="LineString"&&Pt!=="MultiLineString"||(qr.length===1?(Pt="LineString",qr=qr[0]):Pt="MultiLineString"),Pt!=="Point"&&Pt!=="MultiPoint"||(Pt=qr.length===3?"Point":"MultiPoint"),it.push(ur(ht.id,Pt,qr,ht.tags))}}return it.length?it:null}function sa(ct,de,fe,Me,Ke){for(let et=0;et=fe&&rt<=Me&&rs(de,ct[et],ct[et+1],ct[et+2])}}function ts(ct,de,fe,Me,Ke,et,rt){let dt=Pr(ct);const it=Ke===0?Nn:Nr;let ht,zt,Pt=ct.start;for(let sn=0;snfe&&(zt=it(dt,Tn,In,Ms,Is,fe),rt&&(dt.start=Pt+ht*zt)):xs>Me?pi=fe&&(zt=it(dt,Tn,In,Ms,Is,fe),os=!0),pi>Me&&xs<=Me&&(zt=it(dt,Tn,In,Ms,Is,Me),os=!0),!et&&os&&(rt&&(dt.end=Pt+ht*zt),de.push(dt),dt=Pr(ct)),rt&&(Pt+=ht)}let dr=ct.length-3;const Br=ct[dr],qr=ct[dr+1],zr=Ke===0?Br:qr;zr>=fe&&zr<=Me&&rs(dt,Br,qr,ct[dr+2]),dr=dt.length-3,et&&dr>=3&&(dt[dr]!==dt[0]||dt[dr+1]!==dt[1])&&rs(dt,dt[0],dt[1],dt[2]),dt.length&&de.push(dt)}function Pr(ct){const de=[];return de.size=ct.size,de.start=ct.start,de.end=ct.end,de}function ni(ct,de,fe,Me,Ke,et){for(const rt of ct)ts(rt,de,fe,Me,Ke,et,!1)}function rs(ct,de,fe,Me){ct.push(de,fe,Me)}function Nn(ct,de,fe,Me,Ke,et){const rt=(et-de)/(Me-de);return rs(ct,et,fe+(Ke-fe)*rt,1),rt}function Nr(ct,de,fe,Me,Ke,et){const rt=(et-fe)/(Ke-fe);return rs(ct,de+(Me-de)*rt,et,1),rt}function Sn(ct,de){const fe=[];for(let Me=0;Me0&&de.size<(Ke?rt:Me))return void(fe.numPoints+=de.length/3);const dt=[];for(let it=0;itrt)&&(fe.numSimplified++,dt.push(de[it],de[it+1])),fe.numPoints++;Ke&&function(it,ht){let zt=0;for(let Pt=0,dr=it.length,Br=dr-2;Pt0===ht)for(let Pt=0,dr=it.length;Pt24)throw new Error("maxZoom should be in the 0-24 range");if(fe.promoteId&&fe.generateId)throw new Error("promoteId and generateId cannot be used together.");let Ke=function(et,rt){const dt=[];if(et.type==="FeatureCollection")for(let it=0;it1&&console.time("creation"),Br=this.tiles[dr]=Qr(de,fe,Me,Ke,ht),this.tileCoords.push({z:fe,x:Me,y:Ke}),zt)){zt>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",fe,Me,Ke,Br.numFeatures,Br.numPoints,Br.numSimplified),console.timeEnd("creation"));const os=`z${fe}`;this.stats[os]=(this.stats[os]||0)+1,this.total++}if(Br.source=de,et==null){if(fe===ht.indexMaxZoom||Br.numPoints<=ht.indexMaxPoints)continue}else{if(fe===ht.maxZoom||fe===et)continue;if(et!=null){const os=et-fe;if(Me!==rt>>os||Ke!==dt>>os)continue}}if(Br.source=null,de.length===0)continue;zt>1&&console.time("clipping");const qr=.5*ht.buffer/ht.extent,zr=.5-qr,sn=.5+qr,Tn=1+qr;let In=null,Ii=null,Ms=null,Is=null,xs=vi(de,Pt,Me-qr,Me+sn,0,Br.minX,Br.maxX,ht),pi=vi(de,Pt,Me+zr,Me+Tn,0,Br.minX,Br.maxX,ht);de=null,xs&&(In=vi(xs,Pt,Ke-qr,Ke+sn,1,Br.minY,Br.maxY,ht),Ii=vi(xs,Pt,Ke+zr,Ke+Tn,1,Br.minY,Br.maxY,ht),xs=null),pi&&(Ms=vi(pi,Pt,Ke-qr,Ke+sn,1,Br.minY,Br.maxY,ht),Is=vi(pi,Pt,Ke+zr,Ke+Tn,1,Br.minY,Br.maxY,ht),pi=null),zt>1&&console.timeEnd("clipping"),it.push(In||[],fe+1,2*Me,2*Ke),it.push(Ii||[],fe+1,2*Me,2*Ke+1),it.push(Ms||[],fe+1,2*Me+1,2*Ke),it.push(Is||[],fe+1,2*Me+1,2*Ke+1)}}getTile(de,fe,Me){de=+de,fe=+fe,Me=+Me;const Ke=this.options,{extent:et,debug:rt}=Ke;if(de<0||de>24)return null;const dt=1<1&&console.log("drilling down to z%d-%d-%d",de,fe,Me);let ht,zt=de,Pt=fe,dr=Me;for(;!ht&&zt>0;)zt--,Pt>>=1,dr>>=1,ht=this.tiles[Ot(zt,Pt,dr)];return ht&&ht.source?(rt>1&&(console.log("found parent tile z%d-%d-%d",zt,Pt,dr),console.time("drilling down")),this.splitTile(ht.source,zt,Pt,dr,de,fe,Me),rt>1&&console.timeEnd("drilling down"),this.tiles[it]?Un(this.tiles[it],et):null):null}}function Ot(ct,de,fe){return 32*((1<ht.tags&&"3d_elevation_id"in ht.tags&&"source"in ht.tags&&ht.tags.source==="elevation",et=Me.features.filter(ht=>Ke(ht));let rt={_geojsonTileLayer:Me.features};et.length>0&&(rt={_geojsonTileLayer:Me.features.filter(ht=>!Ke(ht)),hd_road_elevation:et});const dt=new Ae(rt),it=function(ht){const zt=new f.a$;for(const Pt of Object.keys(ht))zt.writeMessage(3,St,{name:Pt,features:ht[Pt]});return zt.finish()}(rt).buffer;de(null,{vectorTile:dt,rawData:it})}class _i extends se{constructor(de){super(de),this.loadVectorData=Po,this._dynamicIndex=new ge}loadData(de,fe){const Me=de&&de.request,Ke=Me&&Me.collectResourceTiming;this._geoJSONIndex=null,this.loadGeoJSON(de,(et,rt)=>{if(et||!rt)return fe(et);if(typeof rt!="object")return fe(new Error(`Input data given to '${de.source}' is not a valid GeoJSON object.`));{try{if(de.filter){const it=f.X(de.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(it.result==="error")throw new Error(it.value.map(ht=>`${ht.key}: ${ht.message}`).join(", "));rt.features=rt.features.filter(ht=>it.value.evaluate({zoom:0},ht))}de.dynamic?(rt.type==="Feature"&&(rt={type:"FeatureCollection",features:[rt]}),de.append||(this._dynamicIndex.clear(),this.loaded={}),this._dynamicIndex.load(rt.features,this.loaded),de.cluster&&(rt.features=this._dynamicIndex.getFeatures())):this.loaded={},this._geoJSONIndex=de.cluster?new Sr(function({superclusterOptions:it,clusterProperties:ht}){if(!ht||!it)return it;const zt={},Pt={},dr={accumulated:null,zoom:0},Br={properties:null},qr=Object.keys(ht);for(const zr of qr){const[sn,Tn]=ht[zr],In=f.X(Tn),Ii=f.X(typeof sn=="string"?[sn,["accumulated"],["get",zr]]:sn);zt[zr]=In.value,Pt[zr]=Ii.value}return it.map=zr=>{Br.properties=zr;const sn={};for(const Tn of qr)sn[Tn]=zt[Tn].evaluate(dr,Br);return sn},it.reduce=(zr,sn)=>{Br.properties=sn;for(const Tn of qr)dr.accumulated=zr[Tn],zr[Tn]=Pt[Tn].evaluate(dr,Br)},it}(de)).load(rt.features):de.dynamic?this._dynamicIndex:function(it,ht){return new Ho(it,ht)}(rt,de.geojsonVtOptions)}catch(it){return fe(it)}const dt={};if(Ke){const it=m(Me);it&&(dt.resourceTiming={},dt.resourceTiming[de.source]=JSON.parse(JSON.stringify(it)))}fe(null,dt)}})}reloadTile(de,fe){const Me=this.loaded;return Me&&Me[de.uid]?de.partial?fe(null,void 0):super.reloadTile(de,fe):this.loadTile(de,fe)}loadGeoJSON(de,fe){if(de.request)f.m(de.request,fe);else{if(typeof de.data!="string")return fe(new Error(`Input data given to '${de.source}' is not a valid GeoJSON object.`));setTimeout(()=>{try{return fe(null,JSON.parse(de.data))}catch{return fe(new Error(`Input data given to '${de.source}' is not a valid GeoJSON object.`))}},0)}}getClusterExpansionZoom(de,fe){try{fe(null,this._geoJSONIndex.getClusterExpansionZoom(de.clusterId))}catch(Me){fe(Me)}}getClusterChildren(de,fe){try{fe(null,this._geoJSONIndex.getChildren(de.clusterId))}catch(Me){fe(Me)}}getClusterLeaves(de,fe){try{fe(null,this._geoJSONIndex.getLeaves(de.clusterId,de.limit,de.offset))}catch(Me){fe(Me)}}}class Cs{constructor(de,fe,Me){this.tileID=new f.aR(de.tileID.overscaledZ,de.tileID.wrap,de.tileID.canonical.z,de.tileID.canonical.x,de.tileID.canonical.y),this.tileZoom=de.tileZoom,this.uid=de.uid,this.zoom=de.zoom,this.canonical=de.tileID.canonical,this.pixelRatio=de.pixelRatio,this.tileSize=de.tileSize,this.source=de.source,this.overscaling=this.tileID.overscaleFactor(),this.projection=de.projection,this.brightness=fe,this.worldview=Me}parse(de,fe,Me,Ke){this.status="parsing";const et=new f.aR(Me.tileID.overscaledZ,Me.tileID.wrap,Me.tileID.canonical.z,Me.tileID.canonical.x,Me.tileID.canonical.y),rt=[],dt=fe.familiesBySource[Me.source],it=new f.ff(et,Me.promoteId);it.bucketLayerIDs=[],it.is3DTile=!0,f.fB(de).then(ht=>{const zt=ht.json.extensionsUsed&&ht.json.extensionsUsed.includes("MAPBOX_mesh_features")||ht.json.asset.extras&&ht.json.asset.extras.MAPBOX_mesh_features,Pt=ht.json.extensionsUsed&&ht.json.extensionsUsed.includes("EXT_meshopt_compression"),dr=new f.ae(this.zoom,{brightness:this.brightness,worldview:this.worldview});for(const Br in dt)for(const qr of dt[Br]){const zr=qr[0];it.bucketLayerIDs.push(qr.map(In=>f.F(In.id,In.scope))),zr.recalculate(dr,[]);const sn=f.fC(ht,1/f.cS(Me.tileID.canonical)),Tn=new f.fD(qr,sn,et,zt,Pt,this.brightness,it,this.worldview);zt||(Tn.needsUpload=!0),rt.push(Tn),Tn.evaluate(zr)}this.status="done",Ke(null,{buckets:rt,featureIndex:it,collisionBoxArray:null,glyphAtlasImage:null,lineAtlas:null,imageAtlas:null,brightness:null})}).catch(ht=>Ke(new Error(ht.message)))}}class Hn{constructor({actor:de,layerIndex:fe,availableImages:Me,availableModels:Ke,brightness:et,worldview:rt}){this.actor=de,this.layerIndex=fe,this.availableImages=Me,this.availableModels=Ke,this.brightness=et,this.loading={},this.loaded={},this.worldview=rt}loadTile(de,fe){const Me=de.uid,Ke=this.loading[Me]=new Cs(de,this.brightness,this.worldview);f.b1(de.request,(et,rt)=>{const dt=!this.loading[Me];return delete this.loading[Me],dt||et?(Ke.status="done",dt||(this.loaded[Me]=Ke),fe(et)):rt&&rt.byteLength!==0?void Ke.parse(rt,this.layerIndex,de,(it,ht)=>{Ke.status="done",this.loaded=this.loaded||{},this.loaded[Me]=Ke,it||!ht?fe(it):fe(null,ht)}):(Ke.status="done",this.loaded[Me]=Ke,fe())})}reloadTile(de,fe){const Me=this.loaded,Ke=de.uid;if(Me&&Me[Ke]){const et=Me[Ke];et.projection=de.projection,et.brightness=de.brightness;const rt=(dt,it)=>{et.reloadCallback&&(delete et.reloadCallback,this.loadTile(de,fe)),fe(dt,it)};et.status==="parsing"?et.reloadCallback=rt:et.status==="done"&&this.loadTile(de,fe)}}abortTile(de,fe){const Me=de.uid;this.loading[Me]&&delete this.loading[Me],fe()}removeTile(de,fe){const Me=this.loaded,Ke=de.uid;Me&&Me[Ke]&&delete Me[Ke],fe()}}const io=new Map,tu=new Map;class fx{constructor(de){this.self=de,this.actor=new f.A(de,this),this.layerIndexes={},this.availableImages={},this.availableModels={},this.isSpriteLoaded={},this.imageRasterizer=new f.z,this.rtlPluginParsingListeners=[],this.projections={},this.defaultProjection=f.c0({name:"mercator"}),this.workerSourceTypes={vector:se,geojson:_i,"raster-dem":ie,"raster-array":be,"batched-model":Hn},this.workerSources={},this.self.registerWorkerSource=(fe,Me)=>{if(this.workerSourceTypes[fe])throw new Error(`Worker source with name "${fe}" already registered.`);this.workerSourceTypes[fe]=Me},this.self.registerRTLTextPlugin=fe=>{if(f.fF.isParsed())throw new Error("RTL text plugin already registered.");f.fF.setState({pluginStatus:f.fG.parsed,pluginURL:f.fF.getPluginURL()}),f.fF.applyArabicShaping=fe.applyArabicShaping,f.fF.processBidirectionalText=fe.processBidirectionalText,f.fF.processStyledBidirectionalText=fe.processStyledBidirectionalText;for(const Me of this.rtlPluginParsingListeners)Me(null,!0);this.rtlPluginParsingListeners=[]}}clearCaches(de,fe,Me){delete this.layerIndexes[de],delete this.availableImages[de],delete this.availableModels[de],delete this.workerSources[de],Me()}checkIfReady(de,fe,Me){Me()}setReferrer(de,fe){this.referrer=fe}spriteLoaded(de,fe){this.isSpriteLoaded[de]||(this.isSpriteLoaded[de]={});const{scope:Me,isLoaded:Ke}=fe;if(this.isSpriteLoaded[de][Me]=Ke,this.workerSources[de]&&this.workerSources[de][Me])for(const et in this.workerSources[de][Me]){const rt=this.workerSources[de][Me][et];for(const dt in rt){const it=rt[dt];it instanceof se&&(it.isSpriteLoaded=Ke,it.fire(new f.C("isSpriteLoaded")))}}}setImages(de,fe,Me){this.availableImages[de]||(this.availableImages[de]={});const{scope:Ke,images:et}=fe;if(this.availableImages[de][Ke]=et,this.workerSources[de]&&this.workerSources[de][Ke]){for(const rt in this.workerSources[de][Ke]){const dt=this.workerSources[de][Ke][rt];for(const it in dt)dt[it].availableImages=et}Me()}else Me()}setModels(de,{scope:fe,models:Me},Ke){if(this.availableModels[de]||(this.availableModels[de]={}),this.availableModels[de][fe]=Me,this.workerSources[de]&&this.workerSources[de][fe]){for(const et in this.workerSources[de][fe]){const rt=this.workerSources[de][fe][et];for(const dt in rt)rt[dt].availableModels=Me}Ke()}else Ke()}setProjection(de,fe){this.projections[de]=f.c0(fe)}setBrightness(de,fe,Me){this.brightness=fe,Me()}setContextParams(de,fe,Me){this.maxUniformBufferBindings=fe.maxBindingPoints,this.maxUniformBlockSizeDwords=fe.maxUniformBlockSizeDwords,this.disableSymbolUBO=fe.disableSymbolUBO,Me()}setWorldview(de,fe,Me){this.worldview=fe,Me()}setLayers(de,fe,Me){this.getLayerIndex(de,fe.scope).replace(fe.layers,fe.options),Me()}updateLayers(de,fe,Me){this.getLayerIndex(de,fe.scope).update(fe.layers,fe.removedIds,fe.options),Me()}loadTile(de,fe,Me){fe.projection=this.projections[de]||this.defaultProjection,this.getWorkerSource(de,fe).loadTile(fe,Me)}decodeRasterArray(de,fe,Me){this.getWorkerSource(de,fe).decodeRasterArray(fe,Me)}reloadTile(de,fe,Me){fe.projection=this.projections[de]||this.defaultProjection,this.getWorkerSource(de,fe).reloadTile(fe,Me)}abortTile(de,fe,Me){this.getWorkerSource(de,fe).abortTile(fe,Me)}removeTile(de,fe,Me){this.getWorkerSource(de,fe).removeTile(fe,Me)}removeSource(de,fe,Me){if(!(this.workerSources[de]&&this.workerSources[de][fe.scope]&&this.workerSources[de][fe.scope][fe.type]&&this.workerSources[de][fe.scope][fe.type][fe.source]))return;const Ke=this.workerSources[de][fe.scope][fe.type][fe.source];delete this.workerSources[de][fe.scope][fe.type][fe.source],Ke.removeSource!==void 0?Ke.removeSource(fe,Me):Me()}loadTileProvider(de,fe,Me){(async function(Ke,et){const rt=tu.get(Ke);if(rt)return rt;const dt=io.get(Ke);if(dt!==void 0)return dt;const it=import(et).then(ht=>{const zt=ht.default;if(typeof zt!="function")throw new Error(`TileProvider "${Ke}" module must default-export a class`);if(typeof zt.prototype.loadTile!="function")throw new Error(`TileProvider "${Ke}" class must have a loadTile method`);return tu.set(Ke,zt),zt}).finally(()=>{io.delete(Ke)});return io.set(Ke,it),it})(fe.name,fe.url).then(Ke=>{const et=new Ke(fe.options);return this.getWorkerSource(de,{type:fe.type,source:fe.source,scope:fe.scope},et),et.load&&fe.request?et.load({request:fe.request}):null}).then(Ke=>Me(null,Ke)).catch(Ke=>Me(Ke instanceof Error?Ke:new Error(typeof Ke=="string"?Ke:"Unknown error")))}loadWorkerSource(de,fe,Me){try{this.self.importScripts(fe.url),Me()}catch(Ke){Me(Ke)}}syncRTLPluginState(de,fe,Me){if(f.fF.isParsed())Me(null,!0);else if(f.fF.isParsing())this.rtlPluginParsingListeners.push(Me);else try{f.fF.setState(fe);const Ke=f.fF.getPluginURL();!f.fF.isLoaded()||f.fF.isParsed()||f.fF.isParsing()||Ke==null||(f.fF.setState({pluginStatus:f.fG.parsing,pluginURL:f.fF.getPluginURL()}),this.self.importScripts(Ke),f.fF.isParsed()?Me(null,!0):this.rtlPluginParsingListeners.push(Me))}catch(Ke){Me(Ke)}}setConfig(de,fe){Object.assign(f.g,fe)}getAvailableImages(de,fe){this.availableImages[de]||(this.availableImages[de]={});let Me=this.availableImages[de][fe];return Me||(Me=[]),Me}getAvailableModels(de,fe){this.availableModels[de]||(this.availableModels[de]={});let Me=this.availableModels[de][fe];return Me||(Me={}),Me}getLayerIndex(de,fe){this.layerIndexes[de]||(this.layerIndexes[de]={});let Me=this.layerIndexes[de][fe];return Me||(Me=this.layerIndexes[de][fe]=new E,Me.scope=fe),Me}getWorkerSource(de,fe,Me){const{type:Ke,source:et,scope:rt}=fe,dt=this.workerSources;if(dt[de]||(dt[de]={}),dt[de][rt]||(dt[de][rt]={}),dt[de][rt][Ke]||(dt[de][rt][Ke]={}),this.isSpriteLoaded[de]||(this.isSpriteLoaded[de]={}),!dt[de][rt][Ke][et]){const it={send:(zt,Pt,dr,Br,qr,zr)=>this.actor.send(zt,Pt,dr,de,qr,zr),scheduler:this.actor.scheduler},ht=this.workerSourceTypes[Ke];if(!ht)throw new Error(`Unknown worker source type "${Ke}".`);dt[de][rt][Ke][et]=new ht({actor:it,layerIndex:this.getLayerIndex(de,rt),availableImages:this.getAvailableImages(de,rt),availableModels:this.getAvailableModels(de,rt),isSpriteLoaded:this.isSpriteLoaded[de][rt],tileProvider:Me,brightness:this.brightness,worldview:this.worldview,maxUniformBufferBindings:this.maxUniformBufferBindings,maxUniformBlockSizeDwords:this.maxUniformBlockSizeDwords,disableSymbolUBO:this.disableSymbolUBO})}return dt[de][rt][Ke][et]}rasterizeImagesWorker(de,fe,Me){const Ke=new Map;for(const[et,{image:rt,imageVariant:dt}]of fe.tasks.entries()){const it=this.imageRasterizer.rasterize(dt,rt,fe.scope,de);Ke.set(et,it)}Me(void 0,Ke)}removeRasterizedImages(de,fe,Me){this.imageRasterizer.removeImagesFromCacheByIds(fe.imageIds,fe.scope,de),Me()}enforceCacheSizeLimit(de,fe){f.fH(fe)}getWorkerPerformanceMetrics(de,fe,Me){Me(void 0,void 0)}}return f.fE(self)&&(self.worker=new fx(self)),fx}),a(["./shared"],function(s){var f="3.22.0";const m={create:"create",load:"load",fullLoad:"fullLoad"},x={mark(v){performance.mark(v)},measure(v,d,g){performance.measure(v,d,g)}};function _(v){const d=v.name.split("?")[0];return s.a(d)&&d.includes("mapbox-gl.js")?"javascript":s.a(d)&&d.includes("mapbox-gl.css")?"css":s.b(d)?"fontRange":s.c(d)?"sprite":s.i(d)?"style":s.d(d)?"tilejson":"other"}var T,E={},C=function(){if(T)return E;function v(w){return!d(w)}function d(w){return typeof window>"u"||typeof document>"u"?"not a browser":function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var j,R,F=new Blob([""],{type:"text/javascript"}),$=URL.createObjectURL(F);try{R=new Worker($),j=!0}catch{j=!1}return R&&R.terminate(),URL.revokeObjectURL($),j}()?function(){var j=document.createElement("canvas");j.width=j.height=1;var R=j.getContext("2d");if(!R)return!1;var F=R.getImageData(0,0,1,1);return F&&F.width===j.width}()?(g[A=w&&w.failIfMajorPerformanceCaveat]===void 0&&(g[A]=function(j){var R,F=function($){var H=document.createElement("canvas"),Y=Object.create(v.webGLContextAttributes);return Y.failIfMajorPerformanceCaveat=$,H.getContext("webgl2",Y)}(j);if(!F)return!1;try{R=F.createShader(F.VERTEX_SHADER)}catch{return!1}return!(!R||F.isContextLost())&&(F.shaderSource(R,"void main() {}"),F.compileShader(R),F.getShaderParameter(R,F.COMPILE_STATUS)===!0)}(A)),g[A]?document.documentMode?"insufficient ECMAScript 6 support":void 0:"insufficient WebGL2 support"):"insufficient Canvas/getImageData support":"insufficient worker support";var A}T=1,E.supported=v,E.notSupportedReason=d;var g={};return v.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0},E}();function N(v,d,g){const w=document.createElement(v);return d!=null&&(w.className=d),g&&g.appendChild(w),w}function L(v,d,g){const w=document.createElementNS("http://www.w3.org/2000/svg",v);for(const A of Object.keys(d))w.setAttributeNS(null,A,String(d[A]));return g&&g.appendChild(w),w}const M=typeof document<"u"?document.documentElement&&document.documentElement.style:null,D=M&&M.userSelect!==void 0?"userSelect":"WebkitUserSelect";let B;function V(){M&&D&&(B=M[D],M[D]="none")}function G(){M&&D&&(M[D]=B)}function W(v){v.preventDefault(),v.stopPropagation(),window.removeEventListener("click",W,!0)}function Z(){window.addEventListener("click",W,!0),window.setTimeout(()=>{window.removeEventListener("click",W,!0)},0)}function Q(v,d){const g=v.getBoundingClientRect();return ue(v,g,d)}function se(v,d){const g=v.getBoundingClientRect(),w=[];for(let A=0;Athis._skuTokenExpiresAt}transformRequest(d,g){return this._transformRequestFn&&this._transformRequestFn(d,g)||{url:d}}normalizeStyleURL(d,g){if(!s.e(d))return d;const w=Ae(d);return w.params.push(`sdk=js-${f}`),w.path=`/styles/v1${w.path}`,this._makeAPIURL(w,this._customAccessToken||g)}normalizeGlyphsURL(d,g){if(!s.e(d))return d;const w=Ae(d);return w.path=`/fonts/v1${w.path}`,this._makeAPIURL(w,this._customAccessToken||g)}normalizeModelURL(d,g){if(!s.e(d))return d;const w=Ae(d);return w.path=`/models/v1${w.path}`,this._makeAPIURL(w,this._customAccessToken||g)}normalizeSourceURL(d,g,w,A){if(!s.e(d))return d;const j=Ae(d);return j.path=`/v4/${j.authority}.json`,j.params.push("secure"),w&&j.params.push(`language=${w}`),A&&j.params.push(`worldview=${A}`),this._makeAPIURL(j,this._customAccessToken||g)}normalizeIconsetURL(d,g){const w=Ae(d);return s.e(d)?(w.path=`/styles/v1${w.path}/iconset.pbf`,this._makeAPIURL(w,this._customAccessToken||g)):Se(w)}normalizeSpriteURL(d,g,w,A){const j=Ae(d);return s.e(d)?(j.path=`/styles/v1${j.path}/sprite${g}${w}`,this._makeAPIURL(j,this._customAccessToken||A)):(j.path+=`${g}${w}`,Se(j))}normalizeTileURL(d,g,w){if(this._isSkuTokenExpired()&&this._createSkuToken(),d&&!s.e(d))return d;const A=Ae(d);A.path=A.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${g||w&&A.authority!=="raster"&&w===512?"@2x":""}${s.k.supported?".webp":"$1"}`),A.authority==="raster"?A.path=`/${s.g.RASTER_URL_PREFIX}${A.path}`:A.authority==="rasterarrays"?A.path=`/${s.g.RASTERARRAYS_URL_PREFIX}${A.path}`:A.authority==="3dtiles"?A.path=`/${s.g.TILES3D_URL_PREFIX}${A.path}`:(A.path=A.path.replace(/^.+\/v4\//,"/"),A.path=`/${s.g.TILE_URL_VERSION}${A.path}`);const j=this._customAccessToken||function(R){for(const F of R){const $=F.match(/^access_token=(.*)$/);if($)return $[1]}return null}(A.params)||s.g.ACCESS_TOKEN;return s.g.REQUIRE_ACCESS_TOKEN&&j&&this._skuToken&&A.params.push(`sku=${this._skuToken}`),this._makeAPIURL(A,j)}canonicalizeTileURL(d,g){const w=Ae(d);if(!w.path.match(/^(\/v4\/|\/(raster|rasterarrays)\/v1\/)/)||!w.path.match(/\.[\w]+$/))return d;let A="mapbox://";w.path.match(/^\/raster\/v1\//)?A+=`raster/${w.path.replace(`/${s.g.RASTER_URL_PREFIX}/`,"")}`:w.path.match(/^\/rasterarrays\/v1\//)?A+=`rasterarrays/${w.path.replace(`/${s.g.RASTERARRAYS_URL_PREFIX}/`,"")}`:A+=`tiles/${w.path.replace(`/${s.g.TILE_URL_VERSION}/`,"")}`;let j=w.params;return g&&(j=j.filter(R=>!R.match(/^access_token=/))),j.length&&(A+=`?${j.join("&")}`),A}canonicalizeTileset(d,g){const w=!!g&&s.e(g),A=[];for(const j of d.tiles||[])s.f(j)?A.push(this.canonicalizeTileURL(j,w)):A.push(j);return A}_makeAPIURL(d,g){const w="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",A=Ae(s.g.API_URL);if(d.protocol=A.protocol,d.authority=A.authority,d.protocol==="http"){const j=d.params.indexOf("secure");j>=0&&d.params.splice(j,1)}if(A.path!=="/"&&(d.path=`${A.path}${d.path}`),!s.g.REQUIRE_ACCESS_TOKEN)return Se(d);if(g=g||s.g.ACCESS_TOKEN,!this._silenceAuthErrors){if(!g)throw new Error(`An API access token is required to use Mapbox GL. ${w}`);if(g[0]==="s")throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${w}`)}return d.params=d.params.filter(j=>j.indexOf("access_token")===-1),d.params.push(`access_token=${g||""}`),Se(d)}}const Oe=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Ae(v){const d=v.match(Oe);if(!d)throw new Error("Unable to parse URL object");return{protocol:d[1],authority:d[2],path:d[3]||"/",params:d[4]?d[4].split("&"):[]}}function Se(v){const d=v.params.length?`?${v.params.join("&")}`:"";return`${v.protocol}://${v.authority}${v.path}${d}`}const ge="mapbox.eventData";function je(v){if(!v)return null;const d=v.split(".");if(!d||d.length!==3)return null;try{return JSON.parse(s.l(d[1]))}catch{return null}}function _e(v){return!(!s.g.EVENTS_URL||!v&&!s.g.ACCESS_TOKEN)}class xe{constructor(d){this.type=d,this.anonId=null,this.anonIdTimestamp=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(d){const g=je(s.g.ACCESS_TOKEN);let w="";return w=g&&g.u?s.j(g.u):s.g.ACCESS_TOKEN||"",d?`${ge}.${d}:${w}`:`${ge}:${w}`}fetchEventData(){const d=s.s("localStorage"),g=this.getStorageKey(),w=this.getStorageKey("uuid"),A=this.getStorageKey("uuidTimestamp");if(d)try{const j=localStorage.getItem(g);j&&(this.eventData=JSON.parse(j));const R=localStorage.getItem(w);R&&(this.anonId=R);const F=localStorage.getItem(A);F&&(this.anonIdTimestamp=Number(F));const $=Date.now()-864e5;(!this.anonIdTimestamp||this.anonIdTimestamp<$)&&this.refreshUUID()}catch{s.w("Unable to read from LocalStorage")}}refreshUUID(){this.anonId=s.u(),this.anonIdTimestamp=Date.now()}saveEventData(){const d=s.s("localStorage"),g=this.getStorageKey(),w=this.getStorageKey("uuid"),A=this.getStorageKey("uuidTimestamp"),j=this.anonId,R=this.anonIdTimestamp;if(d&&j)try{localStorage.setItem(w,j),Object.keys(this.eventData).length>=1&&localStorage.setItem(g,JSON.stringify(this.eventData)),R&&localStorage.setItem(A,R.toString())}catch{s.w("Unable to write to LocalStorage")}}processRequests(d){}postEvent(d,g,w,A){if(!s.g.EVENTS_URL)return;const j=Ae(s.g.EVENTS_URL);j.params.push(`access_token=${A||s.g.ACCESS_TOKEN||""}`);const R={event:this.type,created:new Date(d).toISOString()},F=g?Object.assign(R,g):R,$={url:Se(j),headers:{"Content-Type":"text/plain"},body:JSON.stringify([F])};this.pendingRequest=s.p($,H=>{this.pendingRequest=null,w(H),this.saveEventData(),this.processRequests(A)})}queueRequest(d,g){this.queue.push(d),this.processRequests(g)}}class Pe extends xe{constructor(d){super("metrics"),d&&(this.data=d)}postMetricsEvent(d){if(!_e(d))return;this.anonId||this.fetchEventData(),s.v(this.anonId)||this.refreshUUID();const g=Object.assign({},this.data,{sessionId:this.anonId});this.queueRequest({timestamp:Date.now(),payload:g},d)}processRequests(d){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:g,payload:w}=this.queue.shift();this.postEvent(g,w,()=>{},d)}}const Ze=new class extends xe{constructor(v){super("appUserTurnstile"),this._customAccessToken=v}postTurnstileEvent(v,d){_e(d)&&Array.isArray(v)&&v.some(g=>s.e(g)||s.f(g))&&this.queueRequest(Date.now(),d)}processRequests(v){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.anonIdTimestamp&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const d=je(s.g.ACCESS_TOKEN),g=d?d.u:s.g.ACCESS_TOKEN;let w=g!==this.eventData.tokenU;s.v(this.anonId)||(this.refreshUUID(),w=!0);const A=this.queue.shift();if(this.eventData.lastSuccess){const j=new Date(this.eventData.lastSuccess),R=new Date(A),F=(A-this.eventData.lastSuccess)/864e5;w=w||F>=1||F<-1||j.getDate()!==R.getDate()}else w=!0;w?this.postEvent(A,{sdkIdentifier:"mapbox-gl-js",sdkVersion:f,skuId:be,"enabled.telemetry":!1,userId:this.anonId},j=>{j||(this.eventData.lastSuccess=A,this.eventData.tokenU=g)},v):this.processRequests()}},at=Ze.postTurnstileEvent.bind(Ze),lt=new class extends xe{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(v,d,g,w){this.skuToken=d,this.errorCb=w,s.g.EVENTS_URL&&(g||s.g.ACCESS_TOKEN?this.queueRequest({id:v,timestamp:Date.now()},g):this.errorCb(new Error(Te)))}processRequests(v){if(this.pendingRequest||this.queue.length===0)return;const{id:d,timestamp:g}=this.queue.shift();d&&this.success[d]||(this.anonId&&this.anonIdTimestamp||this.fetchEventData(),s.v(this.anonId)||this.refreshUUID(),this.postEvent(g,{sdkIdentifier:"mapbox-gl-js",sdkVersion:f,skuId:be,skuToken:this.skuToken,userId:this.anonId},w=>{w?this.errorCb(w):d&&(this.success[d]=!0)},v))}remove(){this.errorCb=null}},xt=lt.postMapLoadEvent.bind(lt),St=new class extends xe{constructor(){super("style.load"),this.eventIdPerMapInstanceMap=new Map,this.mapInstanceIdMap=new WeakMap}getMapInstanceId(v){let d=this.mapInstanceIdMap.get(v);return d||(d=s.u(),this.mapInstanceIdMap.set(v,d)),d}getEventId(v){const d=this.eventIdPerMapInstanceMap.get(v)||0;return this.eventIdPerMapInstanceMap.set(v,d+1),d}postStyleLoadEvent(v,d){const{map:g,style:w,importedStyles:A}=d;if(!_e(v))return;const j=this.getMapInstanceId(g),R={mapInstanceId:j,eventId:this.getEventId(j),style:w};A.length&&(R.importedStyles=A),this.queueRequest({timestamp:Date.now(),payload:R},v)}processRequests(v){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:d,payload:g}=this.queue.shift();this.postEvent(d,g,()=>{},v)}},Xt=St.postStyleLoadEvent.bind(St),_t=new Pe({attributes:[{name:"maps/js/layer-animations/style-with-appearances"}]}),Rt=_t.postMetricsEvent.bind(_t),er=new Pe({attributes:[{name:"maps/js/layer-animations/runtime-appearances"}]}),vt=er.postMetricsEvent.bind(er),xr=new class extends xe{constructor(){super("gljs.performance")}postPerformanceEvent(v,d){_e(v)&&this.queueRequest({timestamp:Date.now(),performanceData:d},v)}processRequests(v){if(this.pendingRequest||this.queue.length===0)return;const{timestamp:d,performanceData:g}=this.queue.shift(),w=function(A){const j=performance.getEntriesByType("resource"),R=performance.getEntriesByType("mark"),F=function(ne){const le={};if(ne){for(const oe in ne)if(oe!=="other")for(const me of ne[oe]){const pe=`${oe}ResolveRangeMin`,Ie=`${oe}ResolveRangeMax`,Ne=`${oe}RequestCount`,ve=`${oe}RequestCachedCount`;le[pe]=Math.min(le[pe]||1/0,me.startTime),le[Ie]=Math.max(le[Ie]||-1/0,me.responseEnd);const Ye=Be=>{le[Be]===void 0&&(le[Be]=0),++le[Be]};me.transferSize!==void 0&&me.transferSize===0&&Ye(ve),Ye(Ne)}}return le}(function(ne,le){const oe={};if(ne)for(const me of ne){const pe=le(me);oe[pe]===void 0&&(oe[pe]=[]),oe[pe].push(me)}return oe}(j,_)),$=window.devicePixelRatio,H=navigator.connection||navigator.mozConnection||navigator.webkitConnection,Y=H?H.effectiveType:void 0,te={counters:[],metadata:[],attributes:[]},ee=(ne,le,oe)=>{oe!=null&&ne.push({name:le,value:oe.toString()})};for(const ne in F)ee(te.counters,ne,F[ne]);if(A.interactionRange[0]!==1/0&&A.interactionRange[1]!==-1/0&&(ee(te.counters,"interactionRangeMin",A.interactionRange[0]),ee(te.counters,"interactionRangeMax",A.interactionRange[1])),R)for(const ne of Object.values(m)){const le=R.find(oe=>oe.name===ne);le&&ee(te.counters,ne,le.startTime)}return ee(te.counters,"visibilityHidden",A.visibilityHidden),ee(te.attributes,"style",function(ne){if(ne)for(const le of ne){const oe=le.name.split("?")[0];if(s.i(oe)){const me=oe.split("/").slice(-2);if(me.length===2)return`mapbox://styles/${me[0]}/${me[1]}`}}}(j)),ee(te.attributes,"terrainEnabled",A.terrainEnabled?"true":"false"),ee(te.attributes,"fogEnabled",A.fogEnabled?"true":"false"),ee(te.attributes,"projection",A.projection),ee(te.attributes,"zoom",A.zoom),ee(te.metadata,"devicePixelRatio",$),ee(te.metadata,"connectionEffectiveType",Y),ee(te.metadata,"navigatorUserAgent",navigator.userAgent),ee(te.metadata,"screenWidth",window.screen.width),ee(te.metadata,"screenHeight",window.screen.height),ee(te.metadata,"windowWidth",window.innerWidth),ee(te.metadata,"windowHeight",window.innerHeight),ee(te.metadata,"mapWidth",A.width/$),ee(te.metadata,"mapHeight",A.height/$),ee(te.metadata,"webglRenderer",A.renderer),ee(te.metadata,"webglVendor",A.vendor),ee(te.metadata,"sdkVersion",f),ee(te.metadata,"sdkIdentifier","mapbox-gl-js"),te}(g);for(const A of w.metadata);for(const A of w.counters);for(const A of w.attributes);this.postEvent(d,w,()=>{},v)}},_r=xr.postPerformanceEvent.bind(xr),tn=new class extends xe{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(v,d,g,w){if(!s.g.API_URL||!s.g.SESSION_PATH)return;const A=Ae(s.g.API_URL+s.g.SESSION_PATH);A.params.push(`sku=${d||""}`),A.params.push(`access_token=${w||s.g.ACCESS_TOKEN||""}`);const j={url:Se(A),headers:{"Content-Type":"text/plain"}};this.pendingRequest=s.h(j,R=>{this.pendingRequest=null,g(R),this.saveEventData(),this.processRequests(w)})}getSessionAPI(v,d,g,w){this.skuToken=d,this.errorCb=w,s.g.EVENTS_URL&&s.g.SESSION_PATH&&s.g.API_URL&&(g||s.g.ACCESS_TOKEN?this.queueRequest({id:v,timestamp:Date.now()},g):this.errorCb(new Error(Te)))}processRequests(v){if(this.pendingRequest||this.queue.length===0)return;const{id:d,timestamp:g}=this.queue.shift();d&&this.success[d]||this.getSession(g,this.skuToken,w=>{w?this.errorCb(w):d&&(this.success[d]=!0)},v)}remove(){this.errorCb=null}},or=tn.getSessionAPI.bind(tn),Sr=new Set;function jr(v,d){d?Sr.add(v):Sr.delete(v)}class Qt{constructor(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSourceCaches={},this._updatedPaintProps=new Set,this._updatedImages={}}isDirty(){return this._changed}setDirty(){this._changed=!0}getUpdatedSourceCaches(){return this._updatedSourceCaches}updateSourceCache(d,g){this._updatedSourceCaches[d]=g,this.setDirty()}discardSourceCacheUpdate(d){delete this._updatedSourceCaches[d]}updateLayer(d){const g=d.scope;this._updatedLayers[g]=this._updatedLayers[g]||new Set,this._updatedLayers[g].add(d.id),this.setDirty()}removeLayer(d){const g=d.scope;this._removedLayers[g]=this._removedLayers[g]||{},this._updatedLayers[g]=this._updatedLayers[g]||new Set,this._removedLayers[g][d.id]=d,this._updatedLayers[g].delete(d.id),this._updatedPaintProps.delete(d.fqid),this.setDirty()}getRemovedLayer(d){return this._removedLayers[d.scope]?this._removedLayers[d.scope][d.id]:null}discardLayerRemoval(d){this._removedLayers[d.scope]&&delete this._removedLayers[d.scope][d.id]}getLayerUpdatesByScope(){const d={};for(const g in this._updatedLayers)d[g]=d[g]||{},d[g].updatedIds=Array.from(this._updatedLayers[g].values());for(const g in this._removedLayers)d[g]=d[g]||{},d[g].removedIds=Object.keys(this._removedLayers[g]);return d}getUpdatedPaintProperties(){return this._updatedPaintProps}updatePaintProperties(d){this._updatedPaintProps.add(d.fqid),this.setDirty()}getUpdatedImages(d){return this._updatedImages[d]?Array.from(this._updatedImages[d].values()):[]}updateImage(d,g){this._updatedImages[g]=this._updatedImages[g]||new Set,this._updatedImages[g].add(s.I.toString(d)),this.setDirty()}resetUpdatedImages(d){this._updatedImages[d]&&this._updatedImages[d].clear()}reset(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSourceCaches={},this._updatedPaintProps.clear(),this._updatedImages={}}}function Je(v){const{userImage:d}=v;return!!(d&&d.render&&d.render())&&(v.data.replace(new Uint8Array(d.data.buffer)),!0)}const Tt={workerUrl:"",workerClass:null,workerParams:void 0};function Dt(v){return Tt.workerClass!=null?new Tt.workerClass:new self.Worker(Tt.workerUrl,Object.assign({name:v},Tt.workerParams))}const cr="mapboxgl_preloaded_worker_pool";class lr{constructor(d){this.active={},this.name=d}acquire(d,g=lr.workerCount){if(!this.workers)for(this.workers=[];this.workers.length{g.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[cr]}numActive(){return Object.keys(this.active).length}}lr.workerCount=2;class ur{constructor(d,g,w="Worker",A=lr.workerCount){this.workerPool=d,this.actors=[],this.currentActor=0,this.id=s.r();const j=this.workerPool.acquire(this.id,A);for(let R=0;R{this.ready=!0})}broadcast(d,g,w){s.t(this.actors,(A,j)=>{A.send(d,g,j)},w=w||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(d=>{d.remove()}),this.actors=[],this.workerPool.release(this.id)}}let Rr,Pn;function Yn(){return Rr||(Rr=new lr),Rr}ur.Actor=s.A;class ki extends s.E{constructor(d){super(),this.imageProviders=new Map,this.images=new Map,this.updatedImages=new Map,this.callbackDispatchedThisFrame=new Map,this.imageVersions=new Map,this.loaded=new Map,this.requestors=[],this.patterns=new Map,this.patternsInFlight=new Set,this.atlasImage=new Map,this.atlasTexture=new Map,this.imageAtlasCache=new s.x,this.dirty=!0,this.spriteFormat=d,d!=="raster"&&s.y()&&(this.imageRasterizerDispatcher=new ur((Pn||(Pn=new lr("ImageRasterizer")),Pn),this,"Image Rasterizer Worker",1))}addScope(d){this.loaded.set(d,!1),this.imageProviders.set(d,new Map),this.images.set(d,new Map),this.updatedImages.set(d,new Set),this.callbackDispatchedThisFrame.set(d,new Set),this.imageVersions.set(d,new Map),this.patterns.set(d,new Map),this.atlasImage.set(d,new s.q({width:1,height:1}))}removeScope(d){this.loaded.delete(d),this.imageProviders.delete(d),this.images.delete(d),this.updatedImages.delete(d),this.callbackDispatchedThisFrame.delete(d),this.imageVersions.delete(d),this.patterns.delete(d),this.atlasImage.delete(d);const g=this.atlasTexture.get(d);g&&(g.destroy(),this.atlasTexture.delete(d))}addImageProvider(d,g){this.imageProviders.has(g)||this.imageProviders.set(g,new Map),this.imageProviders.get(g).set(d.id,d)}removeImageProvider(d,g){this.imageProviders.has(g)&&this.imageProviders.get(g).delete(d)}getPendingImageProviders(){const d=[];for(const g of this.imageProviders.values())for(const w of g.values())w.hasPendingRequests()&&d.push(w);return d}get imageRasterizer(){return this._imageRasterizer||(this._imageRasterizer=new s.z),this._imageRasterizer}isLoaded(){for(const d of this.loaded.keys())if(!this.loaded.get(d))return!1;return!0}setLoaded(d,g){if(this.loaded.get(g)!==d&&(this.loaded.set(g,d),d)){for(const{ids:w,callback:A}of this.requestors)this._notify(w,g,A);this.requestors=[]}}hasImage(d,g){return!!this.getImage(d,g)}getImage(d,g){return this.images.get(g).get(d.toString())}addImage(d,g,w){if(this._validate(d,w)){this.images.get(g).set(d.toString(),w);const A=this.imageVersions.get(g),j=A.get(d.toString())||0;A.set(d.toString(),j+1)}}_validate(d,g){let w=!0;return this._validateStretch(g.stretchX,g.data&&g.data.width)||(this.fire(new s.B(new Error(`Image "${d.name}" has invalid "stretchX" value`))),w=!1),this._validateStretch(g.stretchY,g.data&&g.data.height)||(this.fire(new s.B(new Error(`Image "${d.name}" has invalid "stretchY" value`))),w=!1),this._validateContent(g.content,g)||(this.fire(new s.B(new Error(`Image "${d.name}" has invalid "content" value`))),w=!1),w}_validateStretch(d,g){if(!d)return!0;let w=0;for(const A of d){if(A[0]s.I.from(g))}getImageVersions(d){const g=this.imageVersions.get(d);if(g)return g}getImages(d,g,w){const A=[],j=[],R=this.imageProviders.get(g);for(const Y of d){if(!Y.iconsetId){A.push(Y);continue}const te=R.get(Y.iconsetId);te&&(this.getImage(Y,g)?j.push(Y):te.addPendingRequest(Y))}if(A.length===0)return void this._notify(j,g,w);let F=!0;const $=!!this.loaded.get(g),H=this.images.get(g);if(!$)for(const Y of A)H.has(Y.toString())||(F=!1);$||F?this._notify(A,g,w):this.requestors.push({ids:A,scope:g,callback:w})}rasterizeImages(d,g){const w=new Map,{tasks:A,scope:j}=d;for(const[R,F]of A.entries()){const $=this.getImage(F.id,j);$&&w.set(R,{image:$,imageVariant:F})}this._rasterizeImages(j,w,g)}_rasterizeImages(d,g,w){if(s.y())this.imageRasterizerDispatcher.getActor().send("rasterizeImagesWorker",{tasks:g,scope:d},w);else{const A=new Map;for(const[j,{image:R,imageVariant:F}]of g.entries())A.set(j,this.imageRasterizer.rasterize(F,R,d,0));w(void 0,A)}}getUpdatedImages(d){return this.updatedImages.get(d)||new Set}_notify(d,g,w){const A=this.images.get(g),j=new Map;for(const R of d){if(!A.get(R.toString())){if(R.iconsetId)continue;this.fire(new s.C("styleimagemissing",{id:R.name}))}const F=A.get(R.toString());if(!F){s.w(`Image "${R.name}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`);continue}const $={data:F.usvg?null:F.data.clone(),pixelRatio:F.pixelRatio,sdf:F.sdf,usvg:F.usvg,stretchX:F.stretchX,stretchY:F.stretchY,content:F.content,hasRenderCallback:!!(F.userImage&&F.userImage.render)};F.usvg&&Object.assign($,{width:F.icon.usvg_tree.width,height:F.icon.usvg_tree.height}),j.set(s.I.toString(R),$)}w(null,{images:j,versions:this.getImageVersions(g)})}getPixelSize(d){const{width:g,height:w}=this.atlasImage.get(d);return{width:g,height:w}}getPattern(d,g,w){const A=d.toString(),j=this.patterns.get(g),R=j.get(A),F=this.getImage(d,g);if(!F)return null;if(R){if(R.position.version===F.version)return R.position;R.position.version=F.version}else{if(F.usvg&&!F.data){const $=this.getPatternInFlightId(A,g);if(this.patternsInFlight.has($))return null;this.patternsInFlight.add($);const H=new s.D(d).scaleSelf(s.o.devicePixelRatio),Y=new Map([[H.toString(),{image:F,imageVariant:H}]]);return this._rasterizeImages(g,Y,(te,ee)=>this.storePatternImage(H,g,F,w,ee)),null}this.storePattern(d,g,F)}return this._updatePatternAtlas(g,w),j.get(A).position}getPatternInFlightId(d,g){return s.F(d,g)}hasPatternsInFlight(){return this.patternsInFlight.size!==0}storePatternImage(d,g,w,A,j){const R=d.toString(),F=j?j.get(R):void 0;F&&(w.data=F,this.storePattern(d.id,g,w),this._updatePatternAtlas(g,A),this.patternsInFlight.delete(this.getPatternInFlightId(d.id.toString(),g)))}storePattern(d,g,w){const A={w:w.data.width+2*s.G,h:w.data.height+2*s.G,x:0,y:0},j=new s.H(A,w,s.G);this.patterns.get(g).set(d.toString(),{bin:A,position:j})}destroyAtlasTextures(){for(const d of this.atlasTexture.values())d&&d.destroy();this.atlasTexture.clear()}bind(d,g){const w=d.gl;let A=this.atlasTexture.get(g);A?this.dirty&&(A.update(this.atlasImage.get(g)),this.dirty=!1):(A=new s.T(d,this.atlasImage.get(g),w.RGBA8),this.atlasTexture.set(g,A)),A.bind(w.LINEAR,w.CLAMP_TO_EDGE)}_updatePatternAtlas(d,g){const w=this.patterns.get(d),A=Array.from(w.values()).map(({bin:H})=>H),{w:j,h:R}=s.J(A),F=this.atlasImage.get(d);F.resize({width:j||1,height:R||1});const $=this.images.get(d);for(const[H,{bin:Y,position:te}]of w.entries()){let ee=te.padding;const ne=Y.x+ee,le=Y.y+ee,oe=$.get(H).data,me=oe.width,pe=oe.height;ee=ee>1?ee-1:ee,s.q.copy(oe,F,{x:0,y:0},{x:ne,y:le},{width:me,height:pe},g),s.q.copy(oe,F,{x:0,y:pe-ee},{x:ne,y:le-ee},{width:me,height:ee},g),s.q.copy(oe,F,{x:0,y:0},{x:ne,y:le+pe},{width:me,height:ee},g),s.q.copy(oe,F,{x:me-ee,y:0},{x:ne-ee,y:le},{width:ee,height:pe},g),s.q.copy(oe,F,{x:0,y:0},{x:ne+me,y:le},{width:ee,height:pe},g),s.q.copy(oe,F,{x:me-ee,y:pe-ee},{x:ne-ee,y:le-ee},{width:ee,height:ee},g),s.q.copy(oe,F,{x:0,y:pe-ee},{x:ne+me,y:le-ee},{width:ee,height:ee},g),s.q.copy(oe,F,{x:0,y:0},{x:ne+me,y:le+pe},{width:ee,height:ee},g),s.q.copy(oe,F,{x:me-ee,y:0},{x:ne-ee,y:le+pe},{width:ee,height:ee},g)}this.dirty=!0}beginFrame(){for(const d of this.images.keys())this.callbackDispatchedThisFrame.set(d,new Set)}dispatchRenderCallbacks(d,g){const w=this.images.get(g);for(const A of d){if(this.callbackDispatchedThisFrame.get(g).has(A.toString()))continue;this.callbackDispatchedThisFrame.get(g).add(A.toString());const j=w.get(A.toString());Je(j)&&this.updateImage(A,g,j)}}destroy(){this.imageRasterizerDispatcher&&this.imageRasterizerDispatcher.remove()}}function wi(v){const d=v.value,g=v.valueSpec,w=v.style,A=v.styleSpec,j=v.key,R=v.arrayElementValidator||_i;if(!Array.isArray(d))return[new s.V(j,d,`array expected, ${s.M(d)} found`)];if(g.length&&d.length!==g.length)return[new s.V(j,d,`array length ${g.length} expected, length ${d.length} found`)];if(g["min-length"]&&d.lengthA)return[new s.V(d,g,`${g} is greater than the maximum value ${A}`)]}return[]}function Gs(v){const d=v.key,g=v.value;if(!s.K(g))return[new s.V(d,g,`object expected, ${s.M(g)} found`)];const w=v.valueSpec,A=s.L(g.type);let j,R,F,$={};const H=A!=="categorical"&&g.property===void 0,Y=!H,te=function(oe){const me=oe.stops;return Array.isArray(me)&&Array.isArray(me[0])&&s.K(me[0][0])}(g),ee=Cs({key:v.key,value:v.value,valueSpec:v.styleSpec.function,style:v.style,styleSpec:v.styleSpec,objectElementValidators:{stops:function(oe){if(A==="identity")return[new s.V(oe.key,oe.value,'identity function may not have a "stops" property')];let me=[];const pe=oe.value;return me=me.concat(wi({key:oe.key,value:pe,valueSpec:oe.valueSpec,style:oe.style,styleSpec:oe.styleSpec,arrayElementValidator:ne})),Array.isArray(pe)&&pe.length===0&&me.push(new s.V(oe.key,pe,"array must have at least one stop")),me},default:function(oe){return _i({key:oe.key,value:oe.value,valueSpec:w,style:oe.style,styleSpec:oe.styleSpec})}}});return A==="identity"&&H&&ee.push(new s.V(v.key,v.value,'missing required property "property"')),A==="identity"||g.stops||ee.push(new s.V(v.key,v.value,'missing required property "stops"')),A==="exponential"&&w.expression&&!s.O(w)&&ee.push(new s.V(v.key,v.value,"exponential functions not supported")),v.styleSpec.$version>=8&&(Y&&!s.Q(w)?ee.push(new s.V(v.key,v.value,"property functions not supported")):H&&!s.S(w)&&ee.push(new s.V(v.key,v.value,"zoom functions not supported"))),A!=="categorical"&&!te||g.property!==void 0||ee.push(new s.V(v.key,v.value,'"property" property is required')),ee;function ne(oe){let me=[];const pe=oe.value,Ie=oe.key;if(!Array.isArray(pe))return[new s.V(Ie,pe,`array expected, ${s.M(pe)} found`)];if(pe.length!==2)return[new s.V(Ie,pe,`array length 2 expected, length ${pe.length} found`)];if(te){if(!s.K(pe[0]))return[new s.V(Ie,pe,`object expected, ${s.M(pe[0])} found`)];const Ne=pe[0];if(Ne.zoom===void 0)return[new s.V(Ie,pe,"object stop key must have zoom")];if(Ne.value===void 0)return[new s.V(Ie,pe,"object stop key must have value")];const ve=s.L(Ne.zoom);if(typeof ve!="number")return[new s.V(Ie,Ne.zoom,"stop zoom values must be numbers")];if(F&&F>ve)return[new s.V(Ie,Ne.zoom,"stop zoom values must appear in ascending order")];ve!==F&&(F=ve,R=void 0,$={}),me=me.concat(Cs({key:`${Ie}[0]`,value:pe[0],valueSpec:{zoom:{}},style:oe.style,styleSpec:oe.styleSpec,objectElementValidators:{zoom:Ci,value:le}}))}else me=me.concat(le({key:`${Ie}[0]`,value:pe[0],style:oe.style,styleSpec:oe.styleSpec},pe));return s.U(s.W(pe[1]))?me.concat([new s.V(`${Ie}[1]`,pe[1],"expressions are not allowed in function stops.")]):me.concat(_i({key:`${Ie}[1]`,value:pe[1],valueSpec:w,style:oe.style,styleSpec:oe.styleSpec}))}function le(oe,me){const pe=s.M(oe.value),Ie=s.L(oe.value),Ne=oe.value!==null?oe.value:me;if(j){if(pe!==j)return[new s.V(oe.key,Ne,`${pe} stop domain type must match previous stop domain type ${j}`)]}else j=pe;if(pe!=="number"&&pe!=="string"&&pe!=="boolean"&&typeof Ie!="number"&&typeof Ie!="string"&&typeof Ie!="boolean")return[new s.V(oe.key,Ne,"stop domain value must be a number, string, or boolean")];if(pe!=="number"&&A!=="categorical"){let ve=`number expected, ${pe} found`;return s.Q(w)&&A===void 0&&(ve+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new s.V(oe.key,Ne,ve)]}return A!=="categorical"||pe!=="number"||typeof Ie=="number"&&isFinite(Ie)&&Math.floor(Ie)===Ie?A!=="categorical"&&pe==="number"&&typeof Ie=="number"&&typeof R=="number"&&R!==void 0&&Ienew s.V(`${v.key}${w.key}`,v.value,w.message));const g=d.value.expression||d.value._styleExpression.expression;if(v.expressionContext==="property"&&v.propertyKey==="text-font"&&!g.outputDefined())return[new s.V(v.key,v.value,`Invalid data expression for "${v.propertyKey}". Output values must be contained as literals within the expression.`)];if(v.expressionContext==="property"&&v.propertyType==="layout"&&!s.$(g))return[new s.V(v.key,v.value,'"feature-state" data expressions are not supported with layout properties.')];if(v.expressionContext==="filter")return sa(g,v);if(v.expressionContext==="appearance")return ts(g,v);if(v.expressionContext&&v.expressionContext.indexOf("cluster")===0){if(!s.Z(g,["zoom","feature-state"]))return[new s.V(v.key,v.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(v.expressionContext==="cluster-initial"&&!s._(g))return[new s.V(v.key,v.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function sa(v,d){const g=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(d.valueSpec&&d.valueSpec.expression)for(const A of d.valueSpec.expression.parameters)g.delete(A);if(g.size===0)return[];const w=[];return v instanceof s.a0&&g.has(v.name)?[new s.V(d.key,d.value,`["${v.name}"] expression is not supported in a filter for a ${d.object.type} layer with id: ${d.object.id}`)]:(v.eachChild(A=>{w.push(...sa(A,d))}),w)}function ts(v,d){const g=new Set;if(d.valueSpec&&d.valueSpec.expression)for(const A of d.valueSpec.expression.parameters)g.add(A);if(g.size===0)return[];const w=[];return v instanceof s.a0&&!g.has(v.name)?[new s.V(d.key,d.value,`["${v.name}"] is not an allowed parameter`)]:(v.eachChild(A=>{w.push(...ts(A,d))}),w)}function Pr(v){const d=v.key,g=v.value,w=v.valueSpec,A=[];return Array.isArray(w.values)?w.values.indexOf(s.L(g))===-1&&A.push(new s.V(d,g,`expected one of [${w.values.join(", ")}], ${JSON.stringify(g)} found`)):Object.keys(w.values).indexOf(s.L(g))===-1&&A.push(new s.V(d,g,`expected one of [${Object.keys(w.values).join(", ")}], ${JSON.stringify(g)} found`)),A}function ni(v){return s.a4(s.W(v.value))?vi(Object.assign({},v,{expressionContext:"filter",valueSpec:v.styleSpec[`filter_${v.layerType||"fill"}`]})):rs(v)}function rs(v){const d=v.value,g=v.key;if(!Array.isArray(d))return[new s.V(g,d,`array expected, ${s.M(d)} found`)];if(d.length<1)return[new s.V(g,d,"filter array must have at least 1 element")];const w=v.styleSpec;let A=Pr({key:`${g}[0]`,value:d[0],valueSpec:w.filter_operator});const j=()=>{d.length>=2&&(s.a2(d[1])||A.push(new s.V(`${g}[1]`,d[1],`string expected, ${s.M(d[1])} found`)));for(let R=2;R":case">=":d.length>=2&&s.L(d[1])==="$type"&&A.push(new s.V(g,d,`"$type" cannot be use with operator "${d[0]}"`)),d.length!==3&&A.push(new s.V(g,d,`filter array for operator "${d[0]}" must have 3 elements`)),j();break;case"==":case"!=":d.length!==3&&A.push(new s.V(g,d,`filter array for operator "${d[0]}" must have 3 elements`)),j();break;case"in":case"!in":j();break;case"any":case"all":case"none":for(let R=1;R{H in g&&d.push(new s.V(w,g[H],`"${H}" is prohibited for ref layers`))}),A.layers.forEach(H=>{s.L(H.id)===F&&($=H)}),$?$.ref?d.push(new s.V(w,g.ref,"ref cannot reference another ref layer")):R=s.L($.type):typeof F=="string"&&d.push(new s.V(w,g.ref,`ref layer "${F}" not found`))}else if(R!=="background"&&R!=="sky"&&R!=="slot")if(g.source)if(s.a2(g.source)){const $=A.sources&&A.sources[g.source],H=$&&s.L($.type);$?H==="vector"&&R==="raster"?d.push(new s.V(w,g.source,`layer "${g.id}" requires a raster source`)):H==="raster"&&R!=="raster"?d.push(new s.V(w,g.source,`layer "${g.id}" requires a vector source`)):H!=="vector"||g["source-layer"]?H==="raster-dem"&&R!=="hillshade"?d.push(new s.V(w,g.source,"raster-dem source can only be used with layer type 'hillshade'.")):H!=="raster-array"||["raster","raster-particle"].includes(R)?R==="line"&&g.paint&&(g.paint["line-gradient"]||g.paint["line-trim-offset"])&&H==="geojson"&&!$.lineMetrics?d.push(new s.V(w,g,`layer "${g.id}" specifies a line-gradient, which requires the GeoJSON source to have \`lineMetrics\` enabled.`)):R==="raster-particle"&&H!=="raster-array"&&d.push(new s.V(w,g.source,`layer "${g.id}" requires a 'raster-array' source.`)):d.push(new s.V(w,g.source,"raster-array source can only be used with layer type 'raster'.")):d.push(new s.V(w,g,`layer "${g.id}" must specify a "source-layer"`)):d.push(new s.V(w,g.source,`source "${g.source}" not found`))}else d.push(new s.V(`${w}.source`,g.source,'"source" must be a string'));else d.push(new s.V(w,g,'missing required property "source"'));return d=d.concat(Cs({key:w,value:g,valueSpec:j.layer,style:v.style,styleSpec:v.styleSpec,objectElementValidators:{"*":()=>[],type:()=>_i({key:`${w}.type`,value:g.type,valueSpec:j.layer.type,style:v.style,styleSpec:v.styleSpec,object:g,objectKey:"type"}),filter:$=>ni(Object.assign({layerType:R},$)),layout:$=>Cs({layer:g,key:$.key,value:$.value,valueSpec:{},style:$.style,styleSpec:$.styleSpec,objectElementValidators:{"*":H=>Sn(Object.assign({layerType:R},H))}}),paint:$=>Cs({layer:g,key:$.key,value:$.value,valueSpec:{},style:$.style,styleSpec:$.styleSpec,objectElementValidators:{"*":H=>Nr(Object.assign({layerType:R,layer:g},H))}}),appearances($){const H=wi({key:$.key,value:$.value,valueSpec:$.valueSpec,style:$.style,styleSpec:$.styleSpec,arrayElementValidator:ee=>function(ne){const{key:le,layer:oe,layerType:me}=ne,pe=s.L(ne.value),Ie=s.L(pe.name),Ne=s.L(pe.condition),ve=Cs({key:le,value:pe,valueSpec:ne.styleSpec.appearance,style:ne.style,styleSpec:ne.styleSpec,objectElementValidators:{condition:Ye=>function(Be){const We=[];return We.push(...vi({key:Be.key,value:Be.object.condition,valueSpec:s.a8.appearance.condition,expressionContext:"appearance"})),We}(Object.assign({layer:oe,layerType:me},Ye)),properties:Ye=>function(Be){const We=[],{styleSpec:Le,layer:Fe,layerType:qe}=Be,st=Le[`paint_${qe}`],Qe=Le[`layout_${qe}`],yt=Be.object[Be.objectKey];for(const ft in yt){const Nt=ft in st?"paint":ft in Qe?"layout":void 0;if(!Nt){We.push(new s.V(Be.key,ft,`unknown property "${ft}" for layer type "${qe}"`));continue}const Ft=Object.assign({},Be,{key:`${Be.key}.${ft}`,object:yt,objectKey:ft,layer:Fe,layerType:qe,value:yt[ft],valueSpec:Nt==="paint"?st[ft]:Qe[ft]});We.push(...Nn(Ft,Nt))}return We}(Object.assign({layer:oe,layerType:me},Ye))}});return Ie!=="hidden"&&Ne===void 0&&ve.push(new s.V(ne.key,"name",'Appearance with name different than "hidden" must have a condition')),ve}(Object.assign({layerType:R,layer:g},ee))}),Y=Array.isArray($.value)?$.value:[],te=new Set;return Y.forEach((ee,ne)=>{const le=s.L(ee.name);if(le)if(te.has(le)){const oe=s.L(g.id);H.push(new s.V($.key,le,`Duplicated appearance name "${le}" for layer "${oe}"`))}else te.add(le)}),H}}})),d}function Un({key:v,value:d}){return s.a2(d)?[]:[new s.V(v,d,`string expected, ${s.M(d)} found`)]}const xi={promoteId:function v({key:d,value:g}){if(s.a2(g))return Un({key:d,value:g});if(Array.isArray(g)){const A=[],j=s.W(g),R=s.X(j);return R.result==="error"?(R.value.forEach(F=>{A.push(new s.V(`${d}${F.key}`,null,`${F.message}`))}),A):(s.Z(R.value.expression,["zoom","heatmap-density","line-progress","raster-value","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center","measure-light","raster-particle-speed"])||A.push(new s.V(`${d}`,null,"promoteId expression should be only feature dependent")),A)}if(!s.K(g))return[new s.V(d,g,`string, expression or object expected, "${s.M(g)}" found`)];const w=[];for(const A in g)w.push(...v({key:`${d}.${A}`,value:g[A]}));return w}};function Qr(v){const d=v.value,g=v.key,w=v.styleSpec,A=v.style;if(!s.K(d))return[new s.V(g,d,`object expected, ${s.M(d)} found`)];if(!("type"in d))return[new s.V(g,d,'"type" is required')];const j=s.L(d.type);let R=[];switch(["vector","raster","raster-dem","raster-array"].includes(j)&&("url"in d||"tiles"in d||R.push(new s.a5(g,d,'Either "url" or "tiles" is required.'))),j){case"vector":case"raster":case"raster-dem":case"raster-array":return R=R.concat(Cs({key:g,value:d,valueSpec:w[`source_${j.replace("-","_")}`],style:v.style,styleSpec:w,objectElementValidators:xi})),R;case"geojson":if(R=Cs({key:g,value:d,valueSpec:w.source_geojson,style:A,styleSpec:w,objectElementValidators:xi}),"cluster"in d&&"clusterProperties"in d){if(!s.K(d.clusterProperties))return[new s.V(`${g}.clusterProperties`,d,`object expected, ${s.M(d)} found`)];for(const F in d.clusterProperties){const $=d.clusterProperties[F];if(!Array.isArray($))return[new s.V(`${g}.clusterProperties.${F}`,$,"array expected")];const[H,Y]=$,te=typeof H=="string"?[H,["accumulated"],["get",F]]:H;R.push(...vi({key:`${g}.${F}.map`,value:Y,expressionContext:"cluster-map"})),R.push(...vi({key:`${g}.${F}.reduce`,value:te,expressionContext:"cluster-reduce"}))}}return R;case"video":return Cs({key:g,value:d,valueSpec:w.source_video,style:A,styleSpec:w});case"image":return Cs({key:g,value:d,valueSpec:w.source_image,style:A,styleSpec:w});case"canvas":return[new s.V(g,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Pr({key:`${g}.type`,value:d.type,valueSpec:{values:Dn(w)}})}}function Dn(v){return v.source.reduce((d,g)=>{const w=v[g];return w.type.type==="enum"&&(d=d.concat(Object.keys(w.type.values||{}))),d},[])}function ns(v){const d=v.value,g=v.styleSpec,w=g.light,A=v.style;if(d===void 0)return[];if(!s.K(d))return[new s.V("light",d,`object expected, ${s.M(d)} found`)];let j=[];for(const R in d){const F=R.match(/^(.*)-transition$/),$=R.match(/^(.*)-use-theme$/);j=j.concat($&&w[$[1]]?_i({key:R,value:d[R],valueSpec:{type:"string"},style:A,styleSpec:g}):F&&w[F[1]]&&w[F[1]].transition?_i({key:R,value:d[R],valueSpec:g.transition,style:A,styleSpec:g}):w[R]?_i({key:R,value:d[R],valueSpec:w[R],style:A,styleSpec:g}):[new s.V(R,d[R],`unknown property "${R}"`)])}return j}function hl(v){const d=v.value;if(!d)return[];const g=v.key;if(!s.K(d))return[new s.V(g,d,`object expected, ${s.M(d)} found`)];let w=[];const A=v.styleSpec,j=A["light-3d"],R=v.style,F=v.style.lights;for(const Y of["type","id"])if(!(Y in d))return w=w.concat([new s.V(g,d,`missing property "${Y}"`)]),w;if(!s.a2(d.type))return w=w.concat([new s.V(`${g}.type`,d.type,"string expected")]),w;if(F)for(let Y=0;Y[],array:wi,boolean:function(v){const d=v.value,g=v.key;return s.a1(d)?[]:[new s.V(g,d,`boolean expected, ${s.M(d)} found`)]},number:Ci,color:function({key:v,value:d}){return s.a2(d)?s.a3.parseCSSColor(d)===null?[new s.V(v,d,`color expected, "${d}" found`)]:[]:[new s.V(v,d,`color expected, ${s.M(d)} found`)]},enum:Pr,filter:ni,function:Gs,layer:li,object:Cs,source:Qr,model:s.a9,light:ns,"light-3d":hl,terrain:Ho,fog:Ot,string:Un,formatted:function(v){return Un(v).length===0?[]:vi(v)},resolvedImage:function(v){return Un(v).length===0?[]:vi(v)},projection:function(v){const d=v.value,g=v.styleSpec,w=g.projection,A=v.style;if(s.K(d)){let j=[];for(const R in d)j=j.concat(_i({key:R,value:d[R],valueSpec:w[R],style:A,styleSpec:g}));return j}return s.a2(d)?[]:[new s.V("projection",d,`object or string expected, ${s.M(d)} found`)]},import:function(v){const d=v.key,{value:g,styleSpec:w}=v;if(!s.K(g))return[new s.V(d,g,"import must be an object")];const{data:A,...j}=g;Object.defineProperty(j,"__line__",{value:g.__line__,enumerable:!1});let R=Cs(Object.assign({},v,{value:j,valueSpec:w.import}));return s.L(j.id)===""&&R.push(new s.V(`${v.key}.id`,j,"import id can't be an empty string")),A&&(R=R.concat(io(A,w,{key:`${v.key}.data`}))),R},iconset:function(v){const d=v.value,g=v.key,w=v.styleSpec,A=v.style;if(!s.K(d))return[new s.V(g,d,"object expected")];if(!d.type)return[new s.V(g,d,'"type" is required')];const j=s.L(d.type);let R=[];if(R=R.concat(Cs({key:g,value:d,valueSpec:w[`iconset_${j}`],style:A,styleSpec:w})),function(F,$){return!(F!=="source"||!$.source)}(j,d)){const F=A.sources&&A.sources[d.source],$=F&&s.L(F.type);F?$!=="raster-array"&&R.push(new s.V(g,d.source,`iconset cannot be used with a source of type ${String($)}, it only be used with a "raster-array" source type`)):R.push(new s.V(g,d.source,`source "${d.source}" not found`))}return R}};function _i(v,d=!1){const g=v.value,w=v.valueSpec,A=v.styleSpec;if(w.expression){if(s.a6(s.L(g)))return Gs(v);if(s.U(s.W(g)))return vi(v)}if(w.type&&Po[w.type]){const j=Po[w.type](v);return d===!0&&j.length>0&&Array.isArray(v.value)?vi(v):j}return Cs(Object.assign({},v,{valueSpec:w.type?A[w.type]:w}))}function Cs(v){const d=v.key,g=v.value,w=v.valueSpec||{},A=v.objectElementValidators||{},j=v.style,R=v.styleSpec;if(!s.K(g))return[new s.V(d,g,`object expected, ${s.M(g)} found`)];let F=[];for(const $ in g){const H=$.split(".")[0];let Y;A[H]?Y=A[H]:w[H]?Y=_i:A["*"]?Y=A["*"]:w["*"]&&(Y=_i),Y?F=F.concat(Y({key:(d&&`${d}.`)+$,value:g[$],valueSpec:w[H]||w["*"],style:j,styleSpec:R,object:g,objectKey:$},g)):F.push(new s.a5(d,g[$],`unknown property "${$}"`))}for(const $ in w){if(A[$])continue;const H=w[$];H.required&&H.default===void 0&&g[$]===void 0&&F.push(new s.V(d,g,`missing required property "${$}"`))}return F}function Hn({key:v,value:d}){const g=Un({key:v,value:d});if(g.length)return g;const w=d;return w.indexOf("{fontstack}")===-1&&g.push(new s.V(v,d,'"glyphs" url must include a "{fontstack}" token')),w.indexOf("{range}")===-1&&g.push(new s.V(v,d,'"glyphs" url must include a "{range}" token')),g}function io(v,d=s.a8,g={}){return Cs({key:g.key||"",value:v,valueSpec:Object.assign(d.$root,{"*":{type:"*"}}),styleSpec:d,style:v,objectElementValidators:{glyphs:Hn}})}function tu(v,d=s.a8){return Pt(io(v,d))}const fx=v=>Pt(Qr(v)),ct=v=>Pt(ns(v)),de=v=>Pt(hl(v)),fe=v=>Pt(Ho(v)),Me=v=>Pt(Ot(v)),Ke=v=>Pt(function(d){const g=d.value,w=d.style,A=d.styleSpec,j=A.snow;if(g===void 0)return[];if(!s.K(g))return[new s.V("snow",g,`object expected, ${s.M(g)} found`)];let R=[];for(const F in g){const $=F.match(/^(.*)-transition$/);R=R.concat($&&j[$[1]]&&j[$[1]].transition?_i({key:F,value:g[F],valueSpec:A.transition,style:w,styleSpec:A}):j[F]?_i({key:F,value:g[F],valueSpec:j[F],style:w,styleSpec:A}):[new s.a5(F,g[F],`unknown property "${F}"`)])}return R}(v)),et=v=>Pt(function(d){const g=d.value,w=d.style,A=d.styleSpec,j=A.rain;if(g===void 0)return[];if(!s.K(g))return[new s.V("rain",g,`object expected, ${s.M(g)} found`)];let R=[];for(const F in g){const $=F.match(/^(.*)-transition$/);R=R.concat($&&j[$[1]]&&j[$[1]].transition?_i({key:F,value:g[F],valueSpec:A.transition,style:w,styleSpec:A}):j[F]?_i({key:F,value:g[F],valueSpec:j[F],style:w,styleSpec:A}):[new s.a5(F,g[F],`unknown property "${F}"`)])}return R}(v)),rt=v=>Pt(li(v)),dt=v=>Pt(ni(v)),it=v=>Pt(Nr(v)),ht=v=>Pt(Sn(v)),zt=v=>Pt(s.a9(v));function Pt(v){return v.slice().sort((d,g)=>d.line&&g.line?d.line-g.line:0)}function dr(v,d){let g=!1;if(d&&d.length)for(const w of d)w instanceof s.a5?s.w(w.message):(v.fire(new s.B(new Error(w.message))),g=!0);return g}const Br=s.a8.light;let qr;class zr extends s.E{constructor(d,g="flat"){super(),this._transitionable=new s.aa(qr||(qr=new s.ab({anchor:new s.ac(Br.anchor),position:new s.ad(Br.position),color:new s.ac(Br.color),intensity:new s.ac(Br.intensity)}))),this.setLight(d,g),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(d,g,w={}){this._validate(ct,d,w)||(this._transitionable.setTransitionOrValue(d),this.id=g)}updateTransitions(d){this._transitioning=this._transitionable.transitioned(d,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(d){this.properties=this._transitioning.possiblyEvaluate(d)}_validate(d,g,w){return(!w||w.validate!==!1)&&dr(this,d.call(tu,Object.assign({value:g,style:{glyphs:!0,sprite:!0},styleSpec:s.a8})))}}const sn=s.a8.terrain;let Tn=class extends s.E{constructor(v,d,g,w,A){super(),this.scope=g,this._transitionable=new s.aa(new s.ab({source:new s.ac(sn.source),exaggeration:new s.ac(sn.exaggeration)}),g,w),this._transitionable.setTransitionOrValue(v,w),this._transitioning=this._transitionable.untransitioned(),this.drapeRenderMode=d,this.worldview=A}get(){return this._transitionable.serialize()}set(v,d){this._transitionable.setTransitionOrValue(v,d)}updateTransitions(v){this._transitioning=this._transitionable.transitioned(v,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(v){this.properties=this._transitioning.possiblyEvaluate(v)}getExaggeration(v){return this._transitioning.possiblyEvaluate(new s.ae(v,{worldview:this.worldview})).get("exaggeration")}getAttenuationRange(){if(!this.isZoomDependent())return null;const v=this._transitionable._values.exaggeration;if(!v)return null;const d=v.value.expression;if(!d)return null;let g=-1,w=-1,A=1;for(const j of d.zoomStops)A=d.evaluate(new s.ae(j,{worldview:this.worldview})),A>.01?(g=j,w=-1):w=j;return A<.01&&g>0&&w>g?[g,w]:null}isZoomDependent(){const v=this._transitionable._values.exaggeration;return v!=null&&v.value!=null&&v.value.expression!=null&&v.value.expression instanceof s.af}};const In=.05;function Ii(v,d,g,w){const A=s.aj(45,65,g),[j,R]=Ms(v,w);let F=1-Math.min(1,Math.exp((d-j)/(R-j)*-6));return F*=F*F,F=Math.min(1,1.00747*F),F*A*v.alpha}function Ms(v,d){const g=.5/Math.tan(.5*d);return[v.range[0]+g,v.range[1]+g]}function Is(v,d,g,w,A){const j=s.ah([],[d,g,w],A.mercatorFogMatrix);return Ii(v,s.ai(j),A.pitch,A._fov)}function xs(v,d,g,w,A,j,R){const F=[[g,w,0],[A,w,0],[A,j,0],[g,j,0]];let $=Number.MAX_VALUE,H=-Number.MAX_VALUE;for(const Y of F){const te=s.ah([],Y,d),ee=s.ai(te);$=Math.min($,ee),H=Math.max(H,ee)}return[Ii(v,$,R.pitch,R._fov),Ii(v,H,R.pitch,R._fov)]}const pi=s.a8.fog;class os extends s.E{constructor(d,g,w,A){super();const j=new s.ab({range:new s.ac(pi.range),color:new s.ac(pi.color),"color-use-theme":new s.ac({type:"string","property-type":"data-constant",default:"default"}),"high-color":new s.ac(pi["high-color"]),"high-color-use-theme":new s.ac({type:"string","property-type":"data-constant",default:"default"}),"space-color":new s.ac(pi["space-color"]),"space-color-use-theme":new s.ac({type:"string","property-type":"data-constant",default:"default"}),"horizon-blend":new s.ac(pi["horizon-blend"]),"star-intensity":new s.ac(pi["star-intensity"]),"vertical-range":new s.ac(pi["vertical-range"])});this._transitionable=new s.aa(j,w,new Map(A)),this.set(d,A),this._transitioning=this._transitionable.untransitioned(),this._transform=g,this.properties=new s.ak(j),this.scope=w}get state(){const d=this._transform,g=d.projection.name==="globe",w=s.al(d.zoom),A=this.properties.get("range"),j=[.5,3];return{range:g?[s.am(j[0],A[0],w),s.am(j[1],A[1],w)]:A,horizonBlend:this.properties.get("horizon-blend"),alpha:this.properties.get("color").a}}get(){return this._transitionable.serialize()}set(d,g,w={}){if(this._validate(Me,d,w))return;const A=Object.assign({},d);for(const j of Object.keys(pi))A[j]===void 0&&(A[j]=pi[j].default);this._options=A,this._transitionable.setTransitionOrValue(this._options,g)}getOpacity(d){if(!this._transform.projection.supportsFog)return 0;const g=this.properties&&this.properties.get("color")||1;return(this._transform.projection.name==="globe"?1:s.aj(45,65,d))*g.a}getOpacityAtLatLng(d,g){return this._transform.projection.supportsFog?function(w,A,j){const R=s.ag.fromLngLat(A),F=j.elevation?j.elevation.getAtPointOrZero(R):0;return Is(w,R.x,R.y,F,j)}(this.state,d,g):0}getOpacityForTile(d){if(!this._transform.projection.supportsFog)return[1,1];const g=this._transform.calculateFogTileMatrix(d.toUnwrapped());return xs(this.state,g,0,0,s.an,s.an,this._transform)}getOpacityForBounds(d,g,w,A,j){return this._transform.projection.supportsFog?xs(this.state,d,g,w,A,j,this._transform):[1,1]}getFovAdjustedRange(d){return this._transform.projection.supportsFog?Ms(this.state,d):[0,1]}isVisibleOnFrustum(d){if(!this._transform.projection.supportsFog)return!1;const g=[4,5,6,7];for(const w of g){const A=d.points[w];let j;if(A[2]>=0)j=A;else{const R=d.points[w-4];j=s.ao(R,A,R[2]/(R[2]-A[2]))}if(Is(this.state,j[0],j[1],0,this._transform)>=In)return!0}return!1}updateConfig(d){this._transitionable.setTransitionOrValue(this._options,new Map(d))}updateTransitions(d){this._transitioning=this._transitionable.transitioned(d,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(d){this.properties=this._transitioning.possiblyEvaluate(d)}_validate(d,g,w){return(!w||w.validate!==!1)&&dr(this,d.call(tu,Object.assign({value:g,style:{glyphs:!0,sprite:!0},styleSpec:s.a8})))}}let aa,ji,ls,_s=class extends s.E{constructor(v,d,g,w){super();const A=aa||(aa=new s.ab({density:new s.ac(s.a8.snow.density),intensity:new s.ac(s.a8.snow.intensity),color:new s.ac(s.a8.snow.color),opacity:new s.ac(s.a8.snow.opacity),vignette:new s.ac(s.a8.snow.vignette),"vignette-color":new s.ac(s.a8.snow["vignette-color"]),"center-thinning":new s.ac(s.a8.snow["center-thinning"]),direction:new s.ac(s.a8.snow.direction),"flake-size":new s.ac(s.a8.snow["flake-size"])}));this._transitionable=new s.aa(A,g,new Map(w)),this.set(v,w),this._transitioning=this._transitionable.untransitioned(),this.properties=new s.ak(A),this.scope=g}get state(){const v=this.properties.get("opacity"),d=this.properties.get("color"),g=this.properties.get("direction"),w=s.ap(g[0]),A=-Math.max(s.ap(g[1]),.01),j=[Math.cos(w)*Math.cos(A),Math.sin(w)*Math.cos(A),Math.sin(A)],R=this.properties.get("vignette"),F=this.properties.get("vignette-color");return F.a=R,{density:this.properties.get("density"),intensity:this.properties.get("intensity"),color:new s.aq(d.r,d.g,d.b,d.a*v),direction:j,centerThinning:this.properties.get("center-thinning"),flakeSize:this.properties.get("flake-size"),vignetteColor:F}}get(){return this._transitionable.serialize()}set(v,d,g={}){if(this._validate(Ke,v,g))return;const w=Object.assign({},v),A=s.a8.snow;for(const j of Object.keys(A))w[j]===void 0&&(w[j]=A[j].default);this._options=w,this._transitionable.setTransitionOrValue(this._options,d)}updateConfig(v){this._transitionable.setTransitionOrValue(this._options,new Map(v))}updateTransitions(v){this._transitioning=this._transitionable.transitioned(v,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(v){this.properties=this._transitioning.possiblyEvaluate(v)}_validate(v,d,g){return(!g||g.validate!==!1)&&dr(this,v.call(tu,Object.assign({value:d,style:{glyphs:!0,sprite:!0},styleSpec:s.a8})))}},Rn=class extends s.E{constructor(v,d,g,w){super();const A=ji||(ji=new s.ab({density:new s.ac(s.a8.rain.density),intensity:new s.ac(s.a8.rain.intensity),color:new s.ac(s.a8.rain.color),opacity:new s.ac(s.a8.rain.opacity),vignette:new s.ac(s.a8.rain.vignette),"vignette-color":new s.ac(s.a8.rain["vignette-color"]),"center-thinning":new s.ac(s.a8.rain["center-thinning"]),direction:new s.ac(s.a8.rain.direction),"droplet-size":new s.ac(s.a8.rain["droplet-size"]),"distortion-strength":new s.ac(s.a8.rain["distortion-strength"])}));this._transitionable=new s.aa(A,g,new Map(w)),this.set(v,w),this._transitioning=this._transitionable.untransitioned(),this.properties=new s.ak(A),this.scope=g}get state(){const v=this.properties.get("opacity"),d=this.properties.get("color"),g=this.properties.get("direction"),w=s.ap(g[0]),A=-Math.max(s.ap(g[1]),.01),j=[Math.cos(w)*Math.cos(A),Math.sin(w)*Math.cos(A),Math.sin(A)],R=this.properties.get("vignette-color");return R.a=this.properties.get("vignette"),{density:this.properties.get("density"),intensity:this.properties.get("intensity"),color:new s.aq(d.r,d.g,d.b,d.a*v),direction:j,centerThinning:this.properties.get("center-thinning"),dropletSize:this.properties.get("droplet-size"),distortionStrength:this.properties.get("distortion-strength"),vignetteColor:R}}get(){return this._transitionable.serialize()}set(v,d,g={}){if(this._validate(et,v,g))return;const w=Object.assign({},v),A=s.a8.rain;for(const j of Object.keys(A))w[j]===void 0&&(w[j]=A[j].default);this._options=w,this._transitionable.setTransitionOrValue(this._options,d)}updateConfig(v){this._transitionable.setTransitionOrValue(this._options,new Map(v))}updateTransitions(v){this._transitioning=this._transitionable.transitioned(v,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(v){this.properties=this._transitioning.possiblyEvaluate(v)}_validate(v,d,g){return(!g||g.validate!==!1)&&dr(this,v.call(tu,Object.assign({value:d,style:{glyphs:!0,sprite:!0},styleSpec:s.a8})))}};class xa extends s.E{constructor(d,g,w,A){super(),this.scope=w,this._options=d,this.properties=new s.ak(g),this._transitionable=new s.aa(g,w,new Map(A)),this._transitionable.setTransitionOrValue(d.properties),this._transitioning=this._transitionable.untransitioned()}updateConfig(d){this._transitionable.setTransitionOrValue(this._options.properties,new Map(d))}updateTransitions(d){this._transitioning=this._transitionable.transitioned(d,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(d){this.properties=this._transitioning.possiblyEvaluate(d)}get(){return this._options.properties=this._transitionable.serialize(),this._options}set(d,g){this._options=d,this._transitionable.setTransitionOrValue(d.properties,g)}shadowsEnabled(){return!!this.properties&&this.properties.get("cast-shadows")===!0}}const yo=()=>ls||(ls=new s.ab({color:new s.ac(s.a8.properties_light_ambient.color),"color-use-theme":new s.ac({type:"string",default:"default","property-type":"data-constant"}),intensity:new s.ac(s.a8.properties_light_ambient.intensity)}));let so;const Jl=()=>so||(so=new s.ab({direction:new s.ar(s.a8.properties_light_directional.direction),color:new s.ac(s.a8.properties_light_directional.color),"color-use-theme":new s.ac({type:"string",default:"default","property-type":"data-constant"}),intensity:new s.ac(s.a8.properties_light_directional.intensity),"cast-shadows":new s.ac(s.a8.properties_light_directional["cast-shadows"]),"shadow-quality":new s.ac(s.a8.properties_light_directional["shadow-quality"]),"shadow-intensity":new s.ac(s.a8.properties_light_directional["shadow-intensity"]),"shadow-draw-before-layer":new s.ac(s.a8.properties_light_directional["shadow-draw-before-layer"])}));class ec{constructor(d,g,w){this.screenBounds=d,this.cameraPoint=w.getCameraPoint(),this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=g,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,w)}static createFromScreenPoints(d,g){let w,A;if(d instanceof s.P||typeof d[0]=="number"){const j=s.P.convert(d);w=[j],A=g.isPointAboveHorizon(j)}else{const j=s.P.convert(d[0]),R=s.P.convert(d[1]),F=j.add(R)._div(2);w=[j,R],A=s.as(j,R).every($=>g.isPointAboveHorizon($))&&g.isPointAboveHorizon(F)}return new ec(w,A,g)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(d){return s.as(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],d)}bufferedCameraGeometry(d){const g=this.screenBounds[0],w=this.screenBounds.length===1?this.screenBounds[0].add(new s.P(1,1)):this.screenBounds[1],A=s.as(g,w,0,!1);return this.cameraPoint.y>w.y&&(this.cameraPoint.x>g.x&&this.cameraPoint.x=w.x?A[2]=this.cameraPoint:this.cameraPoint.x<=g.x&&(A[3]=this.cameraPoint)),s.at(A,d)}bufferedCameraGeometryGlobe(d){const g=this.screenBounds[0],w=this.screenBounds.length===1?this.screenBounds[0].add(new s.P(1,1)):this.screenBounds[1],A=s.as(g,w,d),j=this.cameraPoint.clone(),R=+(j.x>g.x)+ +(j.x>w.x);switch(3*(+(j.y>g.y)+ +(j.y>w.y))+R){case 0:A[0]=j,A[4]=j.clone();break;case 1:A.splice(1,0,j);break;case 2:A[1]=j;break;case 3:A.splice(4,0,j);break;case 5:A.splice(2,0,j);break;case 6:A[3]=j;break;case 7:A.splice(3,0,j);break;case 8:A[2]=j}return A}containsTile(d,g,w,A=0){const j=Math.max(d.queryPadding,d.evaluateQueryRenderedFeaturePadding())/g._pixelsPerMercatorPixel+1,R=w?this._bufferedCameraMercator(j,g):this._bufferedScreenMercator(j,g);let F=d.tileID.wrap+(R.unwrapped?A:0);const $=R.polygon.map(me=>s.au(d.tileTransform,me,F));if(!s.av($,0,0,s.an,s.an))return;F=d.tileID.wrap+(this.screenGeometryMercator.unwrapped?A:0);const H=this.screenGeometryMercator.polygon.map(me=>s.aw(d.tileTransform,me,F)),Y=H.map(me=>new s.P(me[0],me[1])),te=g.getFreeCameraOptions().position||new s.ag(0,0,0),ee=s.aw(d.tileTransform,te,F),ne=H.map(me=>{const pe=s.ax(me,me,ee);return s.ay(pe,pe),new s.az(ee,pe)}),le=s.aA(d,1,g.zoom)*g._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:Y,tilespaceRays:ne,bufferedTilespaceGeometry:$,bufferedTilespaceBounds:(oe=s.aB($),oe.min.x=s.aC(oe.min.x,0,s.an),oe.min.y=s.aC(oe.min.y,0,s.an),oe.max.x=s.aC(oe.max.x,0,s.an),oe.max.y=s.aC(oe.max.y,0,s.an),oe),tile:d,tileID:d.tileID,pixelToTileUnitsFactor:le};var oe}_bufferedScreenMercator(d,g){const w=tc(d);if(this._screenRaycastCache[w])return this._screenRaycastCache[w];{let A;return A=g.projection.name==="globe"?this._projectAndResample(this.bufferedScreenGeometry(d),g):{polygon:this.bufferedScreenGeometry(d).map(j=>g.pointCoordinate3D(j)),unwrapped:!0},this._screenRaycastCache[w]=A,A}}_bufferedCameraMercator(d,g){const w=tc(d);if(this._cameraRaycastCache[w])return this._cameraRaycastCache[w];{let A;return A=g.projection.name==="globe"?this._projectAndResample(this.bufferedCameraGeometryGlobe(d),g):{polygon:this.bufferedCameraGeometry(d).map(j=>g.pointCoordinate3D(j)),unwrapped:!0},this._cameraRaycastCache[w]=A,A}}_projectAndResample(d,g){const w=function(j,R){const F=s.aD([],R.pixelMatrix,R.globeMatrix),$=[0,-s.aF,0,1],H=[0,s.aF,0,1],Y=[0,0,0,1];s.aE($,$,F),s.aE(H,H,F),s.aE(Y,Y,F);const te=new s.P($[0]/$[3],$[1]/$[3]),ee=new s.P(H[0]/H[3],H[1]/H[3]),ne=s.aG(j,te)&&$[3]1?dd(j.slice(0,me),R):[],Ne=menew s.P(fl(We.x),We.y)),Ne=Ne.map(We=>new s.P(fl(We.x),We.y));const ve=[...Ie];ve.length===0&&ve.push(Ne[Ne.length-1]);const Ye=s.am(ve[ve.length-1].y,(Ne.length===0?Ie[0]:Ne[0]).y,pe);let Be;return Be=ne?[new s.P(0,Ye),new s.P(0,0),new s.P(1,0),new s.P(1,Ye)]:[new s.P(1,Ye),new s.P(1,1),new s.P(0,1),new s.P(0,Ye)],ve.push(...Be),Ne.length===0?ve.push(Ie[0]):ve.push(...Ne),{polygon:ve.map(We=>new s.ag(We.x,We.y)),unwrapped:!1}}(d,g);if(w)return w;const A=function(j,R){let F=!1,$=-1/0,H=0;for(let te=0;te$&&($=j[te].x,H=te);for(let te=0;te.5&&(ne.x{te.x-=1}),{polygon:j,unwrapped:F}}(dd(d,g).map(j=>new s.P(fl(j.x),j.y)),g);return{polygon:A.polygon.map(j=>new s.ag(j.x,j.y)),unwrapped:A.unwrapped}}}function dd(v,d){return s.aI(v,g=>{const w=d.pointCoordinate3D(g);g.x=w.x,g.y=w.y},1/256)}function fl(v){return v<0?1+v%1:v%1}function tc(v){return 100*v|0}function hd(v,d,g){try{d=function(A){if(!A.variants)return A;if(!Array.isArray(A.variants))throw new Error("variants must be an array");for(const j of A.variants){if(j==null||typeof j!="object"||j.constructor!==Object)throw new Error("variant must be an object");if(!Array.isArray(j.capabilities))throw new Error("capabilities must be an array");if(j.capabilities.length===1&&j.capabilities[0]==="meshopt")return Object.assign(A,j)}return A}(d)}catch(A){return new Error("Failed to process TileJSON variants",{cause:A})}const w=s.aJ(Object.assign({},d,v),["tilejson","tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","extra_bounds","scheme","tileSize","encoding","vector_layers","raster_layers","worldview_options","worldview_default","worldview"]);return v.url&&d.tiles&&v.tiles&&(w.tiles=d.tiles),w.tiles=g.canonicalizeTileset(w,v.url),w}function xc(v,d,g,w,A){const j=function(F,$){if(F)return A(F);if($){v.url&&$.tiles&&v.tiles&&delete v.tiles;const H=hd(v,$,d);if(H instanceof Error)return A(H);A(null,H)}},R=function(F,$,H){if(!F)return null;if(!$&&!H)return F;H=H||F.worldview_default;const Y=Object.values(F.language||{});if(Y.length===0)return null;const te=Object.values(F.worldview||{});if(te.length===0)return null;const ee=Y.every(le=>le===$),ne=te.every(le=>le===H);return ee&&ne?F:$ in(F.language_options||{})||H in(F.worldview_options||{})?null:F.language_options&&F.worldview_options?F:null}(v.data,g,w);return R?s.o.frame(()=>j(null,R)):v.url?s.m(d.transformRequest(d.normalizeSourceURL(v.url,null,g,w),s.R.Source),j):s.o.frame(()=>{const{data:F,...$}=v;j(null,$)})}function fd(v,d){const g=Math.pow(2,d.z),w=Math.floor(s.aH(v.getWest())*g),A=Math.floor(s.aL(v.getNorth())*g),j=Math.ceil(s.aH(v.getEast())*g),R=Math.ceil(s.aL(v.getSouth())*g);return d.x>=w&&d.x=A&&d.ythis.maxzoom||d.z{this._tileJSONRequest=null,this._loaded=!0,R?(g&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${g}`),w&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${w}`),this.fire(new s.B(R))):F&&(this._setTileJSON(F),at(F.tiles,this.map._requestManager._customAccessToken),this.fire(new s.C("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.C("data",{dataType:"source",sourceDataType:"content"}))),d&&d(R)};this.provider=this._options.provider;const j=function(R){if("provider"in R&&!R.provider)return null;let F=R.provider;if(!F&&"url"in R&&R.url&&(F=s.aM(R.url)),!F)return null;const $=s.g.TILE_PROVIDER_URLS[F];if(!$)return null;let H;try{H=new URL($,s.g.API_URL).href}catch{return s.w(`TileProvider "${F}" has an invalid URL: "${$}"`),null}return{name:F,url:H}}(this._options);if(this.provider&&!j)return this._loaded=!0,this.fire(new s.B(new Error(`TileProvider "${this.provider}" is not registered`))),void(d&&d());this._tileJSONRequest=j?this._loadWithProvider(j,A):xc(this._options,this.map._requestManager,g,w,A)}_loadWithProvider(d,g){this.provider=d.name;const w=new AbortController,A=this._options.url&&!this._options.tiles?this.map._requestManager.transformRequest(this._options.url,s.R.Source):void 0,j=A?Object.assign({},this._options,{url:A.url}):this._options;return this.dispatcher.broadcast("loadTileProvider",{name:d.name,url:d.url,source:this.id,scope:this.scope,type:this.type,options:j,request:A},(R,F)=>{if(w.signal.aborted)return;if(R)return void g(R);const $=F?F.find(H=>H!=null):null;if($){const H=hd(this._options,$,this.map._requestManager);H instanceof Error?g(H):g(null,H)}else g(null,{tiles:this._options.tiles})}),{cancel:()=>{w.abort()}}}_setTileJSON(d){if(Object.assign(this,d),this.hasWorldviews=!!d.worldview_options,d.worldview_default&&(this.worldviewDefault=d.worldview_default),d.vector_layers){this.vectorLayers=d.vector_layers,this.vectorLayerIds=[],this.localizableLayerIds=new Set;for(const g of d.vector_layers)this.vectorLayerIds.push(g.id),d.worldview&&d.worldview[g.source]&&this.localizableLayerIds.add(g.id)}this.tileBounds=ru.fromTileJSON(d)}loaded(){return this._loaded}hasTile(d){return!this.tileBounds||this.tileBounds.contains(d.canonical)}onAdd(d){this.map=d,this.load()}reload(){this.cancelTileJSONRequest();const d=s.F(this.id,this.scope);this.load(()=>this.map.style.clearSource(d))}setTiles(d){return this._options.tiles=d,this.reload(),this}setUrl(d){return this.url=d,this._options.url=d,this.reload(),this}onRemove(d){this.cancelTileJSONRequest()}serialize(){return Object.assign({},this._options)}loadTile(d,g){const w=d.tileID.canonical.url(this.tiles,this.scheme),A=this.map._requestManager.normalizeTileURL(w),j=this.map._requestManager.transformRequest(A,s.R.Tile),R=this.map.style?this.map.style.getLut(this.scope):null,F=R?{image:R.image.clone()}:null,$={request:j,data:void 0,uid:d.uid,tileID:d.tileID,tileZoom:d.tileZoom,zoom:d.tileID.overscaledZ,maxZoom:this.maxzoom,lut:F,tileSize:this.tileSize*d.tileID.overscaleFactor(),type:this.type,source:this.id,scope:this.scope,pixelRatio:s.o.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,renderSourceType:d.renderSourceType,brightness:this.map.style&&this.map.style.getBrightness()||0,extraShadowCaster:d.isExtraShadowCaster,tessellationStep:this.map._tessellationStep,scaleFactor:this.map.getScaleFactor(),worldview:this.map.getWorldview()||this.worldviewDefault,indoor:this.map.getIndoorTileOptions(this.id,this.scope)};if(this.hasWorldviews&&s.e(w)&&($.localizableLayerIds=this.localizableLayerIds),$.request.collectResourceTiming=this._collectResourceTiming,d.actor&&d.state!=="expired")d.state==="loading"?d.reloadCallback=g:d.request=d.actor.send("reloadTile",$,H.bind(this));else if(d.actor=this._tileWorkers[A]=this._tileWorkers[A]||this.dispatcher.getActor(),this.dispatcher.ready||this.provider)d.request=d.actor.send("loadTile",$,H.bind(this),void 0,!0);else{const Y=s.aO.call({deduped:this._deduped},$,(te,ee)=>{if(te||!ee)H.call(this,te);else{const ne=s.aP(ee.responseHeaders);$.data={rawData:ee.rawData.slice(0),expires:ne.expires,cacheControl:ne.cacheControl},d.actor&&d.actor.send("loadTile",$,H.bind(this),void 0,!0)}},!0);d.request={cancel:Y}}function H(Y,te){return delete d.request,d.aborted?g(null):Y?g(Y):(te&&te.resourceTiming&&(d.resourceTiming=te.resourceTiming),this.map._refreshExpiredTiles&&te&&d.setExpiryData(te),d.loadVectorData(te,this.map.painter),s.aQ(this.dispatcher),g(null,te),void(d.reloadCallback&&(this.loadTile(d,d.reloadCallback),d.reloadCallback=null)))}}abortTile(d){d.request&&(d.request.cancel(),delete d.request),d.actor&&d.actor.send("abortTile",{uid:d.uid,type:this.type,source:this.id,scope:this.scope})}unloadTile(d,g){d.actor&&d.actor.send("removeTile",{uid:d.uid,type:this.type,source:this.id,scope:this.scope}),d.destroy()}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}class px extends s.E{constructor(d,g,w,A){super(),this.id=d,this.dispatcher=w,this.setEventedParent(A),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=Object.assign({type:"raster"},g),Object.assign(this,s.aJ(g,["url","scheme","tileSize"]))}load(d){this._loaded=!1,this.fire(new s.C("dataloading",{dataType:"source"}));const g=this.map.getWorldview();this._tileJSONRequest=xc(this._options,this.map._requestManager,null,g,(w,A)=>{this._tileJSONRequest=null,this._loaded=!0,w?this.fire(new s.B(w)):A&&(Object.assign(this,A),A.raster_layers&&(this.rasterLayers=A.raster_layers,this.rasterLayerIds=this.rasterLayers.map(j=>j.id)),this.tileBounds=ru.fromTileJSON(A),at(A.tiles),this.fire(new s.C("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.C("data",{dataType:"source",sourceDataType:"content"}))),d&&d(w)})}loaded(){return this._loaded}onAdd(d){this.map=d,this.load()}reload(){this.cancelTileJSONRequest();const d=s.F(this.id,this.scope);this.load(()=>this.map.style.clearSource(d))}setTiles(d){return this._options.tiles=d,this.reload(),this}setUrl(d){return this.url=d,this._options.url=d,this.reload(),this}onRemove(d){this.cancelTileJSONRequest()}serialize(){return Object.assign({},this._options)}hasTile(d){return!this.tileBounds||this.tileBounds.contains(d.canonical)}loadTile(d,g){const w=s.o.devicePixelRatio>=2,A=this.map._requestManager.normalizeTileURL(d.tileID.canonical.url(this.tiles,this.scheme),w,this.tileSize);d.request=s.n(this.map._requestManager.transformRequest(A,s.R.Tile),(j,R,F)=>{if(delete d.request,d.aborted)return d.state="unloaded",g(null);if(j)return d.state="errored",g(j);if(!R)return g(null);const $=s.aP(F);this.map._refreshExpiredTiles&&d.setExpiryData($),d.setTexture(R,this.map.painter),d.state="loaded",s.aQ(this.dispatcher),g(null)})}abortTile(d,g){d.request&&(d.request.cancel(),delete d.request),g&&g()}unloadTile(d,g){d.texture&&d.texture instanceof s.T?(d.destroy(!1),d.texture&&d.texture instanceof s.T&&this.map.painter.saveTileTexture(d.texture)):d.destroy(),g&&g()}hasTransition(){return!1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}}function US([v,d],g,w,{scaled:A=!0}={}){const{tileSize:j,buffer:R}=w,{x:F,y:$,z:H}=g;if(!isFinite(F)||!isFinite($)||!isFinite(H))throw new Error("Invalid MRT header");const Y=2**H,te=Y*s.aH(v),ee=Y*s.aL(d);return function([ne,le],oe,{scaled:me=!0}={}){if(!oe)throw new Error("bandView is undefined");const{data:pe,tileSize:Ie,buffer:Ne,offset:ve,scale:Ye,dimension:Be}=oe;if(ne<-Ne||ne>Ie+Ne||le<-Ne||le>Ie+Ne)throw new Error(`Point (${ne}, ${le}) out of bounds for tileSize=${Ie}, buffer=${Ne}`);const We=(le+Ne)*(Ie+2*Ne)+(ne+Ne);if(new Uint32Array(pe.buffer)[We]===4294967295)return null;let Le=[];Le=me?[]:new oe.data.constructor(Be);for(let Fe=0;Fe{if(delete d.request,d.aborted)return d.state="unloaded",g(null);if(F)return F.name==="AbortError"?void 0:(d.state="errored",g(F));if(this.map._refreshExpiredTiles&&$){const Y=s.aP(H);d.setExpiryData(Y)}if(this.partial&&d.state!=="expired")d.state="empty";else if(!this.partial){if(!$)return g(null);d.state="loaded",d._isHeaderLoaded=!0,d._mrt=$}g(null)};d.request=this.partial?d.fetchHeader(void 0,R.bind(this)):d.actor.send("loadTile",j,R.bind(this),void 0,!0)}abortTile(d){d.request&&(d.request.cancel(),delete d.request),d.actor&&d.actor.send("abortTile",{uid:d.uid,type:this.type,source:this.id,scope:this.scope})}unloadTile(d,g){const w=d.texturePerLayer;if(d.flushAllQueues(),w.size){d.destroy(!1);for(const A of w.values())this.map.painter.saveTileTexture(A)}else d.destroy()}prepareTile(d,g,w,A){d._isHeaderLoaded&&(d.state!=="empty"&&(d.state="reloading"),d.fetchBandForRender(g,w,A,(j,R)=>{j?(d.state="errored",this.fire(new s.B(j))):R&&(d._isHeaderLoaded=!0,d.setTexturePerLayer(w,R,this.map.painter),d.state="loaded"),this.triggerRepaint(d)}))}getInitialBand(d){if(!this.rasterLayers)return 0;const g=this.rasterLayers.find(({id:j})=>j===d),w=g&&g.fields,A=w&&w.bands&&w.bands;return A?A[0]:0}getTextureDescriptor(d,g,w){if(!d)return;const A=g.sourceLayer||this.rasterLayerIds&&this.rasterLayerIds[0];if(!A)return;let j=null;g instanceof s.aS?j=g.paint.get("raster-array-band"):g instanceof s.aT&&(j=g.paint.get("raster-particle-array-band"));const R=j||this.getInitialBand(A);if(R==null)return;if(!d.textureDescriptorPerLayer.get(g.id))return void this.prepareTile(d,A,g.id,R);if(d.updateNeeded(g.id,R)&&!w)return;const F=d.textureDescriptorPerLayer.get(g.id);return Object.assign({},F,{texture:d.texturePerLayer.get(g.id)})}getImages(d,g){const w=new Map;for(const A of d)for(const j of g){const[R,F]=j.split("/"),$=A.getLayer(R);if(!$||!$.hasBand(F)||!$.hasDataForBand(F))continue;const{bytes:H,tileSize:Y,buffer:te}=$.getBandView(F),ee=Y+2*te,ne={data:new s.q({width:ee,height:ee},H),pixelRatio:2,sdf:!1,usvg:!1,version:0};w.set(j,ne)}return w}queryRasterArrayValueByBandId(d,g,w){const A=g._mrt;return new Promise(j=>{const R={},F=new Set;for(const[$,H]of Object.entries(A.layers)){if(w.layerName&&$!==w.layerName)continue;const Y={};R[$]=Y;for(const{bands:te}of H.dataIndex)for(const ee of te)w.bands&&!w.bands.includes(ee)||(F.add(s.F($,ee)),g.fetchBand($,null,ee,ne=>{s.o.frame(()=>{Y[ee]=ne?null:US([d.lng,d.lat],A,H.getBandView(ee)),F.delete(s.F($,ee)),F.size===0&&j(R)})},!1))}F.size===0&&j(R)})}_loadTileForQuery(d,g){if(this._loadTileLoaded[d.uid])return void g(null,d._mrt);if(this._loadTilePending[d.uid])return void this._loadTilePending[d.uid].push(g);this._loadTilePending[d.uid]=[g];const w=this.map._requestManager.normalizeTileURL(d.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize),A=this.map._requestManager.transformRequest(w,s.R.Tile);d.actor.send("loadTile",{request:A,uid:d.uid,tileID:d.tileID,type:this.type,source:this.id,scope:this.scope,partial:!1},(j,R,F)=>{if(j)return this._loadTilePending[d.uid].forEach($=>$(j,null)),void delete this._loadTilePending[d.uid];if(!R)return this._loadTilePending[d.uid].forEach($=>$(null,null)),void delete this._loadTilePending[d.uid];if(this.map._refreshExpiredTiles&&R){const $=s.aP(F);d.setExpiryData($)}d._mrt=R,d._isHeaderLoaded=!0,d.state="loaded",this._loadTilePending[d.uid].forEach($=>$(null,R)),this._loadTileLoaded[d.uid]=!0,delete this._loadTilePending[d.uid]},void 0,!0)}queryRasterArrayValueByAllBands(d,g,w){return new Promise((A,j)=>{this._loadTileForQuery(g,(R,F)=>{R?j(R):A(F?this.queryRasterArrayValueByBandId(d,g,w):null)})})}queryRasterArrayValue(d,g){const w=s.aU.convert(d),A=this.findLoadedParent(w);return A&&A._mrt?g.bands||!this.partial?this.queryRasterArrayValueByBandId(w,A,g):this.queryRasterArrayValueByAllBands(w,A,g):Promise.resolve(null)}findLoadedParent(d){const g=s.ag.fromLngLat(d,this.map.transform.tileSize),w=this.maxzoom+1,A=1<0&&(F[new s.aR(v.overscaledZ,A,d.z,w,d.y-1).key]={backfilled:!1},F[new s.aR(v.overscaledZ,v.wrap,d.z,d.x,d.y-1).key]={backfilled:!1},F[new s.aR(v.overscaledZ,R,d.z,j,d.y-1).key]={backfilled:!1}),d.y+1{if(this._loaded=!0,this._pendingLoad=null,w)this.fire(new s.B(w));else{const j={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&A&&A.resourceTiming&&A.resourceTiming[this.id]&&(j.resourceTiming=A.resourceTiming[this.id]),v&&(this._partialReload=!0),this.fire(new s.C("data",j)),this._partialReload=!1,this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(v),this._coalesce=!1)})}loaded(){return this._loaded}reload(){const v=s.F(this.id,this.scope);this.map.style.clearSource(v),this._updateWorkerData()}loadTile(v,d){const g=v.actor?"reloadTile":"loadTile";v.actor=this.actor;const w=this.map.style?this.map.style.getLut(this.scope):null,A=w?{image:w.image.clone()}:null,j=this._partialReload,R={type:this.type,uid:v.uid,tileID:v.tileID,tileZoom:v.tileZoom,zoom:v.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,lut:A,scope:this.scope,pixelRatio:s.o.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,brightness:this.map.style&&this.map.style.getBrightness()||0,extraShadowCaster:v.isExtraShadowCaster,scaleFactor:this.map.getScaleFactor(),partial:j,worldview:this.map.getWorldview(),indoor:this.map.getIndoorTileOptions(this.id,this.scope)};v.request=this.actor.send(g,R,(F,$)=>j&&!$?(v.state="loaded",d(null)):(delete v.request,v.destroy(!1),v.aborted?d(null):F?d(F):(v.loadVectorData($,this.map.painter,g==="reloadTile"),d(null))),void 0,g==="loadTile")}abortTile(v){v.request&&(v.request.cancel(),delete v.request),v.aborted=!0}unloadTile(v,d){this.actor.send("removeTile",{uid:v.uid,type:this.type,source:this.id,scope:this.scope}),v.destroy()}onRemove(v){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return Object.assign({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends s.aV{constructor(v,d,g,w){super(v,d,g,w),this.roundZoom=!0,this.type="video",this.options=d}load(){this._loaded=!1;const v=this.options;this.urls=[];for(const d of v.urls)this.urls.push(this.map._requestManager.transformRequest(d,s.R.Source).url);s.aW(this.urls,(d,g)=>{this._loaded=!0,d?this.fire(new s.B(d)):g&&(this.video=g,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(v){if(this.video){const d=this.video.seekable;vd.end(0)?this.fire(new s.B(new s.V(`sources.${this.id}`,null,`Playback for this video can be set only between the ${d.start(0)} and ${d.end(0)}-second mark.`))):this.video.currentTime=v}}getVideo(){return this.video}onAdd(v){this.map||(this.map=v,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const v=this.map.painter.context,d=v.gl;this.texture?this.video.paused||(this.texture.bind(d.LINEAR,d.CLAMP_TO_EDGE),d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,this.video)):(this.texture=new s.T(v,this.video,d.RGBA8),this.texture.bind(d.LINEAR,d.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(v)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:s.aV,model:s.aY,"batched-model":class extends s.E{constructor(v,d,g,w){super(),this.type="batched-model",this.id=v,this.tileSize=512,this._options=d,this.tiles=this._options.tiles,this.maxzoom=d.maxzoom||19,this.minzoom=d.minzoom||0,this.roundZoom=!0,this.usedInConflation=!0,this.dispatcher=g,this.reparseOverscaled=!1,this.scheme="xyz",this._loaded=!1,this.setEventedParent(w)}onAdd(v){this.map=v,this.load()}reload(){this.cancelTileJSONRequest();const v=s.F(this.id,this.scope);this.load(()=>this.map.style.clearSource(v))}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}load(v){this._loaded=!1,this.fire(new s.C("dataloading",{dataType:"source"}));const d=Array.isArray(this.map._language)?this.map._language.join():this.map._language,g=this.map.getWorldview();this._tileJSONRequest=xc(this._options,this.map._requestManager,d,g,(w,A)=>{this._tileJSONRequest=null,this._loaded=!0,w?(d&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${d}`),g&&g.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${g}`),this.fire(new s.B(w))):A&&(Object.assign(this,A),A.bounds&&(this.tileBounds=new ru(A.bounds,this.minzoom,this.maxzoom)),at(A.tiles,this.map._requestManager._customAccessToken),this.fire(new s.C("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.C("data",{dataType:"source",sourceDataType:"content"}))),v&&v(w)})}hasTransition(){return!1}hasTile(v){return!this.tileBounds||this.tileBounds.contains(v.canonical)}loaded(){return this._loaded}loadTile(v,d){const g=this.map._requestManager.normalizeTileURL(v.tileID.canonical.url(this.tiles,this.scheme)),w={request:this.map._requestManager.transformRequest(g,s.R.Tile),data:void 0,uid:v.uid,tileID:v.tileID,tileZoom:v.tileZoom,zoom:v.tileID.overscaledZ,tileSize:this.tileSize*v.tileID.overscaleFactor(),type:this.type,source:this.id,scope:this.scope,showCollisionBoxes:this.map.showCollisionBoxes,renderSourceType:v.renderSourceType,brightness:this.map.style&&this.map.style.getBrightness()||0,pixelRatio:s.o.devicePixelRatio,promoteId:this.promoteId};if(v.actor&&v.state!=="expired")if(v.state==="loading")v.reloadCallback=d;else{if(v.buckets){const j=Object.values(v.buckets);for(const R of j)R.dirty=!0;return void(v.state="loaded")}v.request=v.actor.send("reloadTile",w,A.bind(this))}else v.actor=this.dispatcher.getActor(),v.request=v.actor.send("loadTile",w,A.bind(this),void 0,!0);function A(j,R){return v.aborted?d(null):j&&j.status!==404?d(j):(this.map._refreshExpiredTiles&&R&&v.setExpiryData(R),v.loadModelData(R,this.map.painter),v.state="loaded",void d(null))}}serialize(){return Object.assign({},this._options)}},canvas:class extends s.aV{constructor(v,d,g,w){super(v,d,g,w),d.coordinates?Array.isArray(d.coordinates)&&d.coordinates.length===4&&!d.coordinates.some(A=>!Array.isArray(A)||A.length!==2||A.some(j=>typeof j!="number"))||this.fire(new s.B(new s.V(`sources.${v}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.B(new s.V(`sources.${v}`,null,'missing required property "coordinates"'))),d.animate&&typeof d.animate!="boolean"&&this.fire(new s.B(new s.V(`sources.${v}`,null,'optional "animate" property must be a boolean value'))),d.canvas?typeof d.canvas=="string"||d.canvas instanceof HTMLCanvasElement||this.fire(new s.B(new s.V(`sources.${v}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new s.B(new s.V(`sources.${v}`,null,'missing required property "canvas"'))),this.options=d,this.animate=d.animate===void 0||d.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.B(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())}getCanvas(){return this.canvas}onAdd(v){this.map=v,this.load(),this.canvas&&this.animate&&this.play()}onRemove(v){this.pause()}prepare(){let v=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,v=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,v=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const d=this.map.painter.context;this.texture?!v&&!this._playing||this.texture instanceof s.aX||this.texture.update(this.canvas,{premultiply:!0}):this.texture=new s.T(d,this.canvas,d.gl.RGBA8,{premultiply:!0}),this._prepareData(d)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const v of[this.canvas.width,this.canvas.height])if(isNaN(v)||v<=0)return!0;return!1}},custom:class extends s.E{constructor(v,d,g,w){super(),this.id=v,this.type="custom",this._dataType="raster",this._dispatcher=g,this._implementation=d,this.setEventedParent(w),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new s.B(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new s.B(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new ru(this._implementation.bounds,this.minzoom,this.maxzoom));const A=d;A.update=this._update.bind(this),A.clearTiles=this._clearTiles.bind(this),A.coveringTiles=this._coveringTiles.bind(this),Object.assign(this,s.aJ(d,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return s.aJ(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new s.C("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.C("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(v){this.map=v,this._loaded=!1,this.fire(new s.C("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(v),this.load()}onRemove(v){this._implementation.onRemove&&this._implementation.onRemove(v)}hasTile(v){if(this._implementation.hasTile){const{x:d,y:g,z:w}=v.canonical;return this._implementation.hasTile({x:d,y:g,z:w})}return!this.tileBounds||this.tileBounds.contains(v.canonical)}loadTile(v,d){const{x:g,y:w,z:A}=v.tileID.canonical,j=new AbortController,R=Promise.resolve(this._implementation.loadTile({x:g,y:w,z:A},{signal:j.signal})).then((function(F){return delete v.request,v.aborted?(v.state="unloaded",d(null)):F===void 0?(v.state="errored",d(null)):F===null?(this.loadTileData(v,{width:this.tileSize,height:this.tileSize,data:null}),v.state="loaded",d(null)):function($){return $ instanceof ImageData||$ instanceof HTMLCanvasElement||$ instanceof ImageBitmap||$ instanceof HTMLImageElement}(F)?(this.loadTileData(v,F),v.state="loaded",void d(null)):(v.state="errored",d(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}).bind(this)).catch(F=>{F.name!=="AbortError"&&(v.state="errored",d(F))});R.cancel=()=>j.abort(),v.request=R}loadTileData(v,d){v.setTexture(d,this.map.painter)}unloadTile(v,d){if(v.texture&&v.texture instanceof s.T?(v.destroy(!1),v.texture&&v.texture instanceof s.T&&this.map.painter.saveTileTexture(v.texture)):v.destroy(),this._implementation.unloadTile){const{x:g,y:w,z:A}=v.tileID.canonical;this._implementation.unloadTile({x:g,y:w,z:A})}d&&d()}abortTile(v,d){v.request&&v.request.cancel&&(v.request.cancel(),delete v.request),d&&d()}hasTransition(){return!1}_coveringTiles(){return this.map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(v=>({x:v.canonical.x,y:v.canonical.y,z:v.canonical.z}))}_clearTiles(){const v=s.F(this.id,this.scope);this.map.style.clearSource(v)}_update(){this.fire(new s.C("data",{dataType:"source",sourceDataType:"content"}))}}},Y_=function(v,d,g,w){const A=new K_[d.type](v,d,g,w);if(A.id!==v)throw new Error(`Expected Source id to be ${v} instead of ${A.id}`);return s.aZ(["load","abort","unload","serialize","prepare"],A),A};function VS(v,d,g=""){return`${g}:${d.id||""}:${d.layer.id}:${function(w){if("layerId"in w)return`layer:${w.layerId}`;{const{featuresetId:A,importId:j}=w;return`featureset:${A}${j?`:import:${j}`:""}`}}(v.target)}`}function pd(v,d,g,w=""){if(v.uniqueFeatureID){const A=VS(v,d,w);if(g.has(A))return!0;g.add(A)}return!1}function cI(v,d,g,w,A=!1,j=void 0){const R=d.sourceCache.transform,F=d.sourceCache.tilesIn(v,d.has3DLayers,A);F.sort(X_);const $=[];for(const H of F){const Y=H.tile.queryRenderedFeatures(d,H,g,w,R,A,j);Object.keys(Y).length&&$.push({wrappedTileID:H.tile.tileID.wrapped().key,queryResults:Y})}for(const H in d.layers){const Y=d.layers[H];if(Y.styleLayer){const te=Y.styleLayer.queryRenderedFeatures(v,d.sourceCache,w);Object.keys(te).length&&$.push({wrappedTileID:0,queryResults:te})}}return $.length===0?{}:function(H){const Y={},te={};for(const ee of H){const ne=ee.queryResults,le=ee.wrappedTileID,oe=te[le]=te[le]||{};for(const me in ne){const pe=ne[me],Ie=oe[me]=oe[me]||{},Ne=Y[me]=Y[me]||[];for(const ve of pe)Ie[ve.featureIndex]||(Ie[ve.featureIndex]=!0,Ne.push(ve))}}return Y}($)}function Z_(v,d,g,w,A,j){const R={},F=w.queryRenderedSymbols(v),$=[];for(const H of Object.keys(F).map(Number))$.push(A[H]);$.sort(X_);for(const H of $){const Y=H.featureIndex.lookupSymbolFeatures(F[H.bucketInstanceId],H.bucketIndex,H.sourceLayerIndex,d,g,j);for(const te in Y){const ee=R[te]=R[te]||[],ne=Y[te];ne.sort((le,oe)=>{const me=H.featureSortOrder;if(me){const pe=me.indexOf(le.featureIndex);return me.indexOf(oe.featureIndex)-pe}return oe.featureIndex-le.featureIndex});for(const le of ne)ee.push(le)}}return R}function qS(v,d){const g=v.getRenderableIds().map(j=>v.getTileByID(j)),w=[],A={};for(let j=0;j{if(j)g(j);else try{const $=w.getHeaderLength(R);if($>d)return void(this.request=this.fetchHeader($,g));w.parseHeader(R),this._isHeaderLoaded=!0;let H=0;for(const Y of Object.values(w.layers))H=Math.max(H,Y.dataIndex[Y.dataIndex.length-1].lastByte);R.byteLength>=H&&(this.entireBuffer=R),g(null,this.entireBuffer||R,F)}catch($){g($)}}),this.request}fetchBandForRender(d,g,w,A){this.fetchBand(d,g,w,j=>{if(j)return void A(j);this.updateTextureDescriptor(d,g,w);const R=this.textureDescriptorPerLayer.get(g);A(null,R?R.img:null)})}fetchBand(d,g,w,A,j=!0){const R=this._mrt;if(!this._isHeaderLoaded||!R)return void A(new Error("Tile header is not ready"));const F=this.actor;if(!F)return void A(new Error("Can't fetch tile band without an actor"));let $;const H=s.F(String(w),s.F(this.tileID.key,d));let Y=this._taskQueue.get(H);Y?Y.add(A):(Y=new Set,Y.add(A),this._taskQueue.set(H,Y));const te=(oe,me)=>{$.complete(oe,me),oe?A(oe):(Y.forEach(pe=>pe(null,me)),this._taskQueue.delete(H))},ee=(oe,me)=>{if(oe)return A(oe);const pe=F.send("decodeRasterArray",{type:"raster-array",source:this.source,scope:this.scope,tileID:this.tileID,uid:this.uid,buffer:me,task:$},te,void 0,!0);if(g!==null){const Ie=this._workQueuePerLayer.get(g)||[];Ie.push(()=>{pe&&pe.cancel(),$.cancel()}),this._workQueuePerLayer.has(g)||this._workQueuePerLayer.set(g,Ie)}};let ne;try{ne=R.getLayer(d)}catch(oe){if(this.state==="reloading")return;throw oe}if(!ne)return void A(new Error(`Unknown sourceLayer "${d}"`));if(ne.hasDataForBand(w))return Y.forEach(oe=>oe(null,null)),void this._taskQueue.delete(H);const le=ne.getDataRange([w]);if($=R.createDecodingTask(le),!$||$.tasks.length)if(g!==null&&this.flushQueues(g),this.entireBuffer)ee(null,this.entireBuffer.slice(le.firstByte,le.lastByte+1));else{const oe=Object.assign({},this.requestParams,{headers:{Range:`bytes=${le.firstByte}-${le.lastByte}`}}),me=s.b1(oe,ee);if(g!==null){const pe=this._fetchQueuePerLayer.get(g)||[];pe.push(()=>{me.cancel(),$.cancel()}),this._fetchQueuePerLayer.has(g)||this._fetchQueuePerLayer.set(g,pe)}}}updateNeeded(d,g){return(!this.textureDescriptorPerLayer.get(d)||this.textureDescriptorPerLayer.get(d).band!==g||this.refreshedUponExpiration)&&this.state!=="errored"}updateTextureDescriptor(d,g,w){if(!this._mrt)return;const A=this._mrt.getLayer(d);if(!A||!A.hasBand(w)||!A.hasDataForBand(w))return;const{bytes:j,tileSize:R,buffer:F,offset:$,scale:H}=A.getBandView(w),Y=R+2*F,te=new s.q({width:Y,height:Y},j),ee=this.texturePerLayer.get(g);ee&&ee instanceof s.T&&ee.update(te,{premultiply:!1}),this.textureDescriptorPerLayer.set(g,{layer:d,band:w,img:te,buffer:F,offset:$,tileSize:R,format:A.pixelFormat,mix:[H,256*H,65536*H,16777216*H]})}destroy(d=!1){if(super.destroy(d),delete this._mrt,!d)for(const g of this.texturePerLayer.values())g&&g instanceof s.T&&g.destroy();this.texturePerLayer.clear(),this.textureDescriptorPerLayer.clear(),this.fbo&&(this.fbo.destroy(),delete this.fbo),delete this.request,delete this.requestParams,this._isHeaderLoaded=!1}}class Hm{constructor(d,g){this.max=d,this.onRemove=g,this.reset()}reset(){for(const d in this.data)for(const g of this.data[d])g.timeout&&clearTimeout(g.timeout),this.onRemove(g.value);return this.data={},this.order=[],this}add(d,g,w){const A=d.wrapped().key;this.data[A]===void 0&&(this.data[A]=[]);const j={value:g,timeout:void 0};if(w!==void 0&&(j.timeout=setTimeout(()=>{this.remove(d,j)},w)),this.data[A].push(j),this.order.push(A),this.order.length>this.max){const R=this._getAndRemoveByKey(this.order[0]);R&&this.onRemove(R)}return this}has(d){return d.wrapped().key in this.data}getAndRemove(d){return this.has(d)?this._getAndRemoveByKey(d.wrapped().key):null}_getAndRemoveByKey(d){const g=this.data[d].shift();return g.timeout&&clearTimeout(g.timeout),this.data[d].length===0&&delete this.data[d],this.order.splice(this.order.indexOf(d),1),g.value}getByKey(d){const g=this.data[d];return g?g[0].value:null}get(d){return this.has(d)?this.data[d.wrapped().key][0].value:null}remove(d,g){if(!this.has(d))return this;const w=d.wrapped().key,A=g===void 0?0:this.data[w].indexOf(g),j=this.data[w][A];return this.data[w].splice(A,1),j.timeout&&clearTimeout(j.timeout),this.data[w].length===0&&delete this.data[w],this.onRemove(j.value),this.order.splice(this.order.indexOf(w),1),this}setMaxSize(d){for(this.max=d;this.order.length>this.max;){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}return this}filter(d){const g=[];for(const w in this.data)for(const A of this.data[w])d(A.value)||g.push(A);for(const w of g)this.remove(w.value.tileID,w)}}class GS{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(d,g,w){const A=String(g);if(this.stateChanges[d]=this.stateChanges[d]||{},this.stateChanges[d][A]=this.stateChanges[d][A]||{},Object.assign(this.stateChanges[d][A],w),this.deletedStates[d]===null){this.deletedStates[d]={};for(const j in this.state[d])j!==A&&(this.deletedStates[d][j]=null)}else if(this.deletedStates[d]&&this.deletedStates[d][A]===null){this.deletedStates[d][A]={};for(const j in this.state[d][A])w[j]||(this.deletedStates[d][A][j]=null)}else for(const j in w)this.deletedStates[d]&&this.deletedStates[d][A]&&this.deletedStates[d][A][j]===null&&delete this.deletedStates[d][A][j]}removeFeatureState(d,g,w){if(this.deletedStates[d]===null)return;const A=String(g);if(this.deletedStates[d]=this.deletedStates[d]||{},w&&g!==void 0)this.deletedStates[d][A]!==null&&(this.deletedStates[d][A]=this.deletedStates[d][A]||{},this.deletedStates[d][A][w]=null);else if(g!==void 0)if(this.stateChanges[d]&&this.stateChanges[d][A])for(w in this.deletedStates[d][A]={},this.stateChanges[d][A])this.deletedStates[d][A][w]=null;else this.deletedStates[d][A]=null;else this.deletedStates[d]=null}getState(d,g){const w=this.state[d]||{},A=this.stateChanges[d]||{},j=this.deletedStates[d];if(j===null)return{};if(g!==void 0){const F=String(g),$=Object.assign({},w[F],A[F]);if(j){const H=j[g];if(H===null)return{};for(const Y in H)delete $[Y]}return $}const R=Object.assign({},w,A);if(j)for(const F in j)delete R[F];return R}initializeTileState(d,g){d.refreshFeatureState(g)}coalesceChanges(d,g){const w={};for(const A in this.stateChanges){this.state[A]=this.state[A]||{};const j={};for(const R in this.stateChanges[A])this.state[A][R]||(this.state[A][R]={}),Object.assign(this.state[A][R],this.stateChanges[A][R]),j[R]=this.state[A][R];w[A]=j}for(const A in this.deletedStates){this.state[A]=this.state[A]||{};const j={};if(this.deletedStates[A]===null)for(const R in this.state[A])j[R]={},this.state[A][R]={};else for(const R in this.deletedStates[A]){if(this.deletedStates[A][R]===null)this.state[A][R]={};else if(this.state[A][R])for(const F of Object.keys(this.deletedStates[A][R]))delete this.state[A][R][F];j[R]=this.state[A][R]}w[A]=w[A]||{},Object.assign(w[A],j)}if(this.stateChanges={},this.deletedStates={},Object.keys(w).length!==0)for(const A in d)d[A].refreshFeatureState(g,w)}}class nu extends s.E{constructor(d,g,w){super(),this.id=d,this._renderSourceType=w,this._maxzoomOverride=null,g.on("data",A=>{A.dataType==="source"&&A.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&A.dataType==="source"&&A.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform))}),g.on("error",()=>{this._sourceErrored=!0}),this._source=g,this._tiles={},this._cache=new Hm(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=g.minTileCacheSize,this._maxTileCacheSize=g.maxTileCacheSize,this._loadedParentTiles={},this.castsShadows=!1,this.tileCoverLift=0,this._coveredTiles={},this._shadowCasterTiles={},this._state=new GS,this._isRaster=this._source.type==="raster"||this._source.type==="raster-dem"||this._source.type==="raster-array"||this._source.type==="custom"&&"_dataType"in this._source&&this._source._dataType==="raster",this._supportsFading=this._source.type==="raster"||this._source.type==="raster-array"||this._source.type==="image"||this._source.type==="video"||this._source.type==="custom",this._isRasterElevatedOverTerrain=!1}onAdd(d){this.map=d,this._minTileCacheSize=this._minTileCacheSize===void 0&&d?d._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=this._maxTileCacheSize===void 0&&d?d._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const d in this._tiles)if(!this._tiles[d].loaded())return!1;return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const d=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,d&&this.reload(),this.transform&&this.update(this.transform)}setMaxzoomOverride(d){this._maxzoomOverride=d}_loadTile(d,g){return d.renderSourceType=this._renderSourceType,d.isExtraShadowCaster=this._shadowCasterTiles[d.tileID.key],this._source.loadTile(d,g)}_unloadTile(d){if(this._source.unloadTile)return this._source.unloadTile(d)}_abortTile(d){if(this._source.abortTile)return this._source.abortTile(d)}serialize(){return this._source.serialize()}prepare(d){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const g in this._tiles){const w=this._tiles[g];w.upload(d,this.map?this.map.painter:void 0),w.prepare(this.map.style.imageManager,this.map?this.map.painter:null,this._source.scope)}}getIds(){return Object.values(this._tiles).map(d=>d.tileID).sort(HS).map(d=>d.key)}getRenderableIds(d,g){const w=[];for(const A in this._tiles)this._isIdRenderable(+A,d,g)&&w.push(this._tiles[A]);return d?w.sort((A,j)=>{const R=A.tileID,F=j.tileID,$=new s.P(R.canonical.x,R.canonical.y)._rotate(this.transform.angle),H=new s.P(F.canonical.x,F.canonical.y)._rotate(this.transform.angle);return R.overscaledZ-F.overscaledZ||H.y-$.y||H.x-$.x}).map(A=>A.tileID.key):w.map(A=>A.tileID).sort(HS).map(A=>A.key)}hasRenderableParent(d){const g=this.findLoadedParent(d,0);return!!g&&this._isIdRenderable(g.tileID.key)}_isIdRenderable(d,g,w){return this._tiles[d]&&this._tiles[d].hasData()&&!this._coveredTiles[d]&&(g||!this._tiles[d].holdingForFade())&&(w||!this._shadowCasterTiles[d])}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const d in this._tiles)this._tiles[d].state!=="errored"&&this._reloadTile(+d,"reloading")}}_reloadTile(d,g){const w=this._tiles[d];w&&(w.state!=="loading"&&(w.state=g),this._loadTile(w,this._tileLoaded.bind(this,w,d,g)))}_tileLoaded(d,g,w,A,j){if(A){if(d.state="errored",s.b2(A)){if(this._source.fire(new s.C("data",{dataType:"source",sourceDataType:"error",sourceId:this._source.id,tile:d})),!(d.tileID.key in this._loadedParentTiles))return;if(this._source.type==="raster-dem"&&this.usedForTerrain&&this.map.painter.terrain){const F=this.map.painter.terrain;this.update(this.transform,F.getScaledDemTileSize(),!0),F.resetTileLookupCache(this.id)}else this.update(this.transform)}else this._source.fire(new s.B(A,{tile:d}));return}d.timeAdded=s.o.now(),w==="expired"&&(d.refreshedUponExpiration=!0),this._setTileReloadTimer(g,d),this._source.type==="raster-dem"&&d.dem&&this._backfillDEM(d),this._state.initializeTileState(d,this.map?this.map.painter:null);let R=new Map;j&&j.responseHeaders&&(R=j.responseHeaders),this._source.fire(new s.C("data",{dataType:"source",tile:d,coord:d.tileID,sourceCacheId:this.id,responseHeaders:R}))}_hasTunnelGeometry(){for(const d in this._tiles){const g=this._tiles[d];if(g&&g.hasTunnelGeometry)return!0}return!1}_backfillDEM(d){const g=this.getRenderableIds();for(let A=0;A1||(Math.abs(R)>1&&(Math.abs(R+$)===1?R+=$:Math.abs(R-$)===1&&(R-=$)),j.dem&&A.dem&&(A.dem.backfillBorder(j.dem,R,F),A.neighboringTiles&&A.neighboringTiles[H]&&(A.neighboringTiles[H].backfilled=!0)))}}getTile(d){return this.getTileByID(d.key)}getTileByID(d){return this._tiles[d]}_retainLoadedChildren(d,g,w,A){for(const j in this._tiles){let R=this._tiles[j];if(A[j]||!R.hasData()||R.tileID.overscaledZ<=g||R.tileID.overscaledZ>w)continue;let F=R.tileID;for(;R&&R.tileID.overscaledZ>g+1;){const H=R.tileID.scaledTo(R.tileID.overscaledZ-1);R=this._tiles[H.key],R&&R.hasData()&&(F=H)}let $=F;for(;$.overscaledZ>g;)if($=$.scaledTo($.overscaledZ-1),d[$.key]){A[F.key]=F;break}}}findLoadedParent(d,g){if(d.key in this._loadedParentTiles){const w=this._loadedParentTiles[d.key];return w&&w.tileID.overscaledZ>=g?w:null}for(let w=d.overscaledZ-1;w>=g;w--){const A=d.scaledTo(w),j=this._getLoadedTile(A);if(j)return j}}_getLoadedTile(d){const g=this._tiles[d.key];return g&&g.hasData()?g:this._cache.getByKey(this._source.reparseOverscaled?d.wrapped().key:d.canonical.key)}updateCacheSize(d,g){g=g||this._source.tileSize;const w=Math.ceil(d.width/g)+1,A=Math.ceil(d.height/g)+1,j=Math.floor(w*A*5),R=typeof this._minTileCacheSize=="number"?Math.max(this._minTileCacheSize,j):j,F=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,R):R;this._cache.setMaxSize(F)}handleWrapJump(d){const g=Math.round((d-(this._prevLng===void 0?d:this._prevLng))/360);if(this._prevLng=d,g){const w={};for(const A in this._tiles){const j=this._tiles[A];j.tileID=j.tileID.unwrapTo(j.tileID.wrap+g),w[j.tileID.key]=j}this._tiles=w;for(const A in this._timers)clearTimeout(this._timers[A]),delete this._timers[A];for(const A in this._tiles)this._setTileReloadTimer(+A,this._tiles[A])}}update(d,g,w,A,j){if(this.transform=d,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!w)return;this.updateCacheSize(d,g),this.transform.projection.name!=="globe"&&this.handleWrapJump(this.transform.center.lng),this._shadowCasterTiles={},this._coveredTiles={};const R=this._source.type==="batched-model";let F,$=this._source.maxzoom;this._maxzoomOverride!==null&&($=Math.min($,this._maxzoomOverride));const H=this.map&&this.map.painter?this.map.painter._terrain:null;if(H&&H.sourceCache===this&&H.attenuationRange()){const ne=H.attenuationRange()[0],le=Math.floor(ne)-Math.log2(H.getDemUpscale());$>le&&($=le)}const Y=this._maxzoomOverride===null&&this._source.reparseOverscaled;if(this.used||this.usedForTerrain){if(this._source.tileID)F=d.getVisibleUnwrappedCoordinates(this._source.tileID).map(ne=>new s.aR(ne.canonical.z,ne.wrap,ne.canonical.z,ne.canonical.x,ne.canonical.y));else if(this.tileCoverLift!==0){const ne=d.clone();ne.tileCoverLift=this.tileCoverLift,F=ne.coveringTiles({tileSize:g||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:$,roundZoom:this._source.roundZoom&&!w,reparseOverscaled:Y,isTerrainDEM:this.usedForTerrain,calculateQuadrantVisibility:R}),this._source.minzoom<=1&&d.projection.name==="globe"&&(F.push(new s.aR(1,0,1,0,0)),F.push(new s.aR(1,0,1,1,0)),F.push(new s.aR(1,0,1,0,1)),F.push(new s.aR(1,0,1,1,1)))}else if(F=d.coveringTiles({tileSize:g||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:$,roundZoom:this._source.roundZoom&&!w,reparseOverscaled:Y,isTerrainDEM:this.usedForTerrain,calculateQuadrantVisibility:R}),this._source.hasTile){const ne=this._source.hasTile.bind(this._source);F=F.filter(le=>ne(le))}}else F=[];if(F.length>0&&this.transform.projection.name!=="globe"&&!this.usedForTerrain&&!this._supportsFading){const ne=d.coveringZoomLevel({tileSize:g||this._source.tileSize,roundZoom:this._source.roundZoom&&!w}),le=Math.min(ne,$);if(R){const oe=d.extendTileCover(F,le);for(const me of oe)F.push(me)}else if(j){const oe=this.transform.getFrustum(le),me=d.extendTileCoverToNearPlane(F,oe,le);for(const pe of me)F.push(pe);if(le>=18&&this._hasTunnelGeometry()){const pe=d.extendTileCoverForTunnels(F,oe,le,20);for(const Ie of pe)F.push(Ie)}}else if(this.castsShadows&&A){const oe=d.extendTileCover(F,le,A,16);for(const me of oe)this._shadowCasterTiles[me.key]=!0,F.push(me)}}const te=this._updateRetainedTiles(F);if(this._supportsFading&&F.length!==0){const ne={},le={},oe=s.o.now(),me=Object.keys(te);for(const Ie of me){const Ne=te[Ie],ve=this._tiles[Ie];if(!ve||ve.fadeEndTime!==void 0&&ve.fadeEndTime<=oe)continue;const Ye=this.findLoadedParent(Ne,Math.max(Ne.overscaledZ-nu.maxOverzooming,this._source.minzoom));Ye&&(this._addTile(Ye.tileID),ne[Ye.tileID.key]=Ye.tileID),le[Ie]=Ne}const pe=F[F.length-1].overscaledZ;for(const Ie in this._tiles){const Ne=this._tiles[Ie];if(te[Ie]||!Ne.hasData())continue;let ve=Ne.tileID;for(;ve.overscaledZ>pe;){ve=ve.scaledTo(ve.overscaledZ-1);const Ye=this._tiles[ve.key];if(Ye&&Ye.hasData()&&le[ve.key]){te[Ie]=Ne.tileID;break}}}for(const Ie in ne)te[Ie]||(this._coveredTiles[Ie]=!0,te[Ie]=ne[Ie])}for(const ne in te)this._tiles[ne].clearFadeHold();const ee=s.b3(this._tiles,te);for(const ne of ee){const le=this._tiles[ne];le.hasSymbolBuckets&&!le.holdingForFade()?le.setHoldDuration(this.map._fadeDuration):le.hasSymbolBuckets&&!le.symbolFadeFinished()||this._removeTile(+ne)}this._updateLoadedParentTileCache(),this._renderSourceType===s.b4.Symbol&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const d in this._tiles)this._tiles[d].holdingForFade()&&this._removeTile(+d)}_updateRetainedTiles(d){const g={};if(d.length===0)return g;const w={},A=d.reduce((H,Y)=>Math.min(H,Y.overscaledZ),1/0),j=d[0].overscaledZ,R=Math.max(j-nu.maxOverzooming,this._source.minzoom),F=Math.max(j+nu.maxUnderzooming,this._source.minzoom),$={};for(const H of d){const Y=this._addTile(H);g[H.key]=H,Y.hasData()||A=this._source.maxzoom){const ee=H.children(this._source.maxzoom)[0],ne=this.getTile(ee);if(ne&&ne.hasData()){g[ee.key]=ee;continue}}else{const ee=H.children(this._source.maxzoom);if(g[ee[0].key]&&g[ee[1].key]&&g[ee[2].key]&&g[ee[3].key])continue}let te=Y.wasRequested();for(let ee=H.overscaledZ-1;ee>=R;--ee){const ne=H.scaledTo(ee);if(w[ne.key]||(w[ne.key]=!0,Y=this.getTile(ne),!Y&&te&&(Y=this._addTile(ne)),Y&&(g[ne.key]=ne,te=Y.wasRequested(),Y.hasData())))break}}return g}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const d in this._tiles){const g=[];let w,A=this._tiles[d].tileID;for(;A.overscaledZ>0;){if(A.key in this._loadedParentTiles){w=this._loadedParentTiles[A.key];break}g.push(A.key);const j=A.scaledTo(A.overscaledZ-1);if(w=this._getLoadedTile(j),w)break;A=j}for(const j of g)this._loadedParentTiles[j]=w}}_addTile(d){let g=this._tiles[d.key];if(g)return g.isExtraShadowCaster!==!0||this._shadowCasterTiles[d.key]||this._reloadTile(d.key,"reloading"),g;g=this._cache.getAndRemove(d),g&&(this._setTileReloadTimer(d.key,g),g.tileID=d,this._state.initializeTileState(g,this.map?this.map.painter:null),this._cacheTimers[d.key]&&(clearTimeout(this._cacheTimers[d.key]),delete this._cacheTimers[d.key],this._setTileReloadTimer(d.key,g)));const w=!!g;if(!w){const A=this.map?this.map.painter:null,j=this._source.tileSize*d.overscaleFactor();g=this._source.type==="raster-array"?new xp(d,j,this.transform.tileZoom,A,this._isRaster):new s.b0(d,j,this.transform.tileZoom,A,this._isRaster,this._source.worldview),this._loadTile(g,this._tileLoaded.bind(this,g,d.key,g.state))}return g.uses++,this._tiles[d.key]=g,w||this._source.fire(new s.C("dataloading",{tile:g,coord:g.tileID,dataType:"source"})),g}_setTileReloadTimer(d,g){d in this._timers&&(clearTimeout(this._timers[d]),delete this._timers[d]);const w=g.getExpiryTimeout();w&&(this._timers[d]=setTimeout(()=>{this._reloadTile(d,"expired"),delete this._timers[d]},w))}_removeTile(d){const g=this._tiles[d];g&&(g.uses--,delete this._tiles[d],this._timers[d]&&(clearTimeout(this._timers[d]),delete this._timers[d]),g.uses>0||(g.hasData()&&g.state!=="reloading"||g.state==="empty"?this._cache.add(g.tileID,g,g.getExpiryTimeout()):(g.aborted=!0,this._abortTile(g),this._unloadTile(g))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const d in this._tiles)this._removeTile(+d);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(d,g,w){const A=[],j=this.transform;if(!j)return A;const R=j.projection.name==="globe",F=s.aH(j.center.lng);for(const $ in this._tiles){const H=this._tiles[$];if(w&&H.clearQueryDebugViz(),H.holdingForFade())continue;let Y;if(R){const te=H.tileID.canonical;if(te.z===0){const ee=[Math.abs(s.aC(F,...Wm(te,-1))-F),Math.abs(s.aC(F,...Wm(te,1))-F)];Y=[0,2*ee.indexOf(Math.min(...ee))-1]}else{const ee=[Math.abs(s.aC(F,...Wm(te,-1))-F),Math.abs(s.aC(F,...Wm(te,0))-F),Math.abs(s.aC(F,...Wm(te,1))-F)];Y=[ee.indexOf(Math.min(...ee))-1]}}else Y=[0];for(const te of Y){const ee=d.containsTile(H,j,g,te);ee&&A.push(ee)}}return A}getShadowCasterCoordinates(){return this._getRenderableCoordinates(!1,!0)}getVisibleCoordinates(d){return this._getRenderableCoordinates(d)}_getRenderableCoordinates(d,g){const w=this.getRenderableIds(d,g).map(j=>this._tiles[j].tileID),A=this.transform.projection.name==="globe";for(const j of w)j.projMatrix=this.transform.calculateProjMatrix(j.toUnwrapped()),j.expandedProjMatrix=A?this.transform.calculateProjMatrix(j.toUnwrapped(),!1,!0):j.projMatrix;return w}sortCoordinatesByDistance(d){const g=d.slice(),w=this.transform._camera.position,A=this.transform._camera.forward(),j={};for(const R of g){const F=1/(1<j[R.key]-j[F.key]),g}hasTransition(){if(this._source.hasTransition())return!0;if(this._supportsFading){const d=s.o.now();for(const g in this._tiles){const w=this._tiles[g];if(w.fadeEndTime!==void 0&&w.fadeEndTime>=d)return!0}}return!1}setFeatureState(d,g,w){this._state.updateState(d=d||"_geojsonTileLayer",g,w)}removeFeatureState(d,g,w){this._state.removeFeatureState(d=d||"_geojsonTileLayer",g,w)}getFeatureState(d,g){return this._state.getState(d=d||"_geojsonTileLayer",g)}setDependencies(d,g,w){const A=this._tiles[d];A&&A.setDependencies(g,w)}reloadTilesForDependencies(d,g){for(const w in this._tiles)this._tiles[w].hasDependency(d,g)&&this._reloadTile(+w,"reloading");this._cache.filter(w=>!w.hasDependency(d,g))}_preloadTiles(d,g){if(!this._sourceLoaded){const $=()=>{this._sourceLoaded&&(this._source.off("data",$),this._preloadTiles(d,g))};return void this._source.on("data",$)}const w=new Map,A=Array.isArray(d)?d:[d],j=this.map.painter.terrain,R=this.usedForTerrain&&j?j.getScaledDemTileSize():this._source.tileSize;for(const $ of A){const H=$.coveringTiles({tileSize:R,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const Y of H)w.set(Y.key,Y);this.usedForTerrain&&$.updateElevation(!1)}const F=Array.from(w.values());s.t(F,($,H)=>{const Y=new s.b0($,this._source.tileSize*$.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster,this._source.worldview);this._loadTile(Y,te=>{this._source.type==="raster-dem"&&Y.dem&&this._backfillDEM(Y),H(te,Y)})},g)}}function HS(v,d){const g=Math.abs(2*v.wrap)-+(v.wrap<0),w=Math.abs(2*d.wrap)-+(d.wrap<0);return v.overscaledZ-d.overscaledZ||w-g||d.canonical.y-v.canonical.y||d.canonical.x-v.canonical.x}function Wm(v,d){const g=1<0:w.type==="building"?A=!w.isHidden(d)&&w.paint.get("building-opacity")>0:w.type==="model"&&(A=!w.isHidden(d)&&w.paint.get("model-opacity").constantOr(1)>0),this.layersGotHidden=this.layersGotHidden||!A&&g.visible,g.visible=A}}updateZOffset(d,g){this.currentBuildingBuckets=[];for(const A of this.layers){const j=A.layer,R=this.style.getLayerSourceCache(j);let F=1;j.type==="fill-extrusion"?F=A.visible?j.paint.get("fill-extrusion-vertical-scale"):0:j.type==="building"&&(F=A.visible?j.paint.get("building-vertical-scale"):0);let $=R?R.getTile(g):null;if(!$&&R)for(const H in R._tiles){const Y=R._tiles[H];if(g.canonical.isChildOf(Y.tileID.canonical)){$=Y;break}}this.currentBuildingBuckets.push({bucket:$?$.getBucket(j):null,tileID:$?$.tileID:g,verticalScale:F})}d.hasAnyZOffset=!1;let w=!1;for(let A=0;A{w in d&&(g[w]=d[w])}),g}function KS(v){v=v.slice();const d=Object.create(null);for(const g of v)d[g.id]=g;for(let g=0;g0?(A-R)/F:0;return this.points[j].mult(1-$).add(this.points[g].mult($))}}class YS{constructor(d,g,w){const A=this.boxCells=[],j=this.circleCells=[];this.xCellCount=Math.ceil(d/w),this.yCellCount=Math.ceil(g/w);for(let R=0;Rthis.width||A<0||g>this.height)return!j&&[];const F=[];if(d<=0&&g<=0&&this.width<=w&&this.height<=A){if(j)return!0;for(let $=0;$0:F}_queryCircle(d,g,w,A,j){const R=d-w,F=d+w,$=g-w,H=g+w;if(F<0||R>this.width||H<0||$>this.height)return!A&&[];const Y=[];return this._forEachCell(R,$,F,H,this._queryCellCircle,Y,{hitTest:A,circle:{x:d,y:g,radius:w},seenUids:{box:{},circle:{}}},j),A?Y.length>0:Y}query(d,g,w,A,j){return this._query(d,g,w,A,!1,j)}hitTest(d,g,w,A,j){return this._query(d,g,w,A,!0,j)}hitTestCircle(d,g,w,A){return this._queryCircle(d,g,w,!0,A)}_queryCell(d,g,w,A,j,R,F,$){const H=F.seenUids,Y=this.boxCells[j];if(Y!==null){const ee=this.bboxes;for(const ne of Y)if(!H.box[ne]){H.box[ne]=!0;const le=4*ne;if(d<=ee[le+2]&&g<=ee[le+3]&&w>=ee[le+0]&&A>=ee[le+1]&&(!$||$(this.boxKeys[ne]))){if(F.hitTest)return R.push(!0),!0;R.push({key:this.boxKeys[ne],x1:ee[le],y1:ee[le+1],x2:ee[le+2],y2:ee[le+3]})}}}const te=this.circleCells[j];if(te!==null){const ee=this.circles;for(const ne of te)if(!H.circle[ne]){H.circle[ne]=!0;const le=3*ne;if(this._circleAndRectCollide(ee[le],ee[le+1],ee[le+2],d,g,w,A)&&(!$||$(this.circleKeys[ne]))){if(F.hitTest)return R.push(!0),!0;{const oe=ee[le],me=ee[le+1],pe=ee[le+2];R.push({key:this.circleKeys[ne],x1:oe-pe,y1:me-pe,x2:oe+pe,y2:me+pe})}}}}}_queryCellCircle(d,g,w,A,j,R,F,$){const H=F.circle,Y=F.seenUids,te=this.boxCells[j];if(te!==null){const ne=this.bboxes;for(const le of te)if(!Y.box[le]){Y.box[le]=!0;const oe=4*le;if(this._circleAndRectCollide(H.x,H.y,H.radius,ne[oe+0],ne[oe+1],ne[oe+2],ne[oe+3])&&(!$||$(this.boxKeys[le])))return R.push(!0),!0}}const ee=this.circleCells[j];if(ee!==null){const ne=this.circles;for(const le of ee)if(!Y.circle[le]){Y.circle[le]=!0;const oe=3*le;if(this._circlesCollide(ne[oe],ne[oe+1],ne[oe+2],H.x,H.y,H.radius)&&(!$||$(this.circleKeys[le])))return R.push(!0),!0}}}_forEachCell(d,g,w,A,j,R,F,$){const H=this._convertToXCellCoord(d),Y=this._convertToYCellCoord(g),te=this._convertToXCellCoord(w),ee=this._convertToYCellCoord(A);for(let ne=H;ne<=te;ne++)for(let le=Y;le<=ee;le++)if(j.call(this,d,g,w,A,this.xCellCount*le+ne,R,F,$))return}_convertToXCellCoord(d){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(d*this.xScale)))}_convertToYCellCoord(d){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(d*this.yScale)))}_circlesCollide(d,g,w,A,j,R){const F=A-d,$=j-g,H=w+R;return H*H>F*F+$*$}_circleAndRectCollide(d,g,w,A,j,R,F){const $=(R-A)/2,H=Math.abs(d-(A+$));if(H>$+w)return!1;const Y=(F-j)/2,te=Math.abs(g-(j+Y));if(te>Y+w)return!1;if(H<=$||te<=Y)return!0;const ee=H-$,ne=te-Y;return ee*ee+ne*ne<=w*w}}const c3=Math.tan(85*Math.PI/180);function af(v,d,g,w,A,j,R){const F=s.bb();if(g)if(j.name==="globe"){const $=s.bc(A,d);s.aD(F,F,$)}else{const $=s.bd([],R);F[0]=$[0],F[1]=$[1],F[4]=$[2],F[5]=$[3],w||s.ba(F,F,A.angle)}else s.aD(F,A.labelPlaneMatrix,v);return F}function Pu(v,d,g,w,A,j,R){const F=af(v,d,g,w,A,j,R);return j.name==="globe"&&g||(F[2]=F[6]=F[10]=F[14]=0),F}function Xm(v,d,g,w,A,j,R){if(g){if(j.name==="globe"){const F=af(v,d,g,w,A,j,R);return s.b7(F,F),s.aD(F,v,F),F}{const F=s.b8(v),$=s.b9([]);return $[0]=R[0],$[1]=R[1],$[4]=R[2],$[5]=R[3],s.aD(F,F,$),w||s.ba(F,F,-A.angle),F}}return A.glCoordMatrix}function iu(v,d,g,w){const A=[v,d,g,1];g?s.aE(A,A,w):Zr(A,A,w);const j=A[3];return A[0]/=j,A[1]/=j,A[2]/=j,A}function ev(v,d){return Math.min(.5+v/d*.5,1.5)}function yx(v,d){const g=v[0]/v[3],w=v[1]/v[3];return g>=-d[0]&&g<=d[0]&&w>=-d[1]&&w<=d[1]}function rc(v,d,g,w,A,j,R,F,$,H,Y=1){const te=g.transform,ee=w?v.textSizeData:v.iconSizeData,ne=s.bj(ee,g.transform.zoom,Y),le=te.projection.name==="globe",oe=[256/g.width*2+1,256/g.height*2+1],me=w?v.text.dynamicLayoutVertexArray:v.icon.dynamicLayoutVertexArray;me.clear();let pe=null;le&&(pe=w?v.text.globeExtVertexArray:v.icon.globeExtVertexArray);const Ie=v.lineVertexArray,Ne=w?v.text.placedSymbolArray:v.icon.placedSymbolArray,ve=g.transform.width/g.transform.height;let Ye,Be=!1;for(let We=0;WeMath.abs(g)?{useVertical:!0}:v===s.bk.vertical?w>0?{needsFlipping:!0}:null:d!==0&&function(A,j){return A===0||Math.abs(j/A)>c3}(g,w)?d===1?{needsFlipping:!0}:null:g<0?{needsFlipping:!0}:null}function XS(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie,Ne){const ve=d/24,Ye=v.lineOffsetX*ve,Be=v.lineOffsetY*ve,{lineStartIndex:We,glyphStartIndex:Le,numGlyphs:Fe,segment:qe,writingMode:st,flipState:Qe}=v,yt=We+v.lineLength,ft=Nt=>{if(Y){const[mt,bt,Et]=Nt.up,tr=H.length;s.bm(Y,tr+0,mt,bt,Et),s.bm(Y,tr+1,mt,bt,Et),s.bm(Y,tr+2,mt,bt,Et),s.bm(Y,tr+3,mt,bt,Et)}const[Ft,ot,tt]=Nt.point;s.bn(H,Ft,ot,tt,Nt.angle)};if(Fe>1){const Nt=ZS(ve,F,Ye,Be,g,te,ee,v,$,j,ne,oe,!1,me,pe,Ie,Ne);if(!Nt)return{notEnoughRoom:!0};if(w&&!g){let[Ft,ot,tt]=Nt.first.point,[mt,bt,Et]=Nt.last.point;[Ft,ot]=iu(Ft,ot,tt,R),[mt,bt]=iu(mt,bt,Et,R);const tr=tv(st,Qe,(mt-Ft)*le,bt-ot);if(v.flipState=tr&&tr.needsFlipping?1:2,tr)return tr}ft(Nt.first);for(let Ft=Le+1;Ft0?mt:QS(ee,tt,Ft,1,A,void 0,me,pe.canonical),Et=tv(st,Qe,(bt[0]-Ft[0])*le,bt[1]-Ft[1]);if(v.flipState=Et&&Et.needsFlipping?1:2,Et)return Et}const Nt=rv(ve*F.getoffsetX(Le),Ye,Be,g,te,ee,qe,We,yt,$,j,ne,oe,!1,!1,me,pe,Ie,Ne);if(!Nt)return{notEnoughRoom:!0};ft(Nt)}return{}}function Wn(v,d,g,w,A){const{x:j,y:R,z:F}=w.projectTilePoint(v.x,v.y,d);if(!A)return iu(j,R,F,g);const[$,H,Y]=A.getElevation(v,A.elevation,A.elevationFeature);return iu(j+$,R+H,F+Y,g)}function QS(v,d,g,w,A,j,R,F){const $=Wn(v.sub(d)._unit()._add(v),F,A,R,j);return s.ax($,g,$),s.ay($,$),s.bg($,g,$,w)}function rv(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie){const Ne=w?v-d:v+d;let ve=Ne>0?1:-1,Ye=0;w&&(ve*=-1,Ye=Math.PI),ve<0&&(Ye+=Math.PI);let Be=F+R+(ve>0?0:1)|0,We=A,Le=A,Fe=0,qe=0;const st=Math.abs(Ne),Qe=[],yt=[];let ft=j,Nt=ft,Ft=s.be([]);const ot=()=>QS(Nt,ft,Le,st-Fe+1,Y,ee,oe,me.canonical);for(;Fe+qe<=st;){if(Be+=ve,Be=$)return null;if(Le=We,Nt=ft,Qe.push(Le),ne&&yt.push(Nt),ft=new s.P(H.getx(Be),H.gety(Be)),We=te[Be],!We){const Dr=Wn(ft,me.canonical,Y,oe,ee);We=Dr[3]>0?te[Be]=Dr:ot()}Fe+=qe;const Mt=s.ax([],We,Le),Tr=s.bf(Le,We);if(g&&Tr>0&&qe>0&&s.bi(Ft,Mt)/(qe*Tr)0,Ne),We=H*Be.perspectiveRatio,Le=(w.x1*g+F.x-w.padding)*We+Be.point.x,Fe=(w.y1*g+F.y-w.padding)*We+Be.point.y,qe=(w.x2*g+F.x+w.padding)*We+Be.point.x,st=(w.y2*g+F.y+w.padding)*We+Be.point.y,Qe=Be.perspectiveRatio<=.55||Be.occluded;return!this.isInsideGrid(Le,Fe,qe,st)||!$&&this.grid.hitTest(Le,Fe,qe,st,te)||Qe?{box:[],offscreen:!1,occluded:Be.occluded}:{box:[Le,Fe,qe,st],offscreen:this.isOffscreen(Le,Fe,qe,st),occluded:!1}}placeCollisionCircles(d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me){const pe=[],Ie=this.transform.elevation,Ne=d.getProjection(),ve=d.elevationType==="road",Ye=!!Ie||ve,Be=s.bu.getAtTileOffsetFunc(me,this.transform.center.lat,this.transform.worldSize,Ne),We=new s.P(w.tileAnchorX,w.tileAnchorY),Le=new s.P(w.tileAnchorX,w.tileAnchorY);let{x:Fe,y:qe,z:st}=Ne.projectTilePoint(Le.x,Le.y,me.canonical),Qe=null;if(Ye){const Tr=ve?d.getElevationFeatureForText(A):null;Qe={getElevation:Be,elevation:Ie,elevationFeature:Tr};const[Dr,pr,wr]=Be(We,Ie,Tr);Fe+=Dr,qe+=pr,st+=wr}const yt=Ne.name==="globe",ft=this.projectAndGetPerspectiveRatio($,Fe,qe,st,me,yt||!!Ie||this.transform.pitch>0,Ne),{perspectiveRatio:Nt}=ft,Ft=(ee?F/Nt:F*Nt)/s.by,ot=iu(Fe,qe,st,H),tt=w.lineOffsetX*Ft,mt=w.lineOffsetY*Ft,bt=s.ap(d.layers[0].layout.get("text-max-angle")),Et=Math.cos(bt),tr=ft.signedDistanceFromCamera>0?ZS(Ft,R,tt,mt,ve&&w.flipState===1,ot,Le,w,j,H,{},Ye&&!ee?Qe:null,ee&&Ye,Ne,me,ee,Et):null;let Vt=!1,qt=!1,Mt=!0;if(tr&&!ft.occluded){const Tr=.5*le*Nt+oe,Dr=new s.P(-100,-100),pr=new s.P(this.screenRightBoundary,this.screenBottomBoundary),wr=new dI,{first:Wr,last:nn}=tr,Jr=Wr.path.length;let mn=[];for(let en=Jr-1;en>=1;en--)mn.push(Wr.path[en]);for(let en=1;en(Ye&&!yt&&(mi=Be(Yien[3]<=0)&&(mn=[]));let gn=[];if(mn.length>0){let en=1/0,Bn=-1/0,mi=1/0,Yi=-1/0;for(const Ti of mn)en=Math.min(en,Ti[0]),mi=Math.min(mi,Ti[1]),Bn=Math.max(Bn,Ti[0]),Yi=Math.max(Yi,Ti[1]);Bn>=Dr.x&&en<=pr.x&&Yi>=Dr.y&&mi<=pr.y&&(gn=[mn.map(Ti=>new s.P(Ti[0],Ti[1]))],(enpr.x||mipr.y)&&(gn=s.bv(gn,Dr.x,Dr.y,pr.x,pr.y)))}for(const en of gn){wr.reset(en,.25*Tr);let Bn=0;Bn=wr.length<=.5*Tr?1:Math.ceil(wr.paddedLength/Ur)+1;for(let mi=0;mi0?(s.aE($,$,d),this.fogState&&j&&F.name!=="globe"&&(H=function(ee,ne,le,oe,me,pe){const Ie=pe.calculateFogTileMatrix(me),Ne=[ne,le,oe];return s.ah(Ne,Ne,Ie),Ii(ee,s.ai(Ne),pe.pitch,pe._fov)}(this.fogState,g,w,A,j.toUnwrapped(),this.transform)>.9)):Zr($,$,d);const Y=$[3];return{point:new s.P(($[0]/Y+1)/2*this.transform.width+Nu,(-$[1]/Y+1)/2*this.transform.height+Nu),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(F)/Y*.5,1.5),signedDistanceFromCamera:Y,occluded:R&&$[2]>Y||H}}isOffscreen(d,g,w,A){return w=this.screenRightBoundary||Athis.screenBottomBoundary}isInsideGrid(d,g,w,A){return w>=0&&d=0&&gw.collisionGroupID===g}}return this.collisionGroups[d]}}function pl(v,d,g,w,A){const{horizontalAlign:j,verticalAlign:R}=s.bF(v),F=-(j-.5)*d,$=-(R-.5)*g,H=s.bG(v,w);return new s.P(F+H[0]*A,$+H[1]*A)}function of(v,d,g,w,A){const j=new s.P(v,d);return g&&j._rotate(w?A:-A),j}class ui{constructor(d,g,w,A,j,R){this.transform=d.clone(),this.projection=d.projection.name,this.collisionIndex=new nv(this.transform,j),this.buildingIndex=R,this.frontCutoffStart=0,this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=g,this.retainedQueryData={},this.collisionGroups=new ci(w),this.collisionCircleArrays={},this.prevPlacement=A,A&&(A.prevPlacement=void 0),this.placedOrientations={},this.lastReplacementSourceUpdateTime=0}getBucketParts(d,g,w,A,j=1){const R=w.getBucket(g),F=w.latestFeatureIndex;if(!R||!F||g.fqid!==R.layerIds[0])return;const $=R.layers[0].layout,H=R.layers[0].paint,Y=w.collisionBoxArray,te=Math.pow(2,this.transform.zoom-w.tileID.overscaledZ),ee=w.tileSize/s.an,ne=w.tileID.toUnwrapped();this.transform.setProjection(R.projection);const le=(oe=w.tileID,me=R.getProjection(),pe=this.transform,me.name===this.projection?pe.calculateProjMatrix(oe.toUnwrapped()):J_(pe,me,oe));var oe,me,pe;const Ie=$.get("text-pitch-alignment")==="map",Ne=$.get("text-rotation-alignment")==="map";g.compileFilter(g.options);const ve=g.dynamicFilter(),Ye=g.dynamicFilterNeedsFeature(),Be=g.dynamicFilterNeedsGeometry(),We=this.transform.calculatePixelsToTileUnitsMatrix(w),Le=Pu(le,w.tileID.canonical,Ie,Ne,this.transform,R.getProjection(),We);let Fe=null;const qe=R.getProjection().createInversionMatrix(this.transform,w.tileID.canonical);if(Ie){const mt=Xm(le,w.tileID.canonical,Ie,Ne,this.transform,R.getProjection(),We);Fe=s.aD([],this.transform.labelPlaneMatrix,mt)}let st=null;ve&&w.latestFeatureIndex&&(st={unwrappedTileID:ne,dynamicFilter:ve,dynamicFilterNeedsFeature:Ye,needGeometry:Be}),this.retainedQueryData[R.bucketInstanceId]=new si(R.bucketInstanceId,F,R.sourceLayerIndex,R.index,w.tileID);const[Qe,yt]=R.layers[0].layout.get("text-size-scale-range"),ft=s.aC(j,Qe,yt),[Nt,Ft]=$.get("icon-size-scale-range"),ot=s.aC(j,Nt,Ft),tt={bucket:R,layout:$,paint:H,posMatrix:le,invMatrix:qe,mercatorCenter:[s.aH(this.transform.center.lng),s.aL(this.transform.center.lat)],textLabelPlaneMatrix:Le,labelToScreenMatrix:Fe,clippingData:st,scale:te,textPixelRatio:ee,holdingForFade:w.holdingForFade(),collisionBoxArray:Y,partiallyEvaluatedTextSize:s.bj(R.textSizeData,this.transform.zoom,ft),partiallyEvaluatedIconSize:s.bj(R.iconSizeData,this.transform.zoom,ot),collisionGroup:this.collisionGroups.get(R.sourceID),latestFeatureIndex:w.latestFeatureIndex};if(A)for(const mt of R.sortKeyRanges){const{sortKey:bt,symbolInstanceStart:Et,symbolInstanceEnd:tr}=mt;d.push({sortKey:bt,symbolInstanceStart:Et,symbolInstanceEnd:tr,parameters:tt})}else d.push({symbolInstanceStart:0,symbolInstanceEnd:R.symbolInstances.length,parameters:tt})}attemptAnchorPlacement(d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie,Ne,ve,Ye){const{textOffset0:Be,textOffset1:We,crossTileID:Le}=oe,Fe=[Be,We],qe=pl(d,R,F,Fe,$),st=this.collisionIndex.placeCollisionBox(pe,$,g,w,A,j,of(qe.x,qe.y,H,Y,this.transform.angle),le,te,ee,ne.predicate);if(Ne){const Qe=pe.getSymbolInstanceIconSize(Ye,this.transform.zoom,oe.placedIconSymbolIndex);if(this.collisionIndex.placeCollisionBox(pe,Qe,Ne,w,A,j,of(qe.x,qe.y,H,Y,this.transform.angle),le,te,ee,ne.predicate).box.length===0)return}if(st.box.length>0){let Qe;return this.prevPlacement&&this.prevPlacement.variableOffsets[Le]&&this.prevPlacement.placements[Le]&&this.prevPlacement.placements[Le].text&&(Qe=this.prevPlacement.variableOffsets[Le].anchor),this.variableOffsets[Le]={textOffset:Fe,width:R,height:F,anchor:d,textScale:$,prevAnchor:Qe},this.markUsedJustification(pe,d,oe,Ie),pe.allowVerticalPlacement&&(this.markUsedOrientation(pe,Ie,oe),this.placedOrientations[Le]=Ie),{shift:qe,placedGlyphBoxes:st}}}placeLayerBucketPart(d,g,w,A,j=1){const{bucket:R,layout:F,paint:$,posMatrix:H,textLabelPlaneMatrix:Y,labelToScreenMatrix:te,clippingData:ee,textPixelRatio:ne,mercatorCenter:le,invMatrix:oe,holdingForFade:me,collisionBoxArray:pe,partiallyEvaluatedTextSize:Ie,partiallyEvaluatedIconSize:Ne,collisionGroup:ve,latestFeatureIndex:Ye}=d.parameters,Be=F.get("text-optional"),We=F.get("icon-optional"),Le=F.get("text-allow-overlap"),Fe=F.get("icon-allow-overlap"),qe=F.get("text-rotation-alignment")==="map",st=F.get("icon-rotation-alignment")==="map",Qe=F.get("text-pitch-alignment")==="map",yt=$.get("symbol-z-offset"),ft=F.get("symbol-elevation-reference")==="sea",Nt=F.get("symbol-placement"),[Ft,ot]=F.get("text-size-scale-range"),[tt,mt]=F.get("icon-size-scale-range"),bt=s.aC(j,Ft,ot),Et=s.aC(j,tt,mt),tr=F.get("text-variable-anchor"),Vt=qe&&Nt!=="point",qt=st&&Nt!=="point",Mt=tr&&R.hasTextData(),Tr=R.hasIconTextFit()&&Mt&&R.hasIconData();this.transform.setProjection(R.projection);const Dr=Mt||Vt,pr=qt||Tr;let wr=Le&&(Fe||!R.hasIconData()||We),Wr=Fe&&(Le||!R.hasTextData()||Be);const nn=!yt.isConstant();!R.collisionArrays&&pe&&R.deserializeCollisionBoxes(pe),w&&A&&R.updateCollisionDebugBuffers(this.transform.zoom,pe,bt,Et);const Jr=(Ur,gn,en)=>{const{crossTileID:Bn,numVerticalGlyphVertices:mi}=Ur;let Yi=null;if(ee&&ee.dynamicFilterNeedsFeature||nn){const Pi=this.retainedQueryData[R.bucketInstanceId],Fi=Ye.loadFeature({featureIndex:Ur.featureIndex,bucketIndex:Pi.bucketIndex,sourceLayerIndex:Pi.sourceLayerIndex,layoutVertexArrayOffset:0}),di=Fi.properties?Fi.properties.worldview:null;if(R.localizable&&R.worldview&&typeof di=="string")if(di==="all")Fi.properties.$localized=!0;else{if(!di.split(",").includes(R.worldview))return;Fi.properties.$localized=!0,Fi.properties.worldview=R.worldview}Yi=ee&&ee.needGeometry?s.bD(Fi,!0):Fi}if(ee&&!(0,ee.dynamicFilter)({zoom:this.transform.zoom,pitch:this.transform.pitch,worldview:R.worldview},Yi,this.retainedQueryData[R.bucketInstanceId].tileID.canonical,new s.P(Ur.tileAnchorX,Ur.tileAnchorY),this.transform.calculateDistanceTileData(ee.unwrappedTileID)))return this.placements[Bn]=new oh(!1,!1,!1,!0),void g.add(Bn);const Ti=yt.evaluate(Yi,{});if((Ur.zOffset||0)+(Ti||0)>0&&this.frontCutoffStart>0){const Pi=2*this.frontCutoffStart-1,Fi=[Ur.tileAnchorX,Ur.tileAnchorY,0,1],di=s.aE(s.bE(),Fi,H);if(di[1]/di[3]{Pi.tileID=this.retainedQueryData[R.bucketInstanceId].tileID;const Fi=this.transform.elevation;Pi.elevation=ft?Ti:Ti+s.bu.getAtTileOffset(Pi.tileID,new s.P(Pi.tileAnchorX,Pi.tileAnchorY),Fi,ca),Pi.elevation+=Ur.zOffset},sc=en.textBox;if(sc){Va(sc);const Pi=di=>{let Ps=s.bk.horizontal;if(R.allowVerticalPlacement&&!di&&this.prevPlacement){const Lo=this.prevPlacement.placedOrientations[Bn];Lo&&(this.placedOrientations[Bn]=Lo,Ps=Lo,this.markUsedOrientation(R,Ps,Ur))}return Ps},Fi=(di,Ps)=>{if(R.allowVerticalPlacement&&mi>0&&en.verticalTextBox){for(const Lo of R.writingModes)if(Lo===s.bk.vertical?(an=Ps(),Wi=an):an=di(),an&&an.box&&an.box.length)break}else an=di()};if(tr){let di=tr;if(this.prevPlacement&&this.prevPlacement.variableOffsets[Bn]){const ps=this.prevPlacement.variableOffsets[Bn];di.indexOf(ps.anchor)>0&&(di=di.filter(ac=>ac!==ps.anchor),di.unshift(ps.anchor))}const Ps=(ps,ac,gf)=>{const Fp=R.getSymbolInstanceTextSize(Ie,Ur,this.transform.zoom,gn),Bp=(ps.x2-ps.x1)*Fp+2*ps.padding,_g=(ps.y2-ps.y1)*Fp+2*ps.padding,gh=Ur.hasIconTextFit&&!Fe?ac:null;gh&&Va(gh);let bd={box:[],offscreen:!1,occluded:!1};const vg=Le?2*di.length:di.length;for(let Rl=0;Rl=di.length,Ur,gn,R,gf,gh,Ie,Ne);if(yf&&(bd=yf.placedGlyphBoxes,bd&&bd.box&&bd.box.length)){Xn=!0,Qn=yf.shift;break}}return bd};Fi(()=>Ps(sc,en.iconBox,s.bk.horizontal),()=>{const ps=en.verticalTextBox;return ps&&Va(ps),R.allowVerticalPlacement&&!(an&&an.box&&an.box.length)&&mi>0&&ps?Ps(ps,en.verticalIconBox,s.bk.vertical):{box:null,offscreen:null,occluded:null}}),an&&(Xn=an.box,fn=an.offscreen,Ei=an.occluded);const Lo=Pi(!(!an||!an.box));if(!Xn&&this.prevPlacement){const ps=this.prevPlacement.variableOffsets[Bn];ps&&(this.variableOffsets[Bn]=ps,this.markUsedJustification(R,ps.anchor,Ur,Lo))}}else{const di=(Ps,Lo)=>{const ps=R.getSymbolInstanceTextSize(Ie,Ur,this.transform.zoom,gn),ac=this.collisionIndex.placeCollisionBox(R,ps,Ps,le,oe,Dr,new s.P(0,0),Le,ne,H,ve.predicate);return ac&&ac.box&&ac.box.length&&(this.markUsedOrientation(R,Lo,Ur),this.placedOrientations[Bn]=Lo),ac};Fi(()=>di(sc,s.bk.horizontal),()=>{const Ps=en.verticalTextBox;return R.allowVerticalPlacement&&mi>0&&Ps?(Va(Ps),di(Ps,s.bk.vertical)):{box:null,offscreen:null,occluded:null}}),Pi(!!(an&&an.box&&an.box.length))}}if(gi=an,Xn=gi&&gi.box&&gi.box.length>0,fn=gi&&gi.offscreen,Ei=gi&&gi.occluded,Ur.useRuntimeCollisionCircles){const Pi=Ur.centerJustifiedTextSymbolIndex>=0?Ur.centerJustifiedTextSymbolIndex:Ur.verticalPlacedTextSymbolIndex,Fi=R.text.placedSymbolArray.get(Pi),di=s.bl(R.textSizeData,Ie,Fi),Ps=F.get("text-padding");Os=this.collisionIndex.placeCollisionCircles(R,Le,Fi,Pi,R.lineVertexArray,R.glyphOffsetArray,di,H,Y,te,w,Qe,ve.predicate,Ur.collisionCircleDiameter*di/s.by,Ps,this.retainedQueryData[R.bucketInstanceId].tileID),Xn=Le||Os.circles.length>0&&!Os.collisionDetected,fn=fn&&Os.offscreen,Ei=Os.occluded}if(en.iconFeatureIndex&&(_o=en.iconFeatureIndex),en.iconBox){const Pi=Fi=>{Va(Fi);const di=Ur.hasIconTextFit&&Qn?of(Qn.x,Qn.y,qe,Qe,this.transform.angle):new s.P(0,0),Ps=R.getSymbolInstanceIconSize(Ne,this.transform.zoom,Ur.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(R,Ps,Fi,le,oe,pr,di,Fe,ne,H,ve.predicate)};Wi&&Wi.box&&Wi.box.length&&en.verticalIconBox?(An=Pi(en.verticalIconBox),hn=An.box.length>0):(An=Pi(en.iconBox),hn=An.box.length>0),fn=fn&&An.offscreen,ss=An.occluded}const ii=Be||Ur.numHorizontalGlyphVertices===0&&mi===0,Tc=We||Ur.numIconVertices===0;if(ii||Tc?Tc?ii||(hn=hn&&Xn):Xn=hn&&Xn:hn=Xn=hn&&Xn,Xn&&gi&&gi.box&&this.collisionIndex.insertCollisionBox(gi.box,F.get("text-ignore-placement"),R.bucketInstanceId,Wi&&Wi.box&&Js?Js:bi,ve.ID),hn&&An&&this.collisionIndex.insertCollisionBox(An.box,F.get("icon-ignore-placement"),R.bucketInstanceId,_o,ve.ID),Os&&(Xn&&this.collisionIndex.insertCollisionCircles(Os.circles,F.get("text-ignore-placement"),R.bucketInstanceId,bi,ve.ID),w)){const Pi=R.bucketInstanceId;let Fi=this.collisionCircleArrays[Pi];Fi===void 0&&(Fi=this.collisionCircleArrays[Pi]=new Mr);for(let di=0;di=0;--gn){const en=Ur[gn];Jr(R.symbolInstances.get(en),en,R.collisionArrays[en])}R.hasAnyZOffset&&s.w(`${R.layerIds[0]} layer symbol-z-elevate: symbols are not sorted by elevation if symbol-z-order is evaluated to viewport-y`)}else if(R.hasAnyZOffset){const Ur=R.getSortedIndexesByZOffset();for(let gn=0;gn=0&&(d.text.placedSymbolArray.get(j).crossTileID=te>=0&&j!==te?0:H),R>=0&&(d.text.placedSymbolArray.get(R).crossTileID=te>=0&&R!==te?0:H),F>=0&&(d.text.placedSymbolArray.get(F).crossTileID=te>=0&&F!==te?0:H),$>=0&&(d.text.placedSymbolArray.get($).crossTileID=te>=0&&$!==te?0:H)}markUsedOrientation(d,g,w){const A=g===s.bk.horizontal||g===s.bk.horizontalOnly?g:0,j=g===s.bk.vertical?g:0,{leftJustifiedTextSymbolIndex:R,centerJustifiedTextSymbolIndex:F,rightJustifiedTextSymbolIndex:$,verticalPlacedTextSymbolIndex:H}=w,Y=d.text.placedSymbolArray;R>=0&&(Y.get(R).placedOrientation=A),F>=0&&(Y.get(F).placedOrientation=A),$>=0&&(Y.get($).placedOrientation=A),H>=0&&(Y.get(H).placedOrientation=j)}commit(d){this.commitTime=d,this.zoomAtLastRecencyCheck=this.transform.zoom;const g=this.prevPlacement;let w=!1;this.prevZoomAdjustment=g?g.zoomAdjustment(this.transform.zoom):0;const A=g?g.symbolFadeChange(d):1,j=g?g.opacities:{},R=g?g.variableOffsets:{},F=g?g.placedOrientations:{};for(const $ in this.placements){const H=this.placements[$],Y=j[$];Y?(this.opacities[$]=new vp(Y,A,H.text,H.icon,null,H.clipped),w=w||H.text!==Y.text.placed||H.icon!==Y.icon.placed):(this.opacities[$]=new vp(null,A,H.text,H.icon,H.skipFade,H.clipped),w=w||H.text||H.icon)}for(const $ in j){const H=j[$];if(!this.opacities[$]){const Y=new vp(H,A,!1,!1);Y.isHidden()||(this.opacities[$]=Y,w=w||H.text.placed||H.icon.placed)}}for(const $ in R)this.variableOffsets[$]||!this.opacities[$]||this.opacities[$].isHidden()||(this.variableOffsets[$]=R[$]);for(const $ in F)this.placedOrientations[$]||!this.opacities[$]||this.opacities[$].isHidden()||(this.placedOrientations[$]=F[$]);w?this.lastPlacementChangeTime=d:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=g?g.lastPlacementChangeTime:d)}updateLayerOpacities(d,g,w,A){A&&(this.lastReplacementSourceUpdateTime=A.updateTime);const j=new Set;for(const R of g){const F=R.getBucket(d);F&&R.latestFeatureIndex&&d.fqid===F.layerIds[0]&&(this.updateBucketOpacities(F,j,R,R.collisionBoxArray,w,A,R.tileID,d.scope),F.elevationType==="offset"&&this.buildingIndex&&this.buildingIndex.updateZOffset(F,R.tileID),F.elevationType==="road"&&F.updateRoadElevation(R.tileID.canonical),F.updateZOffset())}}updateBucketOpacities(d,g,w,A,j,R,F,$){d.hasTextData()&&d.text.opacityVertexArray.clear(),d.hasIconData()&&d.icon.opacityVertexArray.clear(),d.hasIconCollisionBoxData()&&d.iconCollisionBox.collisionVertexArray.clear(),d.hasTextCollisionBoxData()&&d.textCollisionBox.collisionVertexArray.clear();const H=d.layers[0].layout,Y=d.layers[0].paint,te=!!d.layers[0].dynamicFilter(),ee=new vp(null,0,!1,!1,!0),ne=H.get("text-allow-overlap"),le=H.get("icon-allow-overlap"),oe=H.get("text-variable-anchor"),me=H.get("text-rotation-alignment")==="map",pe=H.get("text-pitch-alignment")==="map",Ie=Y.get("symbol-z-offset"),Ne=H.get("symbol-elevation-reference")==="sea",ve=!Ie.isConstant(),Ye=new vp(null,0,ne&&(le||!d.hasIconData()||H.get("icon-optional")),le&&(ne||!d.hasTextData()||H.get("text-optional")),!0);!d.collisionArrays&&A&&(d.hasIconCollisionBoxData()||d.hasTextCollisionBoxData())&&d.deserializeCollisionBoxes(A);const Be=(Le,Fe,qe)=>{for(let st=0;st0||st>0,tr=yt>0,Vt=this.placedOrientations[Qe],qt=Vt===s.bk.vertical,Mt=Vt===s.bk.horizontal||Vt===s.bk.horizontalOnly;!Et&&!tr||bt.isHidden()||We++;let Tr=!1;if((Et||tr)&&R)for(const Dr of d.activeReplacements){if(s.bz(Dr,j,s.bA.Symbol,$)||Dr.min.x>ft||ft>Dr.max.x||Dr.min.y>Nt||Nt>Dr.max.y)continue;const pr=s.bB(ft,Nt,F.canonical,Dr.footprintTileId.canonical);if(Tr=s.bC(pr,Dr.footprint),Tr)break}if(Tr&&this.collisionIndex.markSymbolAsClipped(d.bucketInstanceId,Fe.featureIndex),Et){const Dr=Tr?lh:Jm(bt.text);Be(d.text,qe,qt?lh:Dr),Be(d.text,st,Mt?lh:Dr);const pr=bt.text.isHidden(),{leftJustifiedTextSymbolIndex:wr,centerJustifiedTextSymbolIndex:Wr,rightJustifiedTextSymbolIndex:nn,verticalPlacedTextSymbolIndex:Jr}=Fe,mn=d.text.placedSymbolArray,Ur=pr||qt?1:0;wr>=0&&(mn.get(wr).hidden=Ur),Wr>=0&&(mn.get(Wr).hidden=Ur),nn>=0&&(mn.get(nn).hidden=Ur),Jr>=0&&(mn.get(Jr).hidden=pr||Mt?1:0);const gn=this.variableOffsets[Qe];gn&&this.markUsedJustification(d,gn.anchor,Fe,Vt);const en=this.placedOrientations[Qe];en&&(this.markUsedJustification(d,"left",Fe,en),this.markUsedOrientation(d,en,Fe))}if(tr){const Dr=Tr?lh:Jm(bt.icon),{placedIconSymbolIndex:pr,verticalPlacedIconSymbolIndex:wr}=Fe,Wr=d.icon.placedSymbolArray,nn=bt.icon.isHidden()?1:0;pr>=0&&(Be(d.icon,yt,qt?lh:Dr),Wr.get(pr).hidden=nn),wr>=0&&(Be(d.icon,Fe.numVerticalIconVertices,Mt?lh:Dr),Wr.get(wr).hidden=nn)}if(d.hasIconCollisionBoxData()||d.hasTextCollisionBoxData()){const Dr=d.collisionArrays[Le];if(Dr){let pr=new s.P(0,0),wr=!0;if(Dr.textBox||Dr.verticalTextBox){if(oe){const nn=this.variableOffsets[Qe];nn?(pr=pl(nn.anchor,nn.width,nn.height,nn.textOffset,nn.textScale),me&&pr._rotate(pe?this.transform.angle:-this.transform.angle)):wr=!1}te&&(wr=!bt.clipped),Dr.textBox&&bp(d.textCollisionBox.collisionVertexArray,bt.text.placed,!wr||qt,tt,Ne,pr.x,pr.y),Dr.verticalTextBox&&bp(d.textCollisionBox.collisionVertexArray,bt.text.placed,!wr||Mt,tt,Ne,pr.x,pr.y)}const Wr=wr&&!!(!Mt&&Dr.verticalIconBox);Dr.iconBox&&bp(d.iconCollisionBox.collisionVertexArray,bt.icon.placed,Wr,tt,Ne,Fe.hasIconTextFit?pr.x:0,Fe.hasIconTextFit?pr.y:0),Dr.verticalIconBox&&bp(d.iconCollisionBox.collisionVertexArray,bt.icon.placed,!Wr,tt,Ne,Fe.hasIconTextFit?pr.x:0,Fe.hasIconTextFit?pr.y:0)}}}if(d.fullyClipped=We===0,d.sortFeatures(this.transform.angle),this.retainedQueryData[d.bucketInstanceId]&&(this.retainedQueryData[d.bucketInstanceId].featureSortOrder=d.featureSortOrder),d.hasTextData()&&d.text.opacityVertexBuffer&&d.text.opacityVertexBuffer.updateData(d.text.opacityVertexArray),d.hasIconData()&&d.icon.opacityVertexBuffer&&d.icon.opacityVertexBuffer.updateData(d.icon.opacityVertexArray),d.hasIconCollisionBoxData()&&d.iconCollisionBox.collisionVertexBuffer&&d.iconCollisionBox.collisionVertexBuffer.updateData(d.iconCollisionBox.collisionVertexArray),d.hasTextCollisionBoxData()&&d.textCollisionBox.collisionVertexBuffer&&d.textCollisionBox.collisionVertexBuffer.updateData(d.textCollisionBox.collisionVertexArray),d.bucketInstanceId in this.collisionCircleArrays){const Le=this.collisionCircleArrays[d.bucketInstanceId];d.placementInvProjMatrix=Le.invProjMatrix,d.placementViewportMatrix=Le.viewportMatrix,d.collisionCircleArray=Le.circles,delete this.collisionCircleArrays[d.bucketInstanceId]}}symbolFadeChange(d){return this.fadeDuration===0?1:(d-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(d){return Math.max(0,(this.transform.zoom-d)/1.5)}hasTransitions(d){return d-this.lastPlacementChangeTimed}isStale(){return this.stale}setStale(){this.stale=!0}}function bp(v,d,g,w,A,j,R){v.emplaceBack(d?1:0,g?1:0,j||0,R||0,w,A?1:0),v.emplaceBack(d?1:0,g?1:0,j||0,R||0,w,A?1:0),v.emplaceBack(d?1:0,g?1:0,j||0,R||0,w,A?1:0),v.emplaceBack(d?1:0,g?1:0,j||0,R||0,w,A?1:0)}const xx=Math.pow(2,25),_x=Math.pow(2,24),Wo=Math.pow(2,17),oa=Math.pow(2,16),u3=Math.pow(2,9),vx=Math.pow(2,8),JS=Math.pow(2,1);function Jm(v){if(v.opacity===0&&!v.placed)return 0;if(v.opacity===1&&v.placed)return 4294967295;const d=v.placed?1:0,g=Math.floor(127*v.opacity);return g*xx+d*_x+g*Wo+d*oa+g*u3+d*vx+g*JS+d}const lh=0;class eT{constructor(d){this._sortAcrossTiles=d.layout.get("symbol-z-order")!=="viewport-y"&&d.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[]}continuePlacement(d,g,w,A,j,R){const F=this._bucketParts;for(;this._currentTileIndex$.sortKey-H.sortKey));this._currentPartIndex{const $=s.o.now()-R;return!this.isFullPlacementRequested()&&this._fadeDuration!==0&&$>2};for(;this._currentPlacementIndex>=0;){const $=g[d[this._currentPlacementIndex]],H=this.placement.collisionIndex.transform.zoom;if($.type==="symbol"&&$.visibility!=="none"&&(!$.minzoom||$.minzoom<=H)&&(!$.maxzoom||$.maxzoom>H)){const Y=$,te=Y.layout.get("symbol-z-elevate"),ee=Y.layout.get("symbol-sort-key").constantOr(1)!==void 0,ne=Y.layout.get("symbol-z-order"),le=ne==="viewport-y"||ne==="auto"&&!(ne!=="viewport-y"&&ee),oe=Y.layout.get("text-allow-overlap")||Y.layout.get("icon-allow-overlap")||Y.layout.get("text-ignore-placement")||Y.layout.get("icon-ignore-placement"),me=le&&oe,pe=this._inProgressLayer=this._inProgressLayer||new eT(Y),Ie=s.F($.source,$.scope);if(pe.continuePlacement(te||me?A[Ie]:w[Ie],this.placement,this._showCollisionBoxes,$,F,j))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._forceFullPlacement=!1,this._done=!0}commit(d){return this.placement.commit(d),this.placement}}const No=512/s.an/2;class au{constructor(d,g,w){this.tileID=d,this.bucketInstanceId=w,this.index=new s.bI(g.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const A=d.canonical.x*s.an,j=d.canonical.y*s.an;for(let R=0;Rme-pe);for(const me of oe){const pe=this.crossTileIDs[me];if(this.keys[me]===Y&&!w.has(pe)){w.add(pe),H.crossTileID=pe;break}}}}}class Nl{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class hI{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(d){const g=Math.round((d-this.lng)/360);if(g!==0)for(const w in this.indexes){const A=this.indexes[w],j={};for(const R in A){const F=A[R];F.tileID=F.tileID.unwrapTo(F.tileID.wrap+g),j[F.tileID.key]=F}this.indexes[w]=j}this.lng=d}addBucket(d,g,w){if(this.indexes[d.overscaledZ]&&this.indexes[d.overscaledZ][d.key]){if(this.indexes[d.overscaledZ][d.key].bucketInstanceId===g.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(d.overscaledZ,this.indexes[d.overscaledZ][d.key])}for(let j=0;jd.overscaledZ)for(const F in R){const $=R[F];$.tileID.isChildOf(d)&&$.findMatches(g.symbolInstances,d,A)}else{const F=R[d.scaledTo(Number(j)).key];F&&F.findMatches(g.symbolInstances,d,A)}}for(let j=0;j{g[w]=!0});for(const w in this.layerIndexes)g[w]||delete this.layerIndexes[w]}}const js=771;class Yr{constructor(d,g,w,A){this.blendFunction=d,this.blendColor=g.toNonPremultipliedRenderColor(null),this.mask=w,this.blendEquation=A}}Yr.Replace=[1,0,1,0],Yr.disabled=new Yr(Yr.Replace,s.aq.transparent,[!1,!1,!1,!1]),Yr.unblended=new Yr(Yr.Replace,s.aq.transparent,[!0,!0,!0,!0]),Yr.alphaBlended=new Yr([1,js,1,js],s.aq.transparent,[!0,!0,!0,!0]),Yr.alphaBlendedNonPremultiplied=new Yr([770,js,770,js],s.aq.transparent,[!0,!0,!0,!0]),Yr.multiply=new Yr([774,0,774,0],s.aq.transparent,[!0,!0,!0,!0]),Yr.multiplyAccumulateAlpha=new Yr([774,0,1,js],s.aq.transparent,[!0,!0,!0,!0]),Yr.additive=new Yr([1,1,1,1],s.aq.transparent,[!0,!0,!0,!0]);class Cr{constructor(d,g,w){this.func=d,this.mask=g,this.range=w}}Cr.ReadOnly=!1,Cr.ReadWrite=!0,Cr.disabled=new Cr(519,Cr.ReadOnly,[0,1]);const Qs=7680;class Xr{constructor(d,g,w,A,j,R){this.test=d,this.ref=g,this.mask=w,this.fail=A,this.depthFail=j,this.pass=R}}Xr.disabled=new Xr({func:519,mask:0},0,0,Qs,Qs,Qs);const _c=1029,wp=2305;class Gr{constructor(d,g,w){this.enable=d,this.mode=g,this.frontFace=w}}function wx(v,d){const g=s.bO(v,3);s.bR(v,d),s.bW(v,3,g)}function iv(v,d){const g=s.bL([]);return s.bM(g,g,-d),s.bN(g,g,-v),g}function sv(v,d){const g=[v[0],v[1],0],w=[d[0],d[1],0];if(s.ai(g)>=1e-15){const R=s.ay([],g);s.bJ(w,R,s.bi(w,R)),d[0]=w[0],d[1]=w[1]}const A=s.bh([],d,v);if(s.bK(A)<1e-15)return null;const j=Math.atan2(-A[1],A[0]);return iv(Math.atan2(Math.sqrt(v[0]*v[0]+v[1]*v[1]),-v[2]),j)}Gr.disabled=new Gr(!1,_c,wp),Gr.backCCW=new Gr(!0,_c,wp),Gr.backCW=new Gr(!0,_c,2304),Gr.frontCW=new Gr(!0,1028,2304),Gr.frontCCW=new Gr(!0,1028,wp);class Sx{constructor(d,g){this.position=d,this.orientation=g}get position(){return this._position}set position(d){if(d){const g=d instanceof s.ag?d:new s.ag(d[0],d[1],d[2]);this._renderWorldCopies&&(g.x=s.bs(g.x,0,1)),this._position=g}else this._position=null}lookAtPoint(d,g,w){if(this.orientation=null,!this.position)return;const A=this.position,j=w||(this._elevation?this._elevation.getAtPointOrZero(s.ag.fromLngLat(d)):0),R=s.ag.fromLngLat(d,j),F=[R.x-A.x,R.y-A.y,R.z-A.z];g||(g=[0,0,1]),g[2]=Math.abs(g[2]),this.orientation=sv(F,g)}setPitchBearing(d,g){this.orientation=iv(s.ap(d),s.ap(-g))}}class Tx{constructor(d,g){this._transform=s.b9([]),this.orientation=g,this.position=d}get mercatorPosition(){const d=this.position;return new s.ag(d[0],d[1],d[2])}get position(){const d=s.bO(this._transform,3);return[d[0],d[1],d[2]]}set position(d){var g;d&&s.bW(this._transform,3,[(g=d)[0],g[1],g[2],1])}get orientation(){return this._orientation}set orientation(d){this._orientation=d||s.bL([]),d&&wx(this._transform,this._orientation)}getPitchBearing(){const d=this.forward(),g=this.right();return{bearing:Math.atan2(-g[1],g[0]),pitch:Math.atan2(Math.sqrt(d[0]*d[0]+d[1]*d[1]),-d[2])}}setPitchBearing(d,g){this._orientation=iv(d,g),wx(this._transform,this._orientation)}forward(){const d=s.bO(this._transform,2);return[-d[0],-d[1],-d[2]]}up(){const d=s.bO(this._transform,1);return[-d[0],-d[1],-d[2]]}right(){const d=s.bO(this._transform,0);return[d[0],d[1],d[2]]}getCameraToWorld(d,g){const w=new Float64Array(16);return s.b7(w,this.getWorldToCamera(d,g)),w}getCameraToWorldMercator(){return this._transform}getWorldToCameraPosition(d,g,w){const A=this.position;s.bJ(A,A,-d);const j=new Float64Array(16);return s.bP(j,[w,w,w]),s.bx(j,j,A),j[10]*=g,j}getWorldToCamera(d,g){const w=new Float64Array(16),A=new Float64Array(4),j=this.position;return s.bQ(A,this._orientation),s.bJ(j,j,-d),s.bR(w,A),s.bx(w,w,j),w[1]*=-1,w[5]*=-1,w[9]*=-1,w[13]*=-1,w[8]*=g,w[9]*=g,w[10]*=g,w[11]*=g,w}getCameraToClipPerspective(d,g,w,A){const j=new Float64Array(16);return s.bS(j,d,g,w,A),j}getCameraToClipOrthographic(d,g,w,A,j,R){const F=new Float64Array(16);return s.bT(F,d,g,w,A,j,R),F}getDistanceToElevation(d,g=!1){const w=d===0?0:s.bU(d,g?s.bV(this.position[1]):this.position[1]),A=this.forward();return(w-this.position[2])/A[2]}clone(){return new Tx([...this.position],[...this.orientation])}}const d3=(v,d)=>({u_matrix:v,u_ground_shadow_factor:d});class Ru{constructor(d=0,g=0,w=0,A=0){if(isNaN(d)||d<0||isNaN(g)||g<0||isNaN(w)||w<0||isNaN(A)||A<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=d,this.bottom=g,this.left=w,this.right=A}interpolate(d,g,w){return g.top!=null&&d.top!=null&&(this.top=s.am(d.top,g.top,w)),g.bottom!=null&&d.bottom!=null&&(this.bottom=s.am(d.bottom,g.bottom,w)),g.left!=null&&d.left!=null&&(this.left=s.am(d.left,g.left,w)),g.right!=null&&d.right!=null&&(this.right=s.am(d.right,g.right,w)),this}getCenter(d,g){const w=s.aC((this.left+d-this.right)/2,0,d),A=s.aC((this.top+g-this.bottom)/2,0,g);return new s.P(w,A)}equals(d){return this.top===d.top&&this.bottom===d.bottom&&this.left===d.left&&this.right===d.right}clone(){return new Ru(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}const Sp=15;class Ex{constructor(d,g,w,A,j,R,F){this.tileSize=512,this._renderWorldCopies=j===void 0||j,this._minZoom=d||0,this._maxZoom=g||22,this._minPitch=w??0,this._maxPitch=A??60,this.setProjection(R),this.setMaxBounds(F),this.width=0,this.height=0,this._center=new s.aU(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._nearClipOffset=0,this._unmodified=!0,this._edgeInsets=new Ru,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._expandedProjMatrixCache={},this._distanceTileDataCache={},this._camera=new Tx,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._tileCoverLift=0,this.freezeTileCoverage=!1,this._horizonShift=.1,this._orthographicProjectionAtLowPitch=!1,this._allowWorldUnderZoom=!1}clone(){const d=new Ex(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection(),this.maxBounds);return d._elevation=this._elevation,d._centerAltitude=this._centerAltitude,d._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,d.tileSize=this.tileSize,d.mercatorFromTransition=this.mercatorFromTransition,d.width=this.width,d.height=this.height,d.cameraElevationReference=this.cameraElevationReference,d._center=this._center,d._setZoom(this.zoom),d._seaLevelZoom=this._seaLevelZoom,d.angle=this.angle,d._fov=this._fov,d._pitch=this._pitch,d._nearZ=this._nearZ,d._farZ=this._farZ,d._nearClipOffset=this._nearClipOffset,d._averageElevation=this._averageElevation,d._orthographicProjectionAtLowPitch=this._orthographicProjectionAtLowPitch,d._unmodified=this._unmodified,d._edgeInsets=this._edgeInsets.clone(),d._camera=this._camera.clone(),d._calcMatrices(),d.freezeTileCoverage=this.freezeTileCoverage,d.frustumCorners=this.frustumCorners,d._allowWorldUnderZoom=this._allowWorldUnderZoom,d}get isOrthographic(){return this.projection.name!=="globe"&&this._orthographicProjectionAtLowPitch&&this.pitch0&&this.elevation.exaggeration()>0&&this._centerAltitudeValidForExaggeration;if(!this._elevation||d===Number.NEGATIVE_INFINITY&&(!g||!this._centerAltitude))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const w=this._elevation;g||this._centerAltitude&&this._centerAltitudeValidForExaggeration&&w.exaggeration()&&this._centerAltitudeValidForExaggeration!==w.exaggeration()?(this._centerAltitude=this._centerAltitude/this._centerAltitudeValidForExaggeration*w.exaggeration(),this._centerAltitudeValidForExaggeration=w.exaggeration()):(this._centerAltitude=d||0,this._centerAltitudeValidForExaggeration=w.exaggeration()),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){if(this._centerAltitudeValidForExaggeration===void 0)return;const d=Math.max(0,(this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize);this._seaLevelZoom=this._zoomFromMercatorZ(d)}sampleAverageElevation(){if(!this._elevation)return 0;const d=this._elevation,g=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],w=this.horizonLineFromTop();let A=0,j=0;for(let R=0;R{const me=s.ck(ee,te,ne,le,oe);$.has(me)||(j.push(new s.aR(te,ee,ne,le,oe)),$.add(me))};for(let te=0;teee.canonical.z)continue;const ne=ee.canonical,le=ee.overscaledZ,oe=ee.wrap,me=1<0,Ne=ne.y+10,Ye=ee.wrap-(Ie?0:1),Be=ee.wrap+(pe?0:1),We=Ie?ne.x-1:me-1,Le=pe?ne.x+1:0;if(R)w[0]<0?(H(le,Be,ne.z,Le,ne.y),w[1]<0&&Ne&&(H(le,oe,ne.z,ne.x,ne.y+1),H(le,Be,ne.z,Le,ne.y+1)),w[1]>0&&ve&&(H(le,oe,ne.z,ne.x,ne.y-1),H(le,Be,ne.z,Le,ne.y-1))):w[0]>0?(H(le,Ye,ne.z,We,ne.y),w[1]<0&&Ne&&(H(le,oe,ne.z,ne.x,ne.y+1),H(le,Ye,ne.z,We,ne.y+1)),w[1]>0&&ve&&(H(le,oe,ne.z,ne.x,ne.y-1),H(le,Ye,ne.z,We,ne.y-1))):w[1]<0&&Ne?H(le,oe,ne.z,ne.x,ne.y+1):ve&&H(le,oe,ne.z,ne.x,ne.y-1);else{const Fe=ee.visibleQuadrants;1&Fe&&(H(le,Ye,ne.z,We,ne.y),ve&&(H(le,oe,ne.z,ne.x,ne.y-1),H(le,Ye,ne.z,We,ne.y-1))),2&Fe&&(H(le,Be,ne.z,Le,ne.y),ve&&(H(le,oe,ne.z,ne.x,ne.y-1),H(le,Be,ne.z,Le,ne.y-1))),4&Fe&&(H(le,Ye,ne.z,We,ne.y),Ne&&(H(le,oe,ne.z,ne.x,ne.y+1),H(le,Ye,ne.z,We,ne.y+1))),8&Fe&&(H(le,Be,ne.z,Le,ne.y),Ne&&(H(le,oe,ne.z,ne.x,ne.y+1),H(le,Be,ne.z,Le,ne.y+1)))}}const Y=[];for(const te of j)j.some(ee=>te.isChildOf(ee))||Y.push(te);if(j=Y.filter(te=>!d.some(ee=>!!(te.overscaledZ{const pe=me.canonical.x+.5-ne[0],Ie=me.canonical.y+.5-ne[1];return pe*pe+Ie*Ie{const We=s.ck(Ne,Ie,ve,Ye,Be);j.has(We)||(A.push(new s.aR(Ie,Ne,ve,Ye,Be)),j.add(We))},F=d.reduce((Ie,Ne)=>Math.max(Ie,Ne.overscaledZ),w),$=1<{const ve=Math.floor(Ie[0]),Ye=Math.floor(Ie[1]),Be=(Ie[0]-ve)*s.an,We=(Ie[1]-Ye)*s.an,Le=Math.floor(Ne[0]),Fe=Math.floor(Ne[1]),qe=(Ne[0]-Le)*s.an,st=(Ne[1]-Fe)*s.an;for(let Qe=-1;Qe<=1;Qe++){const yt=ve+Qe;if(!(yt<0||yt>=$)){Y.x=Be-Qe*s.an,te.x=qe-(yt-Le)*s.an;for(let ft=-1;ft<=1;ft++){const Nt=Ye+ft;Y.y=We-ft*s.an,te.y=st-(Nt-Fe)*s.an,s.cI(Y,te,H)&&R(F,0,w,yt,Nt)}}}},ne=g.points,le=ne[s.c9],oe=ne[s.ca],me=this._projectToGround(le,ne[s.cb]),pe=this._projectToGround(oe,ne[s.cc]);return ee(le,me),ee(oe,pe),A}_projectToGround(d,g){return s.cd(s.ce(),d,g,d[2]/(d[2]-g[2]))}_projectToZ(d,g,w){const A=d[2]-g[2];return Math.abs(A)<1e-6?s.cf(d):s.cd(s.ce(),d,g,(d[2]-w)/A)}extendTileCoverForTunnels(d,g,w,A){if(w<18)return[];const j=g.points,R=j[s.cg],F=j[s.ch],$=j[s.ci],H=j[s.cj];if($[2]>=0&&H[2]>=0||R[2]<=0||F[2]<=0)return[];const Y=$[2]<0?this._projectToZ(R,$,0):$,te=H[2]<0?this._projectToZ(F,H,0):H,ee=-A,ne=$[2]3&&(oe.length=3),oe}_findExtensionTilesInQuad(d,g,w,A){const j=[],R=new Set;for(const Le of d)R.add(Le.key);const F=d.reduce((Le,Fe)=>Math.max(Le,Fe.overscaledZ),g),$=1<{const qe=Le.canonical.x+.5-Be,st=Le.canonical.y+.5-We,Qe=Fe.canonical.x+.5-Be,yt=Fe.canonical.y+.5-We;return qe*qe+st*st-(Qe*Qe+yt*yt)||Le.canonical.x-Fe.canonical.x||Le.canonical.y-Fe.canonical.y}),j}coveringTiles(d){let g=this.coveringZoomLevel(d);const w=g,A=this.elevation&&this.elevation.exaggeration(),j=A&&!d.isTerrainDEM,R=this.projection.name==="mercator";if(d.minzoom!==void 0&&gd.maxzoom&&(g=d.maxzoom);const F=this.locationCoordinate(this.center),$=this.center.lat,H=1<{const bt=new s.ag(tt.x+25e-6,tt.y,tt.z),Et=new s.ag(tt.x,tt.y+25e-6,tt.z),tr=tt.toLngLat(),Vt=bt.toLngLat(),qt=Et.toLngLat(),Mt=this.locationCoordinate(tr),Tr=this.locationCoordinate(Vt),Dr=this.locationCoordinate(qt),pr=Math.hypot(Tr.x-Mt.x,Tr.y-Mt.y),wr=Math.hypot(Dr.x-Mt.x,Dr.y-Mt.y);return Math.sqrt(pr*wr)*We/25e-6},Fe=tt=>{const mt=Ye,bt=Be;return{aabb:s.cp(this,H,0,0,0,tt,bt,mt,this.projection),zoom:0,x:0,y:0,minZ:bt,maxZ:mt,wrap:tt,fullyVisible:!1}},qe=[];let st=[];const Qe=g,yt=d.reparseOverscaled?w:g,ft=(me-this._centerAltitude)*oe,Nt=tt=>{if(!this._elevation||!tt.tileID||!R)return;const mt=this._elevation.getMinMaxForTile(tt.tileID),bt=tt.aabb;mt?(bt.min[2]=mt.min,bt.max[2]=mt.max,bt.center[2]=(bt.min[2]+bt.max[2])/2):(tt.shouldSplit=ot(tt),tt.shouldSplit||(bt.min[2]=bt.max[2]=bt.center[2]=this._centerAltitude))},Ft=(tt,mt)=>{if(.707*mt{if(tt.zoom=.9)return!0}else if(j&&(Et=tt.aabb.distanceZ(pe)*oe),this.projection.isReprojectedInTileSpace&&w<=5){const wr=Math.pow(2,tt.zoom),Wr=Le(new s.ag((tt.x+.5)/wr,(tt.y+.5)/wr));tr=Wr>.85?1:Wr}if(!R&&!te){const wr=Math.sqrt(mt*mt+bt*bt+Et*Et);let Wr=(1<0;){const tt=qe.pop(),mt=tt.x,bt=tt.y;let Et=tt.fullyVisible;const tr=()=>this.projection.name==="globe"&&(tt.y===0||tt.y===(1<Vt)continue;let qt=0;if(!Et){let pr=Ie?tt.aabb.intersectsPrecise(ne):tt.aabb.intersectsPreciseFlat(ne);if(pr===0&&tr()){const wr=new s.cn(tt.zoom,mt,bt);pr=s.co(this,H,wr,!0).intersectsPrecise(ne)}if(pr===0)continue;if(d.calculateQuadrantVisibility)if(ne.containsPoint(tt.aabb.center))qt=15;else for(let wr=0;wr<4;wr++)tt.aabb.quadrant(wr).intersects(ne)!==0&&(qt|=1<>1),Tr={aabb:R?tt.aabb.quadrant(Vt):s.cp(this,H,tt.zoom+1,qt,Mt,tt.wrap,tt.minZ,tt.maxZ,this.projection),zoom:tt.zoom+1,x:qt,y:Mt,wrap:tt.wrap,fullyVisible:Et,tileID:void 0,shouldSplit:void 0,minZ:tt.minZ,maxZ:tt.maxZ};j&&!te&&(Tr.tileID=new s.aR(tt.zoom+1===Qe?yt:tt.zoom+1,tt.wrap,tt.zoom+1,qt,Mt),Nt(Tr)),qe.push(Tr)}}if(this.fogCullDistSq){const tt=this.fogCullDistSq,mt=this.horizonLineFromTop();st=st.filter(bt=>{const Et=[0,0,0,1],tr=[s.an,s.an,0,1],Vt=this.calculateFogTileMatrix(bt.tileID.toUnwrapped());s.aE(Et,Et,Vt),s.aE(tr,tr,Vt);const qt=s.cq([],Et,tr),Mt=s.cr([],Et,tr),Tr=s.cK(qt,Mt);if(Tr===0)return!0;let Dr=!1;const pr=this._elevation;if(pr&&Tr>tt&&mt!==0){const wr=this.calculateProjMatrix(bt.tileID.toUnwrapped());let Wr;d.isTerrainDEM||(Wr=pr.getMinMaxForTile(bt.tileID)),Wr||(Wr={min:Be,max:Ye});const nn=s.cs(this.rotation),Jr=[nn[0]*s.an,nn[1]*s.an,Wr.max];s.ah(Jr,Jr,wr),Dr=(1-Jr[1])*this.height*.5tt.distanceSq-mt.distanceSq).map(tt=>tt.tileID)}resize(d,g){this.width=d,this.height=g,this.pixelsToGLUnits=[2/d,-2/g],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(d){return Math.pow(2,d)}scaleZoom(d){return Math.log2(d)}project(d){const g=s.aC(d.lat,-s.ct,s.ct),w=this.projection.project(d.lng,g);return new s.P(w.x*this.worldSize,w.y*this.worldSize)}unproject(d){return this.projection.unproject(d.x/this.worldSize,d.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/s.bU(1,this.center.lat)/this.worldSize}setLocationAtPoint(d,g){let w,A;const j=this.centerPoint;if(this.projection.name==="globe"){const F=this.worldSize;w=(g.x-j.x)/F,A=(g.y-j.y)/F}else{const F=this.pointCoordinate(g),$=this.pointCoordinate(j);w=F.x-$.x,A=F.y-$.y}const R=this.locationCoordinate(d);this.setLocation(new s.ag(R.x-w,R.y-A))}setLocation(d){this.center=this.coordinateLocation(d),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(d,g){return this.projection.locationPoint(this,d,g)}locationPoint3D(d,g){return this.projection.locationPoint(this,d,g,!0)}pointLocation(d){return this.coordinateLocation(this.pointCoordinate(d))}pointLocation3D(d,g){return this.coordinateLocation(this.pointCoordinate3D(d,g))}locationCoordinate(d,g){const w=g?s.bU(g,d.lat):void 0,A=this.projection.project(d.lng,d.lat);return new s.ag(A.x,A.y,w)}coordinateLocation(d){return this.projection.unproject(d.x,d.y)}pointRayIntersection(d,g){const w=g??this._centerAltitude,A=[d.x,d.y,0,1],j=[d.x,d.y,1,1];s.aE(A,A,this.pixelMatrixInverse),s.aE(j,j,this.pixelMatrixInverse);const R=j[3];s.cu(A,A,1/A[3]),s.cu(j,j,1/R);const F=A[2],$=j[2];return{p0:A,p1:j,t:F===$?0:(w-F)/($-F)}}screenPointToMercatorRay(d){const g=[d.x,d.y,0,1],w=[d.x,d.y,1,1];return s.aE(g,g,this.pixelMatrixInverse),s.aE(w,w,this.pixelMatrixInverse),s.cu(g,g,1/g[3]),s.cu(w,w,1/w[3]),g[2]=s.bU(g[2],this._center.lat)*this.worldSize,w[2]=s.bU(w[2],this._center.lat)*this.worldSize,s.cu(g,g,1/this.worldSize),s.cu(w,w,1/this.worldSize),new s.az([g[0],g[1],g[2]],s.ay([],s.ax([],w,g)))}rayIntersectionCoordinate(d){const{p0:g,p1:w,t:A}=d,j=s.bU(g[2],this._center.lat),R=s.bU(w[2],this._center.lat);return new s.ag(s.am(g[0],w[0],A)/this.worldSize,s.am(g[1],w[1],A)/this.worldSize,s.am(j,R,A))}pointCoordinate(d,g=this._centerAltitude){return this.projection.pointCoordinate(this,d.x,d.y,g)}pointCoordinate3D(d,g){if(!this.elevation)return this.pointCoordinate(d,g);let w=this.projection.pointCoordinate3D(this,d.x,d.y);if(w)return new s.ag(w[0],w[1],w[2]);let A=0,j=this.horizonLineFromTop();if(d.y>j)return this.pointCoordinate(d,g);const R=.02*j,F=d.clone();for(let $=0;$<10&&j-A>R;$++){F.y=s.am(A,j,.66);const H=this.projection.pointCoordinate3D(this,F.x,F.y);H?(j=F.y,w=H):A=F.y}return w?new s.ag(w[0],w[1],w[2]):this.pointCoordinate(d)}isPointAboveHorizon(d){return this.projection.isPointAboveHorizon(this,d)}isPointOnSurface(d){if(d.y<0||d.y>this.height||d.x<0||d.x>this.width)return!1;if(this.elevation||this.zoom>=s.cv)return!this.isPointAboveHorizon(d);const g=this.pointCoordinate(d);return g.y>=0&&g.y<=1}_coordinatePoint(d,g){const w=g&&this.elevation?this.elevation.getAtPointOrZero(d,this._centerAltitude):this._centerAltitude,A=[d.x*this.worldSize,d.y*this.worldSize,w+d.toAltitude(),1];return s.aE(A,A,this.pixelMatrix),A[3]>0?new s.P(A[0]/A[3],A[1]/A[3]):new s.P(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:d,left:g}=this._edgeInsets,w=this.height-this._edgeInsets.bottom,A=this.width-this._edgeInsets.right,j=this.pointLocation3D(new s.P(g,d)),R=this.pointLocation3D(new s.P(A,d)),F=this.pointLocation3D(new s.P(A,w)),$=this.pointLocation3D(new s.P(g,w));let H=Math.min(j.lng,R.lng,F.lng,$.lng),Y=Math.max(j.lng,R.lng,F.lng,$.lng),te=Math.min(j.lat,R.lat,F.lat,$.lat),ee=Math.max(j.lat,R.lat,F.lat,$.lat);const ne=Math.pow(2,-this.zoom)/16*270,le=this.projection.name==="globe"?1:4,oe=(me,pe,Ie,Ne,ve)=>{const Ye=(me+Ie)/2,Be=(pe+Ne)/2,We=new s.P(Ye,Be),{lng:Le,lat:Fe}=this.pointLocation3D(We),qe=Math.max(0,H-Le,te-Fe,Le-Y,Fe-ee);H=Math.min(H,Le),Y=Math.max(Y,Le),te=Math.min(te,Fe),ee=Math.max(ee,Fe),(vene)&&(oe(me,pe,Ye,Be,ve+1),oe(Ye,Be,Ie,Ne,ve+1))};if(oe(g,d,A,d,1),oe(A,d,A,w,1),oe(A,w,g,w,1),oe(g,w,g,d,1),this.projection.name==="globe"){const[me,pe]=s.cw(this);me?(ee=90,Y=180,H=-180):pe&&(te=-90,Y=180,H=-180)}return new s.aK(new s.aU(H,te),new s.aU(Y,ee))}_getBoundsRectangular(d,g){const{top:w,left:A}=this._edgeInsets,j=this.height-this._edgeInsets.bottom,R=this.width-this._edgeInsets.right,F=new s.P(A,w),$=new s.P(R,w),H=new s.P(R,j),Y=new s.P(A,j);let te=this.pointCoordinate(F,d),ee=this.pointCoordinate($,d);const ne=this.pointCoordinate(H,g),le=this.pointCoordinate(Y,g),oe=(me,pe)=>(pe.y-me.y)/(pe.x-me.x);return te.y>1&&ee.y>=0?te=new s.ag((1-le.y)/oe(le,te)+le.x,1):te.y<0&&ee.y<=1&&(te=new s.ag(-le.y/oe(le,te)+le.x,0)),ee.y>1&&te.y>=0?ee=new s.ag((1-ne.y)/oe(ne,ee)+ne.x,1):ee.y<0&&te.y<=1&&(ee=new s.ag(-ne.y/oe(ne,ee)+ne.x,0)),new s.aK().extend(this.coordinateLocation(te)).extend(this.coordinateLocation(ee)).extend(this.coordinateLocation(le)).extend(this.coordinateLocation(ne))}_getBoundsRectangularTerrain(){const d=this.elevation;if(!d.visibleDemTiles.length||d.isUsingMockSource())return this._getBoundsRectangular(0,0);const g=d.visibleDemTiles.reduce((w,A)=>{if(A.dem){const j=A.dem.tree;w.min=Math.min(w.min,j.minimums[0]),w.max=Math.max(w.max,j.maximums[0])}return w},{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(g.min*d.exaggeration(),g.max*d.exaggeration())}getBounds(){return this.projection.name==="mercator"||this.projection.name==="equirectangular"?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(d=!0){const g=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))-this.centerOffset.y,w=this.height/2-g*(1-this._horizonShift);return d?Math.max(0,w):w}getMaxBounds(){return this.maxBounds}setMaxBounds(d){this.maxBounds=d,this.minLat=-s.ct,this.maxLat=s.ct,this.minLng=-180,this.maxLng=180,d&&(this.minLat=d.getSouth(),this.maxLat=d.getNorth(),this.minLng=d.getWest(),this.maxLng=d.getEast(),this.maxLngte&&(F=te-H),te-Yne&&(R=ne-$),ne-ee{for(let ot=0;ot<16;ot++)yt[ot]=s.am(ft[ot],Nt[ot],Ft)})(F,F,$,s.cL(this.pitch>=Sp?1:this.pitch/Sp))}else F=$;const H=s.cz([],$,R);let Y=s.cz([],F,R);if(this.projection.isReprojectedInTileSpace){const Fe=this.locationCoordinate(this.center),qe=s.b9([]);s.bx(qe,qe,[Fe.x*this.worldSize,Fe.y*this.worldSize,0]),s.aD(qe,qe,s.cA(this)),s.bx(qe,qe,[-Fe.x*this.worldSize,-Fe.y*this.worldSize,0]),s.aD(Y,Y,qe),s.aD(H,H,qe),this.inverseAdjustmentMatrix=s.cB(this)}else this.inverseAdjustmentMatrix=[1,0,0,1];if(this.mercatorMatrix=s.cC([],Y,[this.worldSize,this.worldSize,this.worldSize/j,1]),this.projMatrix=Y,this.invProjMatrix=s.b7(new Float64Array(16),this.projMatrix),g){const Fe=this._camera.getCameraToClipPerspective(this._fov,this.width/this.height,this._nearZ,1/0);Fe[8]=2*-d.x/this.width,Fe[9]=2*d.y/this.height,this.expandedFarZProjMatrix=s.cz([],Fe,R)}else this.expandedFarZProjMatrix=this.projMatrix;const te=s.b7([],F);this.frustumCorners=s.cD.fromInvProjectionMatrix(te,this.horizonLineFromTop(),this.height),this.cameraFrustum=s.cl.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,0,!g);const ee=new Float32Array(16);s.b9(ee),s.cC(ee,ee,[1,-1,1]),s.cE(ee,ee,this._pitch),s.ba(ee,ee,this.angle);const ne=s.bS(new Float32Array(16),this._fov,this.width/this.height,this._nearZ,this._farZ);this.starsProjMatrix=s.b8(ne);const le=(Math.PI/2-this._pitch)*(this.height/this._fov)*this._horizonShift;ne[8]=2*-d.x/this.width,ne[9]=2*(d.y+le)/this.height,this.skyboxMatrix=s.aD(ee,ne,ee);const oe=this.point,me=oe.x,pe=oe.y,Ie=this.width%2/2,Ne=this.height%2/2,ve=Math.cos(this.angle),Ye=Math.sin(this.angle),Be=me-Math.round(me)+ve*Ie+Ye*Ne,We=pe-Math.round(pe)+ve*Ne+Ye*Ie,Le=new Float64Array(Y);if(s.bx(Le,Le,[Be>.5?Be-1:Be,We>.5?We-1:We,0]),this.alignedProjMatrix=Le,Y=s.bb(),s.cC(Y,Y,[this.width/2,-this.height/2,1]),s.bx(Y,Y,[1,-1,0]),this.labelPlaneMatrix=Y,Y=s.bb(),s.cC(Y,Y,[1,-1,1]),s.bx(Y,Y,[-1,-1,0]),s.cC(Y,Y,[2/this.width,2/this.height,1]),this.glCoordMatrix=Y,this.pixelMatrix=s.aD(new Float64Array(16),this.labelPlaneMatrix,H),this._calcFogMatrices(),this._distanceTileDataCache={},Y=s.b7(new Float64Array(16),this.pixelMatrix),!Y)throw new Error("failed to invert matrix");if(this.pixelMatrixInverse=Y,this.projection.name==="globe"||this.mercatorFromTransition){this.globeMatrix=s.cF(this);const Fe=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=s.ah(Fe,Fe,R),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=Y;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={},this._expandedProjMatrixCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const d=this.cameraWorldSizeForFog,g=this.cameraPixelsPerMeter,w=this._camera.position,A=1/this.height/this._pixelsPerMercatorPixel,j=[d,d,g];s.bJ(j,j,A),s.bJ(w,w,-1),s.cG(w,w,j);const R=s.bb();s.bx(R,R,w),s.cC(R,R,j),this.mercatorFogMatrix=R,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(d,g,A)}_computeCameraPosition(d){const g=(d=d||this.pixelsPerMeter)/this.pixelsPerMeter,w=this._camera.forward(),A=this.point,j=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*g-d/this.worldSize*this._centerAltitude;return[A.x/this.worldSize-w[0]*j,A.y/this.worldSize-w[1]*j,d/this.worldSize*this._centerAltitude-w[2]*j]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(d){const g=this._maxCameraBoundsDistance()*Math.cos(this._pitch),w=this._camera.position[2],A=d[2];let j=1;this.projection.wrap&&(this.center=this.center.wrap()),A>0&&(j=Math.min((g-w)/A,1)),this._camera.position=s.bg([],this._camera.position,d,j),this._updateStateFromCamera()}_updateStateFromCamera(){const d=this._camera.position,g=this._camera.forward(),{pitch:w,bearing:A}=this._camera.getPitchBearing(),j=s.bU(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,R=this._mercatorZfromZoom(this._maxZoom)*Math.cos(s.ap(this._maxPitch)),F=Math.max((d[2]-j)/Math.cos(w),R),$=this._zoomFromMercatorZ(F);s.bg(d,d,g,F),this._pitch=s.aC(w,s.ap(this.minPitch),s.ap(this.maxPitch)),this.angle=s.bs(A,-Math.PI,Math.PI),this._setZoom(s.aC($,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new s.ag(d[0],d[1],d[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(d){return Math.pow(2,d)*this.tileSize}_mercatorZfromZoom(d){return this.cameraToCenterDistance/this._worldSizeFromZoom(d)}_minimumHeightOverTerrain(){const d=Math.min(this._seaLevelZoom!=null?this._seaLevelZoom:this._zoom,this._maxZoom)+4;return this._mercatorZfromZoom(d)}_zoomFromMercatorZ(d){return this.scaleZoom(this.cameraToCenterDistance/(Math.max(0,d)*this.tileSize))}zoomFromMercatorZAdjusted(d){let g=0,w=s.cv,A=0,j=1/0;for(;w-g>1e-6&&w>g;){const R=g+.5*(w-g),F=this.tileSize*Math.pow(2,R),$=this.getCameraToCenterDistance(this.projection,R,F),H=this.scaleZoom($/(Math.max(0,d)*this.tileSize)),Y=Math.abs(R-H);YH||ee.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+s.cH(this.fovAboveCenter)>88||this.anyCornerOffEdge(new s.P(0,0),new s.P(this.width,this.height))}zoomDeltaToMovement(d,g){const w=s.ai(s.ax([],this._camera.position,d)),A=this._zoomFromMercatorZ(w)+g;return w-this._mercatorZfromZoom(A)}getCameraPoint(){if(this.projection.name==="globe"){const d=function([g,w,A],j){const R=[g,w,A,1];s.aE(R,R,j);const F=R[3]=Math.max(R[3],1e-6);return R[0]/=F,R[1]/=F,R[2]/=F,R}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new s.P(d[0],d[1])}{const d=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(0,d))}}getCameraToCenterDistance(d,g=this.zoom,w=this.worldSize){const A=s.cy(d,g,this.width,this.height,1024),j=d.pixelSpaceConversion(this.center.lat,w,A);let R=.5/Math.tan(.5*this._fov)*this.height*j;return this.isOrthographic&&(R=s.am(1,R,s.cL(this.pitch>=Sp?1:this.pitch/Sp))),R}getWorldToCameraMatrix(){const d=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit==="meters"?this.pixelsPerMeter:1);return this.projection.name==="globe"&&s.aD(d,d,this.globeMatrix),d}getFrustum(d){return s.cl.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,d,this.projection.zAxisUnit==="meters")}}const ja=(v,d)=>{if(d>0&&v.terrain&&s.w("Cutoff is currently disabled on terrain"),d<=0||v.terrain)return{shouldRenderCutoff:!1,uniformValues:{u_cutoff_params:[0,0,0,1]}};const g=v.transform,w=g.pitch,A=g.isLODDisabled(!1)?60:30;if(w0,uniformValues:{u_cutoff_params:[g._nearZ,g._farZ,(Y-g._nearZ)/j,(Y-ee-g._nearZ)/j]}}},lf=2048;class av{constructor(d,g){this.aabb=d,this.lastCascade=g}}class fI{add(d,g){const w=this.receivers[d.key];w!==void 0?(w.aabb.min[0]=Math.min(w.aabb.min[0],g.min[0]),w.aabb.min[1]=Math.min(w.aabb.min[1],g.min[1]),w.aabb.min[2]=Math.min(w.aabb.min[2],g.min[2]),w.aabb.max[0]=Math.max(w.aabb.max[0],g.max[0]),w.aabb.max[1]=Math.max(w.aabb.max[1],g.max[1]),w.aabb.max[2]=Math.max(w.aabb.max[2],g.max[2])):this.receivers[d.key]=new av(g,null)}clear(){this.receivers={}}get(d){return this.receivers[d.key]}computeRequiredCascades(d,g,w){const A=s.cU.fromPoints(d.points);let j=0;for(const R in this.receivers){const F=this.receivers[R];if(!F||!A.intersectsAabb(F.aabb))continue;F.aabb.min=A.closestPoint(F.aabb.min),F.aabb.max=A.closestPoint(F.aabb.max);const $=F.aabb.getCorners();for(let H=0;H1||ee[1]<-1||ee[1]>1){Y=!1;break}}if(F.lastCascade=H,j=Math.max(j,H),Y)break}}return j+1}}class Ax{constructor(d){this.painter=d,this._enabled=!1,this._drawShadowAfterLayer=-1,this._numCascadesToRender=0,this._cascades=[],this._groundShadowTiles=[],this._receivers=new fI,this._depthMode=new Cr(d.context.gl.LEQUAL,Cr.ReadWrite,[0,1]),this._uniformValues={u_light_matrix_0:new Float32Array(16),u_light_matrix_1:new Float32Array(16),u_shadow_intensity:0,u_fade_range:[0,0],u_shadow_normal_offset:[1,1,1],u_shadow_texel_size:1,u_shadow_map_resolution:1,u_shadow_direction:[0,0,1],u_shadow_bias:[36e-5,.0012,.012],u_shadowmap_0:0,u_shadowmap_1:0},this._forceDisable=!1,this.useNormalOffset=!1}destroy(){for(const d of this._cascades)d.texture.destroy(),d.framebuffer.destroy();this._cascades=[]}updateShadowParameters(d,g){const w=this.painter;if(this._enabled=!1,this._drawShadowAfterLayer=-1,this._receivers.clear(),!g||!g.properties)return;const A=g.properties.get("shadow-intensity"),j=g.properties.get("shadow-draw-before-layer");if(!g.shadowsEnabled()||A<=0)return;let R=-1,F=0;for(const pe of w.style.order){const Ie=w.style._mergedLayers[pe];Ie.hasShadowPass()&&!Ie.isHidden(d.zoom)&&(R=F),!j||j!==pe&&j!==Ie.slot||(this._drawShadowAfterLayer=F>0?F-1:0),F+=1}if(this._enabled=R>=0,!this.enabled)return;this._drawShadowAfterLayer<0&&(this._drawShadowAfterLayer=R);const $=w.context,H=lf,Y=lf;if(this._cascades.length===0||lf!==this._cascades[0].texture.size[0]){this._cascades=[];for(let pe=0;pe<2;++pe){const Ie=$.gl,Ne=$.createFramebuffer(H,Y,0,"texture"),ve=new s.T($,{width:H,height:Y,data:null},Ie.DEPTH_COMPONENT16);Ne.depthAttachment.set(ve.texture),this._cascades.push({framebuffer:Ne,texture:ve,matrix:[],far:0,boundingSphereRadius:0,frustum:new s.cl,scale:0})}}this.shadowDirection=pI(g);let te=0;if(d.elevation){const pe=d.elevation,Ie=[1e4,-1e4];pe.visibleDemTiles.filter(Ne=>Ne.dem).forEach(Ne=>{const ve=Ne.dem.tree;Ie[0]=Math.min(Ie[0],ve.minimums[0]),Ie[1]=Math.max(Ie[1],ve.maximums[0])}),Ie[0]!==1e4&&(te=(Ie[1]-Ie[0])*pe.exaggeration())}const ee=1.5*d.cameraToCenterDistance,ne=3*ee,le=new Float64Array(16);for(let pe=0;pe=0)return{};const j=function($,H,Y){const te=Y/(1<<$.canonical.z);return new s.cU([$.canonical.x*te+$.wrap*Y,$.canonical.y*te+$.wrap*Y,0],[($.canonical.x+1)*te+$.wrap*Y,($.canonical.y+1)*te+$.wrap*Y,H])}(d,g,w).getCorners(),R=g/-A[2];A[0]<0?(s.cT(j[0],j[0],[A[0]*R,0,0]),s.cT(j[3],j[3],[A[0]*R,0,0])):A[0]>0&&(s.cT(j[1],j[1],[A[0]*R,0,0]),s.cT(j[2],j[2],[A[0]*R,0,0])),A[1]<0?(s.cT(j[0],j[0],[0,A[1]*R,0]),s.cT(j[1],j[1],[0,A[1]*R,0])):A[1]>0&&(s.cT(j[2],j[2],[0,A[1]*R,0]),s.cT(j[3],j[3],[0,A[1]*R,0]));const F={};return F.vertices=j,F.planes=[ov(j[1],j[0],j[4]),ov(j[2],j[1],j[5]),ov(j[3],j[2],j[6]),ov(j[0],j[3],j[7])],F}addShadowReceiver(d,g,w){this._receivers.add(d,s.cU.fromTileIdAndHeight(d,g,w))}getMaxCascadeForTile(d){const g=this._receivers.get(d);return g&&g.lastCascade?g.lastCascade:0}}function ov(v,d,g){const w=s.ax([],g,d),A=s.ax([],v,d),j=s.bh([],w,A),R=s.ai(j);return R===0?[0,0,1,0]:(s.bJ(j,j,1/R),[j[0],j[1],j[2],-s.bi(j,d)])}function pI(v){const d=v.properties.get("direction"),g=s.cP(d.x,d.y,d.z);g[2]=s.aC(g[2],0,75);const w=s.cR([g[0],g[1],g[2]]);return s.cQ(w.x,w.y,w.z)}function Lu(v,d,g){const w=d.properties.get("color-use-theme")==="none",A=d.properties.get("color"),j=d.properties.get("intensity"),R=d.properties.get("direction"),F=[R.x,R.y,R.z],$=g.properties.get("color-use-theme")==="none",H=g.properties.get("color"),Y=g.properties.get("intensity"),te=Math.max(s.bi([0,0,1],F),0),ee=[0,0,0];s.bJ(ee,H.toPremultipliedRenderColor($?null:v.getLut(d.scope)).toArray01Linear().slice(0,3),Y);const ne=[0,0,0];return s.bJ(ne,A.toPremultipliedRenderColor(w?null:v.getLut(g.scope)).toArray01Linear().slice(0,3),te*j),s.cW([ee[0]>0?ee[0]/(ee[0]+ne[0]):0,ee[1]>0?ee[1]/(ee[1]+ne[1]):0,ee[2]>0?ee[2]/(ee[2]+ne[2]):0])}function kx(v,d,g,w,A,j){const R=v.zoom,F=v.scale,$=v.worldSize,H=1/$,Y=v.aspect,te=Math.sqrt(1+Y*Y)*Math.tan(.5*v.fovX),ee=te*te,ne=w-g,le=w+g;let oe,me;ee>ne/le?(oe=w,me=w*te):(oe=.5*le*(1+ee),me=.5*Math.sqrt(ne*ne+2*(w*w+g*g)*ee+le*le*ee*ee));const pe=v.projection.pixelsPerMeter(v.center.lat,$),Ie=v._camera.getCameraToWorldMercator(),Ne=[0,0,-oe*H];s.ah(Ne,Ne,Ie);let ve=me*H;const Ye=function(Et){return Et[0]/=F,Et[1]/=F,Et[2]=s.bU(Et[2],v._center.lat),Et},Be=v._edgeInsets;if(!(Be.left===0&&Be.top===0&&Be.right===0&&Be.bottom===0||Be.left===Be.right&&Be.top===Be.bottom)){const Et=v._camera.getWorldToCamera(v.worldSize,v.projection.zAxisUnit==="meters"?pe:1),tr=v._camera.getCameraToClipPerspective(v._fov,v.width/v.height,g,w);tr[8]=2*-v.centerOffset.x/v.width,tr[9]=2*v.centerOffset.y/v.height;const Vt=new Float64Array(16);s.cz(Vt,tr,Et);const qt=new Float64Array(16);s.b7(qt,Vt);const Mt=s.cl.fromInvProjectionMatrix(qt,$,R,!0);for(const Tr of Mt.points){const Dr=Ye(Tr);ve=Math.max(ve,s.bK(s.cV([],Ne,Dr)))}}ve*=A/(A-1);const We=Math.acos(d[2]),Le=Math.atan2(-d[0],-d[1]),Fe=new Tx;Fe.position=Ne,Fe.setPitchBearing(We,Le);const qe=Fe.getWorldToCamera($,pe),st=ve*$,Qe=Math.min(v._mercatorZfromZoom(17)*$*-2,-2*st),yt=Fe.getCameraToClipOrthographic(-st,st,-st,st,Qe,(st+j*pe)/d[2]),ft=new Float64Array(16);s.aD(ft,yt,qe);const Nt=s.cQ(Math.floor(1e6*Ne[0])/1e6*$,Math.floor(1e6*Ne[1])/1e6*$,0),Ft=.5*A,ot=[0,0,0];s.ah(ot,Nt,ft),s.bJ(ot,ot,Ft);const tt=[Math.floor(ot[0]),Math.floor(ot[1]),Math.floor(ot[2])],mt=[0,0,0];s.ax(mt,ot,tt),s.bJ(mt,mt,-1/Ft);const bt=new Float64Array(16);return s.b9(bt),s.bx(bt,bt,mt),s.aD(ft,bt,ft),[ft,st]}class h3 extends s.E{constructor(d){super(),this.requestManager=d,this.models={"":{}},this.modelUris={"":{}},this.modelByURL={},this.numModelsLoading={}}loadModel(d,g){return s.cX(this.requestManager.transformRequest(g,s.R.Model).url).then(w=>{const A=s.cY(w),j=new s.cZ(d,g,void 0,void 0,A);return j.computeBoundsAndApplyParent(),j}).catch(w=>{if(w&&w.status===404)return null;this.fire(new s.B(new Error(`Could not load model ${d} from ${g}: ${w.message}`)))})}load(d,g,w={forceReload:!1}){this.models[g]||(this.models[g]={});const A=Object.keys(d),j=[],R=[];for(const F of A){const $=d[F];this.hasURLBeenRequested($)&&!w.forceReload||(this.modelByURL[$]={modelId:F,scope:g},j.push(this.loadModel(F,$)),R.push(F)),this.models[g][F]||(this.models[g][F]={model:null,numReferences:1})}this.numModelsLoading[g]=(this.numModelsLoading[g]||0)+R.length,Promise.allSettled(j).then(F=>{for(let $=0;${this.fire(new s.B(new Error(`Could not load models: ${F.message}`)))})}isLoaded(){for(const d in this.numModelsLoading)if(this.numModelsLoading[d]>0)return!1;return!0}hasModel(d,g,w={exactIdMatch:!1}){return!!(w.exactIdMatch?this.getModel(d,g):this.getModelByURL(this.modelUris[g][d]))}getModel(d,g){return this.models[g]||(this.models[g]={}),this.models[g][d]?this.models[g][d].model:void 0}getModelByURL(d){if(!d)return null;const g=this.modelByURL[d];return g?this.models[g.scope][g.modelId].model:null}hasModelBeenAdded(d,g){return this.models[g]&&this.models[g][d]!==void 0}getModelURIs(d){return this.modelUris[d]||{}}addModel(d,g,w){this.models[w]||(this.models[w]={}),this.modelUris[w]||(this.modelUris[w]={});const A=this.requestManager.normalizeModelURL(g);if((this.hasModel(d,w,{exactIdMatch:!0})||this.hasModelBeenAdded(d,w))&&this.modelUris[w][d]===A)this.models[w][d].numReferences++;else if(this.hasURLBeenRequested(A)){const{scope:j,modelId:R}=this.modelByURL[A];this.models[j][R].numReferences++}else this.modelUris[w][d]=A,this.load({[d]:this.modelUris[w][d]},w)}addModelURLs(d,g){this.models[g]||(this.models[g]={}),this.modelUris[g]||(this.modelUris[g]={});const w=this.modelUris[g];for(const A in d)w[A]=this.requestManager.normalizeModelURL(d[A])}reloadModels(d){this.load(this.modelUris[d],d,{forceReload:!0})}addModelsFromBucket(d,g){this.models[g]||(this.models[g]={}),this.modelUris[g]||(this.modelUris[g]={});const w={};for(const A of d)this.hasModel(A,g,{exactIdMatch:!0})||this.hasURLBeenRequested(A)?this.models[g][A].numReferences++:this.modelUris[g][A]&&!this.hasURLBeenRequested(A)?w[A]=this.modelUris[g][A]:!this.hasURLBeenRequested(A)&&s.c_(A,!1)&&(this.modelUris[g][A]=this.requestManager.normalizeModelURL(A),w[A]=this.modelUris[g][A]);this.load(w,g)}hasURLBeenRequested(d){return this.modelByURL[d]!==void 0}removeModel(d,g,w=!1,A=!1){if(this.models[g]&&this.models[g][d]&&(this.models[g][d].numReferences--,this.models[g][d].numReferences===0||A)){const j=this.modelUris[g][d];w||delete this.modelUris[g][d],delete this.modelByURL[j];const R=this.models[g][d].model;if(!R)return;delete this.models[g][d],R.destroy()}}destroy(){for(const d of Object.keys(this.models))for(const g of Object.keys(this.models[d])){const w=this.models[d][g].model;delete this.models[d][g],w&&w.destroy()}this.models={"":{}},this.modelUris={"":{}},this.modelByURL={},this.numModelsLoading={}}listModels(d){return this.models[d]||(this.models[d]={}),Object.keys(this.models[d])}upload(d,g){this.models[g]||(this.models[g]={});for(const w in this.models[g])this.models[g][w].model&&this.models[g][w].model.upload(d.context)}}const tT=s.a8.colorTheme,tg=new s.ab({data:new s.ac(tT.data)});function mI(v){if(!v.metadata||!v.metadata.content_area)return;const d=s.o.devicePixelRatio,{left:g,top:w,width:A,height:j}=v.metadata.content_area,R=g*d,F=w*d;return[R,F,R+A*d,F+j*d]}function Cx(v){if(v)return v.map(([d,g])=>[d*s.o.devicePixelRatio,g*s.o.devicePixelRatio])}class rT{constructor(d,g,w){this.id=d,this.scope=g,this.sourceCache=w,this.pendingRequests=new Set,this.missingRequests=new Set}addPendingRequest(d){this.missingRequests.has(d.name)||this.pendingRequests.has(d.name)||this.pendingRequests.add(d.name)}hasPendingRequests(){return this.pendingRequests.size>0}resolvePendingRequests(){const d=new Map;if(!this.sourceCache.loaded())return d;const g=this.sourceCache.getVisibleCoordinates();if(g.length===0)return d;const w=this.sourceCache.getSource();if(!(w instanceof yp))return d;const A=g.map(R=>this.sourceCache.getTile(R)),j=w.getImages(A,Array.from(this.pendingRequests));for(const[R,F]of j)d.set(s.I.from({name:R,iconsetId:this.id}),F),this.pendingRequests.delete(R);for(const R of this.pendingRequests)this.missingRequests.add(R);return this.pendingRequests.clear(),d}}class cf{constructor(){this._previousClosestBuildingId=null,this._hysteresisRatio=.8,this._indoorMinimumZoom=16}findClosestBuilding(d,g,w,A,j){if(w$*this._hysteresisRatio&&(R=this._previousClosestBuildingId):H&&!R&&(R=this._previousClosestBuildingId),this._previousClosestBuildingId=R,R}_calculateDistance(d,g){if(!g.center)return Number.MAX_VALUE;const w=d.lat-g.center[1],A=d.lng-g.center[0];return w*w+A*A}_isBuildingVisible(d,g,w){if(!w)return!1;for(const A of d.floorIds){const j=d.floors[A];if(!j.geometry)continue;const R=j.geometry;if(R.type==="Polygon"){const F=this._convertRingToPoints(R.coordinates[0]);if(s.bw(F,w))return!0}else if(R.type==="MultiPolygon"){const F=this._convertMultiPolygonToPoints(R.coordinates);if(s.d0(w,F))return!0}}return!1}_convertRingToPoints(d){return d.map(g=>new s.P(g[0],g[1]))}_convertMultiPolygonToPoints(d){return d.map(g=>g.length===0?[]:g[0].map(w=>new s.P(w[0],w[1])))}}class f3 extends s.E{constructor(d){super(),this._style=d,this._buildings={},this._activeFloors=new Set,this._closestBuildingId=null,this._indoorState={selectedFloorId:null,activeFloorsVisible:!0,activeFloors:this._activeFloors},this._buildingDetectionStrategy=new cf,this._initialLoadDone=!1,s.aZ(["_updateUI"],this),this._style.on("style.load",()=>{this._style.isIndoorEnabled()&&(this._style.map.on("load",()=>{this._initialLoadDone=!0,this._indoorState&&this._indoorState.needsUpdate&&(this._indoorState.needsUpdate=!1,this._style.updateIndoorDependentLayers()),this._updateUI()}),this._style.map.on("move",this._updateUI),this._style.map.on("idle",this._updateUI))})}destroy(){this._buildings={},this._activeFloors=new Set,this._indoorState=null}selectFloor(d){d===this._selectedFloorId&&this._indoorState&&this._indoorState.activeFloorsVisible||(this._selectedFloorId=d,this._recalculateActiveFloors())}setActiveFloorsVisibility(d){this._updateActiveFloors(d),this._updateIndoorSelector()}setIndoorData(d){let g=!1;for(const[w,A]of Object.entries(d.buildings))if(this._buildings[w])for(const j of A.floorIds)this._buildings[w].floorIds.add(j),this._buildings[w].floors[j]?this._mergeFloors(this._buildings[w].floors[j],A.floors[j]):(this._buildings[w].floors[j]=A.floors[j],g=!0);else this._buildings[w]=A,g=!0;g&&this._recalculateActiveFloors()}getIndoorTileOptions(d,g){return this._indoorState?{sourceLayers:this._style.getIndoorSourceLayers(d,g),indoorState:this._indoorState}:null}getControlState(){const d=this._buildings,g=this._closestBuildingId,w=g&&d?d[g]:void 0;if(!w)return{selectedFloorId:null,activeFloorsVisible:!!this._indoorState&&this._indoorState.activeFloorsVisible,floors:[]};let A=null;for(const R of w.floorIds)if(this._activeFloors&&this._activeFloors.has(R)){A=R;break}const j=Array.from(w.floorIds).map(R=>({id:R,name:w.floors[R].name,zIndex:w.floors[R].zIndex})).sort((R,F)=>F.zIndex-R.zIndex).filter((R,F,$)=>F===0||R.zIndex!==$[F-1].zIndex);return{selectedFloorId:A,activeFloorsVisible:!!this._indoorState&&this._indoorState.activeFloorsVisible,floors:j}}_updateUI(){this._initialLoadDone=!0;const d=this._style.map.transform,g=this._buildingDetectionStrategy.findClosestBuilding(this._buildings,d.center,d.zoom,d.getBounds(),this._makeViewportPolygon());if(g!==this._closestBuildingId){const w=this._closestBuildingId;this._closestBuildingId=g,this._onBuildingTransition(w,g),this._updateIndoorSelector()}}_onBuildingTransition(d,g){if(!this._indoorState)return;!g&&d?(this._indoorState.activeFloors=new Set,this._indoorState.activeFloorsVisible=!1,this._style.updateIndoorDependentLayers()):!!g&&!d&&(this._recalculateActiveFloors(),this._updateActiveFloors(!0))}_updateIndoorSelector(){this.fire(new s.C("selector-update",this.getControlState()))}_updateActiveFloors(d){this._indoorState={selectedFloorId:this._selectedFloorId,activeFloorsVisible:d,activeFloors:this._activeFloors},this._initialLoadDone?this._style.updateIndoorDependentLayers():this._indoorState.needsUpdate=!0}_recalculateActiveFloors(){if(!this._buildings)return;const d=s.d1.calculate(this._buildings,this._selectedFloorId,this._activeFloors);(function(g,w){if(g===w)return!0;if(!g||!w||g.size!==w.size)return!1;for(const A of g)if(!w.has(A))return!1;return!0})(d,this._activeFloors)||(this._activeFloors=d,this._updateActiveFloors(!!this._indoorState&&this._indoorState.activeFloorsVisible),this._updateIndoorSelector())}_mergeFloors(d,g){g.geometry&&(d.geometry?(d.geometry.type==="Polygon"&&(d.geometry={type:"MultiPolygon",coordinates:[d.geometry.coordinates]}),g.geometry.type==="Polygon"?d.geometry.coordinates.push(g.geometry.coordinates):g.geometry.type==="MultiPolygon"&&d.geometry.coordinates.push(...g.geometry.coordinates)):d.geometry=g.geometry)}_makeViewportPolygon(){const d=this._style.map.transform,g=d.width,w=d.height;return[d.pointLocation(new s.P(0,0)),d.pointLocation(new s.P(g,0)),d.pointLocation(new s.P(g,w)),d.pointLocation(new s.P(0,w))].map(A=>new s.P(A.lng,A.lat))}}const Tp=(v,d)=>dr(v,d&&d.filter(g=>g.identifier!=="source.canvas")),p3=s.aJ(Zn,["addLayer","removeLayer","setLights","setPaintProperty","setLayoutProperty","setLayerProperty","setSlot","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setSnow","setRain","setProjection","setCamera","addImport","removeImport","updateImport","addIconset","removeIconset"]),gI=s.aJ(Zn,["setCenter","setZoom","setBearing","setPitch"]),nT=new Set(["background","sky","slot","custom"]),lv={version:8,layers:[],sources:{}},iT={duration:300,delay:0};class ou extends s.E{constructor(d,g={}){if(super(),this.map=d,this.scope=g.scope||"",this.globalId=null,this.fragments=[],this.importDepth=g.importDepth||0,this.importsCache=g.importsCache||new Map,this.resolvedImports=g.resolvedImports||new Set,this.transition=Object.assign({},iT),this._buildingIndex=new mx(this),this.crossTileSymbolIndex=new eg,this._mergedOrder=[],this._drapedFirstOrder=[],this._mergedLayers={},this._mergedIndoor={},this._mergedSourceCaches={},this._mergedOtherSourceCaches={},this._mergedSymbolSourceCaches={},this._mergedFillExtrusionSourceCaches={},this._clipLayerPresent=!1,this._hasAppearances=!1,this._has3DLayers=!1,this._hasCircleLayers=!1,this._hasSymbolLayers=!1,this._importedAsBasemap=!1,this._changes=g.styleChanges||new Qt,this._hasDataDrivenEmissive=!1,this.indoorManager=new f3(this),this.dispatcher=g.dispatcher?g.dispatcher:new ur(Yn(),this),this.map.painter&&this.map.painter.context){const A=this.map.painter.context.maxUniformBufferBindings,j=Math.floor(this.map.painter.context.maxUniformBlockSize/4);this.dispatcher.broadcast("setContextParams",{maxBindingPoints:A,maxUniformBlockSizeDwords:j,disableSymbolUBO:this.map.painter.context.disableSymbolUBO})}g.imageManager?this.imageManager=g.imageManager:(this.imageManager=new ki(this.map._spriteFormat),this.imageManager.setEventedParent(this)),this.imageManager.addScope(this.scope),this.glyphManager=g.glyphManager?g.glyphManager:new s.d2(d._requestManager,g.localFontFamily?s.d3.all:g.localIdeographFontFamily?s.d3.ideographs:s.d3.none,g.localFontFamily||g.localIdeographFontFamily,g.useServerFontComposition),g.modelManager?this.modelManager=g.modelManager:(this.modelManager=new h3(d._requestManager),this.modelManager.setEventedParent(this)),this._layers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._fillExtrusionSourceCaches={},this._loaded=!1,this._precompileDone=!1,this._shouldPrecompile=!1,this._availableImages=[],this._availableModels={},this._order=[],this._markersNeedUpdate=!1,this.options=g.configOptions?g.configOptions:new Map,this._configDependentLayers=g.configDependentLayers?g.configDependentLayers:new Set,this._indoorDependentLayers=g.indoorDependentLayers?g.indoorDependentLayers:new Set,this._config=g.config,this._styleColorTheme={lut:null,lutLoading:!1,lutLoadingCorrelationID:0,colorTheme:null,colorThemeOverride:g.colorThemeOverride},this._styleColorThemeForScope={},this._initialConfig=g.initialConfig,this.dispatcher.broadcast("setReferrer",s.d4()),this.dispatcher.broadcast("setConfig",s.d5());const w=this;this._rtlTextPluginCallback=ou.registerForPluginStateChange(A=>{w.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:A.pluginStatus,pluginURL:A.pluginURL},(j,R)=>{if(s.d6(j),R&&R.every(F=>F))for(const F in w._sourceCaches){const $=w._sourceCaches[F],H=$.getSource().type;H!=="vector"&&H!=="geojson"||$.reload()}})}),this.on("data",A=>{if(A.dataType!=="source"||A.sourceDataType!=="metadata")return;const j=this.getOwnSource(A.sourceId);if(j&&j.vectorLayerIds)for(const R in this._layers){const F=this._layers[R];F.source===j.id&&this._validateLayer(F)}})}load(d){return d?(typeof d=="string"?this.loadURL(d):this.loadJSON(d),this):this}_getGlobalId(d){if(!d)return null;if(typeof d=="string"){if(s.e(d))return d;const g=s.d7(d);if(!g.startsWith("http"))try{return new URL(g,location.href).toString()}catch{return g}return g}return`json://${s.d8(JSON.stringify(d))}`}_diffStyle(d,g,w){this.globalId=this._getGlobalId(d);const A=(j,R)=>{try{R(null,this.setState(j,w))}catch(F){R(F,!1)}};if(typeof d=="string"){const j=this.map._requestManager.normalizeStyleURL(d),R=this.map._requestManager.transformRequest(j,s.R.Style);s.m(R,(F,$)=>{F?this.fire(new s.B(F)):$&&A($,g)})}else typeof d=="object"&&A(d,g)}loadURL(d,g={}){this.fire(new s.C("dataloading",{dataType:"style"}));const w=typeof g.validate=="boolean"?g.validate:!s.e(d);this.globalId=this._getGlobalId(d),d=this.map._requestManager.normalizeStyleURL(d,g.accessToken),this.resolvedImports.add(d);const A=this.importsCache.get(d);if(A)return this._load(A,w);const j=this.map._requestManager.transformRequest(d,s.R.Style);this._request=s.m(j,(R,F)=>{if(this._request=null,R)this.fire(new s.B(R));else if(F)return this.importsCache.set(d,F),this._load(F,w)})}loadJSON(d,g={}){this.fire(new s.C("dataloading",{dataType:"style"})),this.globalId=this._getGlobalId(d),this._request=s.o.frame(()=>{this._request=null,this._load(d,g.validate!==!1)})}loadEmpty(){this.fire(new s.C("dataloading",{dataType:"style"})),this._load(lv,!1)}_loadImports(d,g,w){if(this.importDepth>=4)return s.w("Style doesn't support nesting deeper than 5"),Promise.resolve();const A=[];for(const j of d){const R=this._createFragmentStyle(j),F=new Promise(Y=>{R.once("style.import.load",Y),R.once("error",Y)}).then(()=>{this.mergeAll(),this.fire(new s.C("data",{dataType:"style"}))});if(A.push(F),this.resolvedImports.has(j.url)){R.loadEmpty();continue}const $=j.data||this.importsCache.get(j.url);$?(j.data?(R.fire(new s.C("dataloading",{dataType:"style"})),R.globalId=R._getGlobalId($),queueMicrotask(()=>R._load($,g))):R.loadJSON($,{validate:g}),this._isInternalStyle($)&&(R.globalId=null)):j.url?R.loadURL(j.url,{validate:g}):R.loadEmpty();const H={style:R,id:j.id,config:j.config};if(w){const Y=this.fragments.findIndex(({id:te})=>te===w);this.fragments=this.fragments.slice(0,Y).concat(H).concat(this.fragments.slice(Y))}else this.fragments.push(H)}return Promise.allSettled(A)}getImportGlobalIds(d=this,g=new Set){for(const w of d.fragments)w.style.globalId&&g.add(w.style.globalId),this.getImportGlobalIds(w.style,g);return[...g.values()]}_createFragmentStyle(d){const g=this.scope?s.F(d.id,this.scope):d.id;let w;const A=this._initialConfig&&this._initialConfig[g];(d.config||A)&&(w=Object.assign({},d.config,A));const j=new ou(this.map,{scope:g,styleChanges:this._changes,importDepth:this.importDepth+1,importsCache:this.importsCache,resolvedImports:new Set(this.resolvedImports),dispatcher:this.dispatcher,imageManager:this.imageManager,glyphManager:this.glyphManager,modelManager:this.modelManager,config:w,configOptions:this.options,colorThemeOverride:d["color-theme"],configDependentLayers:this._configDependentLayers,indoorDependentLayers:this._indoorDependentLayers});return j.setEventedParent(this.map,{style:j}),j}_reloadImports(){this.mergeAll(),this._updateMapProjection(),this.updateConfigDependencies(),this._updateLayers(this._indoorDependentLayers),this.map._triggerCameraUpdate(this.camera),this.dispatcher.broadcast("setLayers",{layers:this._serializeLayers(this._order),scope:this.scope,options:this.options}),this._shouldPrecompile=this.map._precompilePrograms&&this.isRootStyle()}_isInternalStyle(d){return this.isRootStyle()&&(d.fragment||!!d.schema&&d.fragment!==!1)}_load(d,g){if(this._isInternalStyle(d)){const j=Object.assign({},lv,{imports:[{id:"basemap",data:d,url:""}]},d.center?{center:d.center}:{},d.bearing?{bearing:d.bearing}:{},d.pitch?{pitch:d.pitch}:{},d.zoom?{zoom:d.zoom}:{},d.light?{light:d.light}:{});return this._importedAsBasemap=!0,void this._load(j,g)}if(this.updateConfig(this._config,d.schema),g&&Tp(this,tu(d)))return;this._loaded=!0;for(const j in d.sources)this.addSource(j,d.sources[j],{validate:!1,isInitialLoad:!0});this.stylesheet=s.d9(d);const w=()=>{if(d.iconsets)for(const $ in d.iconsets)this.addIconset($,d.iconsets[$]);d.sprite?this._loadIconset(d.sprite):(this.imageManager.setLoaded(!0,this.scope),this.dispatcher.broadcast("spriteLoaded",{scope:this.scope,isLoaded:!0})),!this.glyphManager.url&&d.glyphs&&this.glyphManager.setURL(d.glyphs);const j=KS(this.stylesheet.layers);if(this._order=j.map($=>$.id),this.stylesheet.light&&s.w("The `light` root property is deprecated, prefer using `lights` with `flat` light type instead."),this.stylesheet.lights)if(this.stylesheet.lights.length===1&&this.stylesheet.lights[0].type==="flat"){const $=this.stylesheet.lights[0];this.light=new zr($.properties,$.id)}else this.setLights(this.stylesheet.lights);this.light||(this.light=new zr(this.stylesheet.light)),this._layers={};for(const $ of j){const H=s.de($,this.scope,this._styleColorTheme.lut,this.options);H.expressionDependencies.configDependencies.size!==0&&this._configDependentLayers.add(H.fqid),H.expressionDependencies.isIndoorDependent&&this._indoorDependentLayers.add(H.fqid),this._hasAppearances=this._hasAppearances||H.getAppearances().length!==0,H.setEventedParent(this,{layer:{id:H.id}}),this._layers[H.id]=H;const Y=this.getOwnLayerSourceCache(H),te=!!this.directionalLight&&this.directionalLight.shadowsEnabled();Y&&H.canCastShadows()&&te&&(Y.castsShadows=!0)}if(this.glyphManager.url){const $=new Set;for(const H in this._layers){const Y=this._layers[H];if(Y.type==="symbol"&&Y.layout){const te=Y.layout.get("text-font");te&&te.value&&te.value.kind==="constant"&&$.add(te.value.value.join(","))}}for(const H of $)this.glyphManager.prefetchRange(H,0)}this.stylesheet.featuresets&&this.setFeaturesetSelectors(this.stylesheet.featuresets),this.stylesheet.models&&this.addModelURLs(this.stylesheet.models);const R=this.stylesheet.terrain;R&&(this.checkCanvasFingerprintNoise(),this.disableElevatedTerrain||this.terrainSetForDrapingOnly()||this._createTerrain(R,1)),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this.stylesheet.snow&&this._createSnow(this.stylesheet.snow),this.stylesheet.rain&&this._createRain(this.stylesheet.rain),this.stylesheet.transition&&this.setTransition(this.stylesheet.transition),this.fire(new s.C("data",{dataType:"style"}));const F=this.isRootStyle();d.imports?this._loadImports(d.imports,g).then(()=>{this._reloadImports(),this.fire(new s.C(F?"style.load":"style.import.load"))}).catch($=>{this.fire(new s.B(new Error("Failed to load imports",$))),this.fire(new s.C(F?"style.load":"style.import.load"))}):(this._reloadImports(),this.fire(new s.C(F?"style.load":"style.import.load")))};this._styleColorTheme.colorTheme=this.stylesheet["color-theme"];const A=this._styleColorTheme.colorThemeOverride?this._styleColorTheme.colorThemeOverride:this._styleColorTheme.colorTheme;if(A){const j=this._evaluateColorThemeData(A);this._loadColorTheme(j).then(()=>{w()}).catch(R=>{s.w(`Couldn't load color theme from the stylesheet: ${R}`),w()})}else this._styleColorTheme.lut=null,w()}isRootStyle(){return this.importDepth===0}hasAppearances(){return this._hasAppearances||this.fragments.some(d=>d.style.hasAppearances())}mergeAll(){let d,g,w,A,j,R,F,$,H,Y;const te={};this.terrain&&this.terrain.scope!==this.scope&&delete this.terrain,this.forEachFragmentStyle(ee=>{if(ee.stylesheet){if(ee.light!=null&&(d=ee.light),ee.stylesheet.lights)for(const ne of ee.stylesheet.lights)ne.type==="ambient"&&ee.ambientLight!=null&&(g=ee.ambientLight),ne.type==="directional"&&ee.directionalLight!=null&&(w=ee.directionalLight);A=this._prioritizeTerrain(A,ee.terrain,ee.stylesheet.terrain),ee.stylesheet.fog&&ee.fog!=null&&(j=ee.fog),ee.stylesheet.snow&&ee.snow!=null&&(R=ee.snow),ee.stylesheet.rain&&ee.rain!=null&&(F=ee.rain),ee.stylesheet.camera!=null&&(Y=ee.stylesheet.camera),ee.stylesheet.projection!=null&&($=ee.stylesheet.projection),ee.stylesheet.transition!=null&&(H=ee.stylesheet.transition),te[ee.scope]=ee._styleColorTheme}}),this.light=d,this.ambientLight=g,this.directionalLight=w,this.fog=j,this.snow=R,this.rain=F,this._styleColorThemeForScope=te,A===null?delete this.terrain:this.terrain=A,this.camera=Y||{"camera-projection":"perspective"},this.projection=$||{name:"mercator"},this.transition=Object.assign({},iT,H),this.mergeSources(),this.mergeLayers(),this.mergeIndoor()}forEachFragmentStyle(d){const g=w=>{for(const A of w.fragments)g(A.style);d(w)};g(this)}_prioritizeTerrain(d,g,w){const A=d&&d.drapeRenderMode===0;return w===null?g&&g.drapeRenderMode===0?g:A?d:null:g!=null&&(!d||A||g&&g.drapeRenderMode===1)?g:d}mergeTerrain(){let d;this.terrain&&this.terrain.scope!==this.scope&&delete this.terrain,this.forEachFragmentStyle(g=>{d=this._prioritizeTerrain(d,g.terrain,g.stylesheet.terrain)}),d===null?delete this.terrain:this.terrain=d}mergeProjection(){let d;this.forEachFragmentStyle(g=>{g.stylesheet.projection!=null&&(d=g.stylesheet.projection)}),this.projection=d||{name:"mercator"}}mergeSources(){const d={},g={},w={},A={};this.forEachFragmentStyle(j=>{for(const R in j._sourceCaches){const F=s.F(R,j.scope);d[F]=j._sourceCaches[R]}for(const R in j._otherSourceCaches){const F=s.F(R,j.scope);g[F]=j._otherSourceCaches[R]}for(const R in j._symbolSourceCaches){const F=s.F(R,j.scope);w[F]=j._symbolSourceCaches[R]}for(const R in j._fillExtrusionSourceCaches){const F=s.F(R,j.scope);A[F]=j._fillExtrusionSourceCaches[R]}}),this._mergedSourceCaches=d,this._mergedOtherSourceCaches=g,this._mergedSymbolSourceCaches=w,this._mergedFillExtrusionSourceCaches=A}mergeIndoor(){this.forEachFragmentStyle(d=>{if(d.stylesheet&&d.stylesheet.indoor)for(const g of Object.values(d.stylesheet.indoor)){const w=g,A=s.F(w.sourceId,d.scope);this._mergedIndoor[A]=new Set(w.sourceLayers||[])}})}mergeLayers(){const d={},g=[],w={};this._mergedSlots=[],this._has3DLayers=!1,this._hasCircleLayers=!1,this._hasSymbolLayers=!1,this.forEachFragmentStyle(R=>{for(const F of R._order){const $=R._layers[F];if($.type==="slot"){const H=s.da(F);if(d[H])continue;d[H]=[]}$.slot&&d[$.slot]?d[$.slot].push($):g.push($)}}),this._mergedOrder=[];let A=-1;const j=(R=[])=>{for(const F of R)if(F.type==="slot"){const $=s.da(F.id);d[$]&&j(d[$]),this._mergedSlots.push($)}else{const $=s.F(F.id,F.scope);this._mergedOrder.push($),w[$]=F,F.is3D(!!this.terrain)&&(this._has3DLayers=!0,A=this._mergedOrder.length-1),F.type==="circle"&&(this._hasCircleLayers=!0),F.type==="symbol"&&(this._hasSymbolLayers=!0),F.type==="clip"&&(this._clipLayerPresent=!0)}};if(j(g),this._has3DLayers){const R={};for(let F=0;FR[F]-R[$])}this._mergedLayers=w,this.updateDrapeFirstLayers(),this._buildingIndex.processLayersChanged(),this._updateDataDrivenEmissiveStrength()}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}getCamera(){return this.stylesheet.camera}setCamera(d){return this.stylesheet.camera=Object.assign({},this.stylesheet.camera,d),this.camera=this.stylesheet.camera,this}_evaluateColorThemeData(d){return d.data?function(g,w,A){const j=Object.assign({},w);for(const F of Object.keys(tT))j[F]===void 0&&(j[F]=tT[F].default);const R=new s.aa(tg,g,new Map(A));return R.setTransitionOrValue(j,A),R.untransitioned().possiblyEvaluate(new s.ae(0,{worldview:void 0}))}(this.scope,d,this.options).get("data"):null}_loadColorTheme(d){this._styleColorTheme.lutLoading=!0,this._styleColorTheme.lutLoadingCorrelationID+=1;const g=this._styleColorTheme.lutLoadingCorrelationID;return new Promise((w,A)=>{const j="data:image/png;base64,";if(!d||d.length===0)return this._styleColorTheme.lut=null,this._styleColorTheme.lutLoading=!1,void w();let R=d;R.startsWith(j)||(R=j+R);const F=s.I.from("mapbox-reserved-lut"),$=new Image;$.src=R,$.onerror=()=>{this._styleColorTheme.lutLoading=!1,A(new Error("Failed to load image data"))},$.onload=()=>{if(this._styleColorTheme.lutLoadingCorrelationID!==g)return void w();this._styleColorTheme.lutLoading=!1;const{width:H,height:Y,data:te}=s.o.getImageData($);if(Y>32)return void A(new Error("The height of the image must be less than or equal to 32 pixels."));if(H!==Y*Y)return void A(new Error("The width of the image must be equal to the height squared."));this.getImage(F)&&this.removeImage(F),this.addImage(F,{data:new s.q({width:H,height:Y},te),pixelRatio:1,sdf:!1,usvg:!1,version:0});const ee=this.imageManager.getImage(F,this.scope);ee?(this._styleColorTheme.lut={image:ee.data,data:d},w()):A(new Error("Missing LUT image."))}})}getLut(d){const g=this._styleColorThemeForScope[d];return g?g.lut:null}setProjection(d){d?this.stylesheet.projection=d:delete this.stylesheet.projection,this.mergeProjection(),this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?(this.getTerrain()||this.stylesheet.terrain)&&!this.disableElevatedTerrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null,0))}_updateMapProjection(){this.isRootStyle()&&(this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.projection))}_loadSprite(d){this._spriteRequest=function(g,w,A){let j,R,F;const $=s.o.devicePixelRatio>1?"@2x":"";let H=s.m(w.transformRequest(w.normalizeSpriteURL(g,$,".json"),s.R.SpriteJSON),(ee,ne)=>{H=null,F||(F=ee,j=ne,te())}),Y=s.n(w.transformRequest(w.normalizeSpriteURL(g,$,".png"),s.R.SpriteImage),(ee,ne)=>{Y=null,F||(F=ee,R=ne,te())});function te(){if(F)A(F);else if(j&&R){const ee=s.o.getImageData(R),ne={};for(const le in j){const{width:oe,height:me,x:pe,y:Ie,sdf:Ne,pixelRatio:ve,stretchX:Ye,stretchY:Be,content:We}=j[le],Le=new s.q({width:oe,height:me});s.q.copy(ee,Le,{x:pe,y:Ie},{x:0,y:0},{width:oe,height:me},null),ne[le]={data:Le,pixelRatio:ve!==void 0?ve:1,sdf:Ne!==void 0&&Ne,stretchX:Ye,stretchY:Be,content:We,usvg:!1,version:0}}A(null,ne)}}return{cancel(){H&&(H.cancel(),H=null),Y&&(Y.cancel(),Y=null)}}}(d,this.map._requestManager,(g,w)=>{if(this._spriteRequest=null,g)this.fire(new s.B(g));else if(w){const A=new Map;for(const j in w)A.set(s.I.from(j),w[j]);this.addImages(A)}this.imageManager.setLoaded(!0,this.scope),this.dispatcher.broadcast("spriteLoaded",{scope:this.scope,isLoaded:!0}),this.fire(new s.C("data",{dataType:"style"}))})}addIconset(d,g){if(g.type==="sprite")return void this._loadSprite(g.url);const w=this.getOwnSourceCache(g.source);if(!w)return void this.fire(new s.B(new Error(`Source "${g.source}" as specified by iconset "${d}" does not exist and cannot be used as an iconset source`)));const A=w.getSource();if(A.type!=="raster-array")return void this.fire(new s.B(new Error(`Source "${g.source}" as specified by iconset "${d}" is not a "raster-array" source and cannot be used as an iconset source`)));A.partial=!1;const j=new rT(d,this.scope,w);this.imageManager.addImageProvider(j,this.scope)}removeIconset(d){this.imageManager.removeImageProvider(d,this.scope)}_loadIconset(d){if(!s.e(d)&&this.map._spriteFormat!=="icon_set"||this.map._spriteFormat==="raster")return void this._loadSprite(d);const g=this.map._spriteFormat==="auto";var w,A;this._spriteRequest=(A=(j,R)=>{if(this._spriteRequest=null,j)g?this._loadSprite(d):this.fire(new s.B(j));else if(R){const F=new Map;for(const $ in R)F.set(s.I.from($),R[$]);this.addImages(F)}this.imageManager.setLoaded(!0,this.scope),this.dispatcher.broadcast("spriteLoaded",{scope:this.scope,isLoaded:!0}),this.fire(new s.C("data",{dataType:"style"}))},s.b1((w=this.map._requestManager).transformRequest(w.normalizeIconsetURL(d),s.R.Iconset),(j,R)=>{if(j)return void A(j);const F={},$=s.c$(new s.a$(R));for(const H of $.icons){const Y={version:1,pixelRatio:s.o.devicePixelRatio,content:mI(H),stretchX:H.metadata?Cx(H.metadata.stretch_x_areas):void 0,stretchY:H.metadata?Cx(H.metadata.stretch_y_areas):void 0,sdf:!1,usvg:!0,icon:H};F[H.name]=Y}A(null,F)}))}_validateLayer(d){const g=this.getOwnSource(d.source);if(!g)return;const w=d.sourceLayer;w&&(g.type==="geojson"||g.vectorLayerIds&&g.vectorLayerIds.indexOf(w)===-1)&&this.fire(new s.B(new Error(`Source layer "${w}" does not exist on source "${g.id}" as specified by style layer "${d.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._changes.getUpdatedSourceCaches()).length)return!1;for(const d in this._sourceCaches)if(!this._sourceCaches[d].loaded())return!1;if(!this.imageManager.isLoaded()||this.imageManager.hasPatternsInFlight()||!this.modelManager.isLoaded()||this._styleColorTheme.lutLoading)return!1;for(const{style:d}of this.fragments)if(!d.loaded())return!1;return!0}_serializeImports(){if(this.stylesheet.imports)return this.stylesheet.imports.map((d,g)=>{const w=this.fragments[g];return w&&w.style&&(d.data=w.style.serialize()),d})}_serializeSources(){const d={};for(const g in this._sourceCaches){const w=this._sourceCaches[g].getSource();d[w.id]||(d[w.id]=w.serialize())}return d}_serializeLayers(d){const g=[];for(const w of d){const A=this._layers[w];A&&A.type!=="custom"&&g.push(A.serialize())}return g}hasLightTransitions(){return!(!this.light||!this.light.hasTransition())||!(!this.ambientLight||!this.ambientLight.hasTransition())||!(!this.directionalLight||!this.directionalLight.hasTransition())}hasFogTransition(){return!!this.fog&&this.fog.hasTransition()}hasSnowTransition(){return!!this.snow&&this.snow.hasTransition()}hasRainTransition(){return!!this.rain&&this.rain.hasTransition()}hasTransitions(){if(this.hasLightTransitions()||this.hasFogTransition()||this.hasSnowTransition()||this.hasRainTransition())return!0;for(const d in this._sourceCaches)if(this._sourceCaches[d].hasTransition())return!0;for(const d in this._layers)if(this._layers[d].hasTransition())return!0;return!1}_updateDataDrivenEmissiveStrength(){for(const d in this._mergedLayers){const g=this._mergedLayers[d];if(g._transitionablePaint&&g._transitionablePaint._values){const w=g._transitionablePaint._values["line-emissive-strength"];if(w&&w.value&&w.value.isDataDriven())return void(this._hasDataDrivenEmissive=!0)}}this._hasDataDrivenEmissive=!1}hasDataDrivenEmissiveStrength(){return this._hasDataDrivenEmissive}get order(){return this.terrain?this._drapedFirstOrder:this._mergedOrder}_getOrder(d){return d?this.order:this._mergedOrder}isLayerDraped(d){return!!this.terrain&&d.isDraped(this.getLayerSourceCache(d))}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading")}_checkLayer(d){const g=this.getOwnLayer(d);if(g)return g;this.fire(new s.B(new Error(`The layer '${d}' does not exist in the map's style.`)))}_checkSource(d){const g=this.getOwnSource(d);if(g)return g;this.fire(new s.B(new Error(`The source '${d}' does not exist in the map's style.`)))}precompilePrograms(d,g){const w=this.map.painter;if(w)for(let A=d.minzoom||0;A<(d.maxzoom||25.5);A++){const j=d.getProgramIds();if(j)for(const R of j){const F=d.getDefaultProgramParams(R,g.zoom,this._styleColorTheme.lut);F&&(w.style=this,this.fog&&(w._fogVisible=!0,F.overrideFog=!0,w.getOrCreateProgram(R,F)),w._fogVisible=!1,F.overrideFog=!1,w.getOrCreateProgram(R,F),(this.stylesheet.terrain||this.stylesheet.projection&&this.stylesheet.projection.name==="globe")&&(F.overrideRtt=!0,w.getOrCreateProgram(R,F)))}}}update(d){if(!this._loaded)return;this.ambientLight&&this.ambientLight.recalculate(d),this.directionalLight&&this.directionalLight.recalculate(d);const g=this.calculateLightsBrightness();d.brightness=g||0,g!==this._brightness&&(this._brightness=g,this.dispatcher.broadcast("setBrightness",g)),d.worldview!==this._worldview&&(this._worldview=d.worldview,this.dispatcher.broadcast("setWorldview",this._worldview));const w=this._changes.isDirty();let A=!1;if(this._changes.isDirty()){const $=this._changes.getLayerUpdatesByScope();for(const H in $){const{updatedIds:Y,removedIds:te}=$[H];(Y||te)&&(this._updateWorkerLayers(H,Y,te),A=!0)}this.updateSourceCaches(),this._updateTilesForChangedImages(),this.updateLayers(d),this.light&&this.light.updateTransitions(d),this.ambientLight&&this.ambientLight.updateTransitions(d),this.directionalLight&&this.directionalLight.updateTransitions(d),this.fog&&this.fog.updateTransitions(d),this.snow&&this.snow.updateTransitions(d),this.rain&&this.rain.updateTransitions(d),this._changes.reset()}const j={};for(const $ in this._mergedSourceCaches){const H=this._mergedSourceCaches[$];j[$]=H.used,H.used=!1,H.tileCoverLift=0}const R={};for(const $ of this._mergedOrder){const H=this._mergedLayers[$];if((H.visibility!=="none"||H.hasTransition())&&H.recalculate(d,this._availableImages),!H.isHidden(d.zoom)){const Y=this.getLayerSourceCache(H);Y&&(Y.used=!0,Y.tileCoverLift=Math.max(Y.tileCoverLift,H.tileCoverLift()))}if(H.type==="fill-extrusion"){const Y=s.F(H.source,H.scope);if(Y in this._mergedFillExtrusionSourceCaches){const te=H.layout&&H.layout.get("source-max-zoom");if(te!=null){const ee=R[Y];R[Y]=ee==null?te:Math.min(ee,te)}}}!this._precompileDone&&this._shouldPrecompile&&("requestIdleCallback"in window?requestIdleCallback(()=>{this.precompilePrograms(H,d)}):this.precompilePrograms(H,d))}this._shouldPrecompile&&(this._precompileDone=!0);for(const $ in this._mergedFillExtrusionSourceCaches)this._mergedFillExtrusionSourceCaches[$].setMaxzoomOverride(R[$]!=null?R[$]:null);this.terrain&&A&&this.mergeLayers();const F=this.imageManager.getPendingImageProviders();for(const $ of F)$.sourceCache.used=!0;for(const $ in j){const H=this._mergedSourceCaches[$];j[$]!==H.used&&H.getSource().fire(new s.C("data",{sourceDataType:"visibility",dataType:"source",sourceId:H.getSource().id}))}this.light&&this.light.recalculate(d),this.terrain&&this.terrain.recalculate(d),this.fog&&this.fog.recalculate(d),this.snow&&this.snow.recalculate(d),this.rain&&this.rain.recalculate(d),this.z=d.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),this.imageManager.clearUpdatedImages(this.scope),w&&this.fire(new s.C("data",{dataType:"style"}))}updateImageProviders(){const d=this.imageManager.getPendingImageProviders();for(const g of d){const w=g.resolvePendingRequests(),A=this.getFragmentStyle(g.scope);A&&A.addImages(w)}}_updateTilesForChangedImages(){const d={};for(const g in this._mergedSourceCaches){const w=this._mergedSourceCaches[g].getSource().scope;d[w]=d[w]||this._changes.getUpdatedImages(w),d[w].length!==0&&this._mergedSourceCaches[g].reloadTilesForDependencies(["icons","patterns"],d[w])}for(const g in d)this._changes.resetUpdatedImages(g)}_updateWorkerLayers(d,g,w){const A=this.getFragmentStyle(d);A&&this.dispatcher.broadcast("updateLayers",{layers:g?A._serializeLayers(g):[],scope:d,removedIds:w||[],options:A.options})}setState(d,g){if(this._checkLoaded(),Tp(this,tu(d)))return!1;(d=s.d9(d)).layers=KS(d.layers);const w=function(R,F){if(!R)return[{command:Zn.setStyle,args:[F]}];let $=[];try{if(!s.b6(R.version,F.version))return[{command:Zn.setStyle,args:[F]}];if(s.b6(R.center,F.center)||$.push({command:Zn.setCenter,args:[F.center]}),s.b6(R.zoom,F.zoom)||$.push({command:Zn.setZoom,args:[F.zoom]}),s.b6(R.bearing,F.bearing)||$.push({command:Zn.setBearing,args:[F.bearing]}),s.b6(R.pitch,F.pitch)||$.push({command:Zn.setPitch,args:[F.pitch]}),s.b6(R.sprite,F.sprite)||$.push({command:Zn.setSprite,args:[F.sprite]}),s.b6(R.glyphs,F.glyphs)||$.push({command:Zn.setGlyphs,args:[F.glyphs]}),s.b6(R.imports,F.imports)||function(ne=[],le=[],oe){le=le||[];const me=(ne=ne||[]).map(Zm),pe=le.map(Zm),Ie=ne.reduce(gx,{}),Ne=le.reduce(gx,{}),ve=me.slice();let Ye,Be,We,Le;for(Ye=0,Be=0;Ye{ne.source&&H[ne.source]?$.push({command:Zn.removeLayer,args:[ne.id]}):te.push(ne)});let ee=R.terrain;ee&&H[ee.source]&&($.push({command:Zn.setTerrain,args:[void 0]}),ee=void 0),$=$.concat(Y),s.b6(ee,F.terrain)||$.push({command:Zn.setTerrain,args:[F.terrain]}),function(ne,le,oe){le=le||[];const me=(ne=ne||[]).map(Zm),pe=le.map(Zm),Ie=ne.reduce(gx,{}),Ne=le.reduce(gx,{}),ve=me.slice(),Ye=Object.create(null);let Be,We,Le,Fe,qe,st,Qe;for(Be=0,We=0;Be!(R.command in gI));if(w.length===0)return!1;const A=w.filter(R=>!(R.command in p3));if(A.length>0)throw new Error(`Unimplemented: ${A.map(R=>R.command).join(", ")}.`);const j=[];return w.forEach(R=>{j.push(this[R.command](...R.args))}),g&&Promise.all(j).then(g).catch(g),this.stylesheet=d,this.mergeAll(),this.dispatcher.broadcast("setLayers",{layers:this._serializeLayers(this._order),scope:this.scope,options:this.options}),!0}_updateWorkerImages(){this._availableImages=this.imageManager.listImages(this.scope),this.dispatcher.broadcast("setImages",{scope:this.scope,images:this._availableImages})}_updateWorkerModels(){this._availableModels=this.modelManager.getModelURIs(this.scope),this.dispatcher.broadcast("setModels",{scope:this.scope,models:this._availableModels})}addImages(d){if(d.size===0)return this;for(const[g,w]of d.entries()){if(this.getImage(g))return this.fire(new s.B(new Error(`An image with the name "${g.name}" already exists.`)));this.imageManager.addImage(g,this.scope,w),this._changes.updateImage(g,this.scope)}return this._updateWorkerImages(),this.fire(new s.C("data",{dataType:"style"})),this}addImage(d,g){return this.getImage(d)?this.fire(new s.B(new Error(`An image with the name "${d.name}" already exists.`))):(this.imageManager.addImage(d,this.scope,g),this._changes.updateImage(d,this.scope),this._updateWorkerImages(),this.fire(new s.C("data",{dataType:"style"})),this)}updateImage(d,g,w=!1){this.imageManager.updateImage(d,this.scope,g),w&&(this._changes.updateImage(d,this.scope),this._updateWorkerImages(),this.fire(new s.C("data",{dataType:"style"})))}getImage(d){return this.imageManager.getImage(d,this.scope)}removeImage(d){return this.getImage(d)?(this.imageManager.removeImage(d,this.scope),this._changes.updateImage(d,this.scope),this._updateWorkerImages(),this.fire(new s.C("data",{dataType:"style"})),this):this.fire(new s.B(new Error("No image with this name exists.")))}listImages(){return this._checkLoaded(),this._availableImages.slice()}getActualScope(){return this._importedAsBasemap?"basemap":this.scope}addModelURLs(d){return this.modelManager.addModelURLs(d,this.getActualScope()),this._updateWorkerModels(),this.fire(new s.C("data",{dataType:"style"})),this}addModel(d,g,w={}){return this._checkLoaded(),this._validate(zt,`models.${d}`,g,null,w)||(this.modelManager.addModel(d,g,this.getActualScope()),this.fire(new s.C("data",{dataType:"style"}))),this}hasModel(d){return this.modelManager.hasModel(d,this.getActualScope())}removeModel(d){return this.hasModel(d)?(this.modelManager.removeModel(d,this.getActualScope(),!1,!0),this.fire(new s.C("data",{dataType:"style"})),this):this.fire(new s.B(new Error("No model with this ID exists.")))}listModels(){return this._checkLoaded(),this.modelManager.listModels(this.getActualScope())}addSource(d,g,w={}){if(this._checkLoaded(),this.getOwnSource(d)!==void 0)throw new Error(`There is already a source with ID "${d}".`);if(!g.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(g).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(g.type)>=0&&this._validate(fx,`sources.${d}`,g,null,w))return;this.map&&this.map._collectResourceTiming&&(g.collectResourceTiming=!0);const A=Y_(d,g,this.dispatcher,this);A.scope=this.scope,A.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(A.id),source:A.serialize(),sourceId:A.id}));const j=R=>{const F=(R===s.b4.Symbol?"symbol:":R===s.b4.FillExtrusion?"fill-extrusion:":"other:")+A.id,$=s.F(F,this.scope),H=this._sourceCaches[F]=new nu($,A,R);R===s.b4.Symbol?this._symbolSourceCaches[A.id]=H:R===s.b4.FillExtrusion?this._fillExtrusionSourceCaches[A.id]=H:this._otherSourceCaches[A.id]=H,H.onAdd(this.map)};j(s.b4.Other),g.type!=="vector"&&g.type!=="geojson"||(j(s.b4.Symbol),g.type==="vector"&&j(s.b4.FillExtrusion)),A.onAdd&&A.onAdd(this.map),w.isInitialLoad||(this.mergeSources(),this._changes.setDirty())}removeSource(d){this._checkLoaded();const g=this.getOwnSource(d);if(!g)throw new Error("There is no source with this ID");for(const A in this._layers)if(this._layers[A].source===d)return this.fire(new s.B(new Error(`Source "${d}" cannot be removed while layer "${A}" is using it.`)));if(this.terrain&&this.terrain.scope===this.scope&&this.terrain.get().source===d)return this.fire(new s.B(new Error(`Source "${d}" cannot be removed while terrain is using it.`)));if(this.stylesheet.iconsets){const A=Object.entries(this.stylesheet.iconsets).find(([j,R])=>R.type==="source"&&R.source===d);if(A)return this.fire(new s.B(new Error(`Source "${d}" cannot be removed while iconset "${A[0]}" is using it.`)))}const w=this.getOwnSourceCaches(d);for(const A of w){const j=s.da(A.id);delete this._sourceCaches[j],this._changes.discardSourceCacheUpdate(A.id),A.fire(new s.C("data",{sourceDataType:"metadata",dataType:"source",sourceId:A.getSource().id})),A.setEventedParent(null),A.clearTiles()}return delete this._otherSourceCaches[d],delete this._symbolSourceCaches[d],delete this._fillExtrusionSourceCaches[d],this.mergeSources(),g.setEventedParent(null),g.onRemove&&g.onRemove(this.map),this._changes.setDirty(),this}setGeoJSONSourceData(d,g){this._checkLoaded(),this.getOwnSource(d).setData(g),this._changes.setDirty()}getOwnSource(d){const g=this.getOwnSourceCache(d);return g&&g.getSource()}getOwnSources(){const d=[];for(const g in this._otherSourceCaches){const w=this.getOwnSourceCache(g);w&&d.push(w.getSource())}return d}areTilesLoaded(){const d=this._mergedSourceCaches;for(const g in d){const w=d[g]._tiles;for(const A in w){const j=w[A];if(j.state!=="loaded"&&j.state!=="errored")return!1}}return!0}setLights(d){if(this._checkLoaded(),!d)return delete this.ambientLight,void delete this.directionalLight;const g=this._getTransitionParameters();for(const j of d){if(this._validate(de,"lights",j))return;switch(j.type){case"ambient":if(this.ambientLight){const R=this.ambientLight;R.set(j),R.updateTransitions(g)}else this.ambientLight=new xa(j,yo(),this.scope,this.options);break;case"directional":if(this.directionalLight){const R=this.directionalLight;R.set(j),R.updateTransitions(g)}else this.directionalLight=new xa(j,Jl(),this.scope,this.options)}}const w=Object.assign(g,{worldview:this.map.getWorldview()}),A=new s.ae(this.z||0,w);this.ambientLight&&this.ambientLight.recalculate(A),this.directionalLight&&this.directionalLight.recalculate(A),this._brightness=this.calculateLightsBrightness(),this.dispatcher.broadcast("setBrightness",this._brightness)}calculateLightsBrightness(){const d=this.directionalLight,g=this.ambientLight;if(!d||!g)return;const w=ee=>.2126*(ee[0]<=.03928?ee[0]/12.92:Math.pow((ee[0]+.055)/1.055,2.4))+.7152*(ee[1]<=.03928?ee[1]/12.92:Math.pow((ee[1]+.055)/1.055,2.4))+.0722*(ee[2]<=.03928?ee[2]/12.92:Math.pow((ee[2]+.055)/1.055,2.4)),A=d.properties.get("color").toNonPremultipliedRenderColor(null).toArray01(),j=d.properties.get("intensity"),R=d.properties.get("direction"),F=1-s.cP(R.x,R.y,R.z)[2]/90,$=w(A)*j*F,H=g.properties.get("color").toNonPremultipliedRenderColor(null).toArray01(),Y=g.properties.get("intensity"),te=w(H)*Y;return Number((($+te)/2).toFixed(6))}getBrightness(){return this._brightness}getLights(){if(!this.enable3dLights())return null;const d=[];return this.directionalLight&&d.push(this.directionalLight.get()),this.ambientLight&&d.push(this.ambientLight.get()),d}enable3dLights(){return!!this.ambientLight&&!!this.directionalLight}getFragmentStyle(d){if(d==null||d===""&&this.isRootStyle())return this;if(s.db(d)){const g=s.dc(d),w=this.fragments.find(({id:j})=>j===g);if(!w)return;const A=s.da(d);return w.style.getFragmentStyle(A)}{const g=this.fragments.find(({id:w})=>w===d);return g?g.style:void 0}}setFeaturesetSelectors(d){if(!d)return;const g=(w,A="")=>`${w}::${A}`;this._featuresetSelectors={};for(const w in d){const A={},j=this._featuresetSelectors[w]=[];for(const R of d[w].selectors){if(R.featureNamespace){const $=this.getOwnLayer(R.layer);if(!$){s.w(`Layer is undefined for selector: ${R.layer}`);continue}const H=g($.source,$.sourceLayer);if(H in A&&A[H]!==R.featureNamespace){s.w(`"featureNamespace ${R.featureNamespace} of featureset ${w}'s selector is not associated to the same source, skip this selector`);continue}A[H]=R.featureNamespace}let F;if(R.properties)for(const $ in R.properties){const H=s.X(R.properties[$]);H.result==="success"&&(F=F||{},F[$]=H.value)}j.push({layerId:R.layer,namespace:R.featureNamespace,properties:F,uniqueFeatureID:R._uniqueFeatureID})}}}getFeaturesetDescriptors(d){const g=this.getFragmentStyle(d);if(!g||!g.stylesheet.featuresets)return[];const w=[];for(const A in g.stylesheet.featuresets)w.push({featuresetId:A,importId:g.scope?g.scope:void 0});return w}getFeaturesetLayers(d,g){const w=this.getFragmentStyle(g),A=w.stylesheet.featuresets;if(!A||!A[d])return this.fire(new s.B(new Error(`The featureset '${d}' does not exist in the map's style and cannot be queried.`))),[];const j=[];for(const R of A[d].selectors){const F=w.getOwnLayer(R.layer);F&&j.push(F)}return j}getConfigProperty(d,g){const w=this.getFragmentStyle(d);if(!w)return null;const A=s.F(g,w.scope),j=w.options.get(A),R=j?j.value||j.default:null;return R?R.serialize():null}isIndoorEnabled(){return Object.keys(this._mergedIndoor).length>0}getIndoorSourceLayers(d,g){const w=s.F(d,g);return this._mergedIndoor[w]}setIndoorData(d,g){this.indoorManager.setIndoorData(g)}updateIndoorDependentLayers(){this._updateLayers(this._indoorDependentLayers),this.map._styleDirty=!0,this.map.triggerRepaint()}setConfigProperty(d,g,w){const A=this.getFragmentStyle(d);if(!A)return;const j=A.stylesheet.schema;if(!j||!j[g])return;const R=s.X(w);if(R.result!=="success")return void Tp(this,R.value);const F=R.value.expression,$=s.F(g,A.scope),H=A.options.get($);if(!H)return;let Y;const{minValue:te,maxValue:ee,stepValue:ne,type:le,values:oe}=j[g],me=s.X(j[g].default);me.result==="success"&&(Y=me.value.expression),Y?(this.options.set($,Object.assign({},H,{value:F,default:Y,minValue:te,maxValue:ee,stepValue:ne,type:le,values:oe})),this.updateConfigDependencies(g)):this.fire(new s.B(new Error(`No schema defined for the config option "${g}" in the "${d}" fragment.`)))}getConfig(d){const g=this.getFragmentStyle(d);if(!g)return null;const w=g.stylesheet.schema;if(!w)return null;const A={};for(const j in w){const R=s.F(j,g.scope),F=g.options.get(R),$=F?F.value||F.default:null;A[j]=$?$.serialize():null}return A}setConfig(d,g){const w=this.getFragmentStyle(d);w&&(w.updateConfig(g,w.stylesheet.schema),this.updateConfigDependencies())}getSchema(d){const g=this.getFragmentStyle(d);return g?g.stylesheet.schema:null}setSchema(d,g){const w=this.getFragmentStyle(d);w&&(w.stylesheet.schema=g,w.updateConfig(w._config,g),this.updateConfigDependencies())}updateConfig(d,g){if(this._config=d,d||g)if(g)for(const w in g){let A,j;const R=s.X(g[w].default);if(R.result==="success"&&(A=R.value.expression),d&&d[w]!==void 0){const ee=s.X(d[w]);ee.result==="success"&&(j=ee.value.expression)}const{minValue:F,maxValue:$,stepValue:H,type:Y,values:te}=g[w];if(A){const ee=s.F(w,this.scope);this.options.set(ee,{default:A,value:j,minValue:F,maxValue:$,stepValue:H,type:Y,values:te})}else this.fire(new s.B(new Error(`No schema defined for config option "${w}".`)))}else this.fire(new s.B(new Error("Attempting to set config for a style without schema.")))}_updateLayers(d,g=()=>!0){for(const w of d){const A=this.getLayer(w);A&&g(A)&&(A.possiblyEvaluateVisibility(),this._updateLayer(A),this._changes.setDirty())}}updateConfigDependencies(d){this._updateLayers(this._configDependentLayers,g=>!d||g.expressionDependencies.configDependencies.has(d)),this.ambientLight&&this.ambientLight.updateConfig(this.options),this.directionalLight&&this.directionalLight.updateConfig(this.options),this.fog&&this.fog.updateConfig(this.options),this.snow&&this.snow.updateConfig(this.options),this.rain&&this.rain.updateConfig(this.options),this.forEachFragmentStyle(g=>{const w=g._styleColorTheme.colorThemeOverride?g._styleColorTheme.colorThemeOverride:g._styleColorTheme.colorTheme;if(w){const A=g._evaluateColorThemeData(w);(!g._styleColorTheme.lut&&A!==""||g._styleColorTheme.lut&&A!==g._styleColorTheme.lut.data)&&g.setColorTheme(w)}}),this._changes.setDirty()}addLayer(d,g,w={}){this._checkLoaded();const A=d.id;if(this._layers[A])return void this.fire(new s.B(new Error(`Layer with id "${A}" already exists on this map`)));let j;if(d.type==="custom"){if(Tp(this,s.dd(d)))return;j=s.de(d,this.scope,this._styleColorTheme.lut,this.options)}else{if(typeof d.source=="object"&&(this.addSource(A,d.source),d=s.d9(d),d=Object.assign(d,{source:A})),this._validate(rt,`layers.${A}`,d,{arrayIndex:-1},w))return;j=s.de(d,this.scope,this._styleColorTheme.lut,this.options),this._validateLayer(j),j.setEventedParent(this,{layer:{id:A}})}const R=s.F(j.source,j.scope);j.expressionDependencies.configDependencies.size!==0&&this._configDependentLayers.add(R),j.expressionDependencies.isIndoorDependent&&this._indoorDependentLayers.add(R);let F=this._order.length;if(g){const te=this._order.indexOf(g);if(te===-1)return void this.fire(new s.B(new Error(`Layer with id "${g}" does not exist on this map.`)));j.slot&&j.slot!==this._layers[g].slot?s.w(`Layer with id "${g}" has a different slot. Layers can only be rearranged within the same slot.`):F=te}this._order.splice(F,0,A),this._handleLayerOrderChange(),this._layers[A]=j;const $=this.getOwnLayerSourceCache(j),H=!!this.directionalLight&&this.directionalLight.shadowsEnabled();$&&j.canCastShadows()&&H&&($.castsShadows=!0);const Y=this._changes.getRemovedLayer(j);if(Y&&j.source&&$&&j.type!=="custom"){this._changes.discardLayerRemoval(j);const te=s.F(j.source,j.scope);Y.type!==j.type?this._changes.updateSourceCache(te,"clear"):(this._changes.updateSourceCache(te,"reload"),$.pause())}this._updateLayer(j),j.onAdd&&j.onAdd(this.map),j.scope=this.scope,this.mergeLayers()}moveLayer(d,g){this._checkLoaded();const w=this._checkLayer(d);if(!w||d===g)return;const A=this._order.indexOf(d);this._order.splice(A,1);let j=this._order.length;if(g){const R=this._order.indexOf(g);if(R===-1)return void this.fire(new s.B(new Error(`Layer with id "${g}" does not exist on this map.`)));w.slot&&w.slot!==this._layers[g].slot?s.w(`Layer with id "${g}" has a different slot. Layers can only be rearranged within the same slot.`):j=R}this._order.splice(j,0,d),this._changes.setDirty(),this._handleLayerOrderChange(),this.mergeLayers()}removeLayer(d){this._checkLoaded();const g=this._checkLayer(d);if(!g)return;g.setEventedParent(null);const w=this._order.indexOf(d);this._order.splice(w,1),delete this._layers[d],this._changes.setDirty(),this._handleLayerOrderChange(),this._configDependentLayers.delete(g.fqid),this._indoorDependentLayers.delete(g.fqid),this._changes.removeLayer(g);const A=this.getOwnLayerSourceCache(g);if(A&&A.castsShadows){let j=!1;for(const R in this._layers)if(this._layers[R].source===g.source&&this._layers[R].canCastShadows()){j=!0;break}A.castsShadows=j}g.onRemove&&g.onRemove(this.map),this.mergeLayers()}getOwnLayer(d){return this._layers[d]}hasLayer(d){return d in this._mergedLayers}hasLayerType(d){for(const g in this._layers)if(this._layers[g].type===d)return!0;return!1}setLayerZoomRange(d,g,w){this._checkLoaded();const A=this._checkLayer(d);A&&(A.minzoom===g&&A.maxzoom===w||(g!=null&&(A.minzoom=g),w!=null&&(A.maxzoom=w),this._updateLayer(A)))}getSlots(){return this._checkLoaded(),this._mergedSlots}setSlot(d,g){this._checkLoaded();const w=this._checkLayer(d);w&&w.slot!==g&&(w.slot=g,this._updateLayer(w))}setFilter(d,g,w={}){this._checkLoaded();const A=this._checkLayer(d);if(A&&!s.b6(A.filter,g))return g==null?(A.filter=void 0,void this._updateLayer(A)):void(this._validate(dt,`layers.${A.id}.filter`,g,{layerType:A.type},w)||(A.filter=s.d9(g),this._updateLayer(A)))}getFilter(d){const g=this._checkLayer(d);if(g)return s.d9(g.filter)}setLayoutProperty(d,g,w,A={}){this._checkLoaded();const j=this._checkLayer(d);if(j&&!s.b6(j.getLayoutProperty(g),w)){if(w!=null&&(!A||A.validate!==!1)&&Tp(j,ht.call(tu,{key:`layers.${d}.layout.${g}`,layerType:j.type,objectKey:g,value:w,styleSpec:s.a8,style:{glyphs:!0,sprite:!0}})))return;j.setLayoutProperty(g,w),j.expressionDependencies.configDependencies.size!==0&&this._configDependentLayers.add(j.fqid),j.expressionDependencies.isIndoorDependent&&this._indoorDependentLayers.add(j.fqid),this._updateLayer(j)}}setLayerProperty(d,g,w,A={}){this._checkLoaded();const j=this._checkLayer(d);j&&(g==="appearances"?(j.setAppearances(w),this._updateLayer(j)):j.isPaintProperty(g)?this.setPaintProperty(d,g,w,A):this.setLayoutProperty(d,g,w,A))}getLayoutProperty(d,g){const w=this._checkLayer(d);if(w)return w.getLayoutProperty(g)}setPaintProperty(d,g,w,A={}){this._checkLoaded();const j=this._checkLayer(d);if(!j||s.b6(j.getPaintProperty(g),w)||w!=null&&(!A||A.validate!==!1)&&Tp(j,it.call(tu,{key:`layers.${d}.paint.${g}`,layerType:j.type,objectKey:g,value:w,styleSpec:s.a8})))return;const R=j.setPaintProperty(g,w);j.expressionDependencies.configDependencies.size!==0&&this._configDependentLayers.add(j.fqid),j.expressionDependencies.isIndoorDependent&&this._indoorDependentLayers.add(j.fqid),R&&this._updateLayer(j),this._changes.updatePaintProperties(j)}getPaintProperty(d,g){const w=this._checkLayer(d);if(w)return w.getPaintProperty(g)}setFeatureState(d,g){if(this._checkLoaded(),"target"in d){if("featuresetId"in d.target){const{featuresetId:$,importId:H}=d.target,Y=this.getFragmentStyle(H),te=Y.getFeaturesetLayers($);for(const{source:ee,sourceLayer:ne}of te)Y.setFeatureState({id:d.id,source:ee,sourceLayer:ne},g)}else if("layerId"in d.target){const{layerId:$}=d.target,H=this.getLayer($);this.setFeatureState({id:d.id,source:H.source,sourceLayer:H.sourceLayer},g)}return}const w=d.source,A=d.sourceLayer,j=this._checkSource(w);if(!j)return;const R=j.type;if(R==="geojson"&&A)return void this.fire(new s.B(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));if(R==="vector"&&!A)return void this.fire(new s.B(new Error("The sourceLayer parameter must be provided for vector source types.")));d.id===void 0&&this.fire(new s.B(new Error("The feature id parameter must be provided.")));const F=this.getOwnSourceCaches(w);for(const $ of F)$.setFeatureState(A,d.id,g)}removeFeatureState(d,g){if(this._checkLoaded(),"target"in d){if("featuresetId"in d.target){const{featuresetId:$,importId:H}=d.target,Y=this.getFragmentStyle(H),te=Y.getFeaturesetLayers($);for(const{source:ee,sourceLayer:ne}of te)Y.removeFeatureState({id:d.id,source:ee,sourceLayer:ne},g)}else if("layerId"in d.target){const{layerId:$}=d.target,H=this.getLayer($);this.removeFeatureState({id:d.id,source:H.source,sourceLayer:H.sourceLayer},g)}return}const w=d.source,A=this._checkSource(w);if(!A)return;const j=A.type,R=j==="vector"?d.sourceLayer:void 0;if(j==="vector"&&!R)return void this.fire(new s.B(new Error("The sourceLayer parameter must be provided for vector source types.")));if(g&&typeof d.id!="string"&&typeof d.id!="number")return void this.fire(new s.B(new Error("A feature id is required to remove its specific state property.")));const F=this.getOwnSourceCaches(w);for(const $ of F)$.removeFeatureState(R,d.id,g)}getFeatureState(d){if(this._checkLoaded(),"target"in d){let j;if("featuresetId"in d.target){const{featuresetId:R,importId:F}=d.target,$=this.getFragmentStyle(F),H=$.getFeaturesetLayers(R);for(const{source:Y,sourceLayer:te}of H){const ee=$.getFeatureState({id:d.id,source:Y,sourceLayer:te});if(ee&&!j)j=ee;else if(!s.b6(j,ee))return void this.fire(new s.B(new Error("The same feature id exists in multiple sources in the featureset, but their feature states are not consistent through the sources.")))}}else if("layerId"in d.target){const{layerId:R}=d.target,F=this.getLayer(R);j=this.getFeatureState({id:d.id,source:F.source,sourceLayer:F.sourceLayer})}return j}const g=d.source,w=d.sourceLayer,A=this._checkSource(g);if(A){if(A.type!=="vector"||w)return d.id===void 0&&this.fire(new s.B(new Error("The feature id parameter must be provided."))),this.getOwnSourceCaches(g)[0].getFeatureState(w,d.id);this.fire(new s.B(new Error("The sourceLayer parameter must be provided for vector source types.")))}}setTransition(d){return this.stylesheet.transition=Object.assign({},this.stylesheet.transition,d),this.transition=this.stylesheet.transition,this}getTransition(){return Object.assign({},this.stylesheet.transition)}setWorldview(d){d!==this._worldview&&(this._worldview=d,this.dispatcher.broadcast("setWorldview",this._worldview),this.reloadSources())}serialize(){this._checkLoaded();const d=this.getTerrain(),g=d&&this.terrain&&this.terrain.scope===this.scope?d:this.stylesheet.terrain;return s.df({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,fragment:this.stylesheet.fragment,iconsets:this.stylesheet.iconsets,featuresets:this.stylesheet.featuresets,imports:this._serializeImports(),schema:this.stylesheet.schema,camera:this.stylesheet.camera,light:this.stylesheet.light,lights:this.stylesheet.lights,terrain:g,fog:this.stylesheet.fog,snow:this.stylesheet.snow,rain:this.stylesheet.rain,indoor:this.stylesheet.indoor,center:this.stylesheet.center,"color-theme":this.stylesheet["color-theme"],zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:this._serializeSources(),layers:this._serializeLayers(this._order)},w=>w!==void 0)}_updateFilteredLayers(d){for(const g of Object.values(this._mergedLayers))d(g)&&this._updateLayer(g)}_updateLayer(d){this._changes.updateLayer(d);const g=this.getLayerSourceCache(d),w=s.F(d.source,d.scope),A=this._changes.getUpdatedSourceCaches();d.source&&!A[w]&&g&&g.getSource().type!=="raster"&&(this._changes.updateSourceCache(w,"reload"),g.pause()),d.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(d){const g=F=>this._mergedLayers[F].is3D(!!this.terrain),w=this.order,A={},j=[];for(let F=w.length-1;F>=0;F--){const $=w[F];if(g($)){A[$]=F;for(const H of d){const Y=H[$];if(Y)for(const te of Y)j.push(te)}}}j.sort((F,$)=>$.intersectionZ-F.intersectionZ);const R=[];for(let F=w.length-1;F>=0;F--){const $=w[F];if(g($))for(let H=j.length-1;H>=0;H--){const Y=j[H].feature;if(Y.layer&&A[Y.layer.id]{if(nT.has(Y.type))return;const te=this.getOwnLayerSourceCache(Y),ee=j[te.id]=j[te.id]||{sourceCache:te,layers:{},has3DLayers:!1};Y.is3D(!!this.terrain)&&(ee.has3DLayers=!0),ee.layers[Y.fqid]=ee.layers[Y.fqid]||{styleLayer:Y,targets:[]},ee.layers[Y.fqid].targets.push({filter:A})};if(g&&g.layers){if(!Array.isArray(g.layers))return this.fire(new s.B(new Error("parameters.layers must be an Array."))),[];for(const Y of g.layers){const te=this._layers[Y];if(!te)return this.fire(new s.B(new Error(`The layer '${Y}' does not exist in the map's style and cannot be queried for features.`))),[];R(te)}}else for(const Y in this._layers)R(this._layers[Y]);const F=this._queryRenderedFeatures(d,j,w),$=this._flattenAndSortRenderedFeatures(F),H=[];for(const Y of $)s.dh(Y.layer.id)===this.scope&&H.push(Y);return H}queryRenderedFeatureset(d,g,w){let A;g&&!Array.isArray(g)&&g.filter&&(this._validate(dt,"queryRenderedFeatures.filter",g.filter,null,g),A=s.dg(g.filter));const j="mock",R=[];if(g&&g.target)R.push(Object.assign({},g,{targetId:j,filter:A}));else{const Y=this.getFeaturesetDescriptors();for(const te of Y)R.push({targetId:j,filter:A,target:te});for(const{style:te}of this.fragments){const ee=te.getFeaturesetDescriptors();for(const ne of ee)R.push({targetId:j,filter:A,target:ne})}}const F=this.queryRenderedTargets(d,R,w),$=[],H=new Set;for(const Y of F)for(const te of Y.variants[j])pd(te,Y,H)||$.push(new s.di(Y,te));return $}queryRenderedTargets(d,g,w){const A={},j=(F,$,H,Y)=>{const te=A[$.id]=A[$.id]||{sourceCache:$,layers:{},has3DLayers:!1};if(te.layers[F.fqid]=te.layers[F.fqid]||{styleLayer:F,targets:[]},F.is3D(!!this.terrain)&&(te.has3DLayers=!0),!Y)return H.uniqueFeatureID=!1,void te.layers[F.fqid].targets.push(H);te.layers[F.fqid].targets.push(Object.assign({},H,{namespace:Y.namespace,properties:Y.properties,uniqueFeatureID:Y.uniqueFeatureID}))};for(const F of g)if("featuresetId"in F.target){const{featuresetId:$,importId:H}=F.target,Y=this.getFragmentStyle(H);if(!Y||!Y._featuresetSelectors)continue;const te=Y._featuresetSelectors[$];if(!te){this.fire(new s.B(new Error(`The featureset '${$}' does not exist in the map's style and cannot be queried for features.`)));continue}for(const ee of te){const ne=Y.getOwnLayer(ee.layerId);ne&&!nT.has(ne.type)&&j(ne,Y.getOwnLayerSourceCache(ne),F,ee)}}else if("layerId"in F.target){const{layerId:$}=F.target,H=this.getLayer($);if(!H||nT.has(H.type))continue;j(H,this.getLayerSourceCache(H),F)}const R=this._queryRenderedFeatures(d,A,w);return this._flattenAndSortRenderedFeatures(R)}_queryRenderedFeatures(d,g,w){const A=[],j=!!this.map._showQueryGeometry,R=ec.createFromScreenPoints(d,w);for(const F in g){const $=cI(R,g[F],this._availableImages,w,j,this.getActualScope());Object.keys($).length&&A.push($)}if(this.placement)for(const F in g){if(g[F].sourceCache._renderSourceType!==s.b4.Symbol)continue;const $=Z_(R.screenGeometry,g[F],this._availableImages,this.placement.collisionIndex,this.placement.retainedQueryData,this.map.getWorldview());Object.keys($).length&&A.push($)}return A}querySourceFeatures(d,g){const w=g&&g.filter;w&&this._validate(dt,"querySourceFeatures.filter",w,null,g);let A=[];const j=this.getOwnSourceCaches(d);for(const R of j)A=A.concat(qS(R,g));return A}addSourceType(d,g,w){return ou.getSourceType(d)?w(new Error(`A source type called "${d}" already exists.`)):(ou.setSourceType(d,g),g.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:d,url:g.workerSourceURL},w):w(null,null))}getFlatLight(){return this.light.getLight()}setFlatLight(d,g,w={}){this._checkLoaded();const A=this.light.getLight();let j=!1;for(const F in d)if(!s.b6(d[F],A[F])){j=!0;break}if(!j)return;const R=this._getTransitionParameters();this.light.setLight(d,g,w),this.light.updateTransitions(R)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}checkCanvasFingerprintNoise(){this.disableElevatedTerrain===void 0&&(this.disableElevatedTerrain=s.o.hasCanvasFingerprintNoise(),this.disableElevatedTerrain&&s.w("Terrain and hillshade are disabled because of Canvas2D limitations when fingerprinting protection is enabled (e.g. in private browsing mode)."))}setTerrain(d,g=1){if(this._checkLoaded(),!d)return this.terrainSetForDrapingOnly()||(delete this.terrain,this.map.transform.projection.requiresDraping&&this.setTerrainForDraping()),g===0&&delete this.terrain,d===null?this.stylesheet.terrain=null:delete this.stylesheet.terrain,this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);this.checkCanvasFingerprintNoise();let w=d;const A=!("source"in d)||d.source==null;if(g===1){if(this.disableElevatedTerrain)return;if("source"in w&&typeof w.source=="object"){const F="terrain-dem-src";this.addSource(F,w.source),w=s.d9(w),w=Object.assign(w,{source:F})}const j=Object.assign({},w),R={};if(this.terrain&&A){j.source=this.terrain.get().source;const F=this.terrain?this.getFragmentStyle(this.terrain.scope):null;F&&(R.style=F.serialize())}if(this._validate(fe,"terrain",j,R))return}if(!this.terrain||this.terrain.scope!==this.scope&&!A||this.terrain&&g!==this.terrain.drapeRenderMode){if(!w)return;this._createTerrain(w,g),this.fire(new s.C("data",{dataType:"style"}))}else{const j=this.terrain,R=j.get();for(const F of Object.keys(s.a8.terrain))!w.hasOwnProperty(F)&&s.a8.terrain[F].default&&(w[F]=s.a8.terrain[F].default);for(const F in d)if(!s.b6(d[F],R[F])){j.set(d,this.options),this.stylesheet.terrain=d;const $=this._getTransitionParameters({duration:0});j.updateTransitions($),this.fire(new s.C("data",{dataType:"style"}));break}}this.mergeTerrain(),this.updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(d){const g=this.fog=new os(d,this.map.transform,this.scope,this.options);this.stylesheet.fog=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}_createSnow(d){const g=this.snow=new _s(d,this.map.transform,this.scope,this.options);this.stylesheet.snow=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}_createRain(d){const g=this.rain=new Rn(d,this.map.transform,this.scope,this.options);this.stylesheet.rain=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask(()=>{for(const d of this.map._markers)d._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(d){if(this._checkLoaded(),!d)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const g=this.fog;if(!s.b6(g.get(),d)){g.set(d,this.options),this.stylesheet.fog=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}}else this._createFog(d);this._markersNeedUpdate=!0}getSnow(){return this.snow?this.snow.get():null}setSnow(d){if(this._checkLoaded(),!d)return delete this.snow,void delete this.stylesheet.snow;if(this.snow){const g=this.snow;if(!s.b6(g.get(),d)){g.set(d,this.options),this.stylesheet.snow=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}}else this._createSnow(d);this._markersNeedUpdate=!0}getRain(){return this.rain?this.rain.get():null}setRain(d){if(this._checkLoaded(),!d)return delete this.rain,void delete this.stylesheet.rain;if(this.rain){const g=this.rain;if(!s.b6(g.get(),d)){g.set(d,this.options),this.stylesheet.rain=g.get();const w=this._getTransitionParameters({duration:0});g.updateTransitions(w)}}else this._createRain(d);this._markersNeedUpdate=!0}_reloadColorTheme(){const d=()=>{for(const A in this._layers)this._layers[A].lut=this._styleColorTheme.lut;for(const A in this._sourceCaches)this._sourceCaches[A].clearTiles()},g=this._styleColorTheme.colorThemeOverride?this._styleColorTheme.colorThemeOverride:this._styleColorTheme.colorTheme;if(!g)return this._styleColorTheme.lut=null,void d();const w=this._evaluateColorThemeData(g);this._loadColorTheme(w).then(()=>{this.fire(new s.C("colorthemeset")),d()}).catch(A=>{s.w(`Couldn't set color theme: ${A}`)})}setColorTheme(d){this._checkLoaded(),this._styleColorTheme.colorThemeOverride&&s.w("Note: setColorTheme is called on a style with a color-theme override, the passed color-theme won't be visible."),this._styleColorTheme.colorTheme=d,this._reloadColorTheme()}setImportColorTheme(d,g){const w=this.getFragmentStyle(d);w&&(w._styleColorTheme.colorThemeOverride=g,w._reloadColorTheme())}_getTransitionParameters(d){return{now:s.o.now(),transition:Object.assign(this.transition,d)}}updateDrapeFirstLayers(){if(!this.terrain)return;const d=[],g=[];for(const w of this._mergedOrder)this.isLayerDraped(this._mergedLayers[w])?d.push(w):g.push(w);this._drapedFirstOrder=[],this._drapedFirstOrder.push(...d),this._drapedFirstOrder.push(...g)}_createTerrain(d,g){const w=this.terrain=new Tn(d,g,this.scope,this.options,this.map.getWorldview());g===1&&(this.stylesheet.terrain=d),this.mergeTerrain(),this.updateDrapeFirstLayers(),this._force3DLayerUpdate();const A=this._getTransitionParameters({duration:0});w.updateTransitions(A)}_force3DLayerUpdate(){for(const d in this._layers){const g=this._layers[d];g.type==="fill-extrusion"&&this._updateLayer(g)}}_forceSymbolLayerUpdate(){for(const d in this._layers){const g=this._layers[d];g.type==="symbol"&&this._updateLayer(g)}}_validate(d,g,w,A,j={}){if(j&&j.validate===!1)return!1;const R=Object.assign({},this.serialize());return Tp(this,d.call(tu,Object.assign({key:g,style:R,value:w,styleSpec:s.a8},A)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),s.dj.off("pluginStateChange",this._rtlTextPluginCallback);for(const d in this._mergedLayers)this._mergedLayers[d].setEventedParent(null);for(const d in this._mergedSourceCaches)this._mergedSourceCaches[d].clearTiles(),this._mergedSourceCaches[d].setEventedParent(null);this.imageManager.removeScope(this.scope),this.imageManager.imageAtlasCache.clear(),this.setEventedParent(null),delete this.fog,delete this.snow,delete this.rain,delete this.terrain,delete this.ambientLight,delete this.directionalLight,this.indoorManager.destroy(),this.isRootStyle()&&(this.imageManager.setEventedParent(null),this.imageManager.destroy(),this.modelManager.setEventedParent(null),this.modelManager.destroy(),this.dispatcher.remove())}clearSource(d){const g=this.getSourceCaches(d);for(const w of g)w.clearTiles()}clearSources(){for(const d in this._mergedSourceCaches)this._mergedSourceCaches[d].clearTiles()}clearLayers(){for(const d in this._mergedLayers){const g=this._mergedLayers[d];g._clear&&g._clear()}}reloadSource(d){const g=this.getSourceCaches(d);for(const w of g)w.resume(),w.reload()}reloadSources(){for(const d of this.getSources())d.reload&&d.reload()}reloadModels(){this.modelManager.reloadModels(""),this.forEachFragmentStyle(d=>{d.modelManager.reloadModels(d.scope)})}updateSources(d){let g;this.directionalLight&&(g=pI(this.directionalLight));const w=new Set,A=new Set,j=new Set;for(const R in this._mergedLayers){const F=this._mergedLayers[R];F.type==="building"?w.add(F.source):F.type==="raster"&&F.paint&&F.paint.get("raster-elevation-reference")==="ground"&&j.add(F.source),F.hasElevation()&&!A.has(F.source)&&A.add(F.source)}for(const R in this._mergedSourceCaches){const F=this._mergedSourceCaches[R],$=A.has(F._source.id);F._isRasterElevatedOverTerrain=j.has(F._source.id),w.has(F._source.id)&&(F._source.reparseOverscaled=!1),F.update(d,void 0,void 0,g,$)}}_generateCollisionBoxes(){for(const d in this._sourceCaches){const g=this._sourceCaches[d];g.resume(),g.reload()}}_handleLayerOrderChange(){this._requestFullLabelPlacement(),this.fire(new s.C("neworder"))}_requestFullLabelPlacement(){this.pauseablePlacement||(this.pauseablePlacement=new bx),this.pauseablePlacement.requestFullPlacement()}_setLabelPlacementStale(){this.placement&&this.placement.setStale()}_updatePlacement(d,g,w,A,j){this.pauseablePlacement||(this.pauseablePlacement=new bx);let R=!1,F=!1;const $={},H={};for(const oe of this._mergedOrder){const me=this._mergedLayers[oe];if(me.type!=="symbol")continue;const pe=s.F(me.source,me.scope);let Ie=$[pe];if(!Ie){const ve=this.getLayerSourceCache(me);if(!ve)continue;const Ye=ve.getRenderableIds(!0).map(Be=>ve.getTileByID(Be));H[pe]=Ye.slice(),Ie=$[pe]=Ye.sort((Be,We)=>We.tileID.overscaledZ-Be.tileID.overscaledZ||(Be.tileID.isLessThan(We.tileID)?-1:1))}const Ne=this.crossTileSymbolIndex.addLayer(me,Ie,d.center.lng,d.projection);R=R||Ne}this.crossTileSymbolIndex.pruneUnusedLayers(this._mergedOrder);const Y=!!(this.placement&&!d.equals(this.placement.transform)),te=!!(this.placement&&(this.placement.lastReplacementSourceUpdateTime!==0&&!j||this.placement.lastReplacementSourceUpdateTime!==j.updateTime)),ee=Y||te||R,ne=(ee||this.pauseablePlacement.isStale())&&w===0,le=this.pauseablePlacement.isDone()&&!this.placement.stillRecent(s.o.now(),d.zoom)&&w!==0;if((this.pauseablePlacement.isFullPlacementRequested()||!this.pauseablePlacement.placement||ne||le)&&(this.pauseablePlacement=this.pauseablePlacement.startNewPlacement(d,this._mergedOrder,g,w,A,this.placement,this.fog&&d.projection.supportsFog?this.fog.state:null,this._buildingIndex),this.map.painter)){const oe=this.map.painter.maxFrontCutoffRawStart;if(oe>0){const me=180*d.pitch/Math.PI;if(me>=15){const pe=Math.min(1,Math.max(0,(me-15)/5)),Ie=pe*pe*(3-2*pe);this.pauseablePlacement.placement.frontCutoffStart=-.5*(1-Ie)+oe*Ie}}}if(this.pauseablePlacement.isDone()?ee&&w!==0&&this.pauseablePlacement.setStale():(this.pauseablePlacement.continuePlacement(this._mergedOrder,this._mergedLayers,$,H,this.map.painter.scaleFactor),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(s.o.now()),F=!0),R&&this.pauseablePlacement.setStale()),F||R){this._buildingIndex.onNewFrame(d.zoom);for(let oe=0;oej===d.id)!==-1)return void this.fire(new s.B(new Error(`Import with id '${d.id}' already exists in the map's style.`)));if(!g)return w.push(d),this._loadImports([d],!0);const A=w.findIndex(({id:j})=>j===g);return A===-1&&this.fire(new s.B(new Error(`Import with id "${g}" does not exist on this map.`))),this.stylesheet.imports=w.slice(0,A).concat(d).concat(w.slice(A)),this._loadImports([d],!0,g)}updateImport(d,g){this._checkLoaded();const w=this.stylesheet.imports||[],A=this.getImportIndex(d);return A===-1?this:typeof g=="string"?(this.setImportUrl(d,g),this):(g.url&&g.url!==w[A].url&&this.setImportUrl(d,g.url),s.b6(g.config,w[A].config)||this.setImportConfig(d,g.config,g.data.schema),s.b6(g.data,w[A].data)||this.setImportData(d,g.data),this)}moveImport(d,g){this._checkLoaded();let w=this.stylesheet.imports||[];const A=this.getImportIndex(d);if(A===-1)return this;const j=this.getImportIndex(g);if(j===-1)return this;const R=w[A],F=this.fragments[A];return w=w.filter(({id:$})=>$!==d),this.fragments=this.fragments.filter(({id:$})=>$!==d),this.stylesheet.imports=w.slice(0,j).concat(R).concat(w.slice(j)),this.fragments=this.fragments.slice(0,j).concat(F).concat(this.fragments.slice(j)),this.mergeLayers(),this}setImportUrl(d,g){this._checkLoaded();const w=this.stylesheet.imports||[],A=this.getImportIndex(d);if(A===-1)return this;w[A].url=g;const j=this.fragments[A];return j.style=this._createFragmentStyle(w[A]),j.style.on("style.import.load",()=>this.mergeAll()),j.style.loadURL(g),this}setImportData(d,g){this._checkLoaded();const w=this.getImportIndex(d),A=this.stylesheet.imports||[];return w===-1?this:g?(this.fragments[w].style.setState(g),this._reloadImports(),this):(delete A[w].data,this.setImportUrl(d,A[w].url))}setImportConfig(d,g,w){this._checkLoaded();const A=this.getImportIndex(d),j=this.stylesheet.imports||[];if(A===-1)return this;g?j[A].config=g:delete j[A].config;const R=this.fragments[A];w&&R.style.stylesheet&&(R.style.stylesheet.schema=w);const F=R.style.stylesheet&&R.style.stylesheet.schema;return R.config=g,R.style.updateConfig(g,F),this.updateConfigDependencies(),this}removeImport(d){this._checkLoaded();const g=this.stylesheet.imports||[],w=this.getImportIndex(d);w!==-1&&(g.splice(w,1),this.fragments[w].style._remove(),this.fragments.splice(w,1),this._reloadImports())}getImportIndex(d){const g=(this.stylesheet.imports||[]).findIndex(w=>w.id===d);return g===-1&&this.fire(new s.B(new Error(`Import '${d}' does not exist in the map's style and cannot be updated.`))),g}getLayer(d){return this._mergedLayers[d]}getSources(){const d=[];for(const g in this._mergedOtherSourceCaches){const w=this._mergedOtherSourceCaches[g];w&&d.push(w.getSource())}return d}getSource(d,g){const w=this.getSourceCache(d,g);return w&&w.getSource()}getLayerSource(d){const g=this.getLayerSourceCache(d);return g&&g.getSource()}getSourceCache(d,g){const w=s.F(d,g);return this._mergedOtherSourceCaches[w]}getLayerSourceCache(d){const g=s.F(d.source,d.scope);return d.type==="symbol"?this._mergedSymbolSourceCaches[g]:d.type==="fill-extrusion"&&this._mergedFillExtrusionSourceCaches[g]||this._mergedOtherSourceCaches[g]}getSourceCaches(d){if(d==null)return Object.values(this._mergedSourceCaches);const g=[];return this._mergedOtherSourceCaches[d]&&g.push(this._mergedOtherSourceCaches[d]),this._mergedSymbolSourceCaches[d]&&g.push(this._mergedSymbolSourceCaches[d]),this._mergedFillExtrusionSourceCaches[d]&&g.push(this._mergedFillExtrusionSourceCaches[d]),g}updateSourceCaches(){const d=this._changes.getUpdatedSourceCaches();for(const g in d){const w=d[g];w==="reload"?this.reloadSource(g):w==="clear"&&this.clearSource(g)}}updateLayers(d){const g=this._changes.getUpdatedPaintProperties();for(const w of g){const A=this.getLayer(w);A&&A.updateTransitions(d)}}getGlyphsUrl(){return this.stylesheet.glyphs}setGlyphsUrl(d){this.stylesheet.glyphs=d,this.glyphManager.setURL(d)}getImages(d,g,w){this.imageManager.getImages(g.images,g.scope,w),this._updateTilesForChangedImages();const A=R=>{if(R){const F=g.images.map($=>s.I.toString($));R.setDependencies(g.tileID.key,g.type,F)}},j=s.F(g.source,g.scope);A(this._mergedOtherSourceCaches[j]),A(this._mergedSymbolSourceCaches[j]),g.images.some(R=>R.iconsetId)&&this.fire(new s.C("data",{dataType:"style"}))}rasterizeImages(d,g,w){this.imageManager.rasterizeImages(g,w)}checkAtlasCache(d,g,w){const A=this.imageManager.imageAtlasCache.findCachedAtlas(g.descriptor);w(null,A&&A.contentDescriptor?{iconPositions:A.iconPositions,patternPositions:A.patternPositions,sourceHash:A.contentDescriptor.hash}:null)}getGlyphs(d,g,w){this.glyphManager.getGlyphs(g.stacks,w)}getOwnSourceCache(d){return this._otherSourceCaches[d]}getOwnLayerSourceCache(d){return d.type==="symbol"?this._symbolSourceCaches[d.source]:d.type==="fill-extrusion"&&this._fillExtrusionSourceCaches[d.source]||this._otherSourceCaches[d.source]}getOwnSourceCaches(d){const g=[];return this._otherSourceCaches[d]&&g.push(this._otherSourceCaches[d]),this._symbolSourceCaches[d]&&g.push(this._symbolSourceCaches[d]),this._fillExtrusionSourceCaches[d]&&g.push(this._fillExtrusionSourceCaches[d]),g}_isSourceCacheLoaded(d){const g=this.getOwnSourceCaches(d);return g.length===0?(this.fire(new s.B(new Error(`There is no source with ID '${d}'`))),!1):g.every(w=>w.loaded())}has3DLayers(){return this._has3DLayers}hasSymbolLayers(){return this._hasSymbolLayers}hasCircleLayers(){return this._hasCircleLayers}isLayerClipped(d,g){if(!this._clipLayerPresent&&d.type!=="fill-extrusion"&&d.type!=="building")return!1;const w=d.type==="fill-extrusion"&&(d.sourceLayer==="building"||d.sourceLayer==="procedural_buildings"),A=d.type==="building";if(d.is3D(!!this.terrain)){if(w||A||g&&g.type==="batched-model"||d.type==="model")return!0}else if(d.type==="symbol")return!0;return!1}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}getBOMObject(){}destroy(){this._clearWorkerCaches(),this.imageManager.imageAtlasCache.clear(),this.fragments.forEach(d=>{d.style._remove()}),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}ou.getSourceType=function(v){return K_[v]},ou.setSourceType=function(v,d){K_[v]=d},ou.registerForPluginStateChange=s.dk;var sT=` #define EPSILON 0.0000001 #define PI 3.141592653589793 #ifdef RENDER_CUTOFF float cutoff_opacity(vec4 cutoff_params,float depth) {float near=cutoff_params.x;float far=cutoff_params.y;float cutoffStart=cutoff_params.z;float cutoffEnd=cutoff_params.w;float linearDepth=(depth-near)/(far-near);return clamp((linearDepth-cutoffStart)/(cutoffEnd-cutoffStart),0.0,1.0);} #endif`,aT=` #ifdef DUAL_SOURCE_BLENDING layout(location=0,index=0) out vec4 glFragColor;layout(location=0,index=1) out vec4 glFragColorSrc1; #elif defined(FLOAT_RENDER_TARGET) layout(location=0) out highp vec4 glFragColor; #else layout(location=0) out vec4 glFragColor; #endif #ifdef USE_MRT1 layout(location=1) out vec4 out_Target1; #endif highp float unpack_depth(highp vec4 rgba_depth) {const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;} #ifdef INDICATOR_CUTOUT uniform vec3 u_indicator_cutout_centers;uniform vec4 u_indicator_cutout_params; #endif const float DITHER_THRESHOLDS[16]=float[16]( 1.0/17.0, 9.0/17.0, 3.0/17.0,11.0/17.0,13.0/17.0, 5.0/17.0,15.0/17.0, 7.0/17.0,4.0/17.0,12.0/17.0, 2.0/17.0,10.0/17.0,16.0/17.0, 8.0/17.0,14.0/17.0, 6.0/17.0 );vec4 applyCutout(vec4 color,float height) { #ifdef INDICATOR_CUTOUT float verticalFadeRange=u_indicator_cutout_centers.z*0.25;float holeMinOpacity=mix(1.0,u_indicator_cutout_params.x,smoothstep(u_indicator_cutout_centers.z,u_indicator_cutout_centers.z+verticalFadeRange,height));float holeRadius=max(u_indicator_cutout_params.y,0.0);float holeAspectRatio=u_indicator_cutout_params.z;float fadeStart=u_indicator_cutout_params.w;float distA=distance(vec2(gl_FragCoord.x,gl_FragCoord.y*holeAspectRatio),vec2(u_indicator_cutout_centers[0],u_indicator_cutout_centers[1]*holeAspectRatio));return color*min(smoothstep(fadeStart,holeRadius,distA)+holeMinOpacity,1.0); #else return color; #endif }float cutoutGroundRoofOpacity(vec4 groundRoof) { #ifdef INDICATOR_CUTOUT float fadeStartX=u_indicator_cutout_params.w;float holeRadius=u_indicator_cutout_params.y;float holeMinOpacity=mix(u_indicator_cutout_params.x,1.0,smoothstep(u_indicator_cutout_params.z,u_indicator_cutout_centers.z,groundRoof.y));float distX=abs(u_indicator_cutout_centers.x-groundRoof.x);float roofOpacity=mix(holeMinOpacity,1.0,smoothstep(fadeStartX,holeRadius,u_indicator_cutout_centers.y-groundRoof.w));float groundOpacity=min(smoothstep(fadeStartX,holeRadius,distX)+holeMinOpacity,1.0);return max(roofOpacity,groundOpacity); #else return 1.0; #endif } #ifdef DEBUG_WIREFRAME #define HANDLE_WIREFRAME_DEBUG \\ glFragColor=vec4(0.7,0.0,0.0,0.7); \\ gl_FragDepth=gl_FragCoord.z-0.0001; #else #define HANDLE_WIREFRAME_DEBUG #endif #ifdef RENDER_CUTOFF uniform highp vec4 u_cutoff_params;in float v_cutoff_opacity; #endif vec4 textureLodCustom(sampler2D image,highp vec2 pos,highp vec2 lod_coord) {highp vec2 size=vec2(textureSize(image,0));highp vec2 dx=dFdx(lod_coord.xy*size);highp vec2 dy=dFdy(lod_coord.xy*size);highp float delta_max_sqr=max(dot(dx,dx),dot(dy,dy));highp float lod=0.5*log2(delta_max_sqr);return textureLod(image,pos,lod);}vec4 applyLUT(highp sampler3D lut,vec4 col) {vec3 size=vec3(textureSize(lut,0));vec3 uvw=(col.rbg*float(size-1.0)+0.5)/size;return vec4(texture(lut,uvw).rgb*col.a,col.a);}vec3 applyLUT(highp sampler3D lut,vec3 col) {return applyLUT(lut,vec4(col,1.0)).rgb;}`,uf=` #define EXTENT 8192.0 #define RAD_TO_DEG 180.0/PI #define DEG_TO_RAD PI/180.0 #define GLOBE_RADIUS EXTENT/PI/2.0 float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} #ifdef PROJECTION_GLOBE_VIEW vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { #ifndef PROJECTED_POS_ON_VIEWPORT float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; #else return vec3(0.0); #endif }vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} #endif vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec4 decode_color(const vec2 encodedColor) {return vec4( unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const vec2 units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (units_to_pixels*pos+offset)/pattern_size;}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {return get_pattern_pos(pixel_coord_upper,pixel_coord_lower,pattern_size,vec2(tile_units_to_pixels),pos);}float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(PI/4.0+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);} #ifdef RENDER_CUTOFF uniform vec4 u_cutoff_params;out float v_cutoff_opacity; #endif const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);const float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(ivec2 posWithComposedSkirt) {float skirt=float(float(posWithComposedSkirt.x) >=skirtOffset);vec2 pos=vec2(posWithComposedSkirt)-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);} #ifndef HAS_SHADER_STORAGE_BLOCK_material_buffer #define GET_ATTRIBUTE_float(attrib,matInfo,attrib_id) attrib #define GET_ATTRIBUTE_vec4(attrib,matInfo,attrib_id) attrib #define GET_ATTRIBUTE_vec2(attrib,matInfo,attrib_id) attrib #define DECLARE_MATERIAL_TABLE_INFO #endif`,Ix="in highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;out highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",oT=` #define ELEVATION_SCALE 7.0 #define ELEVATION_OFFSET 450.0 #ifdef PROJECTION_GLOBE_VIEW uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} #else vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } #endif #ifdef TERRAIN uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float currentElevation(vec2 apos) { #ifdef TERRAIN_DEM_FLOAT_FORMAT vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture(u_dem,pos).r; #else float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=texture(u_dem,pos).r;float tr=texture(u_dem,pos+vec2(dd,0)).r;float bl=texture(u_dem,pos+vec2(0,dd)).r;float br=texture(u_dem,pos+vec2(dd,dd)).r;return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); #endif }float prevElevation(vec2 apos) { #ifdef TERRAIN_DEM_FLOAT_FORMAT vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture(u_dem_prev,pos).r; #else float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=texture(u_dem_prev,pos).r;float tr=texture(u_dem_prev,pos+vec2(dd,0)).r;float bl=texture(u_dem_prev,pos+vec2(0,dd)).r;float br=texture(u_dem_prev,pos+vec2(dd,dd)).r;return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); #endif } #ifdef TERRAIN_VERTEX_MORPHING float elevation(vec2 apos) { #ifdef ZERO_EXAGGERATION return 0.0; #endif float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} #else float elevation(vec2 apos) { #ifdef ZERO_EXAGGERATION return 0.0; #endif return currentElevation(apos);} #endif vec4 fourSample(vec2 pos,vec2 off) {float tl=texture(u_dem,pos).r;float tr=texture(u_dem,pos+vec2(off.x,0.0)).r;float bl=texture(u_dem,pos+vec2(0.0,off.y)).r;float br=texture(u_dem,pos+off).r;return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} #else float elevation(vec2 pos) { return 0.0; } #endif #ifdef DEPTH_OCCLUSION uniform highp sampler2D u_depth;uniform highp vec2 u_depth_size_inv;uniform highp vec2 u_depth_range_unpack;uniform highp float u_occluder_half_size;uniform highp float u_occlusion_depth_offset; #ifdef DEPTH_D24 float unpack_depth(float depth) {return depth*u_depth_range_unpack.x+u_depth_range_unpack.y;}vec4 unpack_depth4(vec4 depth) {return depth*u_depth_range_unpack.x+vec4(u_depth_range_unpack.y);} #else highp float unpack_depth_rgba(vec4 rgba_depth) {const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;} #endif bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w; #ifdef CLIP_ZERO_TO_ONE coord.z=-1.0+2.0*coord.z; #endif #ifdef DEPTH_D24 float depth=unpack_depth(texture(u_depth,(coord.xy+1.0)*0.5).r); #else float depth=unpack_depth_rgba(texture(u_depth,(coord.xy+1.0)*0.5)); #endif return coord.z+u_occlusion_depth_offset > depth;}highp vec4 getCornerDepths(vec2 coord) {highp vec3 df=vec3(u_occluder_half_size*u_depth_size_inv,0.0);highp vec2 uv=0.5*coord.xy+0.5; #ifdef DEPTH_D24 highp vec4 depth=vec4( texture(u_depth,uv-df.xz).r,texture(u_depth,uv+df.xz).r,texture(u_depth,uv-df.zy).r,texture(u_depth,uv+df.zy).r );depth=unpack_depth4(depth); #else highp vec4 depth=vec4( unpack_depth_rgba(texture(u_depth,uv-df.xz)),unpack_depth_rgba(texture(u_depth,uv+df.xz)),unpack_depth_rgba(texture(u_depth,uv-df.zy)),unpack_depth_rgba(texture(u_depth,uv+df.zy)) ); #endif return depth;}highp float occlusionFadeMultiSample(vec4 frag) {highp vec3 coord=frag.xyz/frag.w;highp vec2 uv=0.5*coord.xy+0.5; #ifdef CLIP_ZERO_TO_ONE coord.z=-1.0+2.0*coord.z; #endif int NX=3;int NY=4;highp vec2 df=u_occluder_half_size*u_depth_size_inv;highp vec2 oneStep=2.0*u_occluder_half_size*u_depth_size_inv/vec2(NX-1,NY-1);highp float res=0.0;for (int y=0; y < NY;++y) {for (int x=0; x < NX;++x) { #ifdef DEPTH_D24 highp float depth=unpack_depth(texture(u_depth,uv-df+vec2(float(x)*oneStep.x,float(y)*oneStep.y)).r); #else highp float depth=unpack_depth_rgba(texture(u_depth,uv-df+vec2(float(x)*oneStep.x,float(y)*oneStep.y))); #endif res+=1.0-clamp(300.0*(coord.z+u_occlusion_depth_offset-depth),0.0,1.0);}}res=clamp(2.0*res/float(NX*NY)-0.5,0.0,1.0);return res;}highp float occlusionFade(vec4 frag) {highp vec3 coord=frag.xyz/frag.w; #ifdef CLIP_ZERO_TO_ONE coord.z=-1.0+2.0*coord.z; #endif highp vec4 depth=getCornerDepths(coord.xy);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z+u_occlusion_depth_offset)-depth),0.0,1.0));} #else bool isOccluded(vec4 frag) { return false; }highp float occlusionFade(vec4 frag) { return 1.0; }highp float occlusionFadeMultiSample(vec4 frag) { return 1.0; } #endif`,lT=`#ifdef FOG uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;out vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} #endif`,rg=`#ifdef FOG uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump vec2 u_fog_vertical_limit;uniform mediump float u_fog_temporal_offset;in vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport; #ifdef FLIP_Y uv.y=1.0-uv.y; #endif highp vec3 ray_dir=mix( mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos,float opacity_limit) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,min(opacity,opacity_limit));}vec3 fog_apply(vec3 color,vec3 pos) {return fog_apply(color,pos,1.0);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec4 fog_apply_premultiplied(vec4 color,vec3 pos,float heightMeters) {float verticalProgress=(u_fog_vertical_limit.x > 0.0 || u_fog_vertical_limit.y > 0.0) ? smoothstep(u_fog_vertical_limit.x,u_fog_vertical_limit.y,heightMeters) : 0.0;float opacityLimit=1.0-smoothstep(0.9,1.0,fog_opacity(pos));return mix(fog_apply_premultiplied(color,pos),color,min(verticalProgress,opacityLimit));}vec3 fog_dither(vec3 color) {return color;}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} #endif`,ng=`#ifdef RASTER_ARRAY uniform highp sampler2D u_image0;uniform sampler2D u_image1;const vec4 NODATA=vec4(1);ivec4 _raTexLinearCoord(highp vec2 texCoord,highp vec2 texResolution,out highp vec2 fxy) {texCoord=texCoord*texResolution-0.5;fxy=fract(texCoord);texCoord-=fxy;return ivec4(texCoord.xxyy+vec2(1.5,0.5).xyxy);}vec2 _raTexLinearMix(highp vec2 fxy,highp vec4 colorMix,highp float colorOffset,highp vec4 t00,highp vec4 t10,highp vec4 t01,highp vec4 t11) {vec2 c00=t00==NODATA ? vec2(0) : vec2(colorOffset+dot(t00,colorMix),1);vec2 c10=t10==NODATA ? vec2(0) : vec2(colorOffset+dot(t10,colorMix),1);vec2 c01=t01==NODATA ? vec2(0) : vec2(colorOffset+dot(t01,colorMix),1);vec2 c11=t11==NODATA ? vec2(0) : vec2(colorOffset+dot(t11,colorMix),1);return mix(mix(c01,c11,fxy.x),mix(c00,c10,fxy.x),fxy.y);}vec2 raTexture2D_image0_linear(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec2 fxy;ivec4 c=_raTexLinearCoord(texCoord,texResolution,fxy);return _raTexLinearMix(fxy,colorMix,colorOffset,texelFetch(u_image0,c.yz,0),texelFetch(u_image0,c.xz,0),texelFetch(u_image0,c.yw,0),texelFetch(u_image0,c.xw,0) );}vec2 raTexture2D_image1_linear(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec2 fxy;ivec4 c=_raTexLinearCoord(texCoord,texResolution,fxy);return _raTexLinearMix(fxy,colorMix,colorOffset,texelFetch(u_image1,c.yz,0),texelFetch(u_image1,c.xz,0),texelFetch(u_image1,c.yw,0),texelFetch(u_image1,c.xw,0) );}vec2 raTexture2D_image0_nearest(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec4 t=texelFetch(u_image0,ivec2(texCoord*texResolution),0);return t==NODATA ? vec2(0) : vec2(colorOffset+dot(t,colorMix),1);}vec2 raTexture2D_image1_nearest(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec4 t=texelFetch(u_image1,ivec2(texCoord*texResolution),0);return t==NODATA ? vec2(0) : vec2(colorOffset+dot(t,colorMix),1);} #endif`,cT=`#ifdef RASTER_ARRAY uniform sampler2D u_velocity;uniform mediump vec2 u_velocity_res;uniform mediump float u_max_speed;const vec4 NO_DATA=vec4(1);const vec2 INVALID_VELOCITY=vec2(-1);uniform highp vec2 u_uv_offset;uniform highp float u_data_offset;uniform highp vec2 u_data_scale;ivec4 rasterArrayLinearCoord(highp vec2 texCoord,highp vec2 texResolution,out highp vec2 fxy) {texCoord=texCoord*texResolution-0.5;fxy=fract(texCoord);texCoord-=fxy;return ivec4(texCoord.xxyy+vec2(1.5,0.5).xyxy);}highp vec2 lookup_velocity(highp vec2 uv) {uv=u_uv_offset.x+u_uv_offset.y*uv;highp vec2 fxy;ivec4 c=rasterArrayLinearCoord(uv,u_velocity_res,fxy);highp vec4 tl=texelFetch(u_velocity,c.yz,0);highp vec4 tr=texelFetch(u_velocity,c.xz,0);highp vec4 bl=texelFetch(u_velocity,c.yw,0);highp vec4 br=texelFetch(u_velocity,c.xw,0);if (tl==NO_DATA) {return INVALID_VELOCITY;}if (tr==NO_DATA) {return INVALID_VELOCITY;}if (bl==NO_DATA) {return INVALID_VELOCITY;}if (br==NO_DATA) {return INVALID_VELOCITY;}highp vec4 t=mix(mix(bl,br,fxy.x),mix(tl,tr,fxy.x),fxy.y);highp vec2 velocity=u_data_offset+vec2(dot(t.rg,u_data_scale),dot(t.ba,u_data_scale));velocity.y=-velocity.y;velocity/=max(u_max_speed,length(velocity));return velocity;} #endif uniform highp float u_particle_pos_scale;uniform highp vec2 u_particle_pos_offset;highp vec4 pack_pos_to_rgba(highp vec2 p) {highp vec2 v=(p+u_particle_pos_offset)/u_particle_pos_scale;highp vec4 r=vec4(v.x,fract(v.x*255.0),v.y,fract(v.y*255.0));return vec4(r.x-r.y/255.0,r.y,r.z-r.w/255.0,r.w);}highp vec2 unpack_pos_from_rgba(highp vec4 v) {v=floor(v*255.0+0.5)/255.0;highp vec2 p=vec2(v.x+(v.y/255.0),v.z+(v.w/255.0));return u_particle_pos_scale*p-u_particle_pos_offset;}`,cv=`#ifdef RENDER_SHADOWS uniform mediump vec3 u_shadow_direction;uniform highp vec3 u_shadow_normal_offset;vec3 shadow_normal_offset(vec3 normal) {float tileInMeters=u_shadow_normal_offset[0];vec3 n=vec3(-normal.xy,tileInMeters*normal.z);float dotScale=min(1.0-dot(normal,u_shadow_direction),1.0)*0.5+0.5;return n*dotScale;}vec3 shadow_normal_offset_model(vec3 normal) {vec3 transformed_normal=vec3(-normal.xy,normal.z);float NDotL=dot(normalize(transformed_normal),u_shadow_direction);float dotScale=min(1.0-NDotL,1.0)*0.5+0.5;return normal*dotScale;}float shadow_normal_offset_multiplier0() {return u_shadow_normal_offset[1];}float shadow_normal_offset_multiplier1() {return u_shadow_normal_offset[2];} #endif`,vc=`#ifdef RENDER_SHADOWS precision highp sampler2DShadow;uniform sampler2DShadow u_shadowmap_0;uniform sampler2DShadow u_shadowmap_1;uniform float u_shadow_intensity;uniform float u_shadow_map_resolution;uniform float u_shadow_texel_size;uniform highp vec3 u_shadow_normal_offset;uniform vec2 u_fade_range;uniform mediump vec3 u_shadow_direction;uniform highp vec3 u_shadow_bias;float shadow_sample(sampler2DShadow shadowmap,highp vec3 pos,highp float bias) { #ifdef CLIP_ZERO_TO_ONE highp vec3 coord=vec3(pos.xy*0.5+0.5,pos.z-bias); #else highp vec3 coord=vec3(pos.xy*0.5+0.5,pos.z*0.5+0.5-bias); #endif return texture(shadowmap,coord);}float shadow_occlusion(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth,highp float bias) {light_view_pos0.xyz/=light_view_pos0.w; #ifdef SHADOWS_SINGLE_CASCADE vec2 abs_bounds=abs(light_view_pos0.xy);if (abs_bounds.x >=1.0 || abs_bounds.y >=1.0) {return 0.0;}return shadow_sample(u_shadowmap_0,light_view_pos0.xyz,bias); #else light_view_pos1.xyz/=light_view_pos1.w;vec4 abs_bounds=abs(vec4(light_view_pos0.xy,light_view_pos1.xy));if (abs_bounds.x < 1.0 && abs_bounds.y < 1.0) {return shadow_sample(u_shadowmap_0,light_view_pos0.xyz,bias);}if (abs_bounds.z >=1.0 || abs_bounds.w >=1.0) {return 0.0;}float occlusion1=shadow_sample(u_shadowmap_1,light_view_pos1.xyz,bias);return clamp(mix(occlusion1,0.0,smoothstep(u_fade_range.x,u_fade_range.y,view_depth)),0.0,1.0); #endif }highp float calculate_shadow_bias(float NDotL) { #ifdef NORMAL_OFFSET return 0.5*u_shadow_bias.x; #else return 0.5*(u_shadow_bias.x+clamp(u_shadow_bias.y*tan(acos(NDotL)),0.0,u_shadow_bias.z)); #endif }float shadowed_light_factor_normal(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float NDotL=dot(N,u_shadow_direction);float bias=calculate_shadow_bias(NDotL);float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}float shadowed_light_factor_normal_opacity(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth,float shadow_opacity) {float NDotL=dot(N,u_shadow_direction);float bias=calculate_shadow_bias(NDotL);float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias)*shadow_opacity;return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}float shadowed_light_factor_normal_unbiased(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float NDotL=dot(N,u_shadow_direction);float bias=0.0;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}highp vec2 compute_receiver_plane_depth_bias(highp vec3 pos_dx,highp vec3 pos_dy) {highp vec2 biasUV=vec2( pos_dy.y*pos_dx.z-pos_dx.y*pos_dy.z,pos_dx.x*pos_dy.z-pos_dy.x*pos_dx.z);biasUV*=1.0/((pos_dx.x*pos_dy.y)-(pos_dx.y*pos_dy.x));return biasUV;}float shadowed_light_factor_plane_bias(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {highp vec3 light_view_pos0_xyz=light_view_pos0.xyz/light_view_pos0.w*0.5+0.5;highp vec3 light_view_pos0_ddx=dFdx(light_view_pos0_xyz);highp vec3 light_view_pos0_ddy=dFdy(light_view_pos0_xyz);highp vec2 plane_depth_bias=compute_receiver_plane_depth_bias(light_view_pos0_ddx,light_view_pos0_ddy);highp float bias=dot(vec2(u_shadow_texel_size,u_shadow_texel_size),plane_depth_bias)+0.0001;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return 1.0-(u_shadow_intensity*occlusion);}float shadowed_light_factor(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float bias=0.0;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return 1.0-(u_shadow_intensity*occlusion);}float shadow_occlusion(float ndotl,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float bias=calculate_shadow_bias(ndotl);return shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);} #endif`;const jx=/#include\s+"([^"]+)"/g,sr=/#pragma mapbox: ([\w\-]+) ([\w]+) ([\w]+) ([\w]+)/g,yI=/\b[A-Za-z_][A-Za-z0-9_]*\b/g,xI=new Set(["ifdef","ifndef","elif","if","defined"]),Ep=new Set;ch(sT,Ep),ch(uf,Ep),ch(aT,Ep);const Du={"_prelude_fog.vertex.glsl":lT,"_prelude_terrain.vertex.glsl":oT,"_prelude_shadow.vertex.glsl":cv,"_prelude_material_table.vertex.glsl":`#ifdef HAS_SHADER_STORAGE_BLOCK_material_buffer #define MATERIAL_TABLE_DEBUG 0 uniform int u_material_offset;uniform int u_vertex_offset;layout(std140,binding=0)readonly buffer material_buffer{uvec4 material_data[];};struct MaterialInfo{uint dataOffset; #if MATERIAL_TABLE_DEBUG vec4 colorDebug; #endif };uint read_buf_no_offset(uint iDword) {return material_data[iDword/4u][iDword % 4u];}uint read_buf(uint iDword) {iDword+=uint(u_material_offset/4);return read_buf_no_offset(iDword);}float read_buf_float(uint iDword){return uintBitsToFloat(read_buf(iDword));}uint read_buf_uint8(uint iDword,uint iUint8){uint dwordOffset=iDword+(iUint8/4u);uint byteOffset=iUint8 & 3u;uint bitOffset=8u*byteOffset;uint mask=0xffu << bitOffset;uint dwordVal=read_buf(dwordOffset);return (dwordVal & mask) >> bitOffset;}uint read_buf_uint16(uint iDword,uint iUint16){uint dwordOffset=iDword+(iUint16 >> 1u);uint bitOffset=(iUint16 & 1u)*16u;uint mask=0xffffu << bitOffset;uint dwordVal=read_buf(dwordOffset);return (dwordVal & mask) >> bitOffset;}uint nrDwordsForVertexIdEntries(uint nrMaterialLookupEntries) {return nrMaterialLookupEntries;}uint nrDwordsForMaterialIdEntries(uint nrMaterialLookupEntries) {return (nrMaterialLookupEntries*2u+3u)/4u;}uint findRangeBinarySearch(uint vertexId,uint numRanges,uint dwordOffset) {uint left=0u;uint right=numRanges-1u;for (uint i=0u; i < 16u; i++) { if (left > right) {break;}uint mid=(left+right)/2u;uint start=read_buf(dwordOffset+mid);uint nextStart=(mid+1u < numRanges) ? read_buf(dwordOffset+mid+1u) : 0xffffffffu;if (vertexId >=start && vertexId < nextStart) {return mid;} else if (vertexId < start) {if (mid==0u) {break;}right=mid-1u;} else {left=mid+1u;}}return 0u; }uint readVertexId(uint dwordOffset,uint iMaterialLookupEntry) {return read_buf(dwordOffset+iMaterialLookupEntry);}uint findRange(uint vertexId,uint numRanges,uint dwordOffset) {uint iRange;if(numRanges <=64u){uint vertexBegin;for(iRange=0u; iRange < numRanges;++iRange) {vertexBegin=readVertexId(dwordOffset,iRange);if(vertexBegin > vertexId) {break;}}iRange=iRange==0u? 0u : iRange-1u;} else { iRange=findRangeBinarySearch(vertexId,numRanges,dwordOffset);}return iRange;}MaterialInfo read_material_info(uint vertex_id) {MaterialInfo info; #if MATERIAL_TABLE_DEBUG const vec4 red=vec4(1.0,0.0,0.0,1.0);const vec4 orange=vec4(1.0,0.5,0.0,1.0);const vec4 yellow=vec4(1.0,1.0,0.0,1.0);const vec4 green=vec4(0.0,1.0,0.0,1.0);const vec4 indigo=vec4(0.294,0.0,0.510,1.0);const vec4 blue=vec4(0.0,0.0,1.0,1.0);const vec4 purple=vec4(0.5,0.0,0.5,1.0);const vec4 pink=vec4(1.0,0.0,1.0,1.0);info.colorDebug=green; #endif uint offset=0u; #if MATERIAL_TABLE_DEBUG bool keepFinding=true;uint magic=read_buf(offset);if(magic !=0xCAFEBABEu) {info.colorDebug=red;keepFinding=false;return info;} #endif offset++; #if MATERIAL_TABLE_DEBUG uint nrMaterials=read_buf(offset);uint nrVertices=read_buf(offset+1u);if(keepFinding && vertex_id >=nrVertices) {info.colorDebug=red;keepFinding=false;} #endif offset+=2u;uint nrMaterialLookupEntries=read_buf(offset++);uint perMaterialEntrySizeDwords=read_buf(offset++); #if MATERIAL_TABLE_DEBUG if(keepFinding && perMaterialEntrySizeDwords !=1u) {info.colorDebug=red;keepFinding=false;} #endif uint iMaterialLookup=findRange(vertex_id,nrMaterialLookupEntries,offset); #if MATERIAL_TABLE_DEBUG if(keepFinding) {uint vertexBeginCheck=readVertexId(offset,iMaterialLookup);if(vertexBeginCheck > vertex_id) {info.colorDebug=red;keepFinding=false;}if(iMaterialLookup < nrMaterialLookupEntries-1u) {uint vertexEndCheck=readVertexId(offset,iMaterialLookup+1u);if(vertexEndCheck <=vertex_id) {info.colorDebug=red;keepFinding=false;}}} #endif offset+=nrDwordsForVertexIdEntries(nrMaterialLookupEntries);uint materialId=iMaterialLookup; #if MATERIAL_TABLE_DEBUG if(keepFinding) {if(materialId >=nrMaterialLookupEntries) {info.colorDebug=red;}} #endif info.dataOffset=offset+materialId*perMaterialEntrySizeDwords;return info;}uint get_data_location(const MaterialInfo matInfo,uint attribOffsetBytes) {uint attribFieldOffsetDwords=attribOffsetBytes/4u;return matInfo.dataOffset+attribFieldOffsetDwords;}vec4 read_material_vec4(const MaterialInfo matInfo,uint attribOffsetBytes){uint loc=get_data_location(matInfo,attribOffsetBytes);return vec4(read_buf_float(loc),read_buf_float(loc+1u),read_buf_float(loc+2u),read_buf_float(loc+3u));}vec2 read_material_vec2(const MaterialInfo matInfo,uint attribOffsetBytes){uint loc=get_data_location(matInfo,attribOffsetBytes);return vec2(read_buf_float(loc),read_buf_float(loc+1u));}float read_material_float(const MaterialInfo matInfo,uint attribOffsetBytes){uint loc=get_data_location(matInfo,attribOffsetBytes);return read_buf_float(loc);} #define GET_ATTRIBUTE_float(attrib,matInfo,attrib_offset) read_material_float(matInfo,attrib_offset) #define GET_ATTRIBUTE_vec4(attrib,matInfo,attrib_offset) read_material_vec4(matInfo,attrib_offset) #define GET_ATTRIBUTE_vec2(attrib,matInfo,attrib_offset) read_material_vec2(matInfo,attrib_offset) #define DECLARE_MATERIAL_TABLE_INFO MaterialInfo materialInfo=read_material_info(uint(gl_VertexID)); #define DECLARE_MATERIAL_TABLE_INFO_DEBUG(dbgColor) MaterialInfo materialInfo=read_material_info(uint(gl_VertexID)); dbgColor=materialInfo.colorDebug; #endif`,"_prelude_fog.fragment.glsl":rg,"_prelude_shadow.fragment.glsl":vc,"_prelude_lighting.glsl":` #ifdef LIGHTING_3D_MODE uniform mediump vec3 u_lighting_ambient_color;uniform mediump vec3 u_lighting_directional_dir;uniform mediump vec3 u_lighting_directional_color;uniform mediump vec3 u_ground_radiance;float calculate_ambient_directional_factor(vec3 normal) {float NdotL=dot(normal,u_lighting_directional_dir);const float factor_reduction_max=0.3;float dir_luminance=dot(u_lighting_directional_color,vec3(0.2126,0.7152,0.0722));float directional_factor_min=1.0-factor_reduction_max*min(dir_luminance,1.0);float ambient_directional_factor=mix(directional_factor_min,1.0,min((NdotL+1.0),1.0));const float vertical_factor_min=0.92;float vertical_factor=mix(vertical_factor_min,1.0,normal.z*0.5+0.5);return vertical_factor*ambient_directional_factor;}vec3 linearProduct(vec3 srgbIn,vec3 k) {return srgbIn*pow(k,vec3(1./2.2));}vec3 apply_lighting(vec3 color,vec3 normal,float dir_factor) {float ambient_directional_factor=calculate_ambient_directional_factor(normal);vec3 ambient_contrib=ambient_directional_factor*u_lighting_ambient_color;vec3 directional_contrib=u_lighting_directional_color*dir_factor;return linearProduct(color,ambient_contrib+directional_contrib);}vec4 apply_lighting(vec4 color,vec3 normal,float dir_factor) {return vec4(apply_lighting(color.rgb,normal,dir_factor),color.a);}vec3 apply_lighting(vec3 color,vec3 normal) {float dir_factor=max(dot(normal,u_lighting_directional_dir),0.0);return apply_lighting(color.rgb,normal,dir_factor);}vec4 apply_lighting(vec4 color,vec3 normal) {float dir_factor=max(dot(normal,u_lighting_directional_dir),0.0);return vec4(apply_lighting(color.rgb,normal,dir_factor),color.a);}vec3 apply_lighting_ground(vec3 color) {return color*u_ground_radiance;}vec4 apply_lighting_ground(vec4 color) {return vec4(apply_lighting_ground(color.rgb),color.a);}float calculate_NdotL(vec3 normal) {const float ext=0.70710678118;return (clamp(dot(normal,u_lighting_directional_dir),-ext,1.0)+ext)/(1.0+ext);}vec4 apply_lighting_with_emission_ground(vec4 color,float emissive_strength) {return mix(apply_lighting_ground(color),color,emissive_strength);}vec3 compute_flood_lighting(vec3 flood_light_color,float fully_occluded_factor,float occlusion,vec3 ground_shadow_factor) {vec3 fully_occluded_color=flood_light_color*mix(ground_shadow_factor,vec3(1.0),fully_occluded_factor);float occlusion_ramp=smoothstep(0.0,0.2,1.0-occlusion);return mix(fully_occluded_color,flood_light_color,occlusion_ramp);}vec3 compute_emissive_draped(vec3 unlit_color,float fully_occluded_factor,float occlusion,vec3 ground_shadow_factor) {vec3 fully_occluded_color=unlit_color*mix(ground_shadow_factor,vec3(1.0),fully_occluded_factor);return mix(fully_occluded_color,unlit_color,1.0-occlusion);} #endif`,"_prelude_raster_array.glsl":ng,"_prelude_raster_particle.glsl":cT},ig={};Mn("",oT),Mn(rg,lT),Mn(vc,cv),Mn(ng,""),Mn(cT,"");const df=Mn(aT,uf),Px=sT,sg=[` #if defined(GL_EXT_blend_func_extended) && defined(DUAL_SOURCE_BLENDING) #extension GL_EXT_blend_func_extended : require #endif`,"precision mediump float;",Px,df.fragmentSource].join(` `),m3=["precision highp float;",Px,df.vertexSource].join(` `);var _I={background:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform vec4 u_color;uniform float u_opacity;uniform mediump float u_emissive_strength; #ifdef LIGHTING_3D_MODE in vec4 v_color; #endif void main() {vec4 out_color; #ifdef FEATURE_CUTOUT vec2 uv=gl_FragCoord.xy*u_inv_viewport_size.xy; #ifdef FLIP_Y uv.y=1.0-uv.y; #endif float factorTex=min(texture(u_cutout_factor_image,uv).r,1.0);float cutoutFactor=(1.0-u_feature_cutout_params.x)*factorTex;out_color=u_color*(1.0-cutoutFactor); #else #ifdef LIGHTING_3D_MODE out_color=v_color; #else out_color=u_color; #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif #endif glFragColor=out_color*u_opacity; #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_lighting.glsl" in ivec2 a_pos;uniform mat4 u_matrix;uniform mediump float u_emissive_strength; #ifdef LIGHTING_3D_MODE uniform mediump vec4 u_color;out vec4 v_color; #endif void main() {gl_Position=u_matrix*vec4(a_pos,0,1); #ifndef FEATURE_CUTOUT #ifdef LIGHTING_3D_MODE v_color=apply_lighting_with_emission_ground(u_color,u_emissive_strength); #endif #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif #endif }`),backgroundPattern:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform float u_emissive_strength;uniform sampler2D u_image;in highp vec2 v_pos;void main() {highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=textureLodCustom(u_image,pos,v_pos); #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif glFragColor=out_color*u_opacity; #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec2 u_pattern_units_to_pixels;in ivec2 a_pos;out highp vec2 v_pos;void main() {vec2 pos=vec2(a_pos);gl_Position=u_matrix*vec4(pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_pattern_units_to_pixels,pos); #ifdef FOG v_fog_pos=fog_position(pos); #endif }`),building:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_shadow.fragment.glsl" #include "_prelude_lighting.glsl" const float window_depth=0.5;const float ao_radius=0.2;in vec4 v_color;in highp vec3 v_normal;in highp vec3 v_pos; #ifdef RENDER_FRONT_CUTOFF in float v_front_cutoff_opacity; #endif #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT in vec4 v_ground_roof; #endif #endif #ifdef BUILDING_FAUX_FACADE in lowp float v_faux_facade;in highp float v_faux_facade_ed;in highp vec2 v_faux_facade_window;in highp vec2 v_faux_facade_floor;in highp vec2 v_faux_facade_range;in highp float v_aspect;in highp vec3 v_tbn_0;in highp vec3 v_tbn_1;in highp vec3 v_tbn_2;in highp vec4 v_faux_color_emissive;uniform float u_faux_facade_ao_intensity; #endif #ifdef RENDER_SHADOWS in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1; #endif #ifdef FLOOD_LIGHT in highp float v_flood_radius;in float v_has_flood_light; #endif uniform lowp float u_opacity;uniform vec3 u_camera_pos;uniform highp float u_tile_to_meter;uniform float u_facade_emissive_chance;uniform vec3 u_flood_light_color;uniform float u_flood_light_intensity;vec3 linearTosRGB(in vec3 color) {return pow(color,vec3(1./2.2));} #ifdef BUILDING_FAUX_FACADE highp float hash12(in highp vec2 p) {highp vec3 p3 =fract(vec3(p.xyx)*0.1031);p3+=dot(p3,p3.yzx+33.33);return fract((p3.x+p3.y)*p3.z);}float min3(in vec3 v) {return min(min(v.x,v.y),v.z);}highp vec2 get_uv_mask_id(in highp vec2 q,out highp float mask,out highp vec2 id) {highp vec2 p=q;mask=step(v_faux_facade_range.x,p.y)*step(p.y,v_faux_facade_range.y);p.y=p.y-v_faux_facade_range.x;highp vec2 uv=modf(p/v_faux_facade_floor,id);highp vec4 d=(v_faux_facade_floor.xyxy+vec4(-v_faux_facade_window,v_faux_facade_window))*0.5;highp vec4 edge=d/v_faux_facade_floor.xyxy;highp vec2 m=step(edge.xy,uv)*step(uv,edge.zw);mask*=m.x*m.y;uv-=vec2(0.5);uv*=vec2(0.5)/(vec2(0.5)-edge.xy);uv+=vec2(0.5);return uv;}highp float ray_unit_box(in highp vec3 ray_o,in highp vec3 ray_d,in highp vec3 bmin,in highp vec3 bmax) {highp vec3 planes=mix(bmin,bmax,step(0.0,ray_d));highp vec3 t=(planes-ray_o)/ray_d;return min3(t);}float get_emissive(in vec2 id) {if (u_facade_emissive_chance > 0.0) {return (step(hash12(id),u_facade_emissive_chance)+0.05)*v_faux_color_emissive.a;}return 0.0;}vec3 get_shade_info(in highp vec3 v,in highp vec3 v_normalized,in vec3 color,in vec2 id,in mat3 tbn,inout vec3 out_normal,inout float out_emissive) {vec3 out_color=color;highp vec3 abs_v=abs(v_normalized);bool x_major=abs_v.x >=abs_v.y && abs_v.x >=abs_v.z;bool y_major=abs_v.y >=abs_v.x && abs_v.y >=abs_v.z;bool z_major=abs_v.z >=abs_v.x && abs_v.z >=abs_v.y; #if 0 if (x_major) {out_color=v.x > 0.0 ? vec3(1.0,0.0,0.0) : vec3(0.0,1.0,1.0);} else if (y_major) {out_color=v.y > 0.0 ? vec3(0.0,1.0,0.0) : vec3(1.0,0.0,1.0);} else if (z_major) {out_color=v.z > 0.0 ? vec3(0.0,0.0,1.0) : vec3(1.0,1.0,0.0);}out_emissive=1.0; #else if (x_major) {out_normal=-sign(v.x)*tbn[0];} else if (y_major) {out_normal=vec3(0.0,0.0,-sign(v.y));} else if (z_major) {out_color=v_faux_color_emissive.rgb;out_emissive=v.z <=0.0 ? get_emissive(id) : out_emissive;}float ao=1.0;if (u_faux_facade_ao_intensity > 0.0) {vec4 ao_range=v_faux_facade_window.xxyy*0.5-vec4(0,ao_radius,0,ao_radius);vec2 ao_range_z=vec2(window_depth*0.5)-vec2(0.0,ao_radius);if (x_major || y_major) {ao*=smoothstep(-ao_range_z.x,-ao_range_z.y,v.z);} else if (z_major) {ao*=smoothstep(-ao_range.x,-ao_range.y,v.x)*(1.0-smoothstep(ao_range.y,ao_range.x,v.x));ao*=smoothstep(-ao_range.z,-ao_range.w,v.y)*(1.0-smoothstep(ao_range.w,ao_range.z,v.y));}ao=mix(1.0,min(1.0,ao+0.25),u_faux_facade_ao_intensity);}out_color*=ao; #endif return out_color;} #endif vec3 apply_lighting_linear(in vec3 color,in vec3 normal,in float dir_factor) {float ambient_directional_factor=calculate_ambient_directional_factor(normal);vec3 ambient_contrib=ambient_directional_factor*u_lighting_ambient_color;vec3 directional_contrib=u_lighting_directional_color*dir_factor;return color*(ambient_contrib+directional_contrib);}void main() {vec3 normal=normalize(v_normal);vec3 base_color=v_color.rgb;float emissive=v_color.a; #ifdef BUILDING_FAUX_FACADE if (v_faux_facade > 0.0) {highp mat3 tbn=mat3(v_tbn_0,v_tbn_1,v_tbn_2);highp vec3 v=vec3(v_pos.xy,v_pos.z/u_tile_to_meter)-u_camera_pos;highp vec3 view_tangent=transpose(tbn)*v;highp vec2 q=vec2(v_faux_facade_ed,v_pos.z);float mask=0.0;vec2 id=vec2(0.0);highp vec2 uv=get_uv_mask_id(q,mask,id);uv*=v_faux_facade_window;highp vec3 bmin=vec3(0.0,0.0,-window_depth);highp vec3 bmax=bmin+vec3(v_faux_facade_window,window_depth);highp vec3 ray_o=vec3(uv,0.0);highp vec3 ray_d=normalize(view_tangent);highp float t_min=ray_unit_box(ray_o,ray_d,bmin,bmax);highp vec3 hit=ray_o+t_min*ray_d;highp vec3 r=vec3(v_faux_facade_window,-window_depth);hit-=r*0.5;highp vec3 normalized=hit/r;vec3 out_normal=normal;float out_emissive=emissive;vec3 room_color=get_shade_info(hit,normalized,base_color,id,tbn,out_normal,out_emissive);base_color=mix(base_color,room_color,mask);normal=mix(normal,out_normal,mask);emissive=mix(emissive,out_emissive,mask);} #endif vec4 color=vec4(base_color,1.0);vec3 xy_flipped_normal=vec3(-normal.xy,normal.z);float shadowed_lighting_factor=0.0; #ifdef RENDER_SHADOWS #ifdef RENDER_CUTOFF shadowed_lighting_factor=shadowed_light_factor_normal_opacity(xy_flipped_normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w,v_cutoff_opacity);if (v_cutoff_opacity==0.0) {discard;} #else shadowed_lighting_factor=shadowed_light_factor_normal(xy_flipped_normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w); #endif #else shadowed_lighting_factor=max(0.0,dot(xy_flipped_normal,u_lighting_directional_dir)); #endif color.rgb=apply_lighting_linear(color.rgb,xy_flipped_normal,shadowed_lighting_factor);color.rgb=linearTosRGB(color.rgb); #ifdef FLOOD_LIGHT float flood_radiance=(1.0-min(v_pos.z/v_flood_radius,1.0))*u_flood_light_intensity*v_has_flood_light;color.rgb=mix(color.rgb,u_flood_light_color,flood_radiance); #endif color.rgb=mix(color.rgb,linearTosRGB(base_color.rgb),emissive); #ifdef FOG color=fog_dither(fog_apply_premultiplied(color,v_fog_pos,v_pos.z)); #endif color*=u_opacity; #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT {float ditherOpacity=cutoutGroundRoofOpacity(v_ground_roof);if (ditherOpacity < 1.0) {int index=(int(gl_FragCoord.x) % 4)*4+(int(gl_FragCoord.y) % 4);if (ditherOpacity < DITHER_THRESHOLDS[index]) {discard;}}} #else color=applyCutout(color,v_pos.z); #endif #endif #ifdef RENDER_FRONT_CUTOFF if (v_front_cutoff_opacity < 1.0) {int index=(int(gl_FragCoord.x) % 4)*4+(int(gl_FragCoord.y) % 4);if (v_front_cutoff_opacity < DITHER_THRESHOLDS[index]) {discard;}} #endif #ifdef FEATURE_CUTOUT color=apply_feature_cutout(color,gl_FragCoord,get_cutout_factors(gl_FragCoord).x); #endif glFragColor=color; #ifdef DEBUG_SHOW_NORMALS color.rgb=xy_flipped_normal*0.5+vec3(0.5,0.5,0.5);color.a=1.0;glFragColor=color; #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" in vec3 a_pos_3f;in ivec4 a_normal_3;in ivec4 a_centroid_3; #ifdef FLOOD_LIGHT in int a_flood_light_wall_radius_1i16; #endif #ifdef BUILDING_FAUX_FACADE in uvec4 a_faux_facade_data;in uvec2 a_faux_facade_vertical_range; #endif uniform mat4 u_matrix;uniform mat4 u_normal_matrix;uniform highp float u_tile_to_meter; #ifdef RENDER_FRONT_CUTOFF uniform vec3 u_front_cutoff_params;out float v_front_cutoff_opacity; #endif #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT out vec4 v_ground_roof; #endif #endif out vec4 v_color;out vec3 v_normal;out highp vec3 v_pos; #ifdef BUILDING_FAUX_FACADE out lowp float v_faux_facade;out highp float v_faux_facade_ed;out highp vec2 v_faux_facade_window;out highp vec2 v_faux_facade_floor;out highp vec2 v_faux_facade_range;out highp float v_aspect;out highp vec3 v_tbn_0;out highp vec3 v_tbn_1;out highp vec3 v_tbn_2;out highp vec4 v_faux_color_emissive; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1; #endif #ifdef FLOOD_LIGHT out highp float v_flood_radius;out float v_has_flood_light; #endif const float MAX_UINT_16=65535.0;const float MAX_INT_16=32767.0;const float MAX_UINT_8=255.0;const float TWO_POW_8=256.0;const float FLOOD_LIGHT_MAX_RADIUS_METER=2048.0;vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));} #ifdef BUILDING_FAUX_FACADE mat3 get_tbn(in vec3 normal) {const vec3 bitangent=vec3(0.0,0.0,1.0);vec3 tangent=normalize(vec3(normal.y,-normal.x,0.0));return mat3(tangent,bitangent,normal);} #endif #pragma mapbox: define-attribute-vertex-shader-only highp uvec2 part_color_emissive #pragma mapbox: define-attribute-vertex-shader-only highp uvec2 faux_facade_color_emissive void main() { #pragma mapbox: initialize-attribute-custom highp uvec2 part_color_emissive #pragma mapbox: initialize-attribute-custom highp uvec2 faux_facade_color_emissive #ifdef FLOOD_LIGHT v_flood_radius=(float(a_flood_light_wall_radius_1i16)/MAX_INT_16*FLOOD_LIGHT_MAX_RADIUS_METER);v_has_flood_light=step(0.0,v_flood_radius); #endif vec4 color_emissive=decode_color(vec2(part_color_emissive));v_color=vec4(sRGBToLinear(color_emissive.rgb),color_emissive.a);vec3 a_normal_3f=vec3(a_normal_3)/MAX_INT_16;v_normal=vec3(u_normal_matrix*vec4(a_normal_3f,0.0));float hidden=0.0;float depth_offset=0.0;vec2 centroid_xy=vec2(a_centroid_3.xy >> 2);vec2 spanBits=vec2(a_centroid_3.xy & 3); #ifdef BUILDING_FAUX_FACADE vec4 faux_facade_data=vec4(a_faux_facade_data);v_faux_facade=faux_facade_data.x;if (v_faux_facade > 0.0) {v_faux_facade_ed=faux_facade_data.x *u_tile_to_meter;float window_x_perc=floor(faux_facade_data.y/TWO_POW_8);float window_y_perc=faux_facade_data.y-TWO_POW_8*window_x_perc;vec2 window_perc=vec2(window_x_perc,window_y_perc)/MAX_UINT_8;v_faux_facade_floor=(faux_facade_data.zw/MAX_UINT_16*EXTENT)*u_tile_to_meter;v_faux_facade_window=window_perc*v_faux_facade_floor;v_faux_facade_range=(vec2(a_faux_facade_vertical_range)/MAX_UINT_16*EXTENT)*u_tile_to_meter;v_aspect=v_faux_facade_window.x/v_faux_facade_window.y;mat3 tbn=get_tbn(normalize(v_normal));v_tbn_0=tbn[0];v_tbn_1=tbn[1];v_tbn_2=tbn[2];v_faux_color_emissive=decode_color(vec2(faux_facade_color_emissive));v_faux_color_emissive.rgb=sRGBToLinear(v_faux_color_emissive.rgb);depth_offset=min(1000.0,float(a_centroid_3.z))*0.0000002;} #endif v_pos=a_pos_3f; #if defined(RENDER_CUTOFF) || defined(RENDER_FRONT_CUTOFF) float halfSpanX=spanBits.x*10.0/u_tile_to_meter;float halfSpanY=spanBits.y*10.0/u_tile_to_meter;vec2 screenUpInTile=vec2(u_matrix[0][1],u_matrix[1][1]);vec2 spanOffset=vec2(halfSpanX,halfSpanY)*sign(screenUpInTile);vec2 cutoff_highestCorner=centroid_xy+spanOffset;vec2 cutoff_lowestCorner=centroid_xy-spanOffset; #endif #if defined(RENDER_CUTOFF) || defined(RENDER_FRONT_CUTOFF) vec4 ground=u_matrix*vec4(centroid_xy,0.0,1.0); #endif #ifdef RENDER_CUTOFF v_cutoff_opacity=cutoff_opacity(u_cutoff_params,ground.z);hidden=float(v_cutoff_opacity==0.0);v_pos.z*=v_cutoff_opacity; #endif #ifdef RENDER_SHADOWS vec3 shadow_pos=v_pos; #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset_model(v_normal);shadow_pos+=offset*shadow_normal_offset_multiplier0(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shadow_pos,1.0);v_pos_light_view_1=u_light_matrix_1*vec4(shadow_pos,1.0); #endif #ifdef FOG v_fog_pos=fog_position(v_pos); #endif #ifdef RENDER_FRONT_CUTOFF v_front_cutoff_opacity=1.0;{hidden=max(hidden,float(ground.w <=0.0));float ndc_y=ground.y/max(ground.w,0.001);float threshold=u_front_cutoff_params.x*2.0-1.0;float range_ndc=u_front_cutoff_params.y*2.0;hidden=max(hidden,float(ndc_y < threshold-range_ndc));float t=clamp((ndc_y-(threshold-range_ndc))/max(range_ndc,0.001),0.0,1.0);v_front_cutoff_opacity=mix(u_front_cutoff_params.z,1.0,t);} #endif gl_Position=mix(u_matrix*vec4(v_pos,1),AWAY,hidden);gl_Position.z-=depth_offset*gl_Position.w; #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT vec4 ic_ground=u_matrix*vec4(v_pos.xy,0.0,1.0);vec4 ic_roof=u_matrix*vec4(v_pos.xy,v_pos.z,1.0);v_ground_roof=vec4(ic_ground.xy/ic_ground.w,ic_roof.xy/ic_roof.w); #endif #endif }`),buildingBloom:Mn(`in vec4 v_color_emissive; #pragma mapbox: define-attribute highp vec4 bloom_attenuation #pragma mapbox: initialize-attribute highp vec4 bloom_attenuation float saturate(float val) {return clamp(val,0.0,1.0);}void main() {float emission=v_color_emissive.a;float opacity=1.0; #ifdef HAS_ATTRIBUTE_a_bloom_attenuation float distance=length(vec2(1.3*max(0.0,abs(bloom_attenuation.x)-bloom_attenuation.z),bloom_attenuation.y));distance+= mix(0.5,0.0,clamp(emission-1.0,0.0,1.0));opacity*=saturate(1.0-distance*distance); #endif #ifdef RENDER_CUTOFF opacity*=v_cutoff_opacity; #endif glFragColor=vec4(v_color_emissive.rgb,1.0)*opacity;}`,`in vec3 a_pos_3f; #pragma mapbox: define-attribute-vertex-shader-only highp uvec2 part_color_emissive #pragma mapbox: define-attribute highp vec4 bloom_attenuation out vec4 v_color_emissive;uniform mat4 u_matrix;vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}void main() { #pragma mapbox: initialize-attribute-custom highp uvec2 part_color_emissive #pragma mapbox: initialize-attribute highp vec4 bloom_attenuation #ifdef HAS_ATTRIBUTE_a_part_color_emissive vec4 color_emissive=decode_color(vec2(part_color_emissive));float part_emissive=color_emissive.a*5.0;v_color_emissive=vec4(sRGBToLinear(color_emissive.rgb),part_emissive); #else v_color_emissive=vec4(1.0); #endif gl_Position=u_matrix*vec4(a_pos_3f,1.0); #ifdef RENDER_CUTOFF v_cutoff_opacity=cutoff_opacity(u_cutoff_params,gl_Position.z); #endif }`),buildingDepth:Mn("void main() {}","in vec3 a_pos_3f;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos_3f,1.0);}"),circle:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" in vec3 v_data;in float v_visibility; #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump float radius #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define highp vec4 stroke_color #pragma mapbox: define mediump float stroke_width #pragma mapbox: define lowp float stroke_opacity uniform float u_emissive_strength;void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump float radius #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp vec4 stroke_color #pragma mapbox: initialize mediump float stroke_width #pragma mapbox: initialize lowp float stroke_opacity vec2 extrude=v_data.xy;float blur_positive=blur < 0.0 ? 0.0 : 1.0;lowp float antialiasblur=v_data.z;float extrude_length=length(extrude)+antialiasblur*(1.0-blur_positive);float antialiased_blur=-max(abs(blur),antialiasblur);float antialiase_blur_opacity=smoothstep(0.0,antialiasblur,extrude_length-1.0);float opacity_t=blur_positive==1.0 ? smoothstep(0.0,-antialiased_blur,1.0-extrude_length) : smoothstep(antialiased_blur,0.0,extrude_length-1.0)-antialiase_blur_opacity;float color_t=stroke_width < 0.01 ? 0.0 : smoothstep( antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) );vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #endif #ifdef FOG out_color=fog_apply_premultiplied(out_color,v_fog_pos); #endif glFragColor=out_color*(v_visibility*opacity_t); #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif }`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" #define NUM_VISIBILITY_RINGS 2 #define INV_SQRT2 0.70710678 #define ELEVATION_BIAS 0.0001 #define NUM_SAMPLES_PER_RING 16 uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;in ivec2 a_pos; #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_pos_3;in ivec4 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; #endif #ifdef ELEVATED_ROADS in float a_circle_z_offset; #endif out vec3 v_data;out float v_visibility; #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump float radius #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define highp vec4 stroke_color #pragma mapbox: define mediump float stroke_width #pragma mapbox: define lowp float stroke_opacity vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1.0,-1.0),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1.0,-1.0),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1.0,1.0),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1.0,1.0),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { #if defined(TERRAIN) return elevation(pos)+ELEVATION_BIAS; #else return 0.0; #endif }vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); #ifdef PITCH_WITH_MAP #ifdef PROJECTION_GLOBE_VIEW return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); #else return u_matrix*( world_center+vec4(sample_offset,0,0) ); #endif #else return projected_center+vec4(sample_offset,0,0); #endif }float get_sample_step() { #ifdef PITCH_WITH_MAP return 2.0*PI/float(NUM_SAMPLES_PER_RING); #else return PI/float(NUM_SAMPLES_PER_RING); #endif }void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump float radius #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp vec4 stroke_color #pragma mapbox: initialize mediump float stroke_width #pragma mapbox: initialize lowp float stroke_opacity vec2 pos2=vec2(a_pos);vec2 extrude=vec2(mod(pos2,2.0)*2.0-1.0);vec2 circle_center=floor(pos2*0.5);float height=circle_elevation(circle_center);vec4 world_center;mat3 surface_vectors; #ifdef PROJECTION_GLOBE_VIEW surface_vectors=globe_mercator_surface_vectors(vec3(a_pos_normal_3)/16384.0,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*height;vec3 globe_pos=vec3(a_pos_3)+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*height;vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1); #else surface_vectors=mat3(1.0);world_center=vec4(circle_center,height,1); #endif #ifdef ELEVATED_ROADS world_center.z+=a_circle_z_offset+ELEVATION_BIAS; #endif vec4 projected_center=u_matrix*world_center;float view_scale=0.0; #ifdef PITCH_WITH_MAP #ifdef SCALE_WITH_MAP view_scale=1.0; #else view_scale=projected_center.w/u_camera_to_center_distance; #endif #else #ifdef SCALE_WITH_MAP view_scale=u_camera_to_center_distance; #else view_scale=projected_center.w; #endif #endif gl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0; #ifdef TERRAIN float step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center; #ifdef PITCH_WITH_MAP float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center; #else occlusion_world_center=world_center;occlusion_projected_center=projected_center; #endif for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); #else visibility=1.0; #endif #ifdef PROJECTION_GLOBE_VIEW visibility=1.0; #endif v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); #ifdef FOG v_fog_pos=fog_position(world_center.xyz); #endif }`),clippingMask:Mn("void main() {glFragColor=vec4(1.0);}","in ivec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Mn(`#include "_prelude_fog.fragment.glsl" uniform highp float u_intensity;in vec2 v_extrude; #pragma mapbox: define highp float weight #define GAUSS_COEF 0.3989422804014327 void main() { #pragma mapbox: initialize highp float weight float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);glFragColor=vec4(val,1.0,1.0,1.0); #ifdef FOG if (u_is_globe==0) {glFragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_terrain.vertex.glsl" #include "_prelude_fog.vertex.glsl" uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;in ivec2 a_pos; #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_pos_3;in ivec4 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; #endif out vec2 v_extrude; #pragma mapbox: define highp float weight #pragma mapbox: define mediump float radius const highp float ZERO=1.0/255.0/16.0; #define GAUSS_COEF 0.3989422804014327 void main() { #pragma mapbox: initialize highp float weight #pragma mapbox: initialize mediump float radius vec2 unscaled_extrude=vec2(mod(vec2(a_pos),2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(vec2(a_pos)*0.5);vec3 pos; #ifdef PROJECTION_GLOBE_VIEW vec3 pos_normal_3=vec3(a_pos_normal_3)/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=vec3(a_pos_3)+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); #else pos=vec3(tilePos+extrude,elevation(tilePos)); #endif gl_Position=u_matrix*vec4(pos,1); #ifdef FOG v_fog_pos=fog_position(pos); #endif }`),heatmapTexture:Mn(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));glFragColor=color*u_opacity; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(0.0); #endif HANDLE_WIREFRAME_DEBUG;}`,"in ivec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=vec2(a_pos)*0.5+0.5;}"),collisionBox:Mn("in float v_placed;in float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);glFragColor =mix(red,blue,step(0.5,v_placed))*0.5;glFragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}",`#include "_prelude_terrain.vertex.glsl" in ivec4 a_pos;in ivec2 a_anchor_pos;in ivec2 a_extrude;in uvec2 a_placed;in vec2 a_shift;in vec2 a_elevation_from_sea;in float a_size_scale;in vec2 a_padding;in float a_auto_z_offset;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance; #ifdef PROJECTION_GLOBE_VIEW uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform float u_zoom_transition; #endif out float v_placed;out float v_notUsed;void main() {vec2 anchor_pos=vec2(a_anchor_pos);float feature_elevation=a_elevation_from_sea.x+a_auto_z_offset;float terrain_elevation=(a_elevation_from_sea.y==1.0 ? 0.0 : elevation(anchor_pos));vec3 proj_pos=vec3(a_pos)+elevationVector(anchor_pos)*(feature_elevation+terrain_elevation); #ifdef PROJECTION_GLOBE_VIEW #ifndef PROJECTED_POS_ON_VIEWPORT vec3 globe_pos=proj_pos;vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,anchor_pos,u_tile_id,u_merc_center);proj_pos=mix_globe_mercator(globe_pos,mercator_pos,u_zoom_transition); #endif #endif vec4 projectedPoint=u_matrix*vec4(proj_pos,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( 0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(vec2(a_extrude)*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=float(a_placed.x);v_notUsed=float(a_placed.y);}`),collisionCircle:Mn("in float v_radius;in vec2 v_extrude;in float v_perspective_ratio;in float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);glFragColor=color*alpha*opacity_t;}",`in vec2 a_pos_2f;in float a_radius;in ivec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;out float v_radius;out vec2 v_extrude;out float v_perspective_ratio;out float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;int vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( mix(-1.0,1.0,float(vertexIdx >=2)),mix(-1.0,1.0,float(vertexIdx >=1 && vertexIdx <=2)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( 0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=float(a_flags.x);gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:Mn("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);glFragColor=mix(u_color,overlay_color,overlay_color.a);}",`#include "_prelude_terrain.vertex.glsl" in ivec2 a_pos; #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_pos_3; #endif out vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {vec2 pos=vec2(a_pos);float h=elevation(pos);v_uv=pos/8192.0; #ifdef PROJECTION_GLOBE_VIEW gl_Position=u_matrix*vec4(vec3(a_pos_3)+elevationVector(pos)*h,1); #else gl_Position=u_matrix*vec4(pos*u_overlay_scale,h,1); #endif }`),elevatedStructuresDepth:Mn("void main() {}","in ivec2 a_pos;in float a_height;uniform mat4 u_matrix;uniform float u_depth_bias;void main() {gl_Position=u_matrix*vec4(a_pos,a_height,1);gl_Position.z=gl_Position.z+u_depth_bias;}"),elevatedStructuresDepthReconstruct:Mn(`#ifdef DEPTH_RECONSTRUCTION in float v_height; #endif void main() { #ifdef DEPTH_RECONSTRUCTION if (v_height >=0.0) discard; #else #ifdef FEATURE_CUTOUT apply_feature_cutout(vec4(0.0,0.0,0.0,1.0),gl_FragCoord,get_cutout_factors(gl_FragCoord).x); #endif #endif glFragColor=vec4(1.0,0.0,0.0,1.0);}`,`in ivec2 a_pos;in float a_height;uniform mat4 u_matrix;uniform vec3 u_camera_pos;uniform highp float u_depth_bias;uniform lowp float u_height_scale;uniform lowp float u_reset_depth; #ifdef DEPTH_RECONSTRUCTION out float v_height; #endif void main() {vec3 vpos=vec3(a_pos,a_height*u_height_scale); #ifdef DEPTH_RECONSTRUCTION if (u_camera_pos.z > vpos.z) {vpos-=(u_camera_pos-vpos)*(vpos.z/(u_camera_pos.z-vpos.z));}v_height=a_height; #endif gl_Position=u_matrix*vec4(vpos,1);gl_Position.z=u_reset_depth==1.0 ? gl_Position.w : gl_Position.z+u_depth_bias;}`),elevatedStructures:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" in vec3 v_normal;in float v_height; #ifdef RENDER_SHADOWS in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in float v_depth; #endif vec3 linearTosRGB(vec3 color) {return pow(color,vec3(1./2.2));}vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}vec3 compute_view_dependent_emissive_color(float ndotl,float emissive_strength,vec3 color) {color=sRGBToLinear(color);color=color*(ndotl+(1.0-min(ndotl*57.29,1.0))*emissive_strength);color=linearTosRGB(color.rgb);return color;}uniform float u_emissive_strength; #pragma mapbox: define highp vec4 structure_color void main() { #pragma mapbox: initialize highp vec4 structure_color vec3 color=structure_color.xyz;vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef LIGHTING_3D_MODE vec3 normal=normalize(v_normal);vec3 transformed_normal=vec3(-normal.xy,normal.z);float ndotl=calculate_NdotL(transformed_normal);float emissive_strength=u_emissive_strength;emissive_strength=0.0;vec3 emissive_color=compute_view_dependent_emissive_color(ndotl,emissive_strength,color.xyz); #ifdef RENDER_SHADOWS float light=shadowed_light_factor_normal(transformed_normal,v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y);color.rgb=apply_lighting(color.rgb,transformed_normal,light); #else color=apply_lighting(color,transformed_normal); #endif color=mix(color,emissive_color,emissive_strength);if (v_height < 0.0) {float penetration=max(v_height+7.5,0.0);float occlusion=1.0-1.0/PI*acos(1.0-penetration/4.0);color=color*(1.0-pow(occlusion,2.0)*0.3);} #endif #ifdef FOG color=fog_apply(color,v_fog_pos); #endif vec4 out_color=vec4(color,1.0); #ifdef INDICATOR_CUTOUT out_color=applyCutout(out_color,v_height); #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif glFragColor=out_color;HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" in ivec2 a_pos;in float a_height;in ivec4 a_pos_normal_3;uniform mat4 u_matrix;out vec3 v_normal;out float v_height; #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out float v_depth; #endif #pragma mapbox: define highp vec4 structure_color void main() { #pragma mapbox: initialize highp vec4 structure_color v_normal=vec3(a_pos_normal_3)/16384.0;v_height=a_height;vec3 pos=vec3(vec2(a_pos),a_height);gl_Position=u_matrix*vec4(pos,1); #ifdef RENDER_SHADOWS vec3 shd_pos0=pos;vec3 shd_pos1=pos; #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(vec3(-v_normal.xy,v_normal.z));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif }`),fill:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity uniform float u_emissive_strength; #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif #ifdef ELEVATED_ROADS in highp float v_road_z_offset; #endif #ifdef INDICATOR_CUTOUT in highp float v_z_offset; #endif void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif vec4 out_color=color; #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif out_color*=opacity; #ifdef INDICATOR_CUTOUT if (v_z_offset >=0.0) {out_color=applyCutout(out_color,v_z_offset);} #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif glFragColor=out_color; #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" in ivec2 a_pos; #ifdef ELEVATED_ROADS in float a_road_z_offset;out highp float v_road_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif #ifdef INDICATOR_CUTOUT out highp float v_z_offset; #endif uniform mat4 u_matrix; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity #pragma mapbox: define highp float z_offset void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp float z_offset #ifdef ELEVATED_ROADS z_offset+=a_road_z_offset;v_road_z_offset=z_offset; #endif float hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden); #ifdef RENDER_SHADOWS vec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset); #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif #ifdef INDICATOR_CUTOUT v_z_offset=z_offset; #endif }`),fillOutline:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" in highp vec2 v_pos;uniform float u_emissive_strength; #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif glFragColor=out_color*(alpha*opacity); #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" in ivec2 a_pos; #ifdef ELEVATED_ROADS in float a_road_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif uniform mat4 u_matrix;uniform vec2 u_world;out highp vec2 v_pos; #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity #pragma mapbox: define highp float z_offset void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize highp float z_offset #ifdef ELEVATED_ROADS z_offset+=a_road_z_offset; #endif float hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden); #ifdef FLIP_Y v_pos=(vec2(gl_Position.x,-gl_Position.y)/gl_Position.w+1.0)/2.0*u_world; #else v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; #endif #ifdef RENDER_SHADOWS vec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset); #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif }`),fillOutlinePattern:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" uniform vec2 u_texsize;uniform sampler2D u_image; #ifdef FILL_PATTERN_TRANSITION uniform float u_pattern_transition; #endif uniform float u_emissive_strength; #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif in highp vec2 v_pos;in highp vec2 v_pos_world; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=textureLodCustom(u_image,pos,lod_pos); #ifdef APPLY_LUT_ON_GPU out_color=applyLUT(u_lutTexture,out_color); #endif #ifdef FILL_PATTERN_TRANSITION vec2 pattern_b_tl=pattern_b.xy;vec2 pattern_b_br=pattern_b.zw;highp vec2 pos_b=mix(pattern_b_tl/u_texsize,pattern_b_br/u_texsize,imagecoord);vec4 color_b=textureLodCustom(u_image,pos_b,lod_pos);out_color=out_color*(1.0-u_pattern_transition)+color_b*u_pattern_transition; #endif vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif glFragColor=out_color*(alpha*opacity); #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;in ivec2 a_pos; #ifdef ELEVATED_ROADS in float a_road_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif out highp vec2 v_pos;out highp vec2 v_pos_world; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define lowp float pixel_ratio #pragma mapbox: define highp float z_offset void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif #pragma mapbox: initialize lowp float pixel_ratio #pragma mapbox: initialize highp float z_offset vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw); #ifdef ELEVATED_ROADS z_offset+=a_road_z_offset; #endif float hidden=float(opacity==0.0);vec2 pos=vec2(a_pos);gl_Position=mix(u_matrix*vec4(pos,z_offset,1),AWAY,hidden);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos); #ifdef FLIP_Y v_pos_world=(vec2(gl_Position.x,-gl_Position.y)/gl_Position.w+1.0)/2.0*u_world; #else v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; #endif #ifdef RENDER_SHADOWS vec3 shd_pos0=vec3(pos,z_offset);vec3 shd_pos1=vec3(pos,z_offset); #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef FOG v_fog_pos=fog_position(pos); #endif }`),fillPattern:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" uniform vec2 u_texsize;uniform sampler2D u_image; #ifdef FILL_PATTERN_TRANSITION uniform float u_pattern_transition; #endif in highp vec2 v_pos;uniform float u_emissive_strength; #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif #ifdef ELEVATED_ROADS in highp float v_road_z_offset; #endif #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);vec4 out_color=textureLodCustom(u_image,pos,lod_pos); #ifdef APPLY_LUT_ON_GPU out_color=applyLUT(u_lutTexture,out_color); #endif #ifdef FILL_PATTERN_TRANSITION vec2 pattern_b_tl=vec2(pattern_b.xy);vec2 pattern_b_br=vec2(pattern_b.zw);highp vec2 pos_b=mix(pattern_b_tl/u_texsize,pattern_b_br/u_texsize,imagecoord);vec4 color_b=textureLodCustom(u_image,pos_b,lod_pos);out_color=out_color*(1.0-u_pattern_transition)+color_b*u_pattern_transition; #endif vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y); #ifdef ELEVATED_ROADS out_color.rgb*=mix(v_road_z_offset !=0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light); #else out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif glFragColor=out_color*opacity; #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;in ivec2 a_pos; #ifdef ELEVATED_ROADS in float a_road_z_offset;out highp float v_road_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif out highp vec2 v_pos; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp uvec4 pattern #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define lowp float pixel_ratio #pragma mapbox: define highp float z_offset void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump uvec4 pattern #pragma mapbox: initialize lowp float pixel_ratio #pragma mapbox: initialize highp float z_offset #ifdef FILL_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio; #ifdef ELEVATED_ROADS z_offset+=a_road_z_offset;v_road_z_offset=z_offset; #endif float hidden=float(opacity==0.0);vec2 pos=vec2(a_pos);gl_Position=mix(u_matrix*vec4(pos,z_offset,1),AWAY,hidden);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos); #ifdef RENDER_SHADOWS vec3 shd_pos0=vec3(pos,z_offset);vec3 shd_pos1=vec3(pos,z_offset); #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef FOG v_fog_pos=fog_position(pos); #endif }`),lineBlendComposite:Mn(`uniform sampler2D u_image;uniform float u_opacity;uniform int u_blend_mode;in vec2 v_pos; #define ADDITIVE 1 void main() {vec4 color=texture(u_image,v_pos);if (u_blend_mode==ADDITIVE) {if (color.a <=0.0) {discard;}float density=color.a;vec3 avgColor=color.rgb/max(density,0.001);float t=density/(1.0+density);glFragColor=vec4(avgColor*t*u_opacity,t*u_opacity);} else {vec3 multiplyFactor=color.rgb*u_opacity+(1.0-u_opacity);glFragColor=vec4(multiplyFactor,1.0);} #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(0.0); #endif HANDLE_WIREFRAME_DEBUG;}`,"in ivec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=vec2(a_pos)*0.5+0.5;}"),fillExtrusion:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_shadow.fragment.glsl" #include "_prelude_lighting.glsl" in vec4 v_color;in vec4 v_flat; #ifdef RENDER_SHADOWS in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1; #endif uniform lowp float u_opacity; #ifdef RENDER_FRONT_CUTOFF in float v_front_cutoff_opacity; #endif #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT in vec4 v_ground_roof; #endif #endif #ifdef FAUX_AO uniform lowp vec2 u_ao;in vec2 v_ao; #endif #if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE) in vec4 v_roof_color; #endif #if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE) in highp vec3 v_normal; #endif uniform vec3 u_flood_light_color;uniform highp float u_vertical_scale;uniform float u_flood_light_intensity;uniform vec3 u_ground_shadow_factor; #if defined(LIGHTING_3D_MODE) && defined(FLOOD_LIGHT) in float v_flood_radius;in float v_has_floodlight; #endif in float v_height; #pragma mapbox: define highp float emissive_strength void main() { #pragma mapbox: initialize highp float emissive_strength #if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE) vec3 normal=normalize(v_normal); #endif float z;vec4 color=v_color; #ifdef ZERO_ROOF_RADIUS z=float(normal.z > 0.00001); #ifdef LIGHTING_3D_MODE normal=mix(normal,vec3(0.0,0.0,1.0),z); #else color=mix(v_color,v_roof_color,z); #endif #endif float h=max(0.0,v_height);float ao_shade=1.0; #ifdef FAUX_AO float intensity=u_ao[0];float h_floors=h/(u_ao[1]*u_vertical_scale);float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);ao_shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x; #ifdef ZERO_ROOF_RADIUS concave*=(1.0-z); #endif float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);ao_shade*=mix(1.0,x_shade*x_shade*x_shade,concave); #ifdef LIGHTING_3D_MODE #ifdef FLOOD_LIGHT color.rgb*=mix(ao_shade,1.0,v_has_floodlight); #else color.rgb*=ao_shade; #endif #else color.rgb*=ao_shade; #endif #endif #ifdef LIGHTING_3D_MODE float flood_radiance=0.0; #ifdef FLOOD_LIGHT flood_radiance=(1.0-min(h/v_flood_radius,1.0))*u_flood_light_intensity*v_has_floodlight; #endif #ifdef RENDER_SHADOWS #ifdef FLOOD_LIGHT float ndotl_unclamped=dot(normal,u_shadow_direction);float ndotl=max(0.0,ndotl_unclamped);float occlusion=ndotl_unclamped < 0.0 ? 1.0 : shadow_occlusion(ndotl,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);vec3 litColor=apply_lighting(color.rgb,normal,(1.0-u_shadow_intensity*occlusion)*ndotl);vec3 floodLitColor=compute_flood_lighting(u_flood_light_color*u_opacity,1.0-u_shadow_intensity,occlusion,u_ground_shadow_factor);color.rgb=mix(litColor,floodLitColor,flood_radiance); #else float shadowed_lighting_factor; #ifdef RENDER_CUTOFF shadowed_lighting_factor=shadowed_light_factor_normal_opacity(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w,v_cutoff_opacity);if (v_cutoff_opacity==0.0) {discard;} #else shadowed_lighting_factor=shadowed_light_factor_normal(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w); #endif color.rgb=apply_lighting(color.rgb,normal,shadowed_lighting_factor); #endif #else color.rgb=apply_lighting(color.rgb,normal); #ifdef FLOOD_LIGHT color.rgb=mix(color.rgb,u_flood_light_color*u_opacity,flood_radiance); #endif #endif color.rgb=mix(color.rgb,v_flat.rgb,emissive_strength);color*=u_opacity; #endif #ifdef FOG color=fog_dither(fog_apply_premultiplied(color,v_fog_pos,h)); #endif #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT {float ditherOpacity=cutoutGroundRoofOpacity(v_ground_roof);if (ditherOpacity < 1.0) {int index=(int(gl_FragCoord.x) % 4)*4+(int(gl_FragCoord.y) % 4);if (ditherOpacity < DITHER_THRESHOLDS[index]) {discard;}}} #else color=applyCutout(color,h); #endif #endif #ifdef RENDER_FRONT_CUTOFF if (v_front_cutoff_opacity < 1.0) {int index=(int(gl_FragCoord.x) % 4)*4+(int(gl_FragCoord.y) % 4);if (v_front_cutoff_opacity < DITHER_THRESHOLDS[index]) {discard;}} #endif #ifdef FEATURE_CUTOUT color=apply_feature_cutout(color,gl_FragCoord,get_cutout_factors(gl_FragCoord).x); #endif glFragColor=color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" #include "_prelude_shadow.vertex.glsl" #include "_prelude_lighting.glsl" #include "_prelude_material_table.vertex.glsl" uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;uniform float u_width_scale;in ivec4 a_pos_normal_ed; #if defined(HAS_CENTROID) || defined(TERRAIN) in uvec2 a_centroid_pos; #endif #ifdef RENDER_WALL_MODE in ivec4 a_join_normal_inside; #endif #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_pos_3;in ivec4 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; #endif #ifdef TERRAIN uniform int u_height_type;uniform int u_base_type; #endif uniform highp float u_vertical_scale; #ifdef RENDER_FRONT_CUTOFF uniform vec3 u_front_cutoff_params;out float v_front_cutoff_opacity; #endif out vec4 v_color;out vec4 v_flat; #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1; #endif #if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE) out vec4 v_roof_color; #endif #if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE) out highp vec3 v_normal; #endif #ifdef FAUX_AO uniform lowp vec2 u_ao;out vec2 v_ao; #endif #if defined(LIGHTING_3D_MODE) && defined(FLOOD_LIGHT) out float v_flood_radius;out float v_has_floodlight; #endif out float v_height; #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT out vec4 v_ground_roof; #endif #endif vec3 linearTosRGB(vec3 color) {return pow(color,vec3(1./2.2));}vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));} #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define highp vec4 color #pragma mapbox: define highp float flood_light_wall_radius #pragma mapbox: define highp float line_width #pragma mapbox: define highp float emissive_strength void main() {DECLARE_MATERIAL_TABLE_INFO #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize highp float flood_light_wall_radius #pragma mapbox: initialize highp float line_width #pragma mapbox: initialize highp float emissive_strength base*=u_vertical_scale;height*=u_vertical_scale;vec4 top_up_ny_start=vec4(a_pos_normal_ed & 1);vec4 pos_nx=vec4(a_pos_normal_ed >> 1);float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny_start.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny_start.z-1.0)*(1.0-abs(x_normal)),0.0)); #if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE) v_normal=normal; #endif base=max(0.0,base);float attr_height=height;height=max(0.0,top_up_ny_start.y==0.0 && top_up_ny_start.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny_start.x;vec2 centroid_pos=vec2(0.0); #if defined(HAS_CENTROID) || defined(TERRAIN) centroid_pos=vec2(a_centroid_pos); #endif float ele=0.0;float h=0.0;float c_ele=0.0;vec3 pos; #ifdef TERRAIN bool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;ele=elevation(pos_nx.xy);bool is_elevation_encoded=centroid_pos.y==0.0 || (centroid_pos.y > 0.0 && (int(centroid_pos.y) & 7)==7);c_ele=is_flat_height || is_flat_base ? (is_elevation_encoded ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);h=t > 0.0 ? max(h_base,h_height) : h_base; #else h=t > 0.0 ? height : base; #endif pos=vec3(pos_nx.xy,h); #ifdef PROJECTION_GLOBE_VIEW float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(vec3(a_pos_normal_3)/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=vec3(a_pos_3)+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); #endif float cutoff=1.0;vec3 scaled_pos=pos; #if defined(RENDER_CUTOFF) || defined(RENDER_FRONT_CUTOFF) vec2 centroid_decoded=pos.xy;bool isBorderCentroid=false;if (centroid_pos.x > 0.0 && centroid_pos.y > 0.0) {int iy=int(centroid_pos.y);int spanYbits=iy & 7;if (spanYbits==7) {isBorderCentroid=true;int borderID=(iy >> 3) & 3;float coordAlongBorder=float(iy >> 5)*4.0;if (borderID==0) centroid_decoded=vec2(0.0,coordAlongBorder);else if (borderID==1) centroid_decoded=vec2(EXTENT,coordAlongBorder);else if (borderID==2) centroid_decoded=vec2(coordAlongBorder,0.0);else centroid_decoded=vec2(coordAlongBorder,EXTENT);} else {centroid_decoded=floor(centroid_pos/8.0);}} #endif #if defined(RENDER_CUTOFF) || defined(RENDER_FRONT_CUTOFF) vec4 ground=u_matrix*vec4(centroid_decoded,ele,1.0); #endif #ifdef RENDER_CUTOFF #ifdef CLIP_ZERO_TO_ONE cutoff=cutoff_opacity(u_cutoff_params,ground.z*2.0-ground.w); #else cutoff=cutoff_opacity(u_cutoff_params,ground.z); #endif if (centroid_pos.y !=0.0 && centroid_pos.x !=0.0) {vec3 centroid_random=vec3(centroid_pos.xy,centroid_pos.x+centroid_pos.y+1.0);vec3 ground_pos=centroid_random/8.0;vec3 g=floor(ground_pos);vec3 mod_=centroid_random-g*8.0;float seed=min(1.0,0.1*(min(3.5,max(mod_.x+mod_.y,0.2*attr_height))*0.35+mod_.z));if (cutoff < 0.8-seed) {cutoff=0.0;}}float cutoff_scale=cutoff;v_cutoff_opacity=cutoff;scaled_pos.z=mix(c_ele,h,cutoff_scale); #endif float hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (cutoff==0.0 && centroid_pos.x !=0.0) || (color.a==0.0)); #ifdef RENDER_FRONT_CUTOFF v_front_cutoff_opacity=1.0;if (centroid_pos.x > 0.0 && centroid_pos.y > 0.0) {hidden=max(hidden,float(ground.w <=0.0));float ndc_y=ground.y/max(ground.w,0.001);float threshold=u_front_cutoff_params.x*2.0-1.0;float range_ndc=u_front_cutoff_params.y*2.0;if (!isBorderCentroid) {hidden=max(hidden,float(ndc_y < threshold-range_ndc));}float t=clamp((ndc_y-(threshold-range_ndc))/max(range_ndc,0.001),0.0,1.0);v_front_cutoff_opacity=mix(u_front_cutoff_params.z,1.0,t);} #endif #ifdef RENDER_WALL_MODE vec3 join_normal_inside=vec3(a_join_normal_inside);vec2 wall_offset=u_width_scale*line_width*(join_normal_inside.xy/EXTENT);scaled_pos.xy+=(1.0-join_normal_inside.z)*wall_offset*0.5;scaled_pos.xy-=join_normal_inside.z*wall_offset*0.5; #endif gl_Position=mix(u_matrix*vec4(scaled_pos,1),AWAY,hidden);h=h-ele;v_height=h; #ifdef RENDER_SHADOWS vec3 shd_pos0=pos;vec3 shd_pos1=pos; #ifdef NORMAL_OFFSET vec3 offset=shadow_normal_offset(normal);shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1); #endif float NdotL=0.0;float colorvalue=0.0; #ifndef LIGHTING_3D_MODE colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL);if (normal.y !=0.0) {float r=0.84;r=mix(0.7,0.98,1.0-u_lightintensity);NdotL*=( (1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} #endif #ifdef FAUX_AO float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; #ifdef TERRAIN top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); #endif v_ao=vec2(mix(concave,-concave,start),y_ground);NdotL*=(1.0+0.05*(1.0-top_up_ny_start.y)*u_ao[0]); #ifdef PROJECTION_GLOBE_VIEW top_height+=u_height_lift; #endif gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; #endif #ifdef LIGHTING_3D_MODE #ifdef FLOOD_LIGHT float is_wall=1.0-float(t > 0.0 && top_up_ny_start.y > 0.0);v_has_floodlight=float(flood_light_wall_radius > 0.0 && is_wall > 0.0);v_flood_radius=flood_light_wall_radius*u_vertical_scale; #endif v_color=vec4(color.rgb,1.0);float ndotl=calculate_NdotL(normal);v_flat.rgb=sRGBToLinear(color.rgb);v_flat.rgb=v_flat.rgb*(ndotl+(1.0-min(ndotl*57.29,1.0))*emissive_strength);v_flat=vec4(linearTosRGB(v_flat.rgb),1.0); #else v_color=vec4(0.0,0.0,0.0,1.0);v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity; #endif #if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE) float roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color=vec4(0.0,0.0,0.0,1.0);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_roof_color*=u_opacity; #endif #ifdef FOG v_fog_pos=fog_position(pos); #endif #ifdef INDICATOR_CUTOUT #ifdef FEATURE_CUTOUT vec4 pos_ground=u_matrix*vec4(pos.xy,ele,1.0);vec4 pos_roof=u_matrix*vec4(pos.xy,ele+height,1.0);v_ground_roof=vec4(pos_ground.xy/pos_ground.w,pos_roof.xy/pos_roof.w); #endif #endif }`),fillExtrusionDepth:Mn("void main() {}",`#include "_prelude_terrain.vertex.glsl" #include "_prelude_material_table.vertex.glsl" uniform mat4 u_matrix;uniform float u_edge_radius;uniform float u_width_scale;uniform float u_vertical_scale; #ifdef TERRAIN uniform int u_height_type;uniform int u_base_type; #endif in ivec4 a_pos_normal_ed; #if defined(HAS_CENTROID) || defined(TERRAIN) in uvec2 a_centroid_pos; #endif #ifdef RENDER_WALL_MODE in ivec4 a_join_normal_inside; #endif #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define highp float line_width #pragma mapbox: define highp vec4 color void main() {DECLARE_MATERIAL_TABLE_INFO #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize highp float line_width #pragma mapbox: initialize highp vec4 color base*=u_vertical_scale;height*=u_vertical_scale;vec3 top_up_ny=vec3(a_pos_normal_ed.xyz & 1);vec3 pos_nx=vec3(a_pos_normal_ed.xyz >> 1);base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); #if defined(HAS_CENTROID) || defined(TERRAIN) centroid_pos=vec2(a_centroid_pos); #endif vec3 pos; #ifdef TERRAIN bool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;float ele=elevation(pos_nx.xy);bool is_elevation_encoded=centroid_pos.y==0.0 || (centroid_pos.y > 0.0 && int(centroid_pos.y)-(int(centroid_pos.y)/8)*8==7);float c_ele=is_flat_height || is_flat_base ? (is_elevation_encoded ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);float h=t > 0.0 ? max(h_base,h_height) : h_base;pos=vec3(pos_nx.xy,h); #else pos=vec3(pos_nx.xy,t > 0.0 ? height : base); #endif #ifdef RENDER_WALL_MODE vec3 join_normal_inside=vec3(a_join_normal_inside);vec2 wall_offset=u_width_scale*line_width*(join_normal_inside.xy/EXTENT);pos.xy+=(1.0-join_normal_inside.z)*wall_offset*0.5;pos.xy-=join_normal_inside.z*wall_offset*0.5; #endif float hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (color.a==0.0));gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);}`),fillExtrusionPattern:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform vec2 u_texsize;uniform sampler2D u_image; #ifdef FILL_EXTRUSION_PATTERN_TRANSITION uniform float u_pattern_transition; #endif #ifdef FAUX_AO uniform lowp vec2 u_ao;in vec3 v_ao; #endif #ifdef LIGHTING_3D_MODE in vec3 v_normal; #endif #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif in highp vec2 v_pos;in vec4 v_lighting;uniform lowp float u_opacity; #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define mediump uvec4 pattern #ifdef FILL_EXTRUSION_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define highp float pixel_ratio void main() { #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize mediump uvec4 pattern #ifdef FILL_EXTRUSION_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif #pragma mapbox: initialize highp float pixel_ratio vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);vec4 out_color=textureLodCustom(u_image,pos,lod_pos); #ifdef APPLY_LUT_ON_GPU out_color=applyLUT(u_lutTexture,out_color); #endif #ifdef FILL_EXTRUSION_PATTERN_TRANSITION vec2 pattern_b_tl=vec2(pattern_b.xy);vec2 pattern_b_br=vec2(pattern_b.zw);highp vec2 pos_b=mix(pattern_b_tl/u_texsize,pattern_b_br/u_texsize,imagecoord);vec4 color_b=textureLodCustom(u_image,pos_b,lod_pos);out_color=out_color*(1.0-u_pattern_transition)+color_b*u_pattern_transition; #endif #ifdef LIGHTING_3D_MODE out_color=apply_lighting(out_color,normalize(v_normal))*u_opacity; #else out_color=out_color*v_lighting; #endif #ifdef FAUX_AO float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif #ifdef INDICATOR_CUTOUT out_color=applyCutout(out_color,height); #endif glFragColor=out_color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" #include "_prelude_lighting.glsl" #include "_prelude_material_table.vertex.glsl" uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_width_scale;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;in ivec4 a_pos_normal_ed; #if defined(HAS_CENTROID) || defined(TERRAIN) in uvec2 a_centroid_pos; #endif #ifdef RENDER_WALL_MODE in ivec4 a_join_normal_inside; #endif #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_pos_3;in ivec4 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; #endif #ifdef TERRAIN uniform int u_height_type;uniform int u_base_type; #endif out highp vec2 v_pos;out vec4 v_lighting; #ifdef FAUX_AO uniform lowp vec2 u_ao;out vec3 v_ao; #endif #ifdef LIGHTING_3D_MODE out vec3 v_normal; #endif #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define highp vec4 color #pragma mapbox: define mediump uvec4 pattern #ifdef FILL_EXTRUSION_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define highp float pixel_ratio #pragma mapbox: define highp float line_width void main() {DECLARE_MATERIAL_TABLE_INFO #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize mediump uvec4 pattern #ifdef FILL_EXTRUSION_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif #pragma mapbox: initialize highp float pixel_ratio #pragma mapbox: initialize highp float line_width vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);vec4 top_up_ny_start=vec4(a_pos_normal_ed & 1);vec4 pos_nx=vec4(a_pos_normal_ed >> 1);float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny_start.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny_start.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=float(a_pos_normal_ed.w);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny_start.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); #if defined(HAS_CENTROID) || defined(TERRAIN) centroid_pos=vec2(a_centroid_pos); #endif float ele=0.0;float h=z;vec3 p;float c_ele; #ifdef TERRAIN bool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;ele=elevation(pos_nx.xy);bool is_elevation_encoded=centroid_pos.y==0.0 || (centroid_pos.y > 0.0 && int(centroid_pos.y)-(int(centroid_pos.y)/8)*8==7);c_ele=is_flat_height || is_flat_base ? (is_elevation_encoded ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);h=t > 0.0 ? max(h_base,h_height) : h_base;p=vec3(pos_nx.xy,h); #else p=vec3(pos_nx.xy,z); #endif #ifdef PROJECTION_GLOBE_VIEW float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(vec3(a_pos_normal_3)/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=vec3(a_pos_3)+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); #endif #ifdef RENDER_WALL_MODE vec3 join_normal_inside=vec3(a_join_normal_inside);vec2 wall_offset=u_width_scale*line_width*(join_normal_inside.xy/EXTENT);p.xy+=(1.0-join_normal_inside.z)*wall_offset*0.5;p.xy-=join_normal_inside.z*wall_offset*0.5; #endif float hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (color.a==0.0));gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 ? pos_nx.xy : vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0; #ifdef LIGHTING_3D_MODE NdotL=calculate_NdotL(normal); #else NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL); #endif if (normal.y !=0.0) {float r=0.84; #ifndef LIGHTING_3D_MODE r=mix(0.7,0.98,1.0-u_lightintensity); #endif NdotL*=( (1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} #ifdef FAUX_AO float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; #ifdef TERRAIN top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); #endif v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny_start.y)*u_ao[0]); #ifdef PROJECTION_GLOBE_VIEW top_height+=u_height_lift; #endif gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; #endif #ifdef LIGHTING_3D_MODE v_normal=normal; #else v_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; #endif #ifdef FOG v_fog_pos=fog_position(p); #endif }`),groundShadow:Mn(`#include "_prelude_shadow.fragment.glsl" precision highp float;uniform vec3 u_ground_shadow_factor;in vec4 v_pos_light_view_0;in vec4 v_pos_light_view_1; #ifdef FOG in float v_fog_opacity; #endif void main() {float light=shadowed_light_factor_plane_bias(v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);vec3 shadow=mix(u_ground_shadow_factor,vec3(1.0),light); #ifdef RENDER_CUTOFF shadow=mix(vec3(1.0),shadow,cutoff_opacity(u_cutoff_params,1.0/gl_FragCoord.w)); #endif #ifdef FOG shadow=mix(shadow,vec3(1.0),v_fog_opacity); #endif #ifdef INDICATOR_CUTOUT shadow=mix(shadow,vec3(1.0),1.0-applyCutout(vec4(1.0),0.0).r); #endif #ifdef FEATURE_CUTOUT shadow=mix(shadow,vec3(1.0),get_cutout_factors(gl_FragCoord).y); #endif glFragColor=vec4(shadow,1.0);}`,`#include "_prelude_fog.vertex.glsl" uniform mat4 u_matrix;uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;in ivec2 a_pos;out vec4 v_pos_light_view_0;out vec4 v_pos_light_view_1; #ifdef FOG out float v_fog_opacity; #endif void main() {gl_Position=u_matrix*vec4(a_pos,0.0,1.0);v_pos_light_view_0=u_light_matrix_0*vec4(a_pos,0.0,1.0);v_pos_light_view_1=u_light_matrix_1*vec4(a_pos,0.0,1.0); #ifdef FOG v_fog_pos=fog_position(vec2(a_pos));v_fog_opacity=fog(v_fog_pos); #endif }`),fillExtrusionGroundEffect:Mn(`uniform highp float u_ao_pass;uniform highp float u_opacity;uniform highp float u_flood_light_intensity;uniform highp vec3 u_flood_light_color;uniform highp float u_attenuation;uniform sampler2D u_fb;uniform float u_fb_size; #ifdef SDF_SUBPASS in highp vec2 v_pos;in highp vec4 v_line_segment;in highp float v_flood_light_radius_tile;in highp vec2 v_ao;float line_df(highp vec2 a,highp vec2 b,highp vec2 p) {highp vec2 ba=b-a;highp vec2 pa=p-a;highp float r=clamp(dot(pa,ba)/dot(ba,ba),0.0,1.0);return length(pa-r*ba);} #ifdef FOG in highp float v_fog; #endif #endif void main() { #ifdef CLEAR_SUBPASS vec4 color=vec4(1.0); #ifdef CLEAR_FROM_TEXTURE color=texture(u_fb,gl_FragCoord.xy/vec2(u_fb_size)); #endif glFragColor=color; #else #ifdef SDF_SUBPASS highp float d=line_df(v_line_segment.xy,v_line_segment.zw,v_pos);highp float effect_radius=mix(v_flood_light_radius_tile,v_ao.y,u_ao_pass);d/=effect_radius;d=min(d,1.0);d=1.0-pow(1.0-d,u_attenuation);highp float effect_intensity=mix(u_flood_light_intensity,v_ao.x,u_ao_pass);highp float fog=1.0; #ifdef FOG fog=v_fog; #endif #ifdef RENDER_CUTOFF fog*=v_cutoff_opacity; #endif glFragColor=vec4(vec3(0.0),mix(1.0,d,effect_intensity*u_opacity*fog)); #else #ifdef USE_MRT1 out_Target1=vec4(1.0-texture(u_fb,gl_FragCoord.xy/vec2(u_fb_size)).a,0.0,0.0,0.0); #else vec4 color=mix(vec4(u_flood_light_color,1.0),vec4(vec3(0.0),1.0),u_ao_pass); #ifdef OVERDRAW_INSPECTOR color=vec4(1.0); #endif glFragColor=color; #endif #endif HANDLE_WIREFRAME_DEBUG; #endif }`,`#include "_prelude_fog.vertex.glsl" in highp ivec4 a_pos_end;in highp int a_angular_offset_factor;in highp uint a_hidden_by_landmark; #ifdef SDF_SUBPASS out highp vec2 v_pos;out highp vec4 v_line_segment;out highp float v_flood_light_radius_tile;out highp vec2 v_ao; #ifdef FOG out highp float v_fog; #endif #endif uniform highp float u_flood_light_intensity;uniform highp mat4 u_matrix;uniform highp float u_ao_pass;uniform highp float u_meter_to_tile;uniform highp float u_edge_radius;uniform highp float u_dynamic_offset;uniform highp vec2 u_ao; #pragma mapbox: define highp float flood_light_ground_radius const float TANGENT_CUTOFF=4.0;const float NORM=32767.0;void main() { #pragma mapbox: initialize highp float flood_light_ground_radius vec4 pos_end=vec4(a_pos_end);vec2 p=pos_end.xy;vec2 q=floor(pos_end.zw*0.5);vec2 start_bottom=pos_end.zw-q*2.0;float fl_ground_radius=abs(flood_light_ground_radius);float direction=flood_light_ground_radius < 0.0 ?-1.0 : 1.0;float flood_radius_tile=fl_ground_radius*u_meter_to_tile;vec2 v=normalize(q-p);float ao_radius=u_ao.y/3.5;float effect_radius=mix(flood_radius_tile,ao_radius,u_ao_pass)+u_edge_radius;float angular_offset_factor=float(a_angular_offset_factor)/NORM*TANGENT_CUTOFF;float angular_offset=direction*angular_offset_factor*effect_radius;float top=1.0-start_bottom.y;float side=(0.5-start_bottom.x)*2.0;vec2 extrusion_parallel=v*side*mix(u_dynamic_offset,angular_offset,top);vec2 perp=vec2(v.y,-v.x);vec2 extrusion_perp=direction*perp*effect_radius*top;vec3 pos=vec3(mix(q,p,start_bottom.x),0.0);pos.xy+=extrusion_parallel+extrusion_perp; #ifdef SDF_SUBPASS v_pos=pos.xy;v_line_segment=vec4(p,q)+perp.xyxy*u_edge_radius;v_flood_light_radius_tile=flood_radius_tile;v_ao=vec2(u_ao.x,ao_radius); #ifdef FOG v_fog_pos=fog_position(pos);v_fog=1.0-fog(v_fog_pos); #endif #endif float hidden_by_landmark=0.0; #ifdef HAS_CENTROID hidden_by_landmark=float(a_hidden_by_landmark); #endif float isFloodlit=float(fl_ground_radius > 0.0 && u_flood_light_intensity > 0.0);float hidden=mix(1.0-isFloodlit,isFloodlit,u_ao_pass);hidden+=hidden_by_landmark;gl_Position=mix(u_matrix*vec4(pos,1.0),AWAY,float(hidden > 0.0)); #ifdef RENDER_CUTOFF v_cutoff_opacity=cutoff_opacity(u_cutoff_params,gl_Position.z); #endif }`),hillshadePrepare:Mn(`precision highp float;uniform highp sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;float getElevation(vec2 coord) {return texture(u_image,coord).r/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2( (c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c) )/pow(2.0,exaggeration+(19.2562-u_zoom));glFragColor=clamp(vec4( deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in ivec2 a_pos;in uvec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(vec2(a_texture_pos)/8192.0)*scale+epsilon;}"),hillshade:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;uniform float u_emissive_strength;void main() {vec4 pixel=texture(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);glFragColor=accent_color*(1.0-shade_color.a)+shade_color; #ifdef LIGHTING_3D_MODE glFragColor=apply_lighting_with_emission_ground(glFragColor,u_emissive_strength); #endif #ifdef FOG glFragColor=fog_dither(fog_apply_premultiplied(glFragColor,v_fog_pos)); #endif #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" uniform mat4 u_matrix;in ivec2 a_pos;in uvec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=vec2(a_texture_pos)/8192.0; #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif }`),line:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" uniform lowp float u_device_pixel_ratio;uniform highp float u_width_scale;uniform highp float u_floor_width_scale;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;uniform highp vec2 u_trim_fade_range;uniform highp vec2 u_trim_gradient_mix_range;uniform lowp vec4 u_trim_color;uniform bool u_emissive_in_shadows;in vec4 v_width2_dilute;in vec2 v_normal;in float v_gamma_scale;in highp vec3 v_uv; #ifdef ELEVATED_ROADS in highp float v_road_z_offset; #endif #ifdef VARIABLE_LINE_WIDTH in float stub_side; #endif #ifdef RENDER_LINE_DASH uniform sampler2D u_dash_image;in vec2 v_tex; #endif #ifdef RENDER_LINE_GRADIENT uniform sampler2D u_gradient_image; #endif #ifdef INDICATOR_CUTOUT in highp float v_z_offset; #endif #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;} #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump uvec4 dash #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float side_z_offset #pragma mapbox: define lowp float border_width #pragma mapbox: define lowp vec4 border_color #pragma mapbox: define lowp float emissive_strength float linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump uvec4 dash #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float side_z_offset #pragma mapbox: initialize lowp float border_width #pragma mapbox: initialize lowp vec4 border_color #pragma mapbox: initialize lowp float emissive_strength float dist=length(v_normal)*v_width2_dilute.x; #ifdef VARIABLE_LINE_WIDTH blur=mix(blur,0.0,stub_side); #endif float diluted_opacity=opacity*v_width2_dilute.z;float blur2=(u_width_scale*blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2_dilute.y-blur2),v_width2_dilute.x-dist)/blur2,0.0,1.0); #ifdef VARIABLE_LINE_WIDTH alpha=mix(alpha,1.0,stub_side); #endif alpha=side_z_offset > 0.0 ? 1.0-alpha : alpha; #ifdef RENDER_LINE_DASH float sdfdist=texture(u_dash_image,v_tex).r;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/(float(dash.z)+float(dash.w)/65535.0);float scaled_floorwidth=(floorwidth*u_floor_width_scale);alpha*=linearstep(0.5-sdfgamma/scaled_floorwidth,0.5+sdfgamma/scaled_floorwidth,sdfdist); #endif highp vec4 out_color; #ifdef RENDER_LINE_GRADIENT out_color=texture(u_gradient_image,v_uv.xy); #else out_color=color; #endif float trim_alpha=1.0; #ifdef RENDER_LINE_TRIM_OFFSET highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=v_uv[2];if (trim_end > trim_start) {highp float start_transition=max(0.0,min(1.0,(line_progress-trim_start)/max(u_trim_fade_range[0],1.0e-9)));highp float end_transition=max(0.0,min(1.0,(trim_end-line_progress)/max(u_trim_fade_range[1],1.0e-9)));highp float transition_factor=min(start_transition,end_transition);highp float gradient_trim_color_mix_factor=0.0; #ifdef RENDER_LINE_GRADIENT gradient_trim_color_mix_factor=smoothstep(u_trim_gradient_mix_range.x,u_trim_gradient_mix_range.y,line_progress); #endif highp vec4 trim_color=mix(u_trim_color,out_color,gradient_trim_color_mix_factor);out_color=mix(u_trim_gradient_mix_range.x < 1.0 ? color : out_color,trim_color,transition_factor);trim_alpha=1.0-transition_factor;} #endif if (u_alpha_discard_threshold !=0.0) {if (alpha < u_alpha_discard_threshold) {discard;}} #ifdef RENDER_LINE_BORDER #ifndef VARIABLE_LINE_WIDTH float edgeBlur=((border_width*u_width_scale)+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2_dilute.y-edgeBlur),v_width2_dilute.x-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2);if (border_color.a==0.0) {float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);}} else {out_color=mix(border_color*trim_alpha,out_color,smoothAlpha);}out_color*=v_width2_dilute.w;} #endif #endif vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y);light=u_emissive_in_shadows ? mix(light,1.0,emissive_strength) : light; #ifdef ELEVATED_ROADS out_color.rgb*=mix(v_road_z_offset !=0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light); #else out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #endif #ifdef FOG out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); #endif out_color*=(alpha*diluted_opacity); #ifdef LINE_BLEND_MULTIPLY glFragColor=vec4(out_color.rgb+(1.0-out_color.a),1.0);HANDLE_WIREFRAME_DEBUG;return; #endif #ifdef INDICATOR_CUTOUT out_color=applyCutout(out_color,v_z_offset); #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif glFragColor=out_color; #ifdef DUAL_SOURCE_BLENDING glFragColorSrc1=vec4(vec3(0.0),emissive_strength); #else #ifdef USE_MRT1 out_Target1=vec4(emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" #include "_prelude_terrain.vertex.glsl" #define EXTRUDE_SCALE 0.015873016 in ivec2 a_pos_normal;in uvec4 a_data; #if defined(ELEVATED) || defined(ELEVATED_ROADS) || defined(VARIABLE_LINE_WIDTH) in vec3 a_z_offset_width; #endif #ifdef ELEVATION_GROUND_SCALE in float a_elevation_ground_scale; #endif #if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) || defined(RENDER_LINE_CURVE) in highp vec3 a_packed; #endif #ifdef RENDER_LINE_DASH in float a_linesofar; #endif uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;uniform float u_width_scale;uniform highp float u_floor_width_scale; #ifdef RENDER_LINE_CURVE uniform mat3 u_curve_points_x;uniform mat3 u_curve_points_y;uniform mat3 u_curve_points_z;uniform float u_curve_point_count; #endif #ifdef ELEVATED uniform lowp float u_zbias_factor;uniform lowp float u_tile_to_meter;float sample_elevation(vec2 apos) { #ifdef ELEVATION_REFERENCE_SEA return 0.0; #else return elevation(apos); #endif } #endif out vec2 v_normal;out vec4 v_width2_dilute;out float v_gamma_scale;out highp vec3 v_uv; #ifdef ELEVATED_ROADS out highp float v_road_z_offset; #endif #ifdef VARIABLE_LINE_WIDTH out float stub_side; #endif #ifdef RENDER_LINE_DASH uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;out vec2 v_tex; #endif #ifdef RENDER_LINE_GRADIENT uniform float u_image_height; #endif #ifdef INDICATOR_CUTOUT out highp float v_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float floorwidth #pragma mapbox: define mediump uvec4 dash #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width #pragma mapbox: define mediump float side_z_offset #pragma mapbox: define lowp float border_width #pragma mapbox: define lowp vec4 border_color #pragma mapbox: define lowp float emissive_strength #ifdef RENDER_LINE_CURVE vec3 getCurvePoint(int index) {int row=index/3;int col=index-row*3;float x=u_curve_points_x[row][col];float y=u_curve_points_y[row][col];float z=u_curve_points_z[row][col];return vec3(x,y,z);}vec3 catmullRom(vec3 p0,vec3 p1,vec3 p2,vec3 p3,float t) {float t2=t*t;float t3=t2*t;return 0.5*( 2.0*p1+(-p0+p2)*t+(2.0*p0-5.0*p1+4.0*p2-p3)*t2+(-p0+3.0*p1-3.0*p2+p3)*t3 );}vec2 catmullRomTangent(vec2 p0,vec2 p1,vec2 p2,vec2 p3,float t) {float t2=t*t;return 0.5*( (-p0+p2)+(2.0*p0-5.0*p1+4.0*p2-p3)*2.0*t+(-p0+3.0*p1-3.0*p2+p3)*3.0*t2 );}struct CurveResult {vec3 point;vec2 tangent;};CurveResult calculateCurve(float line_progress) {float curve_progress=line_progress*(u_curve_point_count-1.0);float curve_progress_local=fract(curve_progress);float curve_segment=floor(curve_progress);int seg=int(curve_segment);vec3 p1=getCurvePoint(seg);vec3 p2=getCurvePoint(seg+1);float is_first_seg=step(curve_segment,0.5);vec3 p0_extrapolated=p1-(p2-p1);vec3 p0_fetched=getCurvePoint(max(seg-1,0));vec3 p0=mix(p0_fetched,p0_extrapolated,is_first_seg);int last_seg=int(u_curve_point_count)-2;float is_last_seg=step(float(last_seg)-0.5,curve_segment);vec3 p3_extrapolated=p2+(p2-p1);vec3 p3_fetched=getCurvePoint(min(seg+2,int(u_curve_point_count)-1));vec3 p3=mix(p3_fetched,p3_extrapolated,is_last_seg);vec3 point=catmullRom(p0,p1,p2,p3,curve_progress_local);vec2 tangent=catmullRomTangent(p0.xy,p1.xy,p2.xy,p3.xy,curve_progress_local)*(u_curve_point_count-1.0);CurveResult result;result.point=point;result.tangent=tangent;return result;} #endif void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump uvec4 dash #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width #pragma mapbox: initialize mediump float side_z_offset #pragma mapbox: initialize lowp float border_width #pragma mapbox: initialize lowp vec4 border_color #pragma mapbox: initialize lowp float emissive_strength float a_z_offset; #if defined(ELEVATED) || defined(ELEVATED_ROADS) a_z_offset=a_z_offset_width.x; #endif highp float line_progress=0.0; #if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) || defined(RENDER_LINE_CURVE) line_progress=a_packed[2]; #endif float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(a_data.xy)-128.0;float a_direction=float(a_data.z & 3u)-1.0;vec2 pos_normal=vec2(a_pos_normal);vec2 pos=floor(pos_normal*0.5);mediump vec2 normal=pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;offset=-1.0*offset*u_width_scale;bool left=normal.y==1.0; #ifdef RENDER_LINE_CURVE CurveResult curve=calculateCurve(line_progress);pos=curve.point.xy*8192.0;a_extrude=length(a_extrude)*normalize(curve.tangent);a_extrude=left ? vec2(-a_extrude.y,a_extrude.x) : vec2(a_extrude.y,-a_extrude.x);a_z_offset+=curve.point.z; #endif gapwidth=gapwidth/2.0;float halfwidth;float dilute_scale=1.0;float dilute_border_scale=1.0; #ifdef VARIABLE_LINE_WIDTH float left_width=a_z_offset_width.y;float right_width=a_z_offset_width.z;halfwidth=(u_width_scale*(left ? left_width : right_width))/2.0;if (side_z_offset !=0.0) {float left_f=step(1.0,normal.y);float is_negative=step(side_z_offset,0.0);float apply=mix(1.0-left_f,left_f,is_negative);a_extrude*=apply;a_z_offset+=abs(side_z_offset)*apply;v_normal*=left_f;}offset=border_width > 0.0 ? (left_width+right_width)*u_width_scale*0.5 : offset;halfwidth=border_width > 0.0 ? border_width*u_width_scale*0.5 : halfwidth;bool zero_right_width=border_width==0.0 && right_width==0.0;stub_side=zero_right_width ?-normal.y : 0.0;v_normal=!left && zero_right_width ? vec2(0.0) : v_normal;ANTIALIASING=!left && zero_right_width ? 0.0 : ANTIALIASING; #else halfwidth=(u_width_scale*width)/2.0; #endif float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);float hidden=float(opacity==0.0);vec2 extrude=dist*u_pixels_to_tile_units;vec4 projected_extrude=u_matrix*vec4(extrude,0.0,0.0);vec2 projected_extrude_xy=projected_extrude.xy; #ifdef ELEVATED_ROADS v_road_z_offset=a_z_offset;gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,a_z_offset,1.0); #else #ifdef ELEVATED vec2 offsetTile=offset2*u_pixels_to_tile_units;vec2 offset_pos=pos+offsetTile;float ele=0.0;float scaled_z_offset=a_z_offset; #ifdef ELEVATION_GROUND_SCALE scaled_z_offset=a_z_offset*mix(1.0,u_exaggeration,a_elevation_ground_scale); #endif #ifdef CROSS_SLOPE_VERTICAL float top=pos_normal.y-2.0*floor(pos_normal.y*0.5);float line_height=2.0*u_tile_to_meter*outset*top*u_pixels_to_tile_units[1][1]+scaled_z_offset;ele=sample_elevation(offset_pos)+line_height;projected_extrude=vec4(0); #else #ifdef CROSS_SLOPE_HORIZONTAL float ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,max(ele1,ele2));ele=ele_max+scaled_z_offset; #else float ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,0.5*(ele1+ele2));ele=ele_max-ele0+ele1+scaled_z_offset; #endif #endif gl_Position=u_matrix*vec4(offset_pos,ele,1.0)+projected_extrude;float z=clamp(gl_Position.z/gl_Position.w,0.5,1.0);float zbias=max(0.00005,(pow(z,0.8)-z)*u_zbias_factor*u_exaggeration);gl_Position.z-=(gl_Position.w*zbias);gl_Position=mix(gl_Position,AWAY,hidden); #else gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0); #endif #endif #ifndef ELEVATED #ifndef VARIABLE_LINE_WIDTH #ifndef RENDER_TO_TEXTURE float base_w=gl_Position.w;vec2 screen_width=abs(projected_extrude.xy/base_w*u_units_to_pixels);float max_extrude_component=max(screen_width.x,screen_width.y);if (width >=1.0 && base_w > 0.0 && max_extrude_component > 0.0001) {float min_pixel=1.05;if (max_extrude_component < min_pixel) {vec2 abs_pos=abs(gl_Position.xy);float is_out=max(abs_pos.x,abs_pos.y)/base_w;dilute_scale=mix(max_extrude_component/min_pixel,1.0,smoothstep(2.5,4.5,is_out));projected_extrude/=dilute_scale;}else { #ifdef RENDER_LINE_BORDER float border_ratio=(border_width*u_width_scale+ANTIALIASING)/outset;screen_width*=border_ratio;float max_border_component=max(screen_width.x,screen_width.y);dilute_border_scale=min(1.0,max_border_component/min_pixel); #endif }} #endif #endif #ifdef ELEVATED_ROADS gl_Position=gl_Position+projected_extrude; #else gl_Position=mix(gl_Position+projected_extrude,AWAY,hidden); #endif #endif #ifdef ELEVATED_ROADS #ifdef RENDER_SHADOWS vec3 shd_pos=vec3(pos+(offset2+dist)*u_pixels_to_tile_units,a_z_offset);vec3 shd_pos0=shd_pos;vec3 shd_pos1=shd_pos; #ifdef NORMAL_OFFSET vec3 shd_pos_offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=shd_pos_offset*shadow_normal_offset_multiplier0();shd_pos1+=shd_pos_offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #endif #ifndef RENDER_TO_TEXTURE float epsilon=0.0001;float extrude_length_without_perspective=max(length(dist),epsilon);float extrude_length_with_perspective=max(length(projected_extrude_xy/gl_Position.w*u_units_to_pixels),epsilon);v_gamma_scale=mix(extrude_length_without_perspective/extrude_length_with_perspective,1.0,step(0.01,blur)); #else v_gamma_scale=1.0; #endif #if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) highp float a_uv_x=a_packed[0];float a_split_index=a_packed[1]; #ifdef RENDER_LINE_GRADIENT highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec3(a_uv_x,a_split_index*texel_height-half_texel_height,line_progress); #else v_uv=vec3(a_uv_x,0.0,line_progress); #endif #endif #ifdef RENDER_LINE_DASH vec4 dashf=vec4(dash);float totalLength=dashf.z+dashf.w/65535.0;float scale=totalLength==0.0 ? 0.0 : u_tile_units_to_pixels/totalLength;v_tex=vec2(a_linesofar*scale/(floorwidth*u_floor_width_scale),(-normal.y*dashf.y+dashf.x+0.5)/u_texsize.y); #endif v_width2_dilute=vec4(outset,inset,dilute_scale,dilute_border_scale); #ifdef FOG v_fog_pos=fog_position(pos); #endif #ifdef INDICATOR_CUTOUT v_z_offset=a_z_offset; #endif }`),linePattern:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" uniform highp float u_device_pixel_ratio;uniform highp float u_width_scale;uniform highp float u_alpha_discard_threshold;uniform highp vec2 u_texsize;uniform highp float u_tile_units_to_pixels;uniform highp vec2 u_trim_offset;uniform highp vec2 u_trim_fade_range;uniform lowp vec4 u_trim_color;uniform sampler2D u_image; #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif #ifdef LINE_PATTERN_TRANSITION uniform float u_pattern_transition; #endif in vec2 v_normal;in vec2 v_width2;in highp float v_linesofar;in float v_gamma_scale;in float v_width; #ifdef RENDER_LINE_TRIM_OFFSET in highp vec3 v_uv; #endif #ifdef ELEVATED_ROADS in highp float v_road_z_offset; #endif #ifdef LINE_JOIN_NONE in vec2 v_pattern_data; #endif #ifdef INDICATOR_CUTOUT in highp float v_z_offset; #endif #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif #pragma mapbox: define mediump uvec4 pattern #ifdef LINE_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define mediump float pixel_ratio #pragma mapbox: define mediump float blur #pragma mapbox: define mediump float opacity #pragma mapbox: define lowp float emissive_strength void main() { #pragma mapbox: initialize mediump uvec4 pattern #ifdef LINE_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif #pragma mapbox: initialize mediump float pixel_ratio #pragma mapbox: initialize mediump float blur #pragma mapbox: initialize mediump float opacity #pragma mapbox: initialize lowp float emissive_strength vec2 pattern_tl=vec2(pattern.xy);vec2 pattern_br=vec2(pattern.zw);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;highp float pattern_size=display_size.x/u_tile_units_to_pixels;float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(u_width_scale*blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);highp float pattern_x=v_linesofar/pattern_size*aspect;highp float x=mod(pattern_x,1.0);highp float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;highp vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));highp vec2 lod_pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(pattern_x,y));vec4 color=textureLodCustom(u_image,pos,lod_pos); #ifdef APPLY_LUT_ON_GPU color=applyLUT(u_lutTexture,color); #endif #ifdef LINE_PATTERN_TRANSITION vec2 pattern_b_tl=vec2(pattern_b.xy);vec2 pattern_b_br=vec2(pattern_b.zw);highp vec2 pos_b=mix(pattern_b_tl*texel_size-texel_size,pattern_b_br*texel_size+texel_size,vec2(x,y));vec4 color_b=textureLodCustom(u_image,pos_b,lod_pos);color=color*(1.0-u_pattern_transition)+color_b*u_pattern_transition; #endif #ifdef RENDER_LINE_TRIM_OFFSET highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=v_uv[2];if (trim_end > trim_start) {highp float start_transition=max(0.0,min(1.0,(line_progress-trim_start)/max(u_trim_fade_range[0],1.0e-9)));highp float end_transition=max(0.0,min(1.0,(trim_end-line_progress)/max(u_trim_fade_range[1],1.0e-9)));highp float transition_factor=min(start_transition,end_transition);color=mix(color,color.a*u_trim_color,transition_factor);} #endif #ifdef LINE_JOIN_NONE highp float pattern_len=pattern_size/aspect;highp float segment_phase=pattern_len-mod(v_linesofar-v_pattern_data.x+pattern_len,pattern_len);highp float visible_start=segment_phase-step(pattern_len*0.5,segment_phase)*pattern_len;highp float visible_end=floor((v_pattern_data.y-segment_phase)/pattern_len)*pattern_len+segment_phase;visible_end+=step(pattern_len*0.5,v_pattern_data.y-visible_end)*pattern_len;if (v_pattern_data.x < visible_start || v_pattern_data.x >=visible_end) {color=vec4(0.0);} #endif #ifdef LIGHTING_3D_MODE color=apply_lighting_with_emission_ground(color,emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth); #ifdef ELEVATED_ROADS color.rgb*=mix(v_road_z_offset !=0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light); #else color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #endif #endif #endif #ifdef FOG color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); #endif color*=(alpha*opacity);if (u_alpha_discard_threshold !=0.0) {if (color.a < u_alpha_discard_threshold) {discard;}} #ifdef INDICATOR_CUTOUT color=applyCutout(color,v_z_offset); #endif glFragColor=color; #ifdef DUAL_SOURCE_BLENDING glFragColorSrc1=vec4(vec3(0.0),emissive_strength); #else #ifdef USE_MRT1 out_Target1=vec4(emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" #include "_prelude_terrain.vertex.glsl" #define scale 0.015873016 in ivec2 a_pos_normal;in uvec4 a_data; #if defined(ELEVATED) || defined(ELEVATED_ROADS) in vec3 a_z_offset_width; #endif #ifdef ELEVATION_GROUND_SCALE in float a_elevation_ground_scale; #endif #ifdef RENDER_LINE_TRIM_OFFSET in highp vec3 a_packed; #endif in highp float a_linesofar; #ifdef LINE_JOIN_NONE in highp vec3 a_pattern_data;out vec2 v_pattern_data; #endif #ifdef INDICATOR_CUTOUT out highp float v_z_offset; #endif uniform mat4 u_matrix;uniform float u_tile_units_to_pixels;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform float u_device_pixel_ratio;uniform float u_width_scale;uniform float u_floor_width_scale; #ifdef ELEVATED uniform lowp float u_zbias_factor;uniform lowp float u_tile_to_meter;float sample_elevation(vec2 apos) { #ifdef ELEVATION_REFERENCE_SEA return 0.0; #else return elevation(apos); #endif } #endif out vec2 v_normal;out vec2 v_width2;out highp float v_linesofar;out float v_gamma_scale;out float v_width; #ifdef RENDER_LINE_TRIM_OFFSET out highp vec3 v_uv; #endif #ifdef ELEVATED_ROADS out highp float v_road_z_offset; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif #pragma mapbox: define mediump float blur #pragma mapbox: define mediump float opacity #pragma mapbox: define mediump float offset #pragma mapbox: define mediump float gapwidth #pragma mapbox: define mediump float width #pragma mapbox: define mediump float floorwidth #pragma mapbox: define mediump uvec4 pattern #ifdef LINE_PATTERN_TRANSITION #pragma mapbox: define mediump uvec4 pattern_b #endif #pragma mapbox: define mediump float pixel_ratio #pragma mapbox: define lowp float emissive_strength void main() { #pragma mapbox: initialize mediump float blur #pragma mapbox: initialize mediump float opacity #pragma mapbox: initialize mediump float offset #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize mediump float width #pragma mapbox: initialize mediump float floorwidth #pragma mapbox: initialize mediump uvec4 pattern #ifdef LINE_PATTERN_TRANSITION #pragma mapbox: initialize mediump uvec4 pattern_b #endif #pragma mapbox: initialize mediump float pixel_ratio #pragma mapbox: initialize lowp float emissive_strength float a_z_offset; #if defined(ELEVATED) || defined(ELEVATED_ROADS) a_z_offset=a_z_offset_width.x; #endif float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(a_data.xy)-128.0;float a_direction=float(a_data.z & 3u)-1.0;vec2 pos_normal=vec2(a_pos_normal);vec2 pos=floor(pos_normal*0.5);vec2 normal=pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=(u_width_scale*width)/2.0;offset=-1.0*offset*u_width_scale;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);vec2 dist=outset*a_extrude*scale;float u=0.5*a_direction;float t=1.0-abs(u);vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float hidden=float(opacity==0.0);vec2 extrude=dist*u_pixels_to_tile_units;vec4 projected_extrude=u_matrix*vec4(extrude,0.0,0.0);vec2 projected_extrude_xy=projected_extrude.xy; #ifdef ELEVATED_ROADS v_road_z_offset=a_z_offset;gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,a_z_offset,1.0)+projected_extrude; #else #ifdef ELEVATED vec2 offsetTile=offset2*u_pixels_to_tile_units;vec2 offset_pos=pos+offsetTile;float ele=0.0;float scaled_z_offset=a_z_offset; #ifdef ELEVATION_GROUND_SCALE scaled_z_offset=a_z_offset*mix(1.0,u_exaggeration,a_elevation_ground_scale); #endif #ifdef CROSS_SLOPE_VERTICAL float top=pos_normal.y-2.0*floor(pos_normal.y*0.5);float line_height=2.0*u_tile_to_meter*outset*top*u_pixels_to_tile_units[1][1]+scaled_z_offset;ele=sample_elevation(offset_pos)+line_height;projected_extrude=vec4(0); #else #ifdef CROSS_SLOPE_HORIZONTAL float ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,max(ele1,ele2));ele=ele_max+scaled_z_offset; #else float ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,0.5*(ele1+ele2));ele=ele_max-ele0+ele1+scaled_z_offset; #endif #endif gl_Position=u_matrix*vec4(offset_pos,ele,1.0)+projected_extrude;float z=clamp(gl_Position.z/gl_Position.w,0.5,1.0);float zbias=max(0.00005,(pow(z,0.8)-z)*u_zbias_factor*u_exaggeration);gl_Position.z-=(gl_Position.w*zbias);gl_Position=mix(gl_Position,AWAY,hidden); #else gl_Position=mix(u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude,AWAY,hidden); #endif #endif #ifdef ELEVATED_ROADS #ifdef RENDER_SHADOWS vec3 shd_pos=vec3(pos+(offset2+dist)*u_pixels_to_tile_units,a_z_offset);vec3 shd_pos0=shd_pos;vec3 shd_pos1=shd_pos; #ifdef NORMAL_OFFSET vec3 shd_pos_offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=shd_pos_offset*shadow_normal_offset_multiplier0();shd_pos1+=shd_pos_offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #endif #ifndef RENDER_TO_TEXTURE float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude_xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=mix(extrude_length_without_perspective/extrude_length_with_perspective,1.0,step(0.01,blur)); #else v_gamma_scale=1.0; #endif #ifdef RENDER_LINE_TRIM_OFFSET highp float a_uv_x=a_packed[0];highp float line_progress=a_packed[2];v_uv=vec3(a_uv_x,0.0,line_progress); #endif v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=(floorwidth*u_floor_width_scale); #ifdef LINE_JOIN_NONE v_width=(floorwidth*u_floor_width_scale)+ANTIALIASING;mediump float pixels_to_tile_units=1.0/u_tile_units_to_pixels;mediump float pixel_ratio_inverse=1.0/pixel_ratio;mediump float aspect=v_width/(float(pattern.w-pattern.y)*pixel_ratio_inverse);highp float subt_multiple=float(pattern.z-pattern.x)*pixel_ratio_inverse*pixels_to_tile_units*aspect*32.0;highp float subt=floor(a_pattern_data.z/subt_multiple)*subt_multiple;float offset_sign=(fract(a_pattern_data.x)-0.5)*4.0;float line_progress_offset=offset_sign*v_width*0.5*pixels_to_tile_units;v_linesofar=(a_pattern_data.z-subt)+a_linesofar+line_progress_offset;v_pattern_data=vec2(a_pattern_data.x+line_progress_offset,a_pattern_data.y); #endif #ifdef FOG v_fog_pos=fog_position(pos); #endif #ifdef INDICATOR_CUTOUT v_z_offset=a_z_offset; #endif }`),raster:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" #include "_prelude_raster_array.glsl" uniform float u_fade_t;uniform float u_opacity;uniform highp float u_raster_elevation;uniform highp float u_zoom_transition;in vec2 v_pos0;in vec2 v_pos1;in float v_depth; #ifdef PROJECTION_GLOBE_VIEW in float v_split_fade; #endif uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;uniform float u_emissive_strength; #ifndef RASTER_ARRAY uniform highp sampler2D u_image0;uniform sampler2D u_image1; #endif #ifdef RASTER_COLOR uniform sampler2D u_color_ramp;uniform highp vec4 u_colorization_mix;uniform highp float u_colorization_offset;uniform vec2 u_texture_res; #endif void main() {vec4 color0,color1,color;vec2 value; #ifdef RASTER_COLOR #ifdef RASTER_ARRAY #ifdef RASTER_ARRAY_LINEAR value=mix( raTexture2D_image0_linear(v_pos0,u_texture_res,u_colorization_mix,u_colorization_offset),raTexture2D_image1_linear(v_pos1,u_texture_res,u_colorization_mix,u_colorization_offset),u_fade_t ); #else value=mix( raTexture2D_image0_nearest(v_pos0,u_texture_res,u_colorization_mix,u_colorization_offset),raTexture2D_image1_nearest(v_pos1,u_texture_res,u_colorization_mix,u_colorization_offset),u_fade_t ); #endif if (value.y > 0.0) value.x/=value.y; #else color=mix(texture(u_image0,v_pos0),texture(u_image1,v_pos1),u_fade_t);value=vec2(u_colorization_offset+dot(color.rgb,u_colorization_mix.rgb),color.a); #endif color=texture(u_color_ramp,vec2(value.x,0.5));if (color.a > 0.0) color.rgb/=color.a;color.a*=value.y; #else color0=texture(u_image0,v_pos0);color1=texture(u_image1,v_pos1);if (color0.a > 0.0) color0.rgb/=color0.a;if (color1.a > 0.0) color1.rgb/=color1.a;color=mix(color0,color1,u_fade_t); #endif color.a*=u_opacity; #ifdef GLOBE_POLES color.a*=1.0-smoothstep(0.0,0.05,u_zoom_transition); #endif vec3 rgb=color.rgb;rgb=vec3( dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(vec4(out_color,1.0),u_emissive_strength).rgb; #endif #ifdef FOG highp float fog_limit_high_meters=1000000.0;highp float fog_limit_low_meters=600000.0;float fog_limit=1.0-smoothstep(fog_limit_low_meters,fog_limit_high_meters,u_raster_elevation);out_color=fog_dither(fog_apply(out_color,v_fog_pos,fog_limit)); #endif glFragColor=vec4(out_color*color.a,color.a); #ifdef PROJECTION_GLOBE_VIEW glFragColor*=mix(1.0,1.0-smoothstep(0.0,0.05,u_zoom_transition),smoothstep(0.8,0.9,v_split_fade)); #endif #ifdef RENDER_CUTOFF glFragColor=glFragColor*cutoff_opacity(u_cutoff_params,v_depth); #endif #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif #ifdef USE_MRT1 out_Target1=vec4(u_emissive_strength*glFragColor.a,0.0,0.0,glFragColor.a); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" uniform mat4 u_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform mat3 u_grid_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;uniform vec2 u_texture_offset;uniform float u_raster_elevation;uniform float u_zoom_transition;uniform vec2 u_merc_center; #ifdef ELEVATED uniform lowp float u_zbias_factor; #endif #define GLOBE_UPSCALE GLOBE_RADIUS/6371008.8 #ifdef GLOBE_POLES in vec3 a_globe_pos;in vec2 a_uv; #else in ivec2 a_pos;in uvec2 a_texture_pos; #endif out vec2 v_pos0;out vec2 v_pos1;out float v_depth; #ifdef PROJECTION_GLOBE_VIEW out float v_split_fade; #endif void main() {vec2 uv; #ifdef GLOBE_POLES vec3 globe_pos=a_globe_pos;uv=a_uv;float ele=u_raster_elevation; #ifdef ELEVATION_REFERENCE_GROUND ele+=elevation(uv*EXTENT); #endif globe_pos+=normalize(globe_pos)*ele*GLOBE_UPSCALE;gl_Position=u_matrix*u_globe_matrix*vec4(globe_pos,1.0); #ifdef FOG v_fog_pos=fog_position((u_normalize_matrix*vec4(a_globe_pos,1.0)).xyz); #endif #else vec4 world_pos; #ifdef PROJECTION_GLOBE_VIEW vec2 texture_pos=vec2(a_texture_pos);uv=texture_pos/8192.0;vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float mercatorX=mercatorXfromLng(latLng[1]); float tiles=u_grid_matrix[0][2];if (tiles > 0.0) {float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];float uvY=mercatorY*tiles-idy;float uvX=mercatorX*tiles-idx;uv=vec2(uvX,uvY);}float ele=u_raster_elevation; #ifdef ELEVATION_REFERENCE_GROUND ele+=elevation(uv*EXTENT)-decomposed_pos_and_skirt.z; #endif vec4 merc_world_pos=vec4(0.0); v_split_fade=0.0;if (u_zoom_transition > 0.0) {vec2 merc_pos=vec2(mercatorX,mercatorY);merc_world_pos=vec4(merc_pos,ele,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;float opposite_merc_center=mod(u_merc_center.x+0.5,1.0);float dist_from_poles=(abs(mercatorY-0.5)*2.0);float range=0.1;v_split_fade=abs(opposite_merc_center-mercatorX);v_split_fade=clamp(1.0-v_split_fade,0.0,1.0);v_split_fade=max(smoothstep(1.0-range,1.0,dist_from_poles),max(smoothstep(1.0-range,1.0,v_split_fade),smoothstep(1.0-range,1.0,1.0-v_split_fade)));}vec3 globe_pos=latLngToECEF(latLng.xy);globe_pos+=normalize(globe_pos)*ele*GLOBE_UPSCALE;vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);world_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); #ifdef FOG v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); #endif #else float ele=0.0;vec2 decodedPos=vec2(a_pos); #ifdef ELEVATION_REFERENCE_GROUND vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;decodedPos=decomposedPosAndSkirt.xy;uv=decodedPos/8192.0;ele=elevation(decodedPos)-skirt; #else uv=vec2(a_texture_pos)/8192.0; #endif world_pos=vec4(decodedPos,(u_raster_elevation+ele),1.0); #ifdef FOG v_fog_pos=fog_position(decodedPos); #endif #endif float w=1.0+dot(uv*EXTENT,u_perspective_transform);gl_Position=u_matrix*world_pos*w; #endif v_pos0=uv;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;v_pos0=u_texture_offset.x+u_texture_offset.y*v_pos0;v_pos1=u_texture_offset.x+u_texture_offset.y*v_pos1; #ifdef ELEVATED float z=clamp(gl_Position.z/gl_Position.w,0.5,1.0);float zbias=max(0.00005,(pow(z,0.8)-z)*u_zbias_factor);gl_Position.z-=(gl_Position.w*zbias); #endif #ifdef RENDER_CUTOFF v_depth=gl_Position.z; #endif }`),rasterParticle:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform float u_fade_t;uniform float u_opacity;uniform highp float u_raster_elevation;in vec2 v_pos0;in vec2 v_pos1;uniform sampler2D u_image0;uniform sampler2D u_image1;void main() {vec4 color0,color1,color;color0=texture(u_image0,v_pos0);color1=texture(u_image1,v_pos1);if (color0.a > 0.0) color0.rgb/=color0.a;if (color1.a > 0.0) color1.rgb/=color1.a;color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 out_color=color.rgb; #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(vec4(out_color,1.0),1.0).rgb; #endif #ifdef FOG highp float fog_limit_high_meters=1000000.0;highp float fog_limit_low_meters=600000.0;float fog_limit=1.0-smoothstep(fog_limit_low_meters,fog_limit_high_meters,u_raster_elevation);out_color=fog_dither(fog_apply(out_color,v_fog_pos,fog_limit)); #endif glFragColor=vec4(out_color*color.a,color.a); #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" uniform mat4 u_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform mat3 u_grid_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_raster_elevation;uniform float u_zoom_transition;uniform vec2 u_merc_center; #define GLOBE_UPSCALE GLOBE_RADIUS/6371008.8 in ivec2 a_pos;in uvec2 a_texture_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {float w=1.0;vec2 uv; #ifdef PROJECTION_GLOBE_VIEW vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float mercatorX=mercatorXfromLng(latLng[1]);float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];float uvX=mercatorX*tiles-idx;float uvY=mercatorY*tiles-idy;uv=vec2(uvX,uvY);vec3 globe_pos=latLngToECEF(latLng.xy);globe_pos+=normalize(globe_pos)*u_raster_elevation*GLOBE_UPSCALE;vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {vec2 merc_pos=vec2(mercatorX,mercatorY);merc_world_pos=vec4(merc_pos,u_raster_elevation,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition)*w,w);gl_Position=u_matrix*interpolated_pos; #ifdef FOG v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); #endif #else uv=vec2(a_texture_pos)/8192.0;gl_Position=u_matrix*vec4(vec2(a_pos)*w,u_raster_elevation*w,w); #ifdef FOG v_fog_pos=fog_position(vec2(a_pos)); #endif #endif v_pos0=uv;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),rasterParticleDraw:Mn("uniform sampler2D u_color_ramp;in float v_particle_speed;void main() {glFragColor=texture(u_color_ramp,vec2(v_particle_speed,0.5));}",`#include "_prelude_raster_particle.glsl" in int a_index;uniform sampler2D u_particle_texture;uniform float u_particle_texture_side_len;uniform vec2 u_tile_offset;out float v_particle_speed;void main() {ivec2 pixel_coord=ivec2( mod(float(a_index),u_particle_texture_side_len),float(a_index)/u_particle_texture_side_len);vec4 pixel=texelFetch(u_particle_texture,pixel_coord,0);vec2 pos=unpack_pos_from_rgba(pixel)+u_tile_offset;vec2 tex_coord=fract(pos);vec2 velocity=lookup_velocity(tex_coord);if (velocity==INVALID_VELOCITY) {gl_Position=AWAY;v_particle_speed=0.0;} else {gl_Position=vec4(2.0*pos-1.0,0,1);v_particle_speed=length(velocity);}gl_PointSize=1.0;}`),rasterParticleTexture:Mn("uniform sampler2D u_texture;uniform float u_opacity;in vec2 v_tex_pos;void main() {vec4 color=texture(u_texture,v_tex_pos);glFragColor=vec4(floor(255.0*color*u_opacity)/255.0);}","in ivec2 a_pos;out vec2 v_tex_pos;void main() {vec2 uv=0.5*vec2(a_pos)+vec2(0.5);v_tex_pos=uv;gl_Position=vec4(a_pos,0.0,1.0);}"),rasterParticleUpdate:Mn(`#include "_prelude_raster_particle.glsl" uniform sampler2D u_particle_texture;uniform mediump float u_particle_texture_side_len;uniform mediump float u_speed_factor;uniform highp float u_reset_rate;uniform highp float u_rand_seed;in highp vec2 v_tex_coord;vec2 linearstep(vec2 edge0,vec2 edge1,vec2 x) {return clamp((x-edge0)/(edge1-edge0),vec2(0),vec2(1));}const highp vec3 rand_constants=vec3(12.9898,78.233,4375.85453);highp float rand(const highp vec2 co) {highp float t=dot(rand_constants.xy,co);return fract(sin(t)*(rand_constants.z+t));}void main() {ivec2 pixel_coord=ivec2(v_tex_coord*u_particle_texture_side_len);highp vec4 pixel=texelFetch(u_particle_texture,pixel_coord,0);highp vec2 pos=unpack_pos_from_rgba(pixel);highp vec2 velocity=lookup_velocity(clamp(pos,0.0,1.0));highp vec2 dp=velocity==INVALID_VELOCITY ? vec2(0) : velocity*u_speed_factor;pos=pos+dp;highp vec2 seed=(pos+v_tex_coord)*u_rand_seed;highp vec2 random_pos=vec2(rand(seed+1.3),rand(seed+2.1));highp vec2 persist_rate=pow( linearstep(vec2(-u_particle_pos_offset),vec2(0),pos)*linearstep(vec2(1.0+u_particle_pos_offset),vec2(1),pos),vec2(4) );highp vec2 per_frame_persist=pow(persist_rate,abs(dp)/u_particle_pos_offset);highp float drop_rate=1.0-per_frame_persist.x*per_frame_persist.y;drop_rate=any(greaterThanEqual(abs(pos-0.5),vec2(0.5+u_particle_pos_offset))) ? 1.0 : drop_rate;highp float drop=step(1.0-drop_rate-u_reset_rate,rand(seed));highp vec2 next_pos=mix(pos,random_pos,drop);glFragColor=pack_pos_to_rgba(next_pos);}`,"in ivec2 a_pos;out vec2 v_tex_coord;void main() {v_tex_coord=0.5*vec2(a_pos+ivec2(1));gl_Position=vec4(a_pos,0.0,1.0);}"),symbol:Mn(`#include "_prelude_lighting.glsl" #include "_prelude_shadow.fragment.glsl" #define SDF_PX 8.0 #define SDF 1.0 #define ICON 0.0 uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;uniform bool u_is_halo;uniform lowp float u_scale_factor; #ifdef ICON_TRANSITION uniform float u_icon_transition; #endif #ifdef COLOR_ADJUSTMENT uniform mat4 u_color_adj_mat; #endif #ifdef INDICATOR_CUTOUT in highp float v_z_offset; #else #ifdef RENDER_SHADOWS in highp float v_z_offset; #endif #endif in vec2 v_tex_a; #ifdef ICON_TRANSITION in vec2 v_tex_b; #endif in float v_draw_halo;in vec3 v_gamma_scale_size_fade_opacity; #ifdef RENDER_TEXT_AND_SYMBOL in float is_sdf;in vec2 v_tex_a_icon; #endif #ifdef RENDER_SHADOWS uniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth; #endif #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif #ifdef USE_PAINT_PROPERTIES_UBO in lowp float v_opacity; #ifdef RENDER_SDF in lowp vec4 v_fill_np_color;in lowp vec4 v_halo_np_color;in lowp float v_halo_width;in lowp float v_halo_blur; #endif #ifdef LIGHTING_3D_MODE in lowp float v_emissive_strength; #endif #else #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur #pragma mapbox: define lowp float emissive_strength #endif void main() { #ifdef USE_PAINT_PROPERTIES_UBO lowp float opacity=v_opacity;lowp vec4 fill_color=vec4(0.0);lowp vec4 halo_color=vec4(0.0);lowp float halo_width=0.0;lowp float halo_blur=0.0; #ifdef RENDER_SDF fill_color=vec4(v_fill_np_color.rgb*v_fill_np_color.a,v_fill_np_color.a);halo_color=vec4(v_halo_np_color.rgb*v_halo_np_color.a,v_halo_np_color.a);halo_width=v_halo_width;halo_blur=v_halo_blur; #endif lowp float emissive_strength=0.0; #ifdef LIGHTING_3D_MODE emissive_strength=v_emissive_strength; #endif #else #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur #pragma mapbox: initialize lowp float emissive_strength #endif vec4 out_color;float fade_opacity=v_gamma_scale_size_fade_opacity[2]; #ifdef RENDER_TEXT_AND_SYMBOL if (is_sdf==ICON) {vec2 tex_icon=v_tex_a_icon;lowp float alpha=opacity*fade_opacity;glFragColor=texture(u_texture_icon,tex_icon)*alpha; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif return;} #endif vec2 cutout_factors=vec2(0.0); #ifdef FEATURE_CUTOUT cutout_factors=get_cutout_factors(gl_FragCoord); #endif #ifdef RENDER_SDF float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_gamma_scale_size_fade_opacity.x;float size=v_gamma_scale_size_fade_opacity.y;float fontScale=u_is_text ? size/24.0 : size;out_color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;bool draw_halo=v_draw_halo > 0.0;if (draw_halo) {out_color=halo_color;gamma=(halo_blur*u_scale_factor*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width*u_scale_factor/fontScale)/SDF_PX;}lowp float dist=texture(u_texture,v_tex_a).r;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);out_color*=alpha; #else #ifdef ICON_TRANSITION vec4 a=texture(u_texture,v_tex_a)*(1.0-u_icon_transition);vec4 b=texture(u_texture,v_tex_b)*u_icon_transition;out_color=(a+b); #else out_color=texture(u_texture,v_tex_a); #endif #ifdef APPLY_LUT_ON_GPU out_color=applyLUT(u_lutTexture,out_color); #endif #ifdef COLOR_ADJUSTMENT out_color=u_color_adj_mat*out_color; #endif #endif out_color*=opacity*fade_opacity; #ifdef LIGHTING_3D_MODE out_color=apply_lighting_with_emission_ground(out_color,emissive_strength); #ifdef RENDER_SHADOWS float light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);light=mix(light,1.0,cutout_factors.y); #ifdef TERRAIN out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light); #else out_color.rgb*=mix(v_z_offset !=0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light); #endif #endif #endif #ifdef INDICATOR_CUTOUT out_color=applyCutout(out_color,v_z_offset); #endif #ifdef FEATURE_CUTOUT out_color=apply_feature_cutout(out_color,gl_FragCoord,cutout_factors.x); #endif glFragColor=out_color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_terrain.vertex.glsl" #include "_prelude_shadow.vertex.glsl" #define USING_APPEARANCE 1.0 in ivec4 a_pos_offset;in uvec4 a_tex_size;in ivec4 a_pixeloffset;in vec4 a_projected_pos;in uint a_fade_opacity; #ifdef Z_OFFSET in float a_auto_z_offset; #endif #ifdef PROJECTION_GLOBE_VIEW in ivec4 a_globe_anchor;in vec3 a_globe_normal; #endif #ifdef ICON_TRANSITION in uvec2 a_texb; #endif #ifdef OCCLUSION_QUERIES in float a_occlusion_query_opacity; #endif #ifdef ELEVATED_ROADS in vec3 a_x_axis;in vec3 a_y_axis;uniform float u_normal_scale; #endif #ifdef INDICATOR_CUTOUT out highp float v_z_offset; #else #ifdef RENDER_SHADOWS out highp float v_z_offset; #endif #endif uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_elevation_from_sea;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon;uniform bool u_is_halo; #ifdef PROJECTION_GLOBE_VIEW uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; #endif out vec2 v_tex_a; #ifdef ICON_TRANSITION out vec2 v_tex_b; #endif out float v_draw_halo;out vec3 v_gamma_scale_size_fade_opacity; #ifdef RENDER_TEXT_AND_SYMBOL out float is_sdf;out vec2 v_tex_a_icon; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth; #endif #ifdef USE_PAINT_PROPERTIES_UBO #ifndef MAX_UBO_SIZE_VEC4 #define MAX_UBO_SIZE_VEC4 1024u #endif #define SPP_HEADER_SIZE_VEC4 3u #define DWORDS_PER_VEC4 4u struct SymbolPaintProperties {vec4 fill_np_color;vec4 halo_np_color;float opacity;float halo_width;float halo_blur;float emissive_strength;float occlusion_opacity;float z_offset;vec2 translate;};struct PropertyType {bool isDataDriven;bool isZoomDependent;uint offsetDwords;};struct SymbolPropertyHeader {uint dataDrivenBlockSizeVec4;PropertyType fill_np_color;PropertyType halo_np_color;PropertyType opacity;PropertyType halo_width;PropertyType halo_blur;PropertyType emissive_strength;PropertyType occlusion_opacity;PropertyType z_offset;PropertyType translate;};uniform float u_zoom;uniform lowp vec4 u_spp_fill_np_color;uniform lowp vec4 u_spp_halo_np_color;uniform lowp float u_spp_opacity;uniform lowp float u_spp_halo_width;uniform lowp float u_spp_halo_blur;uniform lowp float u_spp_emissive_strength;uniform lowp float u_spp_occlusion_opacity;uniform lowp float u_spp_z_offset;uniform lowp vec2 u_spp_translate_rotation;in float a_feature_index;layout(std140) uniform SymbolPaintPropertiesHeaderUniform {uvec4 header[SPP_HEADER_SIZE_VEC4];} u_spp_header;layout(std140) uniform SymbolPaintPropertiesUniform {vec4 properties[MAX_UBO_SIZE_VEC4];} u_spp_properties;layout(std140) uniform SymbolPaintPropertiesIndexUniform {uvec4 block_indices[MAX_UBO_SIZE_VEC4];} u_spp_index;out lowp float v_opacity; #ifdef RENDER_SDF out lowp vec4 v_fill_np_color;out lowp vec4 v_halo_np_color;out lowp float v_halo_width;out lowp float v_halo_blur; #endif #ifdef LIGHTING_3D_MODE out lowp float v_emissive_strength; #endif PropertyType getPropertyType(uint propertyIndex,uint dataDrivenMask,uint zoomDependentMask,uint offsetDwords) {PropertyType type;type.isDataDriven=(dataDrivenMask & (1u << propertyIndex)) !=0u;type.isZoomDependent=(zoomDependentMask & (1u << propertyIndex)) !=0u;type.offsetDwords=offsetDwords;return type;}SymbolPropertyHeader readSymbolPropertiesHeader() {SymbolPropertyHeader header;uint dataDrivenMask=u_spp_header.header[0][0];uint zoomDependentMask=u_spp_header.header[0][1];header.dataDrivenBlockSizeVec4=u_spp_header.header[0][2];header.fill_np_color =getPropertyType(0u,dataDrivenMask,zoomDependentMask,u_spp_header.header[0][3]);header.halo_np_color =getPropertyType(1u,dataDrivenMask,zoomDependentMask,u_spp_header.header[1][0]);header.opacity =getPropertyType(2u,dataDrivenMask,zoomDependentMask,u_spp_header.header[1][1]);header.halo_width =getPropertyType(3u,dataDrivenMask,zoomDependentMask,u_spp_header.header[1][2]);header.halo_blur =getPropertyType(4u,dataDrivenMask,zoomDependentMask,u_spp_header.header[1][3]);header.emissive_strength =getPropertyType(5u,dataDrivenMask,zoomDependentMask,u_spp_header.header[2][0]);header.occlusion_opacity =getPropertyType(6u,dataDrivenMask,zoomDependentMask,u_spp_header.header[2][1]);header.z_offset =getPropertyType(7u,dataDrivenMask,zoomDependentMask,u_spp_header.header[2][2]);header.translate =getPropertyType(8u,dataDrivenMask,zoomDependentMask,u_spp_header.header[2][3]);return header;}uint uvec4At(uvec4 v,uint index) {return (index==0u) ? v.x : (index==1u) ? v.y : (index==2u) ? v.z : v.w;}float vec4At(vec4 v,uint index) {return (index==0u) ? v.x : (index==1u) ? v.y : (index==2u) ? v.z : v.w;}vec4 readVec4(uint baseOffsetVec4,uint propertyOffsetDwords) {return u_spp_properties.properties[baseOffsetVec4+propertyOffsetDwords/DWORDS_PER_VEC4];}float readFloat(vec4 slot,uint propertyOffsetDwords) {return slot[propertyOffsetDwords % DWORDS_PER_VEC4];}uint readUint(uvec4 slot,uint offset) {return slot[offset % DWORDS_PER_VEC4];}vec2 readVec2(vec4 slot,uint propertyOffsetDwords) {float x=vec4At(slot,propertyOffsetDwords % DWORDS_PER_VEC4);float y=vec4At(slot,propertyOffsetDwords % DWORDS_PER_VEC4+1u);return vec2(x,y);}uint getDataDrivenBlockOffsetVec4(uint dataDrivenBlockSizeVec4) {uint featureIndex=uint(a_feature_index);uvec4 slot=u_spp_index.block_indices[featureIndex/DWORDS_PER_VEC4];uint blockIndex=uvec4At(slot,featureIndex % DWORDS_PER_VEC4);return blockIndex*dataDrivenBlockSizeVec4;}vec4 readColorProperty(PropertyType propertyType,uint dataDrivenBlockSizeVec4) {uint blockOffsetVec4=getDataDrivenBlockOffsetVec4(dataDrivenBlockSizeVec4);vec4 color=readVec4(blockOffsetVec4,propertyType.offsetDwords);if (propertyType.isZoomDependent) {color=unpack_mix_color(color,u_zoom);} else {vec2 packedColor=readVec2(color,propertyType.offsetDwords);color=decode_color(packedColor);}return color;}vec2 readVec2Property(PropertyType propertyType,uint dataDrivenBlockSizeVec4) {uint blockOffsetVec4=getDataDrivenBlockOffsetVec4(dataDrivenBlockSizeVec4);vec4 slot=readVec4(blockOffsetVec4,propertyType.offsetDwords);if (propertyType.isZoomDependent) {vec2 minVal=slot.xy;vec2 maxVal=slot.zw;return mix(minVal,maxVal,u_zoom);}return readVec2(slot,propertyType.offsetDwords);}float readFloatProperty(PropertyType propertyType,uint dataDrivenBlockSizeVec4) {uint blockOffsetVec4=getDataDrivenBlockOffsetVec4(dataDrivenBlockSizeVec4);vec4 slot=readVec4(blockOffsetVec4,propertyType.offsetDwords);float value;if (propertyType.isZoomDependent) {vec2 packedValues=readVec2(slot,propertyType.offsetDwords);value=unpack_mix_vec2(packedValues,u_zoom);} else {value=readFloat(slot,propertyType.offsetDwords);}return value;}SymbolPaintProperties readSymbolPaintProperties() {SymbolPropertyHeader header=readSymbolPropertiesHeader();uint sizeVec4=header.dataDrivenBlockSizeVec4;SymbolPaintProperties props;props.fill_np_color =header.fill_np_color.isDataDriven ? readColorProperty(header.fill_np_color,sizeVec4) : u_spp_fill_np_color;props.halo_np_color =header.halo_np_color.isDataDriven ? readColorProperty(header.halo_np_color,sizeVec4) : u_spp_halo_np_color;props.opacity =header.opacity.isDataDriven ? readFloatProperty(header.opacity,sizeVec4) : u_spp_opacity;props.halo_width =header.halo_width.isDataDriven ? readFloatProperty(header.halo_width,sizeVec4) : u_spp_halo_width;props.halo_blur =header.halo_blur.isDataDriven ? readFloatProperty(header.halo_blur,sizeVec4) : u_spp_halo_blur;props.emissive_strength =header.emissive_strength.isDataDriven ? readFloatProperty(header.emissive_strength,sizeVec4) : u_spp_emissive_strength;props.occlusion_opacity =header.occlusion_opacity.isDataDriven ? readFloatProperty(header.occlusion_opacity,sizeVec4) : u_spp_occlusion_opacity;props.z_offset =header.z_offset.isDataDriven ? readFloatProperty(header.z_offset,sizeVec4) : u_spp_z_offset;props.translate =header.translate.isDataDriven ? readVec2Property(header.translate,sizeVec4) : vec2(0.0);return props;} #else #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur #pragma mapbox: define lowp float emissive_strength #pragma mapbox: define lowp float occlusion_opacity #pragma mapbox: define lowp float z_offset #endif vec2 unpack_opacity(uint packedOpacity) {return vec2(float(packedOpacity/2u)/127.0,float(packedOpacity & 1u));}void main() { #ifdef USE_PAINT_PROPERTIES_UBO SymbolPaintProperties paint_properties=readSymbolPaintProperties();lowp float opacity=paint_properties.opacity;v_opacity=opacity; #ifdef RENDER_SDF v_fill_np_color=paint_properties.fill_np_color;v_halo_np_color=paint_properties.halo_np_color;v_halo_width=paint_properties.halo_width;v_halo_blur=paint_properties.halo_blur; #endif #ifdef LIGHTING_3D_MODE v_emissive_strength=paint_properties.emissive_strength; #endif lowp float occlusion_opacity=paint_properties.occlusion_opacity;lowp float z_offset=paint_properties.z_offset; #else #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur #pragma mapbox: initialize lowp float emissive_strength #pragma mapbox: initialize lowp float occlusion_opacity #pragma mapbox: initialize lowp float z_offset #endif vec2 a_pos=vec2(a_pos_offset.xy);vec2 a_offset=vec2(a_pos_offset.zw);vec2 a_tex=vec2(a_tex_size.xy);vec2 a_size=vec2(a_tex_size.zw);float a_size_min=floor(a_size[0]*0.5);float a_size_max= floor(a_size[1]*0.5);float a_apperance=a_size[1]-2.0*a_size_max;vec2 a_pxoffset=vec2(a_pixeloffset.xy);vec2 a_min_font_scale=vec2(a_pixeloffset.zw)/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (a_apperance==USING_APPEARANCE) {size=a_size_max/128.0;} else if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size_max,u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;float e=u_elevation_from_sea ? z_offset : z_offset+elevation(tile_anchor); #ifdef Z_OFFSET e+=a_auto_z_offset; #endif vec3 h=elevationVector(tile_anchor)*e;float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;vec3 world_pos_globe; #ifdef PROJECTION_GLOBE_VIEW mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos_globe=vec3(a_globe_anchor)+h;world_pos=mix_globe_mercator(world_pos_globe,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; #else world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; #endif vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( 0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point;vec2 a; #ifdef PROJECTION_GLOBE_VIEW vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(vec3(a_globe_anchor)+displacement,1);vec4 projected_point_globe=u_matrix*vec4(world_pos_globe,1);a=projected_point_globe.xy/projected_point_globe.w; #else offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);a=projected_point.xy/projected_point.w; #endif vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; #ifdef PROJECTION_GLOBE_VIEW #ifdef PROJECTED_POS_ON_VIEWPORT projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xyz+h,1.0); #else vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz,mercator_pos,u_zoom_transition)+h;projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); #endif #else projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); #endif highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); #ifdef TERRAIN #ifdef PITCH_WITH_MAP_TERRAIN vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); #endif #endif #ifdef Z_OFFSET z+=u_pitch_with_map ? a_auto_z_offset+z_offset : 0.0; #else z+=u_pitch_with_map ? z_offset : 0.0; #endif float occlusion_fade=globe_occlusion_fade;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float out_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change)); #ifdef DEPTH_OCCLUSION float depth_occlusion=occlusionFadeMultiSample(projected_point);float depth_occlusion_multplier=mix(occlusion_opacity,1.0,depth_occlusion);out_fade_opacity*=depth_occlusion_multplier; #endif #ifdef OCCLUSION_QUERIES float occludedFadeMultiplier=mix(occlusion_opacity,1.0,a_occlusion_query_opacity);out_fade_opacity*=occludedFadeMultiplier; #endif #ifdef Z_TEST_OCCLUSION out_fade_opacity*=occlusion_opacity; #endif float alpha=opacity*out_fade_opacity;float hidden=float(alpha==0.0 || projected_point.w <=0.0 || occlusion_fade==0.0);vec3 pos; #ifdef PROJECTION_GLOBE_VIEW vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);pos=projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y; #else #ifdef ELEVATED_ROADS vec3 xAxis=vec3(a_x_axis.xy,a_x_axis.z*u_normal_scale);vec3 yAxis=vec3(a_y_axis.xy,a_y_axis.z*u_normal_scale);pos=projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y; #else pos=vec3(projected_pos.xy/projected_pos.w+offset,z); #endif #endif gl_Position=mix(u_coord_matrix*vec4(pos,1.0),AWAY,hidden); #ifdef USE_PAINT_PROPERTIES_UBO {vec2 tr=paint_properties.translate;vec2 rotated_tr=vec2( u_spp_translate_rotation.x*tr.x-u_spp_translate_rotation.y*tr.y,u_spp_translate_rotation.y*tr.x+u_spp_translate_rotation.x*tr.y );gl_Position.xy+=(u_coord_matrix*vec4(rotated_tr,0.0,0.0)).xy;} #endif float gamma_scale=gl_Position.w;v_draw_halo=(u_is_halo && float(gl_InstanceID)==0.0) ? 1.0 : 0.0;v_gamma_scale_size_fade_opacity=vec3(gamma_scale,size,out_fade_opacity);v_tex_a=a_tex/u_texsize; #ifdef RENDER_TEXT_AND_SYMBOL is_sdf=a_size[0]-2.0*a_size_min;v_tex_a_icon=a_tex/u_texsize_icon; #endif #ifdef ICON_TRANSITION v_tex_b=vec2(a_texb)/u_texsize; #endif #ifdef RENDER_SHADOWS vec4 shd_pos=u_inv_matrix*vec4(pos,1.0);vec3 shd_pos0=shd_pos.xyz;vec3 shd_pos1=shd_pos.xyz; #ifdef NORMAL_OFFSET vec3 shd_pos_offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=shd_pos_offset*shadow_normal_offset_multiplier0();shd_pos1+=shd_pos_offset*shadow_normal_offset_multiplier1(); #endif v_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w; #endif #ifdef INDICATOR_CUTOUT v_z_offset=e; #else #ifdef RENDER_SHADOWS v_z_offset=e; #endif #endif }`),terrainRaster:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_shadow.fragment.glsl" #include "_prelude_lighting.glsl" uniform sampler2D u_image0; #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS uniform sampler2D u_image1;uniform float u_emissive_texture_available; #endif in vec2 v_pos0; #ifdef FOG in float v_fog_opacity; #endif #ifdef RENDER_SHADOWS in vec4 v_pos_light_view_0;in vec4 v_pos_light_view_1; #endif uniform vec3 u_ground_shadow_factor;void main() {vec4 image_color=texture(u_image0,v_pos0);vec4 color; #ifdef LIGHTING_3D_MODE const vec3 normal=vec3(0.0,0.0,1.0); #ifdef RENDER_SHADOWS float cutoffOpacity=1.0; #ifdef RENDER_CUTOFF cutoffOpacity=cutoff_opacity(u_cutoff_params,1.0/gl_FragCoord.w); #endif #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS float emissive_strength=u_emissive_texture_available > 0.5 ? texture(u_image1,v_pos0).r : image_color.a;vec3 unlit_base=image_color.rgb*(1.0-emissive_strength);vec3 emissive_base=image_color.rgb*emissive_strength;float ndotl=u_shadow_direction.z;float occlusion=ndotl < 0.0 ? 1.0 : shadow_occlusion(v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w,0.0);ndotl=max(0.0,ndotl);vec3 lit=apply_lighting(unlit_base,normal,mix(1.0,(1.0-(u_shadow_intensity*occlusion))*ndotl,cutoffOpacity));vec3 emissive=compute_emissive_draped(emissive_base,1.0-u_shadow_intensity,occlusion,u_ground_shadow_factor);color.rgb=lit+emissive;color.a=1.0; #else float lighting_factor=shadowed_light_factor_normal_unbiased(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);color=apply_lighting(image_color,normal,mix(1.0,lighting_factor,cutoffOpacity)); #endif #else float lighting_factor=u_lighting_directional_dir.z;color=apply_lighting(image_color,normal,lighting_factor); #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS float emissive_strength=u_emissive_texture_available > 0.5 ? texture(u_image1,v_pos0).r : image_color.a;color.rgb=mix(color.rgb,image_color.rgb,emissive_strength);color.a=1.0; #endif #endif #else color=image_color; #endif #ifdef FOG #ifdef ZERO_EXAGGERATION color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); #else color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); #endif #endif glFragColor=color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" uniform mat4 u_matrix;uniform float u_skirt_height;in ivec2 a_pos;out vec2 v_pos0; #ifdef FOG out float v_fog_opacity; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out vec4 v_pos_light_view_0;out vec4 v_pos_light_view_1; #endif void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height;v_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); #ifdef FOG #ifdef ZERO_EXAGGERATION v_fog_pos=fog_position(decodedPos); #else v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); #endif #endif #ifdef RENDER_SHADOWS vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.); #endif }`),terrainDepth:Mn("precision highp float;in float v_depth;void main() {glFragColor=pack_depth(v_depth);}",`#include "_prelude_terrain.vertex.glsl" uniform mat4 u_matrix;in ivec2 a_pos;out float v_depth;void main() {float elevation=elevation(vec2(a_pos));gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}`),skybox:Mn(`#include "_prelude_fog.fragment.glsl" in lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=texture(u_cubemap,uv).rgb; #ifdef FOG sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); #endif sky_color+=0.1*sun_disk(v_uv,u_sun_direction);glFragColor=vec4(sky_color*u_opacity,u_opacity); #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif }`,Ix),skyboxGradient:Mn(`#include "_prelude_fog.fragment.glsl" in highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture(u_color_ramp,vec2(progress,0.5)); #ifdef FOG color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; #endif color*=u_opacity;glFragColor=color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif }`,Ix),skyboxCapture:Mn(` in highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;precision highp float; #define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) #define BETA_M vec3(21e-6,21e-6,21e-6) #define MIE_G 0.76 #define DENSITY_HEIGHT_SCALE_R 8000.0 #define DENSITY_HEIGHT_SCALE_M 1200.0 #define PLANET_RADIUS 6360e3 #define ATMOSPHERE_RADIUS 6420e3 #define SAMPLE_STEPS 10 #define DENSITY_STEPS 4 float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;glFragColor=vec4(color,1.0);}`,"in highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;out highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_lighting.glsl" uniform sampler2D u_image0; #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS uniform sampler2D u_image1;uniform float u_emissive_texture_available; #endif uniform float u_far_z_cutoff;in vec2 v_pos0; #ifndef FOG uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; #endif void main() {vec4 color; #ifdef CUSTOM_ANTIALIASING highp vec2 uv=gl_FragCoord.xy/u_viewport; #ifdef FLIP_Y uv.y=1.0-uv.y; #endif highp vec3 ray_dir=mix( mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;highp float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);highp float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture(u_image0,v_pos0); #ifdef LIGHTING_3D_MODE #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS float emissive_strength=u_emissive_texture_available > 0.5 ? texture(u_image1,v_pos0).r : raster.a;raster=apply_lighting_with_emission_ground(raster,emissive_strength);color=vec4(clamp(raster.rgb,vec3(0),vec3(1))*antialias,antialias); #else raster=apply_lighting_ground(raster);color=vec4(raster.rgb*antialias,raster.a*antialias); #endif #else color=vec4(raster.rgb*antialias,raster.a*antialias); #endif #else color=texture(u_image0,v_pos0); #ifdef LIGHTING_3D_MODE #ifdef LIGHTING_3D_ALPHA_EMISSIVENESS float emissive_strength=u_emissive_texture_available > 0.5 ? texture(u_image1,v_pos0).r : color.a;color=apply_lighting_with_emission_ground(color,emissive_strength);color.a=1.0; #else color=apply_lighting_ground(color); #endif #endif #endif #ifdef FOG color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); #endif color*=1.0-step(u_far_z_cutoff,1.0/gl_FragCoord.w);glFragColor=color; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_terrain.vertex.glsl" uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height; #ifdef GLOBE_POLES in vec3 a_globe_pos;in vec2 a_uv; #else in ivec2 a_pos; #endif out vec2 v_pos0;void main() { #ifdef GLOBE_POLES vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; #else float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); #endif v_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale; #ifdef GLOBE_POLES vec3 up_vector=globe_derived_up_vector; #else vec3 up_vector=elevationVector(tile_pos); #endif float height=elevation(tile_pos);globe_pos+=up_vector*height; #ifndef GLOBE_POLES globe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z; #endif #ifdef GLOBE_POLES vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); #else vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); #endif gl_Position=u_proj_matrix*interpolated_pos; #ifdef FOG v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); #endif }`),globeAtmosphere:Mn(`#include "_prelude_fog.fragment.glsl" uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec4 u_atmosphere_fog_color;uniform vec4 u_high_color;uniform vec4 u_space_color;uniform float u_horizon_angle;in highp vec3 v_ray_dir;in highp vec3 v_horizon_dir;void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir; #ifdef PROJECTION_GLOBE_VIEW globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) { #ifdef ALPHA_PASS glFragColor=vec4(0,0,0,0);return; #else #ifdef NATIVE glFragColor=vec4(1,1,1,1); #else glFragColor=vec4(0,0,0,1); #endif return; #endif } #endif highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? 0.0 : max(acos(clamp(dot(dir,horizon_dir),-1.0,1.0)),0.0);float horizon_angle; #ifdef PROJECTION_GLOBE_VIEW highp vec3 closest_point=globe_pos_dot_dir*dir;highp float closest_point_to_center=length(closest_point-u_globe_pos);highp float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ? PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); #else horizon_angle=horizon_angle_mercator; #endif horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_atmosphere_fog_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_atmosphere_fog_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb; #ifdef ALPHA_PASS float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);glFragColor=vec4(1.0,1.0,1.0,a); #else vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c=c2;glFragColor=vec4(c*t,t); #endif }`,`in vec3 a_pos;in vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;out highp vec3 v_ray_dir;out highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`),model:Mn(`#include "_prelude_fog.fragment.glsl" #include "_prelude_shadow.fragment.glsl" #include "_prelude_lighting.glsl" uniform float u_opacity; #ifdef DITHERED_DISCARD uniform float u_dithered_discard_threshold; #endif uniform vec3 u_lightcolor;uniform vec3 u_lightpos;uniform float u_lightintensity;uniform vec4 u_baseColorFactor;uniform vec4 u_emissiveFactor;uniform float u_metallicFactor;uniform float u_roughnessFactor;uniform float u_emissive_strength;in highp vec4 v_position_height;in lowp vec4 v_color_mix; #ifdef RENDER_SHADOWS in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in float v_depth_shadows; #endif #ifdef OCCLUSION_TEXTURE_TRANSFORM uniform vec4 u_occlusionTextureTransform; #endif #pragma mapbox: define-attribute highp vec3 normal_3f #pragma mapbox: define-attribute highp vec3 color_3f #pragma mapbox: define-attribute highp vec4 color_4f #pragma mapbox: define-attribute highp vec2 uv_2f #pragma mapbox: initialize-attribute highp vec3 normal_3f #pragma mapbox: initialize-attribute highp vec3 color_3f #pragma mapbox: initialize-attribute highp vec4 color_4f #pragma mapbox: initialize-attribute highp vec2 uv_2f #ifdef HAS_ATTRIBUTE_a_pbr in lowp vec4 v_roughness_metallic_emissive_alpha;in mediump vec4 v_height_based_emission_params; #endif #ifdef HAS_TEXTURE_u_baseColorTexture uniform sampler2D u_baseColorTexture;uniform bool u_baseTextureIsAlpha;uniform bool u_alphaMask;uniform float u_alphaCutoff; #endif #ifdef HAS_TEXTURE_u_metallicRoughnessTexture uniform sampler2D u_metallicRoughnessTexture; #endif #ifdef HAS_TEXTURE_u_occlusionTexture uniform sampler2D u_occlusionTexture;uniform float u_aoIntensity; #endif #ifdef HAS_TEXTURE_u_normalTexture uniform sampler2D u_normalTexture; #endif #ifdef HAS_TEXTURE_u_emissionTexture uniform sampler2D u_emissionTexture; #endif #ifdef APPLY_LUT_ON_GPU uniform highp sampler3D u_lutTexture; #endif #ifdef TERRAIN_FRAGMENT_OCCLUSION in highp float v_depth;uniform highp sampler2D u_depthTexture;uniform highp vec2 u_inv_depth_size;uniform highp vec2 u_depth_range_unpack; #ifdef DEPTH_D24 highp float unpack_depth(highp float depth) {return depth*u_depth_range_unpack.x+u_depth_range_unpack.y;} #else highp float unpack_depth_rgba(highp vec4 rgba_depth) {const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;} #endif bool isOccluded() {highp vec2 coord=gl_FragCoord.xy*u_inv_depth_size; #ifdef FLIP_Y coord.y=1.0-coord.y; #endif #ifdef DEPTH_D24 highp float depth=unpack_depth(texture(u_depthTexture,coord).r); #else highp float depth=unpack_depth_rgba(texture(u_depthTexture,coord)); #endif return v_depth > depth+0.0005;} #endif #define saturate(_x) clamp(_x,0.,1.) vec3 linearTosRGB(vec3 color) {return pow(color,vec3(1./2.2));}vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}float calculate_NdotL(vec3 normal,vec3 lightDir) {const float ext=0.70710678118;return (clamp(dot(normal,lightDir),-ext,1.0)+ext)/(1.0+ext);}vec3 getDiffuseShadedColor(vec3 albedo,vec3 normal,vec3 lightDir,vec3 lightColor) { #ifdef LIGHTING_3D_MODE vec3 transformed_normal=vec3(-normal.xy,normal.z);float lighting_factor; #ifdef RENDER_SHADOWS lighting_factor=shadowed_light_factor_normal(transformed_normal,v_pos_light_view_0,v_pos_light_view_1,v_depth_shadows); #else lighting_factor=saturate(dot(transformed_normal,u_lighting_directional_dir)); #endif return apply_lighting(albedo,transformed_normal,lighting_factor); #else vec3 n=normal;float colorvalue=((albedo.x*0.2126)+(albedo.y*0.7152))+(albedo.z*0.0722);vec3 c=vec3(0.03,0.03,0.03);float directional=clamp(dot(n,vec3(lightDir)),0.0,1.0);directional=mix(1.0-u_lightintensity,max((1.0-colorvalue)+u_lightintensity,1.0),directional);vec3 c3=c+clamp((albedo*directional)*lightColor,mix(vec3(0.0),vec3(0.3),vec3(1.0)-lightColor),vec3(1.0));return c3; #endif }vec4 getBaseColor() {vec4 albedo=u_baseColorFactor; #ifdef HAS_ATTRIBUTE_a_color_3f albedo*=vec4(color_3f,1.0); #endif #ifdef HAS_ATTRIBUTE_a_pbr #else #ifdef HAS_ATTRIBUTE_a_color_4f albedo*=color_4f; #endif #endif #if defined (HAS_TEXTURE_u_baseColorTexture) && defined (HAS_ATTRIBUTE_a_uv_2f) vec4 texColor=texture(u_baseColorTexture,uv_2f);if(u_alphaMask) {if (texColor.w < u_alphaCutoff) {discard;}} #ifdef UNPREMULT_TEXTURE_IN_SHADER if(texColor.w > 0.0) {texColor.rgb/=texColor.w;}texColor.w=1.0; #endif if(u_baseTextureIsAlpha) {if (texColor.r < 0.5) {discard;}} else {texColor.rgb=sRGBToLinear(texColor.rgb);albedo*=texColor;} #endif vec4 color=vec4(mix(albedo.rgb,v_color_mix.rgb,v_color_mix.a),albedo.a); #ifdef APPLY_LUT_ON_GPU color=applyLUT(u_lutTexture,color); #endif return color;}highp mat3 cotangentFrame(highp vec3 N,highp vec3 p,highp vec2 uv ) { #ifdef HAS_TEXTURE_u_normalTexture highp vec3 dp1=vec3(dFdx(p.x),dFdx(p.y),dFdx(p.z));highp vec3 dp2=vec3(dFdy(p.x),dFdy(p.y),dFdy(p.z));highp vec2 duv1=vec2(dFdx(uv.x),dFdx(uv.y));highp vec2 duv2=vec2(dFdy(uv.x),dFdy(uv.y));highp vec3 dp2perp=cross( dp2,N );highp vec3 dp1perp=cross( N,dp1 );highp vec3 T=dp2perp*duv1.x+dp1perp*duv2.x;highp vec3 B=dp2perp*duv1.y+dp1perp*duv2.y; #ifdef FLIP_Y T=-T;B=-B; #endif highp float lengthT=dot(T,T);highp float lengthB=dot(B,B);highp float maxLength=max(lengthT,lengthB);highp float invmax=inversesqrt( maxLength );highp mat3 res=mat3( T*invmax,B*invmax,N );return res; #else return mat3(1.0); #endif }highp vec3 getNormal(){highp vec3 n; #ifdef HAS_ATTRIBUTE_a_normal_3f n=normalize(normal_3f); #else highp vec3 fdx=vec3(dFdx(v_position_height.x),dFdx(v_position_height.y),dFdx(v_position_height.z));highp vec3 fdy=vec3(dFdy(v_position_height.x),dFdy(v_position_height.y),dFdy(v_position_height.z)); #ifdef FLIP_Y n=normalize(cross(fdx,fdy)); #else n=normalize(cross(fdx,fdy))*-1.0; #endif #endif #if defined(HAS_TEXTURE_u_normalTexture) && defined(HAS_ATTRIBUTE_a_uv_2f) vec3 nMap=texture( u_normalTexture,uv_2f).xyz;nMap=normalize(2.0*nMap-vec3(1.0));highp vec3 v=normalize(-v_position_height.xyz);highp mat3 TBN=cotangentFrame(n,v,uv_2f);n=normalize(TBN*nMap); #endif return n;}struct Material {float perceptualRoughness;float alphaRoughness;float metallic;vec3 f90;vec4 baseColor;vec3 diffuseColor;vec3 specularColor;highp vec3 normal;};Material getPBRMaterial() {Material mat;mat.baseColor=getBaseColor();mat.perceptualRoughness=u_roughnessFactor;mat.metallic=u_metallicFactor; #ifdef HAS_ATTRIBUTE_a_pbr mat.perceptualRoughness=v_roughness_metallic_emissive_alpha.x;mat.metallic=v_roughness_metallic_emissive_alpha.y;mat.baseColor.w*=v_roughness_metallic_emissive_alpha.w; #endif #if defined(HAS_TEXTURE_u_metallicRoughnessTexture) && defined(HAS_ATTRIBUTE_a_uv_2f) vec4 mrSample=texture(u_metallicRoughnessTexture,uv_2f);mat.perceptualRoughness*=mrSample.g;mat.metallic*=mrSample.b; #endif const float c_minRoughness=0.04;mat.perceptualRoughness=clamp(mat.perceptualRoughness,c_minRoughness,1.0);mat.metallic=saturate(mat.metallic);mat.alphaRoughness=mat.perceptualRoughness*mat.perceptualRoughness;const vec3 f0=vec3(0.04);mat.diffuseColor=mat.baseColor.rgb*(vec3(1.0)-f0);mat.diffuseColor*=1.0-mat.metallic;mat.specularColor=mix(f0,mat.baseColor.rgb,mat.metallic);highp float reflectance=max(max(mat.specularColor.r,mat.specularColor.g),mat.specularColor.b);highp float reflectance90=saturate(reflectance*25.0);mat.f90=vec3(reflectance90);mat.normal=getNormal();return mat;}float V_GGX(float NdotL,float NdotV,float roughness) {float a2=roughness*roughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-a2)+a2);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-a2)+a2);return 0.5/(GGXV+GGXL);}float V_GGXFast(float NdotL,float NdotV,float roughness) {float a=roughness;float GGXV=NdotL*(NdotV*(1.0-a)+a);float GGXL=NdotV*(NdotL*(1.0-a)+a);return 0.5/(GGXV+GGXL);}vec3 F_Schlick(vec3 specularColor,vec3 f90,float VdotH) {return specularColor+(f90-specularColor)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}vec3 F_SchlickFast(vec3 specularColor,float VdotH) {float x=1.0-VdotH;float x4=x*x*x*x;return specularColor+(1.0-specularColor)*x4*x;}float D_GGX(highp float NdotH,float alphaRoughness) {highp float a4=alphaRoughness*alphaRoughness;highp float f=(NdotH*a4-NdotH)*NdotH+1.0;return a4/(PI*f*f);}vec3 diffuseBurley(Material mat,float LdotH,float NdotL,float NdotV) {float f90=2.0*LdotH*LdotH*mat.alphaRoughness-0.5;return (mat.diffuseColor/PI)*(1.0+f90*pow((1.0-NdotL),5.0))*(1.0+f90*pow((1.0-NdotV),5.0));}vec3 diffuseLambertian(Material mat) { #ifdef LIGHTING_3D_MODE return mat.diffuseColor; #else return mat.diffuseColor/PI; #endif }vec3 EnvBRDFApprox(vec3 specularColor,float roughness,highp float NdotV) {vec4 c0=vec4(-1,-0.0275,-0.572,0.022);vec4 c1=vec4(1,0.0425,1.04,-0.04);highp vec4 r=roughness*c0+c1;highp float a004=min(r.x*r.x,exp2(-9.28*NdotV))*r.x+r.y;vec2 AB=vec2(-1.04,1.04)*a004+r.zw;return specularColor*AB.x+AB.y;}vec3 computeIndirectLightContribution(Material mat,float NdotV,vec3 normal) {vec3 env_light=vec3(0.65,0.65,0.65); #ifdef LIGHTING_3D_MODE float ambient_factor=calculate_ambient_directional_factor(normal);env_light=u_lighting_ambient_color*ambient_factor; #endif vec3 envBRDF=EnvBRDFApprox(mat.specularColor,mat.perceptualRoughness,NdotV);vec3 indirectSpecular= envBRDF*env_light;vec3 indirectDiffuse=mat.diffuseColor*env_light;return indirectSpecular+indirectDiffuse;}vec3 computeLightContribution(Material mat,vec3 lightPosition,vec3 lightColor) {highp vec3 n=mat.normal;highp vec3 v=normalize(-v_position_height.xyz);highp vec3 l=normalize(lightPosition);highp vec3 h=normalize(v+l);float NdotV=clamp(abs(dot(n,v)),0.001,1.0);float NdotL=saturate(dot(n,l));highp float NdotH=saturate(dot(n,h));float VdotH=saturate(dot(v,h));vec3 f=F_SchlickFast(mat.specularColor,VdotH);float g=V_GGXFast(NdotL,NdotV,mat.alphaRoughness);float d=D_GGX(NdotH,mat.alphaRoughness);vec3 diffuseTerm=(1.0-f)*diffuseLambertian(mat);vec3 specularTerm=f*g*d;vec3 transformed_normal=vec3(-n.xy,n.z);float lighting_factor; #ifdef RENDER_SHADOWS lighting_factor=shadowed_light_factor_normal(transformed_normal,v_pos_light_view_0,v_pos_light_view_1,v_depth_shadows); #else lighting_factor=NdotL; #endif vec3 directLightColor=(specularTerm+diffuseTerm)*lighting_factor*lightColor;vec3 indirectLightColor=computeIndirectLightContribution(mat,NdotV,transformed_normal);vec3 color=(saturate(directLightColor)+indirectLightColor);float intensityFactor=1.0; #if !defined(LIGHTING_3D_MODE) const vec3 luminosityFactor=vec3(0.2126,0.7152,0.0722);float luminance=dot(diffuseTerm,luminosityFactor);intensityFactor=mix((1.0-u_lightintensity),max((1.0-luminance+u_lightintensity),1.0),NdotL); #endif color*=intensityFactor;return color;}void main() { #ifdef TERRAIN_FRAGMENT_OCCLUSION if (isOccluded()) {discard;} #endif vec3 lightDir=u_lightpos;vec3 lightColor=u_lightcolor; #ifdef LIGHTING_3D_MODE lightDir=u_lighting_directional_dir;lightDir.xy=-lightDir.xy;lightColor=u_lighting_directional_color; #endif vec4 finalColor; #ifdef DIFFUSE_SHADED vec3 N=getNormal();vec3 baseColor=getBaseColor().rgb;vec3 diffuse=getDiffuseShadedColor(baseColor,N,lightDir,lightColor); #ifdef HAS_TEXTURE_u_occlusionTexture float ao=(texture(u_occlusionTexture,uv_2f).r-1.0)*u_aoIntensity+1.0;diffuse*=ao; #endif finalColor=vec4(mix(diffuse,baseColor,u_emissive_strength),1.0)*u_opacity; #else Material mat=getPBRMaterial();vec3 color=computeLightContribution(mat,lightDir,lightColor);float ao=1.0; #if defined (HAS_TEXTURE_u_occlusionTexture) && defined(HAS_ATTRIBUTE_a_uv_2f) #ifdef OCCLUSION_TEXTURE_TRANSFORM vec2 uv=uv_2f.xy*u_occlusionTextureTransform.zw+u_occlusionTextureTransform.xy; #else vec2 uv=uv_2f; #endif ao=(texture(u_occlusionTexture,uv).x-1.0)*u_aoIntensity+1.0;color*=ao; #endif vec4 emissive=u_emissiveFactor; #if defined(HAS_TEXTURE_u_emissionTexture) && defined(HAS_ATTRIBUTE_a_uv_2f) emissive.rgb*=sRGBToLinear(texture(u_emissionTexture,uv_2f).rgb); #endif #ifdef APPLY_LUT_ON_GPU float emissiveFactorLength=max(length(u_emissiveFactor.rgb),0.001);emissive.rgb=sRGBToLinear(applyLUT(u_lutTexture,linearTosRGB(emissive.rgb/emissiveFactorLength).rbg))*emissiveFactorLength; #endif color+=emissive.rgb;float opacity=mat.baseColor.w*u_opacity; #ifdef HAS_ATTRIBUTE_a_pbr float resEmission=v_roughness_metallic_emissive_alpha.z;resEmission*=v_height_based_emission_params.z+v_height_based_emission_params.w*pow(clamp(v_height_based_emission_params.x,0.0,1.0),v_height_based_emission_params.y);vec3 color_mix=v_color_mix.rgb; #ifdef APPLY_LUT_ON_GPU color_mix=applyLUT(u_lutTexture,color_mix); #endif color=mix(color,color_mix,min(1.0,resEmission)); #ifdef HAS_ATTRIBUTE_a_color_4f float distance=length(vec2(1.3*max(0.0,abs(color_4f.x)-color_4f.z),color_4f.y));distance+= mix(0.5,0.0,clamp(resEmission-1.0,0.0,1.0));opacity*=v_roughness_metallic_emissive_alpha.w*saturate(1.0-distance*distance); #endif #endif vec3 unlitColor=mat.baseColor.rgb*ao+emissive.rgb;color=mix(color,unlitColor,u_emissive_strength);color=linearTosRGB(color);color*=opacity;finalColor=vec4(color,opacity); #endif #ifdef DITHERED_DISCARD if (abs(u_dithered_discard_threshold) < 1.0) {float ditherValue=fract(52.9829189*fract(0.06711056*gl_FragCoord.x+0.00583715*gl_FragCoord.y));float compareValue=mix(1.0-ditherValue,ditherValue,step(0.0,u_dithered_discard_threshold));if (abs(u_dithered_discard_threshold) < compareValue) {discard;}} #endif #ifdef FOG finalColor=fog_dither(fog_apply_premultiplied(finalColor,v_fog_pos,v_position_height.w)); #endif #ifdef RENDER_CUTOFF finalColor*=v_cutoff_opacity; #endif #ifdef INDICATOR_CUTOUT finalColor=applyCutout(finalColor,v_position_height.w); #endif #ifdef FEATURE_CUTOUT finalColor=apply_feature_cutout(finalColor,gl_FragCoord,get_cutout_factors(gl_FragCoord).x); #endif glFragColor=finalColor; #ifdef OVERDRAW_INSPECTOR glFragColor=vec4(1.0); #endif HANDLE_WIREFRAME_DEBUG;}`,`#include "_prelude_fog.vertex.glsl" #include "_prelude_shadow.vertex.glsl" in vec3 a_pos_3f; #pragma mapbox: define-attribute highp vec3 normal_3f #pragma mapbox: define-attribute highp vec2 uv_2f #pragma mapbox: define-attribute highp vec3 color_3f #pragma mapbox: define-attribute highp vec4 color_4f #pragma mapbox: define-attribute-vertex-shader-only highp uvec4 pbr #pragma mapbox: define-attribute-vertex-shader-only highp vec3 heightBasedEmissiveStrength uniform mat4 u_matrix;uniform mat4 u_node_matrix;uniform mat4 u_lighting_matrix;uniform vec3 u_camera_pos;uniform vec4 u_color_mix; #ifdef INSTANCED_ARRAYS in vec4 a_normal_matrix0;in vec4 a_normal_matrix1;in vec4 a_normal_matrix2;in vec4 a_normal_matrix3; #else uniform highp mat4 u_normal_matrix; #endif #ifdef RENDER_SHADOWS uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out float v_depth_shadows; #endif out vec4 v_position_height;out lowp vec4 v_color_mix; #ifdef TERRAIN_FRAGMENT_OCCLUSION out highp float v_depth; #endif #ifdef HAS_ATTRIBUTE_a_pbr out lowp vec4 v_roughness_metallic_emissive_alpha;out mediump vec4 v_height_based_emission_params; #endif vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}void main() { #pragma mapbox: initialize-attribute highp vec3 normal_3f #pragma mapbox: initialize-attribute highp vec2 uv_2f #pragma mapbox: initialize-attribute highp vec3 color_3f #pragma mapbox: initialize-attribute highp vec4 color_4f #pragma mapbox: initialize-attribute-custom highp uvec4 pbr #pragma mapbox: initialize-attribute-custom highp vec3 heightBasedEmissiveStrength highp mat4 normal_matrix; #ifdef INSTANCED_ARRAYS normal_matrix=mat4(a_normal_matrix0,a_normal_matrix1,a_normal_matrix2,a_normal_matrix3); #else normal_matrix=u_normal_matrix; #endif vec3 local_pos;mat3 rs; #ifdef MODEL_POSITION_ON_GPU vec3 pos_color=normal_matrix[0].xyz;vec4 translate=normal_matrix[1];vec3 pos_a=floor(pos_color);vec3 rgb=1.05*(pos_color-pos_a);float hidden=float(pos_a.x > EXTENT);float color_mix=pos_a.z/100.0;v_color_mix=vec4(sRGBToLinear(rgb),color_mix);float meter_to_tile=normal_matrix[0].w;vec4 pos=vec4(pos_a.xy,translate.z,1.0);rs[0].x=normal_matrix[1].w;rs[0].yz=normal_matrix[2].xy;rs[1].xy=normal_matrix[2].zw;rs[1].z=normal_matrix[3].x;rs[2].xyz=normal_matrix[3].yzw;vec4 pos_node=u_lighting_matrix*vec4(a_pos_3f,1.0);vec3 rotated_pos_node=rs*pos_node.xyz;vec3 pos_model_tile=(rotated_pos_node+vec3(translate.xy,0.0))*vec3(meter_to_tile,meter_to_tile,1.0);pos.xyz+=pos_model_tile;local_pos=pos.xyz;gl_Position=mix(u_matrix*pos,AWAY,hidden);pos.z*=meter_to_tile;v_position_height.xyz=pos.xyz-u_camera_pos; #else local_pos=a_pos_3f;gl_Position=u_matrix*vec4(a_pos_3f,1);v_position_height.xyz=vec3(u_lighting_matrix*vec4(a_pos_3f,1));v_color_mix=vec4(sRGBToLinear(u_color_mix.rgb),u_color_mix.a); #endif v_position_height.w=a_pos_3f.z; #ifdef HAS_ATTRIBUTE_a_pbr vec4 albedo_c=decode_color(vec2(pbr.xy));vec2 e_r_m=unpack_float(float(pbr.z));vec2 r_m= unpack_float(e_r_m.y*16.0);r_m.r=r_m.r*16.0;v_color_mix=vec4(albedo_c.rgb,1.0);v_roughness_metallic_emissive_alpha=vec4(vec3(r_m,e_r_m.x)/255.0,albedo_c.a);v_roughness_metallic_emissive_alpha.z*=2.0;float heightBasedRelativeIntepolation=a_pos_3f.z*heightBasedEmissiveStrength.x+heightBasedEmissiveStrength.y;v_height_based_emission_params.x=heightBasedRelativeIntepolation;v_height_based_emission_params.y=heightBasedEmissiveStrength.z;vec2 emissionMultiplierValues=unpack_float(float(pbr.w))/256.0;v_height_based_emission_params.z=emissionMultiplierValues.x;v_height_based_emission_params.w=emissionMultiplierValues.y-emissionMultiplierValues.x; #endif #ifdef FOG v_fog_pos=fog_position(local_pos); #endif #ifdef RENDER_CUTOFF v_cutoff_opacity=cutoff_opacity(u_cutoff_params,gl_Position.z); #endif #ifdef TERRAIN_FRAGMENT_OCCLUSION v_depth=gl_Position.z/gl_Position.w; #ifdef CLIP_ZERO_TO_ONE v_depth=-1.0+2.0*v_depth; #endif #endif #ifdef HAS_ATTRIBUTE_a_normal_3f #ifdef MODEL_POSITION_ON_GPU float x_squared_scale=dot(rs[0],rs[0]);float y_squared_scale=dot(rs[1],rs[1]);float z_squared_scale=dot(rs[2],rs[2]);vec3 squared_scale=vec3(x_squared_scale,y_squared_scale,z_squared_scale);normal_3f=rs*((u_lighting_matrix*vec4(normal_3f,0.0)).xyz/squared_scale);normal_3f=normalize(normal_3f); #else normal_3f=vec3(normal_matrix*vec4(normal_3f,0)); #endif #endif #ifdef HAS_ATTRIBUTE_a_pbr #ifdef HAS_ATTRIBUTE_a_color_4f v_roughness_metallic_emissive_alpha.w=clamp(color_4f.a*v_roughness_metallic_emissive_alpha.w*(v_roughness_metallic_emissive_alpha.z-1.0),0.0,1.0); #endif #endif #ifdef RENDER_SHADOWS vec4 shadow_pos=u_node_matrix*vec4(local_pos,1.0); #ifdef NORMAL_OFFSET #ifdef HAS_ATTRIBUTE_a_normal_3f #ifdef MODEL_POSITION_ON_GPU vec3 offset=shadow_normal_offset(vec3(-normal_3f.xy,normal_3f.z));shadow_pos.xyz+=offset*shadow_normal_offset_multiplier0(); #else vec3 offset=shadow_normal_offset_model(normal_3f);shadow_pos.xyz+=offset*shadow_normal_offset_multiplier0(); #endif #endif #endif v_pos_light_view_0=u_light_matrix_0*shadow_pos;v_pos_light_view_1=u_light_matrix_1*shadow_pos;v_depth_shadows=gl_Position.w; #endif }`),modelDepth:Mn("void main() {}",`in vec3 a_pos_3f;uniform mat4 u_matrix; #ifdef MODEL_POSITION_ON_GPU #ifdef INSTANCED_ARRAYS in vec4 a_normal_matrix0;in vec4 a_normal_matrix1;in vec4 a_normal_matrix2;in vec4 a_normal_matrix3; #else uniform highp mat4 u_instance; #endif uniform highp mat4 u_node_matrix; #endif void main() { #ifdef MODEL_POSITION_ON_GPU highp mat4 instance; #ifdef INSTANCED_ARRAYS instance=mat4(a_normal_matrix0,a_normal_matrix1,a_normal_matrix2,a_normal_matrix3); #else instance=u_instance; #endif vec3 pos_color=instance[0].xyz;vec4 translate=instance[1];vec3 pos_a=floor(pos_color);float hidden=float(pos_a.x > EXTENT);float meter_to_tile=instance[0].w;vec4 pos=vec4(pos_a.xy,translate.z,1.0);mat3 rs;rs[0].x=instance[1].w;rs[0].yz=instance[2].xy;rs[1].xy=instance[2].zw;rs[1].z=instance[3].x;rs[2].xyz=instance[3].yzw;vec4 pos_node=u_node_matrix*vec4(a_pos_3f,1.0);vec3 rotated_pos_node=rs*pos_node.xyz;vec3 pos_model_tile=(rotated_pos_node+vec3(translate.xy,0.0))*vec3(meter_to_tile,meter_to_tile,1.0);pos.xyz+=pos_model_tile;gl_Position=mix(u_matrix*pos,AWAY,hidden); #else gl_Position=u_matrix*vec4(a_pos_3f,1); #endif }`),stars:Mn(`in highp vec2 v_uv;in mediump float v_intensity;float shapeCircle(in vec2 uv) {float beginFade=0.6;float lengthFromCenter=length(v_uv);return 1.0-clamp((lengthFromCenter-beginFade)/(1.0-beginFade),0.0,1.0);}void main() {float alpha=shapeCircle(v_uv);vec3 color=vec3(1.0,1.0,1.0);alpha*=v_intensity;glFragColor=vec4(color*alpha,alpha);HANDLE_WIREFRAME_DEBUG;}`,` in vec3 a_pos_3f;in vec2 a_uv;in float a_size_scale;in float a_opacity;uniform mat4 u_matrix;uniform vec3 u_up;uniform vec3 u_right;uniform float u_intensity_multiplier;out highp vec2 v_uv;out mediump float v_intensity;void main() {v_uv=a_uv;v_intensity=a_opacity*u_intensity_multiplier;vec3 pos=a_pos_3f;pos+=a_uv.x*u_right*a_size_scale;pos+=a_uv.y*u_up*a_size_scale;gl_Position=u_matrix*vec4(pos,1.0);}`),snowParticle:Mn("in highp vec2 uv;in highp float alphaMultiplier;uniform vec4 u_particleColor;uniform vec2 u_simpleShapeParameters;void main() {float t=clamp((length(uv)-u_simpleShapeParameters.x)/(1.0-u_simpleShapeParameters.x),0.0,1.0);float alpha=1.0-pow(t,pow(10.0,u_simpleShapeParameters.y));alpha*=alphaMultiplier;alpha*=u_particleColor.a;vec3 color=u_particleColor.rgb*alpha;glFragColor=vec4(color,alpha) ;HANDLE_WIREFRAME_DEBUG;}",` in highp vec3 a_pos_3f;in highp vec2 a_uv;in highp vec4 a_snowParticleData;in highp vec4 a_snowParticleDataHorizontalOscillation;uniform mat4 u_modelview;uniform mat4 u_projection;uniform vec3 u_cam_pos;uniform vec2 u_screenSize;uniform float u_time;uniform float u_boxSize;uniform float u_velocityConeAperture; uniform float u_velocity;uniform vec3 u_direction;uniform float u_horizontalOscillationRadius; uniform float u_horizontalOscillationRate; uniform float u_billboardSize;uniform vec2 u_thinningCenterPos;uniform vec3 u_thinningShape;uniform float u_thinningAffectedRatio;uniform float u_thinningParticleOffset;out highp vec2 uv;out highp float alphaMultiplier;void main() {vec3 pos=a_pos_3f;float halfBoxSize=0.5*u_boxSize;pos.xyz*=halfBoxSize;pos+=u_cam_pos;float velocityConeApertureRad=radians(u_velocityConeAperture*0.5);float coneAnglePichRad=velocityConeApertureRad*a_snowParticleData.z;float coneAngleHeadingRad=a_snowParticleData.w*radians(360.0);vec3 localZ=normalize(u_direction);vec3 localX=normalize(cross(localZ,vec3(1,0,0)));vec3 localY=normalize(cross(localZ,localX));vec3 direction;direction.x=cos(coneAngleHeadingRad)*sin(coneAnglePichRad);direction.y=sin(coneAngleHeadingRad)*sin(coneAnglePichRad);direction.z=cos(coneAnglePichRad);direction=normalize(direction);vec3 simPosLocal=vec3(0,0,0);float velocityScale=(1.0+3.0*a_snowParticleData.y)*u_velocity;simPosLocal+=direction*velocityScale*u_time;float horizontalOscillationRadius=u_horizontalOscillationRadius*a_snowParticleDataHorizontalOscillation.x;float horizontalOscillationAngle=u_horizontalOscillationRate*u_time*(-1.0+2.0*a_snowParticleDataHorizontalOscillation.y);simPosLocal.xy+=horizontalOscillationRadius*vec2(cos(horizontalOscillationAngle),sin(horizontalOscillationAngle));vec3 simPos=localX*simPosLocal.x+ localY*simPosLocal.y+localZ*simPosLocal.z;pos+=simPos;pos=fract((pos+vec3(halfBoxSize))/vec3(u_boxSize))*u_boxSize-vec3(halfBoxSize);float clipZ=-u_cam_pos.z+pos.z;vec4 posView=u_modelview*vec4(pos,1.0);float size=u_billboardSize;alphaMultiplier=1.0;vec4 posScreen=u_projection*posView;posScreen/=posScreen.w;posScreen.xy=vec2(0.5)+posScreen.xy*0.5;posScreen.xy*=u_screenSize;vec2 thinningCenterPos=u_thinningCenterPos.xy;thinningCenterPos.y=u_screenSize.y-thinningCenterPos.y;float screenDist=length((thinningCenterPos-posScreen.xy)/(0.5*u_screenSize));screenDist+=a_snowParticleData.x*u_thinningParticleOffset;float scaleFactorMode=0.0;float thinningShapeDist=u_thinningShape.x+u_thinningShape.y;if (screenDist < thinningShapeDist) {float thinningFadeRatio=clamp((screenDist-u_thinningShape.x)/u_thinningShape.y,0.0,1.0);thinningFadeRatio=pow(thinningFadeRatio,u_thinningShape.z);if (a_snowParticleData.x < u_thinningAffectedRatio) {scaleFactorMode=1.0-thinningFadeRatio;alphaMultiplier=thinningFadeRatio;}}vec4 posScreen1=u_projection*vec4(posView.x-size,posView.yzw);posScreen1/=posScreen1.w;vec4 posScreen2=u_projection*vec4(posView.x+size,posView.yzw);posScreen2/=posScreen2.w;posScreen1.xy=vec2(0.5)+posScreen1.xy*0.5;posScreen1.xy*=u_screenSize;posScreen2.xy=vec2(0.5)+posScreen2.xy*0.5;posScreen2.xy*=u_screenSize;float screenLength=length(posScreen1.xy-posScreen2.xy);float screenEpsilon=3.0;float scaleFactor=1.0;if (screenLength < screenEpsilon) {scaleFactor=screenEpsilon/max(screenLength,0.01);scaleFactor=mix(scaleFactor,1.0,scaleFactorMode);}float screenEpsilon2=15.0;if (screenLength > screenEpsilon2) {scaleFactor=screenEpsilon2/max(screenLength,0.01);}size*=scaleFactor;vec2 right=size*vec2(1,0);vec2 up=size*vec2(0,1);posView.xy+=right*a_uv.x;posView.xy+=up*a_uv.y;uv=a_uv;gl_Position=u_projection*posView;}`),rainParticle:Mn("in highp vec2 uv;in highp float particleRandomValue;uniform sampler2D u_texScreen;uniform float u_distortionStrength;uniform vec4 u_color;uniform vec2 u_thinningCenterPos;uniform vec3 u_thinningShape;uniform float u_thinningAffectedRatio;uniform float u_thinningParticleOffset;uniform float u_shapeDirectionalPower;uniform float u_mode;void main() {vec2 st=uv*0.5+vec2(0.5);vec2 uvm=uv;uvm.y=-1.0+2.0*pow(st.y,u_shapeDirectionalPower);float shape=clamp(1.0-length(uvm),0.0,1.0);float alpha=abs(shape)*u_color.a;vec2 screenSize=vec2(textureSize(u_texScreen,0));vec2 thinningCenterPos=u_thinningCenterPos.xy;thinningCenterPos.y=screenSize.y-thinningCenterPos.y;float screenDist=length((thinningCenterPos-gl_FragCoord.xy)/(0.5*screenSize));screenDist+=(0.5+0.5*particleRandomValue)*u_thinningParticleOffset;float thinningShapeDist=u_thinningShape.x+u_thinningShape.y;float thinningAlpha=1.0;if (screenDist < thinningShapeDist) {float thinningFadeRatio=clamp((screenDist-u_thinningShape.x)/u_thinningShape.y,0.0,1.0);thinningFadeRatio=pow(thinningFadeRatio,u_thinningShape.z);thinningAlpha*=thinningFadeRatio;}vec2 offsetXY=normalize(uvm)*abs(shape);vec2 stScreen=(gl_FragCoord.xy+offsetXY*u_distortionStrength*thinningAlpha)/screenSize;vec3 colorScreen=texture(u_texScreen,stScreen).rgb;alpha*=thinningAlpha;glFragColor=mix(vec4(colorScreen,1.0),vec4(u_color.rgb*alpha,alpha),u_mode);HANDLE_WIREFRAME_DEBUG;}",` in highp vec3 a_pos_3f;in highp vec2 a_uv;in highp vec4 a_rainParticleData;uniform mat4 u_modelview;uniform mat4 u_projection;uniform vec3 u_cam_pos;uniform float u_time;uniform float u_boxSize;uniform float u_velocityConeAperture; uniform float u_velocity; uniform vec2 u_rainDropletSize;uniform vec3 u_rainDirection;out highp vec2 uv;out highp float particleRandomValue;void main() {vec3 pos=a_pos_3f;float halfBoxSize=0.5*u_boxSize;pos*=halfBoxSize; pos+=u_cam_pos;float velocityConeApertureRad=radians(u_velocityConeAperture*0.5);float coneAnglePichRad=velocityConeApertureRad*a_rainParticleData.z;float coneAngleHeadingRad=a_rainParticleData.w*radians(360.0);vec3 localZ=normalize(u_rainDirection);vec3 localX=normalize(cross(localZ,vec3(1,0,0)));vec3 localY=normalize(cross(localZ,localX));vec3 directionLocal;directionLocal.x=cos(coneAngleHeadingRad)*sin(coneAnglePichRad);directionLocal.y=sin(coneAngleHeadingRad)*sin(coneAnglePichRad);directionLocal.z=cos(coneAnglePichRad);directionLocal=normalize(directionLocal);vec3 directionWorld=localX*directionLocal.x+localY*directionLocal.y+localZ*directionLocal.z;float velocityScale=(1.0+3.0*a_rainParticleData.y)*u_velocity;vec3 simPosLocal=vec3(0,0,0);simPosLocal+=directionLocal*velocityScale*u_time;vec3 simPos=localX*simPosLocal.x+ localY*simPosLocal.y+localZ*simPosLocal.z;pos+=simPos;pos=fract((pos+vec3(halfBoxSize))/vec3(u_boxSize))*u_boxSize-vec3(halfBoxSize);vec4 posView=u_modelview*vec4(pos,1.0);vec3 directionView=normalize((u_modelview*vec4(directionWorld,0.0)).xyz);vec3 side=cross(directionView,normalize(posView.xyz));posView.xyz+=side*a_uv.x*u_rainDropletSize.x;posView.xyz+=directionView*a_uv.y*u_rainDropletSize.y;uv=a_uv;particleRandomValue=a_rainParticleData.x;gl_Position=u_projection*posView;}`),vignette:Mn("uniform vec3 u_vignetteShape;uniform vec4 u_vignetteColor;in vec2 st;void main() {float screenDist=length(st);float alpha=clamp((screenDist-u_vignetteShape.x)/u_vignetteShape.y,0.0,1.0);alpha=pow(alpha,u_vignetteShape.z)*u_vignetteColor.a;vec3 color=u_vignetteColor.rgb;glFragColor=vec4(color*alpha,alpha) ;}","in vec2 a_pos_2f;out vec2 st;void main() {st=a_pos_2f;gl_Position=vec4(a_pos_2f,0,1);}"),occlusion:Mn("uniform vec4 u_color;void main() {glFragColor=u_color;}",`#include "_prelude_terrain.vertex.glsl" in highp vec2 a_offset_xy;uniform highp vec3 u_anchorPos;uniform mat4 u_matrix;uniform vec2 u_screenSizePx;uniform vec2 u_occluderSizePx;void main() {vec3 world_pos=u_anchorPos; #ifdef TERRAIN float e=elevation(world_pos.xy);world_pos.z+=e; #endif vec4 projected_point=u_matrix*vec4(world_pos,1.0);projected_point.xy+=projected_point.w*a_offset_xy*0.5*u_occluderSizePx/u_screenSizePx;gl_Position=projected_point;}`)};function ch(v,d){const g=v.split(` `);for(let w of g){if(w=w.trimStart(),w[0]!=="#"||!w.includes("if")||w.startsWith("#endif"))continue;const A=w.match(yI);if(A)for(const j of A)xI.has(j)||d.add(j)}}function vI(v){return new Set(["uint","int","uvec2","ivec2","uvec3","ivec3","uvec4","ivec4"]).has(v)}function Mn(v,d){const g=new Set,w=[],A=[];v=v.replace(jx,(R,F)=>(A.push(F),"")),d=d.replace(jx,(R,F)=>(w.push(F),""));let j=new Set(Ep);ch(v,j),ch(d,j);for(const R of[...w,...A])ig[R]||(ig[R]=new Set,ch(Du[R],ig[R])),j=new Set([...j,...ig[R]]);return{fragmentSource:v=v.replace(sr,(R,F,$,H,Y)=>(g.add(Y),F==="define"?` #ifndef HAS_UNIFORM_u_${Y} ${vI(H)?"flat ":""}in ${$} ${H} ${Y}; #else uniform ${$} ${H} u_${Y}; #endif `:F==="initialize"?` #ifdef HAS_UNIFORM_u_${Y} ${$} ${H} ${Y} = u_${Y}; #endif `:F==="define-attribute"?` #ifdef HAS_ATTRIBUTE_a_${Y} in ${$} ${H} ${Y}; #endif `:F==="initialize-attribute"?"":void 0)),vertexSource:d=d.replace(sr,(R,F,$,H,Y)=>{const te=`MATERIAL_ATTRIBUTE_OFFSET_${Y}`,ee=H==="float"?"vec2":H,ne=`GET_ATTRIBUTE_${ee}(a_${Y}, materialInfo, ${te})`,le=Y.match(/color/)?"color":ee;return F==="define-attribute-vertex-shader-only"?` #ifdef HAS_ATTRIBUTE_a_${Y} in ${$} ${H} a_${Y}; #endif `:g.has(Y)?F==="define"?` #ifndef HAS_UNIFORM_u_${Y} uniform lowp float u_${Y}_t; #if !defined(${te}) in ${$} ${ee} a_${Y}; #endif ${vI(H)?"flat ":""}out ${$} ${H} ${Y}; #else uniform ${$} ${H} u_${Y}; #endif `:F==="initialize"?le==="vec4"||le==="uvec4"?` #ifndef HAS_UNIFORM_u_${Y} ${Y} = a_${Y}; #else ${$} ${H} ${Y} = u_${Y}; #endif `:` #if !defined(HAS_UNIFORM_u_${Y}) #ifdef ${te} ${Y} = unpack_mix_${le}(${ne}, u_${Y}_t); #else ${Y} = unpack_mix_${le}(a_${Y}, u_${Y}_t); #endif #else ${$} ${H} ${Y} = u_${Y}; #endif `:F==="define-attribute"?` #ifdef HAS_ATTRIBUTE_a_${Y} in ${$} ${H} a_${Y}; out ${$} ${H} ${Y}; #endif `:F==="initialize-attribute"?` #ifdef HAS_ATTRIBUTE_a_${Y} ${Y} = a_${Y}; #endif `:void 0:F==="define"?` #ifndef HAS_UNIFORM_u_${Y} uniform lowp float u_${Y}_t; #if !defined(${te}) in ${$} ${ee} a_${Y}; #endif #else uniform ${$} ${H} u_${Y}; #endif `:F==="define-instanced"?le==="mat4"?` #ifdef INSTANCED_ARRAYS in vec4 a_${Y}0; in vec4 a_${Y}1; in vec4 a_${Y}2; in vec4 a_${Y}3; #else uniform ${$} ${H} u_${Y}; #endif `:` #ifdef INSTANCED_ARRAYS in ${$} ${ee} a_${Y}; #else uniform ${$} ${H} u_${Y}; #endif `:F==="initialize-attribute-custom"?` #ifdef HAS_ATTRIBUTE_a_${Y} ${$} ${H} ${Y} = a_${Y}; #endif `:le==="vec4"||le==="uvec4"?` #ifndef HAS_UNIFORM_u_${Y} #ifdef ${te} ${$} ${H} ${Y} = ${ne}; #else ${$} ${H} ${Y} = a_${Y}; #endif #else ${$} ${H} ${Y} = u_${Y}; #endif `:` #ifndef HAS_UNIFORM_u_${Y} #ifdef ${te} ${$} ${H} ${Y} = unpack_mix_${le}(${ne}, u_${Y}_t); #else ${$} ${H} ${Y} = unpack_mix_${le}(a_${Y}, u_${Y}_t); #endif #else ${$} ${H} ${Y} = u_${Y}; #endif `}),usedDefines:j,vertexIncludes:w,fragmentIncludes:A}}class bI{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(d,g,w,A,j,R,F,$){this.context=d;let H=this.boundPaintVertexBuffers.length!==A.length;for(let te=0;!H&&te{const Ye=Ne.paint.get("hillshade-shadow-color"),Be=Ne.paint.get("hillshade-shadow-color-use-theme").constantOr("default")==="none",We=Ne.paint.get("hillshade-highlight-color"),Le=Ne.paint.get("hillshade-highlight-color-use-theme").constantOr("default")==="none",Fe=Ne.paint.get("hillshade-accent-color"),qe=Ne.paint.get("hillshade-accent-color-use-theme").constantOr("default")==="none",st=Ne.paint.get("hillshade-emissive-strength");let Qe=s.ap(Ne.paint.get("hillshade-illumination-direction"));if(Ne.paint.get("hillshade-illumination-anchor")==="viewport")Qe-=pe.transform.angle;else if(pe.style&&pe.style.enable3dLights()&&pe.style.directionalLight){const ft=pe.style.directionalLight.properties.get("direction"),Nt=s.cP(ft.x,ft.y,ft.z);Qe=s.ap(Nt[1])}const yt=!pe.options.moving;return{u_matrix:ve||pe.transform.calculateProjMatrix(Ie.tileID.toUnwrapped(),yt),u_image:0,u_latrange:uT(0,Ie.tileID),u_light:[Ne.paint.get("hillshade-exaggeration"),Qe],u_shadow:Ye.toPremultipliedRenderColor(Be?null:Ne.lut),u_highlight:We.toPremultipliedRenderColor(Le?null:Ne.lut),u_emissive_strength:st,u_accent:Fe.toPremultipliedRenderColor(qe?null:Ne.lut)}})(v,g,w,v.terrain?d.projMatrix:null);v.uploadCommonUniforms(F,ee,d.toUnwrapped());const{tileBoundsBuffer:le,tileBoundsIndexBuffer:oe,tileBoundsSegments:me}=v.getTileBoundsBuffers(g);ee.draw(v,$.TRIANGLES,A,j,R,Gr.disabled,ne,w.id,le,oe,me)}function wI(v,d,g){if(!d.needsDEMTextureUpload)return;const w=v.context,A=w.gl;w.pixelStoreUnpackPremultiplyAlpha.set(!1),d.demTexture=d.demTexture||v.getTileTexture(g.stride);const j=g.getPixels();d.demTexture?d.demTexture.update(j,{premultiply:!1}):d.demTexture=new s.T(w,j,A.R32F,{premultiply:!1}),d.needsDEMTextureUpload=!1}function y3(v,d,g){const w=v.context,A=w.gl;if(!d.dem)return;const j=d.dem;if(w.activeTexture.set(A.TEXTURE1),wI(v,d,j),!d.demTexture)return;d.demTexture.bind(A.NEAREST,A.CLAMP_TO_EDGE);const R=j.dim;w.activeTexture.set(A.TEXTURE0);let F=d.hillshadeFBO;if(!F){const ee=new s.T(w,{width:R,height:R,data:null},A.RGBA8);ee.bind(A.LINEAR,A.CLAMP_TO_EDGE),F=d.hillshadeFBO=w.createFramebuffer(R,R,1,"renderbuffer"),F.colorAttachment0.set(ee.texture)}w.bindFramebuffer.set(F.framebuffer),w.viewport.set([0,0,R,R]);const{tileBoundsBuffer:$,tileBoundsIndexBuffer:H,tileBoundsSegments:Y}=v.getMercatorTileBoundsBuffers(),te=[];v.linearFloatFilteringSupported()&&te.push("TERRAIN_DEM_FLOAT_FORMAT"),v.terrain&&v.terrain.renderingToTexture&&v.emissiveMode==="mrt-fallback"&&te.push("USE_MRT1"),v.getOrCreateProgram("hillshadePrepare",{defines:te}).draw(v,A.TRIANGLES,Cr.disabled,Xr.disabled,Yr.unblended,Gr.disabled,((ee,ne)=>{const le=ne.stride,oe=s.bb();return s.bT(oe,0,s.an,-s.an,0,0,1),s.bx(oe,oe,[0,-s.an,0]),{u_matrix:oe,u_image:1,u_dimension:[le,le],u_zoom:ee.overscaledZ}})(d.tileID,j),g.id,$,H,Y),d.needsHillshadePrepare=!1}class cs{constructor(d){this.gl=d.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(d){}getDefault(){return this.default}setDefault(){this.set(this.default)}}class SI extends cs{getDefault(){return s.aq.transparent.toNonPremultipliedRenderColor(null)}set(d){const g=this.current;(d.r!==g.r||d.g!==g.g||d.b!==g.b||d.a!==g.a||this.dirty)&&(this.gl.clearColor(d.r,d.g,d.b,d.a),this.current=d,this.dirty=!1)}}class x3 extends cs{getDefault(){return 1}set(d){(d!==this.current||this.dirty)&&(this.gl.clearDepth(d),this.current=d,this.dirty=!1)}}class uv extends cs{getDefault(){return 0}set(d){(d!==this.current||this.dirty)&&(this.gl.clearStencil(d),this.current=d,this.dirty=!1)}}class _3 extends cs{getDefault(){return[!0,!0,!0,!0]}set(d){const g=this.current;(d[0]!==g[0]||d[1]!==g[1]||d[2]!==g[2]||d[3]!==g[3]||this.dirty)&&(this.gl.colorMask(d[0],d[1],d[2],d[3]),this.current=d,this.dirty=!1)}}class TI extends cs{getDefault(){return!0}set(d){(d!==this.current||this.dirty)&&(this.gl.depthMask(d),this.current=d,this.dirty=!1)}}class dT extends cs{getDefault(){return 255}set(d){(d!==this.current||this.dirty)&&(this.gl.stencilMask(d),this.current=d,this.dirty=!1)}}class dv extends cs{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(d){const g=this.current;(d.func!==g.func||d.ref!==g.ref||d.mask!==g.mask||this.dirty)&&(this.gl.stencilFunc(d.func,d.ref,d.mask),this.current=d,this.dirty=!1)}}class hT extends cs{getDefault(){const d=this.gl;return[d.KEEP,d.KEEP,d.KEEP]}set(d){const g=this.current;(d[0]!==g[0]||d[1]!==g[1]||d[2]!==g[2]||this.dirty)&&(this.gl.stencilOp(d[0],d[1],d[2]),this.current=d,this.dirty=!1)}}class Ap extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;d?g.enable(g.STENCIL_TEST):g.disable(g.STENCIL_TEST),this.current=d,this.dirty=!1}}class kp extends cs{getDefault(){return[0,1]}set(d){const g=this.current;(d[0]!==g[0]||d[1]!==g[1]||this.dirty)&&(this.gl.depthRange(d[0],d[1]),this.current=d,this.dirty=!1)}}class ag extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;d?g.enable(g.DEPTH_TEST):g.disable(g.DEPTH_TEST),this.current=d,this.dirty=!1}}class md extends cs{getDefault(){return this.gl.LESS}set(d){(d!==this.current||this.dirty)&&(this.gl.depthFunc(d),this.current=d,this.dirty=!1)}}class EI extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;d?g.enable(g.BLEND):g.disable(g.BLEND),this.current=d,this.dirty=!1}}class fT extends cs{getDefault(){const d=this.gl;return[d.ONE,d.ZERO,d.ONE,d.ZERO]}set(d){const g=this.current;(d[0]!==g[0]||d[1]!==g[1]||d[2]!==g[2]||d[3]!==g[3]||this.dirty)&&(this.gl.blendFuncSeparate(d[0],d[1],d[2],d[3]),this.current=d,this.dirty=!1)}}class AI extends cs{getDefault(){return s.aq.transparent.toNonPremultipliedRenderColor(null)}set(d){const g=this.current;(d.r!==g.r||d.g!==g.g||d.b!==g.b||d.a!==g.a||this.dirty)&&(this.gl.blendColor(d.r,d.g,d.b,d.a),this.current=d,this.dirty=!1)}}class og extends cs{getDefault(){return this.gl.FUNC_ADD}set(d){(d!==this.current||this.dirty)&&(this.gl.blendEquationSeparate(d,d),this.current=d,this.dirty=!1)}}class hv extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;d?g.enable(g.CULL_FACE):g.disable(g.CULL_FACE),this.current=d,this.dirty=!1}}class fv extends cs{getDefault(){return this.gl.BACK}set(d){(d!==this.current||this.dirty)&&(this.gl.cullFace(d),this.current=d,this.dirty=!1)}}class pT extends cs{getDefault(){return this.gl.CCW}set(d){(d!==this.current||this.dirty)&&(this.gl.frontFace(d),this.current=d,this.dirty=!1)}}let pv=class extends cs{getDefault(){return null}set(v){(v!==this.current||this.dirty)&&(this.gl.useProgram(v),this.current=v,this.dirty=!1)}};class Nx extends cs{getDefault(){return this.gl.TEXTURE0}set(d){(d!==this.current||this.dirty)&&(this.gl.activeTexture(d),this.current=d,this.dirty=!1)}}class kI extends cs{getDefault(){const d=this.gl;return[0,0,d.drawingBufferWidth,d.drawingBufferHeight]}set(d){const g=this.current;(d[0]!==g[0]||d[1]!==g[1]||d[2]!==g[2]||d[3]!==g[3]||this.dirty)&&(this.gl.viewport(d[0],d[1],d[2],d[3]),this.current=d,this.dirty=!1)}}class CI extends cs{getDefault(){return null}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.bindFramebuffer(g.FRAMEBUFFER,d),this.current=d,this.dirty=!1}}class II extends cs{getDefault(){return null}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.bindRenderbuffer(g.RENDERBUFFER,d),this.current=d,this.dirty=!1}}class lg extends cs{getDefault(){return null}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.bindTexture(g.TEXTURE_2D,d),this.current=d,this.dirty=!1}}class jI extends cs{getDefault(){return null}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.bindBuffer(g.ARRAY_BUFFER,d),this.current=d,this.dirty=!1}}class v3 extends cs{getDefault(){return null}set(d){const g=this.gl;g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,d),this.current=d,this.dirty=!1}}class b3 extends cs{getDefault(){return null}set(d){this.gl&&(d!==this.current||this.dirty)&&(this.gl.bindVertexArray(d),this.current=d,this.dirty=!1)}}class w3 extends cs{getDefault(){return 4}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.pixelStorei(g.UNPACK_ALIGNMENT,d),this.current=d,this.dirty=!1}}class mT extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,d),this.current=d,this.dirty=!1}}class gT extends cs{getDefault(){return!1}set(d){if(d===this.current&&!this.dirty)return;const g=this.gl;g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,d),this.current=d,this.dirty=!1}}class Rx extends cs{constructor(d,g){super(d),this.context=d,this.parent=g}getDefault(){return null}}class cg extends Rx{constructor(d,g,w=0){super(d,g),this.attachmentPoint=d.gl.COLOR_ATTACHMENT0+w}setDirty(){this.dirty=!0}set(d){if(d===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const g=this.gl;g.framebufferTexture2D(g.FRAMEBUFFER,this.attachmentPoint,g.TEXTURE_2D,d,0),this.current=d,this.dirty=!1}}class yT extends Rx{attachment(){return this.gl.DEPTH_ATTACHMENT}set(d){if(d===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const g=this.gl;g.framebufferRenderbuffer(g.FRAMEBUFFER,this.attachment(),g.RENDERBUFFER,d),this.current=d,this.dirty=!1}}class PI extends Rx{attachment(){return this.gl.DEPTH_ATTACHMENT}set(d){if(d===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const g=this.gl;g.framebufferTexture2D(g.FRAMEBUFFER,this.attachment(),g.TEXTURE_2D,d,0),this.current=d,this.dirty=!1}}class S3 extends yT{attachment(){return this.gl.DEPTH_STENCIL_ATTACHMENT}}const Lx=(v,d,g,w)=>({u_matrix:v,u_image0:0,u_image1:1,u_skirt_height:d,u_ground_shadow_factor:g,u_emissive_texture_available:w}),ug=(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me)=>({u_proj_matrix:Float32Array.from(v),u_globe_matrix:d,u_normalize_matrix:Float32Array.from(w),u_merc_matrix:g,u_zoom_transition:A,u_merc_center:j,u_image0:0,u_image1:1,u_frustum_tl:R,u_frustum_tr:F,u_frustum_br:$,u_frustum_bl:H,u_globe_pos:Y,u_globe_radius:te,u_viewport:ee,u_grid_matrix:me?Float32Array.from(me):new Float32Array(9),u_skirt_height:ne,u_far_z_cutoff:le,u_emissive_texture_available:oe});function xT(v,d){return v!=null&&d!=null&&!(!v.hasData()||!d.hasData())&&v.demTexture!=null&&d.demTexture!=null&&v.tileID.key!==d.tileID.key}const Ro=new class{constructor(){this.operations={}}newMorphing(v,d,g,w,A){if(v in this.operations){const j=this.operations[v];j.to.tileID.key!==g.tileID.key&&(j.queued=g)}else this.operations[v]={startTime:w,phase:0,duration:A,from:d,to:g,queued:null}}getMorphValuesForProxy(v){if(!(v in this.operations))return null;const d=this.operations[v];return{from:d.from,to:d.to,phase:d.phase}}update(v){for(const d in this.operations){const g=this.operations[d];for(g.phase=(v-g.startTime)/g.duration;g.phase>=1||!this._validOp(g);)if(!this._nextOp(g,v)){delete this.operations[d];break}}}_nextOp(v,d){return!!v.queued&&(v.from=v.to,v.to=v.queued,v.queued=null,v.phase=0,v.startTime=d,!0)}_validOp(v){return v.from.hasData()&&v.to.hasData()}},mv={0:null,1:"TERRAIN_VERTEX_MORPHING"};function Dx(v,d,g){if(d===0)return 0;const w=d<1&&g===514?.25/d:1;return 6*Math.pow(1.5,22-v)*Math.max(d,1)*w}function gv(v,d){const g=1<({u_matrix:v});function Fx(v,d,g,w,A){if(A>0){const j=s.o.now(),R=(j-v.timeAdded)/A,F=d?(j-d.timeAdded)/A:-1,$=g.getSource(),H=w.coveringZoomLevel({tileSize:$.tileSize,roundZoom:$.roundZoom}),Y=!d||Math.abs(d.tileID.overscaledZ-H)>Math.abs(v.tileID.overscaledZ-H),te=Y&&v.refreshedUponExpiration?1:s.aC(Y?R:1-F,0,1);return d?{opacity:1,mix:1-te,isFading:R<1}:{opacity:te,mix:0,isFading:R<1}}return{opacity:1,mix:0,isFading:!1}}class yv extends nu{constructor(d){const g={type:"raster-dem",maxzoom:Math.ceil(d.transform.maxZoom)},w=Y_("mock-dem",g,d.style.dispatcher,d.style);super("mock-dem",w,null),w.setEventedParent(this),this._sourceLoaded=!0}_loadTile(d,g){d.state="loaded",g(null)}}class _T extends nu{constructor(d){const g=Y_("proxy",{type:"geojson",maxzoom:Math.ceil(d.transform.maxZoom)},d.style.dispatcher,d.style);super("proxy",g,null),g.setEventedParent(this),this.map=this.getSource().map=d,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(d,g,w){if(d.freezeTileCoverage)return;this.transform=d;const A=d.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((j,R)=>{if(j[R.key]="",!this._tiles[R.key]){const F=new s.b0(R,this._source.tileSize*R.overscaleFactor(),d.tileZoom,void 0,void 0,this._source.worldview);F.state="loaded",this._tiles[R.key]=F}return j},{});for(const j in this._tiles)j in A||(this.freeFBO(j),this._tiles[j].unloadVectorData(),delete this._tiles[j])}freeFBO(d){const g=this.proxyCachedFBO[d];if(g!==void 0){const w=Object.values(g);this.renderCachePool.push(...w),delete this.proxyCachedFBO[d]}}deallocRenderCache(){this.renderCache.forEach(d=>d.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class xv extends s.aR{constructor(d,g,w){super(d.overscaledZ,d.wrap,d.canonical.z,d.canonical.x,d.canonical.y),this.proxyTileKey=g,this.projMatrix=w}}class Bx extends s.bu{constructor(d,g){super(),this._debugParams={sortTilesHiZFirst:!0,disableRenderCache:!1},this.painter=d,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[w,A,j]=function(){const $=new s.dB,H=new s.dC,Y=131;$.reserve(17161),H.reserve(33800);const te=s.an/128,ee=s.an+te/2,ne=ee+te;for(let oe=-te;oeee||oe<0||oe>ee?24575:0,Ie=s.aC(Math.round(me),0,s.an),Ne=s.aC(Math.round(oe),0,s.an);$.emplaceBack(Ie+pe,Ne)}const le=(oe,me)=>{const pe=me*Y+oe;H.emplaceBack(pe+1,pe,pe+Y),H.emplaceBack(pe+Y,pe+Y+1,pe+1)};for(let oe=1;oe<129;oe++)for(let me=1;me<129;me++)le(me,oe);return[0,129].forEach(oe=>{for(let me=0;me<130;me++)le(me,oe),le(oe,me)}),[$,H,32768]}(),R=d.context;this.gridBuffer=R.createVertexBuffer(w,s.dx.members),this.gridIndexBuffer=R.createIndexBuffer(A),this.gridSegments=s.dy.simpleSegment(0,0,w.length,A.length),this.gridNoSkirtSegments=s.dy.simpleSegment(0,0,w.length,j),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new _T(g.map),this.orthoMatrix=s.bb(),s.bT(this.orthoMatrix,this.painter.transform.projection.name==="globe"?.015:0,s.an,0,s.an,0,1);const F=R.gl;this._overlapStencilMode=new Xr({func:F.GEQUAL,mask:255},0,255,F.KEEP,F.KEEP,F.REPLACE),this._previousZoom=d.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=g,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new yv(g.map),this._pendingGroundEffectLayers=[],this._emissiveTexture=!1}set style(d){d.on("data",this._onStyleDataEvent.bind(this)),this._style=d,this._style.map.on("moveend",()=>{this._clearLineLayersFromRenderCache()})}update(d,g,w){if(d&&d.terrain){this._style!==d&&(this.style=d,this._evaluationZoom=void 0);const A=d.terrain.properties,j=d.terrain.drapeRenderMode===0,R=d.terrain.isZoomDependent();this._previousUpdateTimestamp=this.enabled?this._updateTimestamp:void 0,this._updateTimestamp=s.o.now();const F=d.terrain&&d.terrain.scope,$=A.get("source"),H=j?this._mockSourceCache:d.getSourceCache($,F);if(!H)return void s.w(`Couldn't find terrain source "${$}".`);if(this.sourceCache=H,this._attenuationRange=d.terrain.getAttenuationRange(),this._exaggeration=R?this.calculateExaggeration(g):A.get("exaggeration"),!g.projection.requiresDraping&&R&&this._exaggeration===0)return void this._disable();this.enabled=!0;const Y=()=>{this.sourceCache.used&&s.w(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const te=this.getScaledDemTileSize();this.sourceCache.update(g,te,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,Y(),this._initializing=!0),Y(),g.updateElevation(!0,w),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(g),this._emptyDEMTextureDirty=!0,this._previousZoom=g.zoom}else this._disable()}calculateExaggeration(d){if(this._attenuationRange&&d.zoom>=Math.ceil(this._attenuationRange[1]))return this._style.terrain.getExaggeration(d.zoom);const g=this._previousCameraAltitude,w=d.getFreeCameraOptions().position.z/d.pixelsPerMeter*d.worldSize;this._previousCameraAltitude=w;const A=g!=null?w-g:Number.MAX_VALUE;if(Math.abs(A)<2)return this._exaggeration;const j=d.zoom,R=this._style.terrain;if(!this._previousUpdateTimestamp)return R.getExaggeration(j);let F=j-this._previousZoom;const $=this._previousUpdateTimestamp;let H=j;this._evaluationZoom!=null&&(H=this._evaluationZoom,Math.abs(j-H)>.5&&(F=.5*(j-H+F)),F*A<0&&(H+=F)),this._evaluationZoom=H;const Y=R.getExaggeration(H),te=Y===R.getExaggeration(Math.max(0,H-.1));if(te&&Math.abs(Y-this._exaggeration)<.01)return Y;let ee=Math.min(.1,.00375*(this._updateTimestamp-$));return(te||Y<.1||Math.abs(F)<1e-4)&&(ee=Math.min(.2,4*ee)),s.am(this._exaggeration,Y,ee)}resetTileLookupCache(d){this._findCoveringTileCache[d]={}}attenuationRange(){return this._attenuationRange}getDemUpscale(){return this.proxySourceCache.getSource().tileSize/128}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_onStyleDataEvent(d){d.dataType==="source"&&d.coord?this._clearRenderCacheForTile(d.sourceCacheId,d.coord):d.dataType==="style"&&(this.invalidateRenderCache=!0,this._evaluationZoom=void 0,this._previousUpdateTimestamp=void 0,this._previousCameraAltitude=void 0)}_disable(){if(this.enabled&&(this.enabled=!1,this._emptyDEMTextureDirty=!0,this._sharedDepthStencil=void 0,this._evaluationZoom=void 0,this._previousUpdateTimestamp=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const d in this._style._mergedSourceCaches)this._style._mergedSourceCaches[d].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this.pool.forEach(d=>d.fb.destroy()),this.pool=[],this.framebufferCopyTexture&&this.framebufferCopyTexture.destroy()}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this.enabled?this._exaggeration:0}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const d=2*this.proxySourceCache.getSource().tileSize;return[d,d]}set useVertexMorphing(d){this._useVertexMorphing=d}updateTileBinding(d){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const g=this.proxySourceCache,w=this.painter.transform;this._initializing&&(this._initializing=w._centerAltitude===0&&this.getAtPointOrZero(s.ag.fromLngLat(w.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);const A=this.proxyCoords=g.getIds().map($=>{const H=g.getTileByID($).tileID;return H.projMatrix=w.calculateProjMatrix(H.toUnwrapped()),H});(function($,H){const Y=H.transform.pointCoordinate(H.transform.getCameraPoint()),te=new s.P(Y.x,Y.y);$.sort((ee,ne)=>{if(ne.overscaledZ-ee.overscaledZ)return ne.overscaledZ-ee.overscaledZ;const le=new s.P(ee.canonical.x+(1<{this.proxyToSource[$.key]={}}),this.terrainTileForTile={};const R=this._style._mergedSourceCaches;for(const $ in R){const H=R[$];if(!H.used||(H!==this.sourceCache&&this.resetTileLookupCache(H.id),this._setupProxiedCoordsForOrtho(H,d[$],j),H.usedForTerrain))continue;const Y=d[$];(H.getSource().reparseOverscaled||H._isRasterElevatedOverTerrain)&&this._assignTerrainTiles(Y)}this.proxiedCoords[g.id]=A.map($=>new xv($,$.key,this.orthoMatrix)),this._assignTerrainTiles(A),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(j),this.renderingToTexture=!1;const F={};this._visibleDemTiles=[];for(const $ of this.proxyCoords){const H=this.terrainTileForTile[$.key];if(!H)continue;const Y=H.tileID.key;Y in F||(this._visibleDemTiles.push(H),F[Y]=Y)}}_assignTerrainTiles(d){this._initializing||d.forEach(g=>{if(this.terrainTileForTile[g.key])return;const w=this._findTileCoveringTileID(g,this.sourceCache);w&&(this.terrainTileForTile[g.key]=w)})}_prepareDEMTextures(){const d=this.painter.context,g=d.gl;for(const w in this.terrainTileForTile){const A=this.terrainTileForTile[w],j=A.dem;!j||A.demTexture&&!A.needsDEMTextureUpload||(d.activeTexture.set(g.TEXTURE1),wI(this.painter,A,j))}}_prepareDemTileUniforms(d,g,w,A){if(!g||g.demTexture==null)return!1;const j=d.tileID.canonical,R=Math.pow(2,g.tileID.canonical.z-j.z),F=A||"";return w[`u_dem_tl${F}`]=[j.x*R%1,j.y*R%1],w[`u_dem_scale${F}`]=R,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}_getLoadedAreaMinimum(){if(!this.enabled)return 0;let d=0;const g=this._visibleDemTiles.reduce((w,A)=>{if(!A.dem)return w;const j=A.dem.tree.minimums[0];return j>0&&d++,w+j},0);return d?g/d:0}_updateEmptyDEMTexture(){const d=this.painter.context,g=d.gl;d.activeTexture.set(g.TEXTURE2);const w=this._getLoadedAreaMinimum(),A=new s.dz({width:1,height:1},new Float32Array([w]));this._emptyDEMTextureDirty=!1;let j=this._emptyDEMTexture;return j?j.update(A,{premultiply:!1}):j=this._emptyDEMTexture=new s.T(d,A,g.R32F,{premultiply:!1}),j}setupElevationDraw(d,g,w){const A=this.painter.context,j=A.gl,R={u_dem:2,u_dem_prev:4,u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_depth_range_unpack:[0,1],u_occluder_half_size:16,u_occlusion_depth_offset:-1e-4,u_exaggeration:0};R.u_exaggeration=this.exaggeration();let F=null,$=null,H=1;if(w&&w.morphing&&this._useVertexMorphing){const ne=w.morphing.srcDemTile,le=w.morphing.dstDemTile;H=w.morphing.phase,ne&&le&&(this._prepareDemTileUniforms(d,ne,R,"_prev")&&($=ne),this._prepareDemTileUniforms(d,le,R)&&(F=le))}const Y=ne=>ne&&ne.demTexture&&this.painter.linearFloatFilteringSupported()?j.LINEAR:j.NEAREST;let te=null;var ee;if(this.enabled?$&&F?(te=F.demTexture,A.activeTexture.set(j.TEXTURE4),$.demTexture.bind(Y($),j.CLAMP_TO_EDGE),R.u_dem_lerp=H):(F=this.terrainTileForTile[d.tileID.key],te=this._prepareDemTileUniforms(d,F,R)?F.demTexture:this.emptyDEMTexture):te=this.emptyDEMTexture,A.activeTexture.set(j.TEXTURE2),te&&(R.u_dem_size=(ee=te).size[0]===1?1:ee.size[0]-2,te.bind(Y(F),j.CLAMP_TO_EDGE)),this.painter.setupDepthForOcclusion(w&&w.useDepthForOcclusion,g,R),w&&w.useMeterToDem&&F){const ne=(1<{if(pe===ft)return;const Nt=[mv[ft],"PROJECTION_GLOBE_VIEW"];Ne&&Nt.push("CUSTOM_ANTIALIASING");const Ft=H.isTileAffectedByFog(yt);me=H.getOrCreateProgram("globeRaster",{defines:Nt,overrideFog:Ft}),pe=ft},Ye=H.colorModeForRenderPass(),Be=new Cr(oe.LEQUAL,Cr.ReadWrite,H.depthRangeFor3D);Ro.update(ne);const We=s.dq(Ie),Le=[s.aH(Ie.center.lng),s.aL(Ie.center.lat)],Fe=H.globeSharedBuffers,qe=[Ie.width*s.o.devicePixelRatio,Ie.height*s.o.devicePixelRatio],st=Float32Array.from(Ie.globeMatrix),Qe={useDenormalizedUpVectorScale:!0};{const yt=H.transform,ft=Dx(yt.zoom,Y.exaggeration(),Y.sourceCache._source.tileSize);pe=-1;const Nt=oe.TRIANGLES;for(const Ft of ee){const ot=te.getTile(Ft),tt=Xr.disabled,mt=Y.prevTerrainTileForTile[Ft.key],bt=Y.terrainTileForTile[Ft.key];xT(mt,bt)&&Ro.newMorphing(Ft.key,mt,bt,ne,250),Mx(H,ot.emissiveTexture),le.activeTexture.set(oe.TEXTURE0),ot.texture&&ot.texture.bind(oe.LINEAR,oe.CLAMP_TO_EDGE);const Et=Ro.getMorphValuesForProxy(Ft.key),tr=Et?1:0;Et&&Object.assign(Qe,{morphing:{srcDemTile:Et.from,dstDemTile:Et.to,phase:s.dn(Et.phase)}});const Vt=s.dr(Ft.canonical),qt=s.ds(Vt.getCenter().lat),Mt=s.dt(Ft.canonical,Vt,qt,yt.worldSize/yt._pixelsPerMercatorPixel),Tr=s.du(s.dv(Ft.canonical)),Dr=H.emissiveMode==="mrt-fallback"?1:0,pr=ug(yt.expandedFarZProjMatrix,st,We,Tr,s.al(yt.zoom),Le,yt.frustumCorners.TL,yt.frustumCorners.TR,yt.frustumCorners.BR,yt.frustumCorners.BL,yt.globeCenterInViewSpace,yt.globeRadius,qe,ft,yt._farZ,Dr,Mt);if(ve(Ft,tr),me&&(Y.setupElevationDraw(ot,me,Qe),H.uploadCommonUniforms(le,me,Ft.toUnwrapped()),Fe)){const[wr,Wr,nn]=Fe.getGridBuffers(qt,ft!==0);me.draw(H,Nt,Be,tt,Ye,Gr.backCCW,pr,"globe_raster",wr,Wr,nn)}}}if(Fe&&(H.renderDefaultNorthPole||H.renderDefaultSouthPole)){const yt=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];Ne&&yt.push("CUSTOM_ANTIALIASING"),me=H.getOrCreateProgram("globeRaster",{defines:yt});for(const ft of ee){const{x:Nt,y:Ft,z:ot}=ft.canonical,tt=Ft===0,mt=Ft===(1<wr.draw(H,oe.TRIANGLES,Be,Xr.disabled,Ye,Gr.disabled,ug(Ie.expandedFarZProjMatrix,Mt,Mt,Tr,0,Le,Ie.frustumCorners.TL,Ie.frustumCorners.TR,Ie.frustumCorners.BR,Ie.frustumCorners.BL,Ie.globeCenterInViewSpace,Ie.globeRadius,qe,0,Ie._farZ,Dr),"globe_pole_raster",Wr,tr,Vt);Y.setupElevationDraw(qt,me,Qe),H.uploadCommonUniforms(le,me,ft.toUnwrapped()),tt&&H.renderDefaultNorthPole&&pr(me,bt),mt&&H.renderDefaultSouthPole&&(Mt=s.cC(s.bb(),Mt,[1,-1,1]),pr(me,Et))}}}})(A,j,R,F,$);else{const H=A.context,Y=H.gl;let te,ee;const ne=A.shadowRenderer,le=ja(A,A.longestCutoffRange),oe=Ye=>{if(ee===Ye)return;const Be=[];Be.push(mv[Ye]),le.shouldRenderCutoff&&Be.push("RENDER_CUTOFF"),ne&&(Be.push("RENDER_SHADOWS"),ne.useNormalOffset&&Be.push("NORMAL_OFFSET")),te=A.getOrCreateProgram("terrainRaster",{defines:Be}),ee=Ye},me=A.colorModeForRenderPass(),pe=new Cr(Y.LEQUAL,Cr.ReadWrite,A.depthRangeFor3D);Ro.update($);const Ie=A.transform,Ne=Dx(Ie.zoom,j.exaggeration(),j.sourceCache._source.tileSize);let ve=[0,0,0];if(ne){const Ye=A.style.directionalLight,Be=A.style.ambientLight;Ye&&Be&&(ve=Lu(A.style,Ye,Be))}{ee=-1;const Ye=Y.TRIANGLES,[Be,We]=[j.gridIndexBuffer,j.gridSegments];for(const Le of F){const Fe=R.getTile(Le),qe=Xr.disabled,st=j.prevTerrainTileForTile[Le.key],Qe=j.terrainTileForTile[Le.key];xT(st,Qe)&&Ro.newMorphing(Le.key,st,Qe,$,250),Mx(A,Fe.emissiveTexture),H.activeTexture.set(Y.TEXTURE0),Fe.texture&&Fe.texture.bind(Y.LINEAR,Y.CLAMP_TO_EDGE);const yt=Ro.getMorphValuesForProxy(Le.key),ft=yt?1:0;let Nt;yt&&(Nt={morphing:{srcDemTile:yt.from,dstDemTile:yt.to,phase:s.dn(yt.phase)}});const Ft=A.emissiveMode==="mrt-fallback"?1:0,ot=Lx(Le.projMatrix,gv(Le.canonical,Ie.renderWorldCopies)?Ne/10:Ne,ve,Ft);if(oe(ft),!te)continue;j.setupElevationDraw(Fe,te,Nt);const tt=Le.toUnwrapped();ne&&ne.setupShadows(tt,te),A.uploadCommonUniforms(H,te,tt,null,le),te.draw(A,Ye,pe,qe,me,Gr.backCCW,ot,"terrain_raster",j.gridBuffer,Be,We)}}}}(g,this,this.proxySourceCache,d,this._updateTimestamp),this.renderingToTexture=!0,g.gpuTimingDeferredRenderEnd(),d.splice(0,d.length))}renderBatch(d){if(this._drapedRenderBatches.length===0)return d+1;this.renderingToTexture=!0;const g=this.painter,w=this.painter.context,A=this.proxySourceCache,j=this.proxiedCoords[A.id],R=this._drapedRenderBatches.shift(),F=g.style.order,$=[];this._updateFBOs(g.emissiveMode==="mrt-fallback");let H=0;for(const Y of j){const te=A.getTileByID(Y.proxyTileKey),ee=A.proxyCachedFBO[Y.key]?A.proxyCachedFBO[Y.key][d]:void 0,ne=ee!==void 0?A.renderCache[ee]:this.pool[H++],le=ee!==void 0;if(te.texture=ne.tex,te.emissiveTexture=ne.emissiveTex,le&&!ne.dirty){$.push(te.tileID);continue}w.bindFramebuffer.set(ne.fb.framebuffer);const oe=w.gl;let me;oe.drawBuffers(g.emissiveMode==="mrt-fallback"?[oe.COLOR_ATTACHMENT0,oe.COLOR_ATTACHMENT1]:[oe.COLOR_ATTACHMENT0]),this.renderedToTile=!1,ne.dirty&&(w.clear({color:s.aq.transparent,stencil:0}),ne.dirty=!1);for(let pe=R.start;pe<=R.end;++pe){const Ie=g.style._mergedLayers[F[pe]];if(Ie.isHidden(g.transform.zoom))continue;const Ne=g.style.getLayerSourceCache(Ie),ve=Ne?this.proxyToSource[Y.key][Ne.id]:[Y];if(!ve)continue;const Ye=ve;w.viewport.set([0,0,ne.fb.width,ne.fb.height]),me!==(Ne?Ne.id:null)&&(this._setupStencil(ne,ve,Ie,Ne),me=Ne?Ne.id:null),g.renderLayer(g,Ne,Ie,Ye)}if(oe.drawBuffers([oe.COLOR_ATTACHMENT0]),this._drapedRenderBatches.length===0)for(const pe of this._pendingGroundEffectLayers){const Ie=g.style._mergedLayers[F[pe]];if(Ie.isHidden(g.transform.zoom))continue;const Ne=g.style.getLayerSourceCache(Ie),ve=Ne?this.proxyToSource[Y.key][Ne.id]:[Y];if(!ve)continue;const Ye=ve;w.viewport.set([0,0,ne.fb.width,ne.fb.height]),me!==(Ne?Ne.id:null)&&(this._setupStencil(ne,ve,Ie,Ne),me=Ne?Ne.id:null),g.renderLayer(g,Ne,Ie,Ye)}this.renderedToTile?(ne.dirty=!0,$.push(te.tileID)):le||--H,H===5&&(H=0,this.renderToBackBuffer($))}return this.renderToBackBuffer($),this.renderingToTexture=!1,w.bindFramebuffer.set(null),w.viewport.set([0,0,g.width,g.height]),R.end+1}postRender(){}isLayerOrderingCorrect(d){const g=d.order.length;let w=-1,A=g;for(let j=0;jw}getMinElevationBelowMSL(){let d=0;return this._visibleDemTiles.filter(g=>g.dem).forEach(g=>{d=Math.min(d,g.dem.tree.minimums[0])}),d===0?d:(d-30)*this._exaggeration}raycast(d,g,w){if(!this._visibleDemTiles)return null;const A=this._visibleDemTiles.filter(j=>j.dem).map(j=>{const R=j.tileID,F=1<(j.t!==null?j.t:Number.MAX_VALUE)-(R.t!==null?R.t:Number.MAX_VALUE));for(const j of A){if(j.t==null)return null;const R=j.tile.dem.tree.raycast(j.minx,j.miny,j.maxx,j.maxy,d,g,w);if(R!=null)return R}return null}_createFBO(){const d=this.painter.context,g=d.gl,w=this.drapeBufferSize;d.activeTexture.set(g.TEXTURE0);const A=new s.T(d,{width:w[0],height:w[1],data:null},g.RGBA8);A.bind(g.LINEAR,g.CLAMP_TO_EDGE);const j=d.createFramebuffer(w[0],w[1],1,null);let R;return j.colorAttachment0.set(A.texture),this._emissiveTexture&&(R=new s.T(d,{width:w[0],height:w[1],data:null},g.R8),R.bind(g.LINEAR,g.CLAMP_TO_EDGE),j.createColorAttachment(d,1),j.colorAttachment1.set(R.texture)),j.depthAttachment=new S3(d,j.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=d.createRenderbuffer(d.gl.DEPTH_STENCIL,w[0],w[1]),this._stencilRef=0,j.depthAttachment.set(this._sharedDepthStencil),d.clear({stencil:0})):j.depthAttachment.set(this._sharedDepthStencil),d.extTextureFilterAnisotropic&&g.texParameterf(g.TEXTURE_2D,d.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,d.extTextureFilterAnisotropicMax),{fb:j,tex:A,emissiveTex:R,dirty:!1}}_updateFBOs(d){if(this._emissiveTexture!==d){for(const g of this.pool)this._updateFBO(g,d);for(const g of this.proxySourceCache.renderCache)this._updateFBO(g,d);this._emissiveTexture=d}}_updateFBO(d,g){const w=d.fb,A=this.painter.context,j=A.gl,R=this.drapeBufferSize;if(g){const F=new s.T(A,{width:R[0],height:R[1],data:null},j.R8);F.bind(j.LINEAR,j.CLAMP_TO_EDGE),d.emissiveTex=F,w.createColorAttachment(A,1),w.colorAttachment1.set(F.texture)}else d.emissiveTex=void 0,w.removeColorAttachment(A,1);d.dirty=!0}_initFBOPool(){for(;this.pool.length{const g=this._style._mergedLayers[d],w=g.isHidden(this.painter.transform.zoom);return g.type==="hillshade"||g.type==="custom"?!w&&g.shouldRedrape():!w&&g.hasTransition()})}_clearLineLayersFromRenderCache(){let d=!1;for(const w of this._style.getSources())if(w instanceof Pl){d=!0;break}if(!d)return;const g={};for(let w=0;w$>F.end)||s.w("fill-extrusion with flood lighting and/or ground ambient occlusion should be moved to be on top of all draped layers.")}this._drapedRenderBatches=w}_setupRenderCache(d){const g=this.proxySourceCache;if(this._shouldDisableRenderCache()||this.invalidateRenderCache){if(this.invalidateRenderCache=!1,g.renderCache.length>g.renderCachePool.length){const R=Object.values(g.proxyCachedFBO);g.proxyCachedFBO={};for(let F=0;F=0;R--){const F=w[R];if(g.getTileByID(F.key),g.proxyCachedFBO[F.key]!==void 0){const $=d[F.key],H=this.proxyToSource[F.key];let Y=0;for(const te in H){const ee=H[te],ne=$[te];if(!ne||ne.length!==ee.length||ee.some((le,oe)=>le!==ne[oe]||A[te]&&A[te].hasOwnProperty(le.key))){Y=-1;break}++Y}for(const te in g.proxyCachedFBO[F.key])g.renderCache[g.proxyCachedFBO[F.key][te]].dirty=Y<0||Y!==Object.values($).length}}const j=[...this._drapedRenderBatches];j.sort((R,F)=>F.end-F.start-(R.end-R.start));for(const R of j)for(const F of w){if(g.proxyCachedFBO[F.key])continue;let $=g.renderCachePool.pop();$===void 0&&g.renderCache.length<50&&($=g.renderCache.length,g.renderCache.push(this._createFBO())),$!==void 0&&(g.proxyCachedFBO[F.key]={},g.proxyCachedFBO[F.key][R.start]=$,g.renderCache[$].dirty=!0)}this._tilesDirty={}}_setupStencil(d,g,w,A){if(!A||!this._sourceTilesOverlap[A.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const j=this.painter.context,R=j.gl;if(g.length<=1)return void(this._overlapStencilType=!1);let F;if(w.isTileClipped())F=g.length,this._overlapStencilMode.test={func:R.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(g[0].overscaledZ>g[g.length-1].overscaledZ))return void(this._overlapStencilType=!1);F=1,this._overlapStencilMode.test={func:R.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+F>255&&(j.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=F,this._overlapStencilMode.ref=this._stencilRef,w.isTileClipped()&&this._renderTileClippingMasks(g,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType==="Clip"||this._overlapStencilType==="Mask"}stencilModeForRTTOverlap(d){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType==="Clip"&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[d.key]),this._overlapStencilMode):Xr.disabled}_renderTileClippingMasks(d,g){const w=this.painter,A=this.painter.context,j=A.gl;w._tileClippingMaskIDs={},A.setColorMode(Yr.disabled),A.setDepthMode(Cr.disabled);const R=w.getOrCreateProgram("clippingMask");for(const F of d){const $=w._tileClippingMaskIDs[F.key]=--g;R.draw(w,j.TRIANGLES,Cr.disabled,new Xr({func:j.ALWAYS,mask:0},$,255,j.KEEP,j.KEEP,j.REPLACE),Yr.disabled,Gr.disabled,Ox(F.projMatrix),"$clipping",w.tileExtentBuffer,w.quadTriangleIndexBuffer,w.tileExtentSegments)}}pointCoordinate(d){const g=this.painter.transform;if(d.x<0||d.x>g.width||d.y<0||d.y>g.height)return null;const w=[d.x,d.y,1,1];s.aE(w,w,g.pixelMatrixInverse),s.cu(w,w,1/w[3]),w[0]/=g.worldSize,w[1]/=g.worldSize;const A=g._camera.position,j=s.bU(1,g.center.lat),R=[A[0],A[1],A[2]/j,0],F=s.cV([],w.slice(0,3),R);s.ay(F,F);const $=this.raycast(R,F,this._exaggeration);return $!==null&&$?(s.bg(R,R,F,$),R[3]=R[2],R[2]*=j,R):null}_setupProxiedCoordsForOrtho(d,g,w){if(d.getSource()instanceof s.aV)return this._setupProxiedCoordsForImageSource(d,g,w);this._findCoveringTileCache[d.id]=this._findCoveringTileCache[d.id]||{};const A=this.proxiedCoords[d.id]=[],j=this.proxyCoords;for(let $=0;$Y.overscaledZ-H.overscaledZ)}_setupProxiedCoordsForImageSource(d,g,w){if(!d.getSource().loaded())return;const A=this.proxiedCoords[d.id]=[],j=this.proxyCoords,R=d.getSource(),F=R.tileID;if(!F)return;const $=new s.P(F.x,F.y)._div(1<(te.min.x=Math.min(te.min.x,ee.x-$.x),te.min.y=Math.min(te.min.y,ee.y-$.y),te.max.x=Math.max(te.max.x,ee.x-$.x),te.max.y=Math.max(te.max.y,ee.y-$.y),te),{min:new s.P(Number.MAX_VALUE,Number.MAX_VALUE),max:new s.P(-Number.MAX_VALUE,-Number.MAX_VALUE)}),Y=(te,ee)=>{const ne=te.wrap+te.canonical.x/(1<me+H.max.x||le+oepe+H.max.y};for(let te=0;teR.key===g.tileID.key);if(j)return j}if(g.tileID.key!==d.key){const j=d.canonical.z-g.tileID.canonical.z;let R,F,$;A=s.bb();const H=g.tileID.wrap-d.wrap<0?(R=s.an>>j,F=R*((g.tileID.canonical.x<=te){const ee=d.canonical.z-te;g.getSource().reparseOverscaled?(F=Math.max(d.canonical.z+2,g.transform.tileZoom),R=new s.aR(F,d.wrap,te,d.canonical.x>>ee,d.canonical.y>>ee)):ee!==0&&(F=te,R=new s.aR(F,d.wrap,te,d.canonical.x>>ee,d.canonical.y>>ee))}R.key!==d.key&&(H.push(R.key),w=g.getTile(R))}const Y=te=>{H.forEach(ee=>{A[ee]=te}),H.length=0};for(F-=1;F>=$&&(!w||!w.hasData());F--){w&&Y(w.tileID.key);const te=R.calculateScaledKey(F);if(w=g.getTileByID(te),w&&w.hasData())break;const ee=A[te];if(ee===null)break;ee===void 0?H.push(te):w=g.getTileByID(ee)}return Y(w?w.tileID.key:null),w&&w.hasData()?w:null}findDEMTileFor(d){return this.enabled?this._findTileCoveringTileID(d,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(d,g){let w=this._tilesDirty[d];w||(w=this._tilesDirty[d]={}),w[g.key]=!0}}function vT(v,d,g){const w=function(F,$,H){const Y=s.bi($,F),te=s.bi(H,[.2126,.7152,.0722]),ee=(le,oe,me)=>(1-me)*le+me*oe,ne=ee(1-.3*Math.min(te,1),1,Math.min(Y+1,1));return ee(.92,1,Math.asin(s.aC($[2],-1,1))/Math.PI+.5)*ne}(v,[0,0,1],d),A=[0,0,0];s.bJ(A,g.slice(0,3),w);const j=[0,0,0];s.bJ(j,d.slice(0,3),v[2]);const R=[0,0,0];return s.cT(R,A,j),s.cW(R)}const NI=["fill","fillOutline","fillPattern","line","linePattern","background","backgroundPattern","hillshade","raster"],RI=["stars","rainParticle","snowParticle","fillExtrusion","fillExtrusionGroundEffect","building","buildingBloom","elevatedStructures","model","symbol"];class Cp{static cacheKey(d,g,w,A){const j=[g];A&&j.push(A.cacheKey);for(const R of w)(typeof R=="string"&&R.includes(" ")||d.usedDefines.has(R))&&j.push(R);return j.join("/")}constructor(d,g,w,A,j,R){const F=d.gl;this.program=F.createProgram(),this.configuration=A,this.name=g,this.fixedDefines=[...R];const $=`#version 300 es ${(A?A.defines():[]).concat(R.map(oe=>`#define ${oe}`)).join(` `)}`,H=[$,sg];for(const oe of w.fragmentIncludes)H.push(Du[oe]);H.push(w.fragmentSource);const Y=H.join(` `),te=[$,m3];for(const oe of w.vertexIncludes)te.push(Du[oe]);this.forceManualRenderingForInstanceIDShaders=d.forceManualRenderingForInstanceIDShaders&&w.vertexSource.includes("gl_InstanceID"),this.forceManualRenderingForInstanceIDShaders&&te.push("uniform int u_instanceID;"),te.push(w.vertexSource);let ee=te.join(` `);this.forceManualRenderingForInstanceIDShaders&&(ee=ee.replaceAll("gl_InstanceID","u_instanceID"));const ne=F.createShader(F.FRAGMENT_SHADER);if(F.isContextLost())return void(this.failedToCreate=!0);F.shaderSource(ne,Y),F.compileShader(ne),F.attachShader(this.program,ne);const le=F.createShader(F.VERTEX_SHADER);F.isContextLost()?this.failedToCreate=!0:(F.shaderSource(le,ee),F.compileShader(le),F.attachShader(this.program,le),this.attributes={},F.linkProgram(this.program),F.deleteShader(le),F.deleteShader(ne),this.fixedUniforms=j(d),this.fixedUniformsEntries=Object.entries(this.fixedUniforms),this.binderUniforms=A?A.getUniforms(d):[],this.forceManualRenderingForInstanceIDShaders&&(this.instancingUniforms=(oe=>({u_instanceID:new s.bX(oe)}))(d)),(R.includes("TERRAIN")||R.includes("ELEVATED")||g.includes("symbol")||g.includes("circle"))&&(this.terrainUniforms=(oe=>({u_dem:new s.bX(oe),u_dem_prev:new s.bX(oe),u_dem_tl:new s.b_(oe),u_dem_scale:new s.bZ(oe),u_dem_tl_prev:new s.b_(oe),u_dem_scale_prev:new s.bZ(oe),u_dem_size:new s.bZ(oe),u_dem_lerp:new s.bZ(oe),u_exaggeration:new s.bZ(oe),u_depth:new s.bX(oe),u_depth_size_inv:new s.b_(oe),u_depth_range_unpack:new s.b_(oe),u_occluder_half_size:new s.bZ(oe),u_occlusion_depth_offset:new s.bZ(oe),u_meter_to_dem:new s.bZ(oe),u_label_plane_matrix_inv:new s.b$(oe)}))(d)),R.includes("GLOBE")&&(this.globeUniforms=(oe=>({u_tile_tl_up:new s.bY(oe),u_tile_tr_up:new s.bY(oe),u_tile_br_up:new s.bY(oe),u_tile_bl_up:new s.bY(oe),u_tile_up_scale:new s.bZ(oe)}))(d)),R.includes("FOG")&&(this.fogUniforms=(oe=>({u_fog_matrix:new s.b$(oe),u_fog_range:new s.b_(oe),u_fog_color:new s.cO(oe),u_fog_horizon_blend:new s.bZ(oe),u_fog_vertical_limit:new s.b_(oe),u_fog_temporal_offset:new s.bZ(oe),u_frustum_tl:new s.bY(oe),u_frustum_tr:new s.bY(oe),u_frustum_br:new s.bY(oe),u_frustum_bl:new s.bY(oe),u_globe_pos:new s.bY(oe),u_globe_radius:new s.bZ(oe),u_globe_transition:new s.bZ(oe),u_is_globe:new s.bX(oe),u_viewport:new s.b_(oe)}))(d)),R.includes("RENDER_CUTOFF")&&(this.cutoffUniforms=(oe=>({u_cutoff_params:new s.cO(oe)}))(d)),R.includes("LIGHTING_3D_MODE")&&(this.lightsUniforms=(oe=>({u_lighting_ambient_color:new s.bY(oe),u_lighting_directional_dir:new s.bY(oe),u_lighting_directional_color:new s.bY(oe),u_ground_radiance:new s.bY(oe)}))(d)),R.includes("RENDER_SHADOWS")&&(this.shadowUniforms=(oe=>({u_light_matrix_0:new s.b$(oe),u_light_matrix_1:new s.b$(oe),u_fade_range:new s.b_(oe),u_shadow_normal_offset:new s.bY(oe),u_shadow_intensity:new s.bZ(oe),u_shadow_texel_size:new s.bZ(oe),u_shadow_map_resolution:new s.bZ(oe),u_shadow_direction:new s.bY(oe),u_shadow_bias:new s.bY(oe),u_shadowmap_0:new s.bX(oe),u_shadowmap_1:new s.bX(oe)}))(d)))}getAttributeLocation(d,g){let w=this.attributes[g];return w===void 0&&(w=this.attributes[g]=d.getAttribLocation(this.program,g)),w}setTerrainUniformValues(d,g){if(!this.terrainUniforms)return;const w=this.terrainUniforms;if(!this.failedToCreate){d.program.set(this.program);for(const A in g)w[A]&&w[A].set(this.program,A,g[A])}}setGlobeUniformValues(d,g){if(!this.globeUniforms)return;const w=this.globeUniforms;if(!this.failedToCreate){d.program.set(this.program);for(const A in g)w[A]&&w[A].set(this.program,A,g[A])}}setFogUniformValues(d,g){if(!this.fogUniforms)return;const w=this.fogUniforms;if(!this.failedToCreate){d.program.set(this.program);for(const A in g)w[A].set(this.program,A,g[A])}}setCutoffUniformValues(d,g){if(!this.cutoffUniforms)return;const w=this.cutoffUniforms;if(!this.failedToCreate){d.program.set(this.program);for(const A in g)w[A].set(this.program,A,g[A])}}setLightsUniformValues(d,g){if(!this.lightsUniforms)return;const w=this.lightsUniforms;if(!this.failedToCreate){d.program.set(this.program);for(const A in g)w[A].set(this.program,A,g[A])}}setShadowUniformValues(d,g){if(this.failedToCreate||!this.shadowUniforms)return;const w=this.shadowUniforms;d.program.set(this.program);for(const A in g)w[A].set(this.program,A,g[A])}_drawDebugWireframe(d,g,w,A,j,R,F,$,H,Y){const te=d.options.wireframe;if(te.terrain===!1&&te.layers2D===!1&&te.layers3D===!1)return;const ee=d.context;if(!(!(!te.terrain||this.name!=="terrainRaster"&&this.name!=="globeRaster")||!(!te.layers2D||d._terrain&&d._terrain.renderingToTexture||!NI.includes(this.name))||!(!te.layers3D||!RI.includes(this.name))))return;const ne=ee.gl,le=d.wireframeDebugCache.getLinesFromTrianglesBuffer(d.frameCounter,j,ee);if(!le)return;const oe=[...this.fixedDefines,"DEBUG_WIREFRAME"],me=d.getOrCreateProgram(this.name,{config:this.configuration,defines:oe});ee.program.set(me.program);const pe=(ve,Ye,Be)=>{if(Ye[ve]&&Be[ve])for(const We in Ye[ve])Be[ve][We]&&Be[ve][We].set(Be.program,We,Ye[ve][We].current)};H&&H.setUniforms(me.program,ee,me.binderUniforms,F,{zoom:$}),pe("fixedUniforms",this,me),pe("terrainUniforms",this,me),pe("globeUniforms",this,me),pe("fogUniforms",this,me),pe("lightsUniforms",this,me),pe("shadowUniforms",this,me),le.bind(),ee.setColorMode(new Yr([ne.ONE,ne.ONE_MINUS_SRC_ALPHA,ne.ZERO,ne.ONE],s.aq.transparent,[!0,!0,!0,!1])),ee.setDepthMode(new Cr(g.func===ne.LESS?ne.LEQUAL:g.func,Cr.ReadOnly,g.range)),ee.setStencilMode(Xr.disabled);const Ie=3*R.primitiveLength*2,Ne=3*R.primitiveOffset*2*2;if(this.forceManualRenderingForInstanceIDShaders){const ve=Y||1;for(let Ye=0;Ye1?ne.drawElementsInstanced(ne.LINES,Ie,ne.UNSIGNED_SHORT,Ne,Y):ne.drawElements(ne.LINES,Ie,ne.UNSIGNED_SHORT,Ne);j.bind(),ee.program.set(this.program),ee.setDepthMode(g),ee.setStencilMode(w),ee.setColorMode(A)}checkUniforms(d,g,w){if(this.fixedDefines.includes(g)){for(const A of Object.keys(w))if(!w[A].initialized)throw new Error(`Program '${this.name}', from draw '${d}': uniform ${A} not set but required by ${g} being defined`)}}draw(d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me){const pe=d.context,Ie=pe.gl;if(this.failedToCreate)return;pe.program.set(this.program),pe.setDepthMode(w),pe.setStencilMode(A),pe.setColorMode(j),pe.setCullFace(R);for(const[Le,Fe]of this.fixedUniformsEntries)Fe.set(this.program,Le,F[Le]);le&&le.setUniforms(this.program,pe,this.binderUniforms,ee,{zoom:ne});const Ne={[Ie.POINTS]:1,[Ie.LINES]:2,[Ie.TRIANGLES]:3,[Ie.LINE_STRIP]:1}[g];this.checkUniforms($,"RENDER_SHADOWS",this.shadowUniforms);const ve=oe||[],Ye=le?le.getPaintVertexBuffers():[],Be=g===Ie.TRIANGLES&&Y,We=me&&me>0?1:void 0;for(const Le of te.get()){const Fe=Le.vaos||(Le.vaos={});if((Fe[$]||(Fe[$]=new bI)).bind(pe,this,H,Ye,Y,Le.vertexOffset,ve,We),this.forceManualRenderingForInstanceIDShaders){const qe=me||1;for(let st=0;st1?Ie.drawElementsInstanced(g,Le.primitiveLength*Ne,Ie.UNSIGNED_SHORT,Le.primitiveOffset*Ne*2,me):Y?Ie.drawElements(g,Le.primitiveLength*Ne,Ie.UNSIGNED_SHORT,Le.primitiveOffset*Ne*2):Ie.drawArrays(g,Le.vertexOffset,Le.vertexLength);Be&&this._drawDebugWireframe(d,w,A,j,Y,Le,ee,ne,le,me)}}}function LI(v,d,g=0){const w=Math.pow(2,d.tileID.overscaledZ),A=d.tileSize*Math.pow(2,v.transform.tileZoom)/w,j=A*(d.tileID.canonical.x+d.tileID.wrap*w),R=A*d.tileID.canonical.y;return{u_image:0,u_texsize:d.imageAtlasTexture?d.imageAtlasTexture.size:[0,0],u_tile_units_to_pixels:1/s.aA(d,1,v.transform.tileZoom),u_pixel_coord_upper:[j>>16,R>>16],u_pixel_coord_lower:[65535&j,65535&R],u_pattern_transition:g}}const _v={terrain:0,flat:1},T3=s.bb(),DI=(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie=[0,0,1])=>{const Ne=d.style.light,ve=Ne.properties.get("position"),Ye=[ve.x,ve.y,ve.z],Be=s.dE();Ne.properties.get("anchor")==="viewport"&&(s.dF(Be,-d.transform.angle),s.dG(Ye,Ye,Be));const We=Ne.properties.get("color").toPremultipliedRenderColor(null),Le=d.transform,Fe={u_matrix:v,u_lightpos:Ye,u_lightintensity:Ne.properties.get("intensity"),u_lightcolor:[We.r,We.g,We.b],u_vertical_gradient:+g,u_opacity:w,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:T3,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_height_type:_v[H],u_base_type:_v[Y],u_ao:A,u_edge_radius:j,u_width_scale:R,u_flood_light_color:le,u_vertical_scale:oe,u_flood_light_intensity:me,u_ground_shadow_factor:pe,u_front_cutoff_params:Ie};return Le.projection.name==="globe"&&(Fe.u_tile_id=[F.canonical.x,F.canonical.y,1<({u_matrix:v,u_edge_radius:d,u_width_scale:g,u_vertical_scale:w,u_height_type:_v[A],u_base_type:_v[j]}),A3=(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe)=>{const Ie=DI(v,d,g,w,A,j,R,F,H,Y,te,ee,ne,le,oe,me,1,[0,0,0]),Ne={u_height_factor:-Math.pow(2,F.overscaledZ)/$.tileSize/8};return Object.assign(Ie,LI(d,$,pe),Ne)},vv=(v,d,g)=>({u_matrix:v,u_emissive_strength:d,u_ground_shadow_factor:g}),bv=(v,d,g,w,A,j=0)=>Object.assign(vv(v,d,A),LI(g,w,j)),MI=(v,d,g,w)=>({u_matrix:v,u_world:g,u_emissive_strength:d,u_ground_shadow_factor:w}),dg=(v,d,g,w,A,j,R=0)=>Object.assign(bv(v,d,g,w,j,R),{u_world:A}),OI=(v,d)=>({u_matrix:v,u_depth_bias:d}),FI=(v,d)=>({u_matrix:v,u_ground_shadow_factor:d}),zx=(v,d,g,w,A)=>({u_matrix:v,u_camera_pos:[d[0],d[1],d[2]],u_depth_bias:g,u_height_scale:w,u_reset_depth:A}),wv=(v,d,g)=>({u_image:v,u_opacity:d,u_blend_mode:g}),hf=(v,d,g,w,A,j,R,F,$,H=[0,0,1])=>({u_matrix:v,u_normal_matrix:d,u_opacity:g,u_faux_facade_ao_intensity:w,u_camera_pos:A,u_tile_to_meter:j,u_facade_emissive_chance:R,u_flood_light_color:F,u_flood_light_intensity:$,u_front_cutoff_params:H}),Sv=v=>({u_matrix:v}),Tv=v=>({u_matrix:v}),BI=(v,d,g,w,A,j,R,F)=>{const $=s.an/j.tileSize;return{u_matrix:v,u_inv_rot_matrix:d,u_camera_to_center_distance:g.getCameraToCenterDistance(F),u_extrude_scale:[g.pixelsToGLUnits[0]/$,g.pixelsToGLUnits[1]/$],u_zoom_transition:w,u_tile_id:R,u_merc_center:A}},ff=(v,d,g,w)=>({u_matrix:v,u_inv_matrix:d,u_camera_to_center_distance:g.getCameraToCenterDistance(w),u_viewport_size:[g.width,g.height]}),$x=(v,d,g=1)=>({u_matrix:v,u_color:d,u_overlay:0,u_overlay_scale:g}),Ev=s.bb(),zI=(v,d,g,w,A,j,R)=>{const F=v.transform,$=F.projection.name==="globe",H=$?s.dH(F.zoom,d.canonical)*F._pixelsPerMercatorPixel:s.aA(g,1,j),Y={u_matrix:d.projMatrix,u_extrude_scale:H,u_intensity:R,u_inv_rot_matrix:Ev,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if($){Y.u_inv_rot_matrix=w,Y.u_merc_center=A,Y.u_tile_id=[d.canonical.x,d.canonical.y,1<({u_matrix:d,u_normalize_matrix:g,u_globe_matrix:w,u_merc_matrix:A,u_grid_matrix:j,u_tl_parent:R,u_scale_parent:Y,u_fade_t:te.mix,u_opacity:te.opacity*ee.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:ee.paint.get("raster-brightness-min"),u_brightness_high:ee.paint.get("raster-brightness-max"),u_saturation_factor:s.dJ(ee.paint.get("raster-saturation")),u_contrast_factor:s.dI(ee.paint.get("raster-contrast")),u_spin_weights:UI(ee.paint.get("raster-hue-rotate")),u_perspective_transform:ne,u_raster_elevation:le,u_zoom_transition:F,u_merc_center:$,u_cutoff_params:H,u_colorization_mix:bT(s.dK,me,Ie),u_colorization_offset:Av(s.dK,pe,Ie),u_color_ramp:oe,u_texture_offset:[ve/(Ne+2*ve),Ne/(Ne+2*ve)],u_texture_res:[Ne+2*ve,Ne+2*ve],u_emissive_strength:Ye,u_zbias_factor:wT(v)});function UI(v){v*=Math.PI/180;const d=Math.sin(v),g=Math.cos(v);return[(2*g+1)/3,(-Math.sqrt(3)*d-g+1)/3,(Math.sqrt(3)*d-g+1)/3]}const gd=.05,k3=(v,d,g,w,A,j,R,F,$,H,Y,te)=>({u_matrix:v,u_normalize_matrix:d,u_globe_matrix:g,u_merc_matrix:w,u_grid_matrix:A,u_tl_parent:j,u_scale_parent:H,u_fade_t:Y.mix,u_opacity:Y.opacity,u_image0:0,u_image1:1,u_raster_elevation:te,u_zoom_transition:R,u_merc_center:F,u_cutoff_params:$}),C3=(v,d,g,w,A,j,R,F,$,H)=>({u_particle_texture:v,u_particle_texture_side_len:d,u_tile_offset:g,u_velocity:w,u_color_ramp:j,u_velocity_res:A,u_max_speed:R,u_uv_offset:F,u_data_scale:[255*$[0],255*$[1]],u_data_offset:H,u_particle_pos_scale:1.1,u_particle_pos_offset:[gd,gd]}),VI=(v,d,g,w,A,j,R,F,$,H)=>({u_particle_texture:v,u_particle_texture_side_len:d,u_velocity:g,u_velocity_res:w,u_max_speed:A,u_speed_factor:j,u_reset_rate:R,u_rand_seed:Math.random(),u_uv_offset:F,u_data_scale:[255*$[0],255*$[1]],u_data_offset:H,u_particle_pos_scale:1.1,u_particle_pos_offset:[gd,gd]}),qI=s.bb(),kv=(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie,Ne,ve,Ye,Be,We)=>{const Le=A.transform,Fe={u_is_size_zoom_constant:+(v==="constant"||v==="source"),u_is_size_feature_constant:+(v==="constant"||v==="camera"),u_size_t:d?d.uSizeT:0,u_size:d?d.uSize:0,u_camera_to_center_distance:Le.getCameraToCenterDistance(Ie),u_rotate_symbol:+g,u_aspect_ratio:Le.width/Le.height,u_fade_change:A.options.fadeDuration?A.symbolFadeChange:1,u_matrix:j,u_label_plane_matrix:R,u_coord_matrix:F,u_is_text:+H,u_elevation_from_sea:$?1:0,u_pitch_with_map:+w,u_texsize:Y,u_texsize_icon:te,u_texture:0,u_texture_icon:1,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:qI,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:qI,u_up_vector:[0,-1,0],u_color_adj_mat:Ye,u_icon_transition:Be||0,u_gamma_scale:w?A.transform.getCameraToCenterDistance(Ie)*Math.cos(A.terrain?0:A.transform._pitch):1,u_device_pixel_ratio:s.o.devicePixelRatio,u_is_halo:1,u_scale_factor:We||1,u_ground_shadow_factor:Ne,u_inv_matrix:s.b7(s.bb(),R),u_normal_scale:ve,u_lutTexture:10,u_zoom:Le.zoom-Math.floor(Le.zoom),u_spp_fill_np_color:[0,0,0,1],u_spp_halo_np_color:[0,0,0,0],u_spp_opacity:1,u_spp_halo_width:0,u_spp_halo_blur:0,u_spp_emissive_strength:0,u_spp_occlusion_opacity:1,u_spp_z_offset:0,u_spp_translate_rotation:[1,0]};return Ie.name==="globe"&&(Fe.u_tile_id=[ne.canonical.x,ne.canonical.y,1<({u_matrix:v,u_emissive_strength:d,u_opacity:g,u_color:w}),pf=(v,d,g,w,A,j,R,F,$)=>Object.assign(function(H,Y,te,ee,ne,le){const{width:oe,height:me}=ee.imageManager.getPixelSize(Y),pe=Math.pow(2,le.tileID.overscaledZ),Ie=le.tileSize*Math.pow(2,ee.transform.tileZoom)/pe,Ne=Ie*(le.tileID.canonical.x+le.tileID.wrap*pe),ve=Ie*le.tileID.canonical.y;return{u_image:0,u_pattern_tl:te.tl,u_pattern_br:te.br,u_texsize:[oe,me],u_pattern_size:te.displaySize,u_pattern_units_to_pixels:ne?[ee.transform.width,-1*ee.transform.height]:[1/s.aA(le,1,ee.transform.tileZoom),1/s.aA(le,1,ee.transform.tileZoom)],u_pixel_coord_upper:[Ne>>16,ve>>16],u_pixel_coord_lower:[65535&Ne,65535&ve]}}(0,j,R,w,F,$),{u_matrix:v,u_emissive_strength:d,u_opacity:g}),hg=new Float32Array(s.b9([])),Ip=(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne=[0,0,0],le,oe,me)=>{const pe=A.style.light,Ie=pe.properties.get("position"),Ne=[-Ie.x,-Ie.y,Ie.z],ve=s.dE();pe.properties.get("anchor")==="viewport"&&(s.dF(ve,-A.transform.angle),s.dG(Ne,Ne,ve));const Ye=Y.alphaMode==="MASK",Be=pe.properties.get("color").toNonPremultipliedRenderColor(null),We=ee.paint.get("model-ambient-occlusion-intensity"),Le=ee.paint.get("model-color").constantOr(s.aq.white).toNonPremultipliedRenderColor(null);return Le.a=ee.paint.get("model-color-mix-intensity").constantOr(0),me&&(Le.r=me[0],Le.g=me[1],Le.b=me[2],Le.a=me[3]),oe&&(Le.r=oe.color.r,Le.g=oe.color.g,Le.b=oe.color.b,Le.a=oe.colorMix,te=oe.emissionStrength,j*=oe.opacity),{u_matrix:v,u_lighting_matrix:d,u_normal_matrix:g,u_node_matrix:w||hg,u_lightpos:Ne,u_lightintensity:pe.properties.get("intensity"),u_lightcolor:[Be.r,Be.g,Be.b],u_camera_pos:ne,u_opacity:j,u_baseTextureIsAlpha:0,u_alphaMask:+Ye,u_alphaCutoff:Y.alphaCutoff,u_baseColorFactor:R.toNonPremultipliedRenderColor(null).toArray01(),u_emissiveFactor:F.toNonPremultipliedRenderColor(null).toArray01(),u_metallicFactor:$,u_roughnessFactor:H,u_baseColorTexture:5,u_metallicRoughnessTexture:6,u_normalTexture:7,u_occlusionTexture:8,u_emissionTexture:9,u_lutTexture:10,u_color_mix:Le.toArray01(),u_aoIntensity:We,u_emissive_strength:te,u_occlusionTextureTransform:le||[0,0,0,0]}},ST=(v,d=hg,g=hg)=>({u_matrix:v,u_instance:d,u_node_matrix:g}),Cv={fillExtrusion:v=>({u_matrix:new s.b$(v),u_lightpos:new s.bY(v),u_lightintensity:new s.bZ(v),u_lightcolor:new s.bY(v),u_vertical_gradient:new s.bZ(v),u_opacity:new s.bZ(v),u_edge_radius:new s.bZ(v),u_width_scale:new s.bZ(v),u_ao:new s.b_(v),u_height_type:new s.bX(v),u_base_type:new s.bX(v),u_tile_id:new s.bY(v),u_zoom_transition:new s.bZ(v),u_inv_rot_matrix:new s.b$(v),u_merc_center:new s.b_(v),u_up_dir:new s.bY(v),u_height_lift:new s.bZ(v),u_flood_light_color:new s.bY(v),u_vertical_scale:new s.bZ(v),u_flood_light_intensity:new s.bZ(v),u_ground_shadow_factor:new s.bY(v),u_front_cutoff_params:new s.bY(v)}),fillExtrusionDepth:v=>({u_matrix:new s.b$(v),u_edge_radius:new s.bZ(v),u_width_scale:new s.bZ(v),u_vertical_scale:new s.bZ(v),u_height_type:new s.bX(v),u_base_type:new s.bX(v)}),fillExtrusionPattern:v=>({u_matrix:new s.b$(v),u_lightpos:new s.bY(v),u_lightintensity:new s.bZ(v),u_lightcolor:new s.bY(v),u_vertical_gradient:new s.bZ(v),u_height_factor:new s.bZ(v),u_edge_radius:new s.bZ(v),u_width_scale:new s.bZ(v),u_ao:new s.b_(v),u_height_type:new s.bX(v),u_base_type:new s.bX(v),u_tile_id:new s.bY(v),u_zoom_transition:new s.bZ(v),u_inv_rot_matrix:new s.b$(v),u_merc_center:new s.b_(v),u_up_dir:new s.bY(v),u_height_lift:new s.bZ(v),u_image:new s.bX(v),u_texsize:new s.b_(v),u_pixel_coord_upper:new s.b_(v),u_pixel_coord_lower:new s.b_(v),u_tile_units_to_pixels:new s.bZ(v),u_opacity:new s.bZ(v),u_pattern_transition:new s.bZ(v)}),fillExtrusionGroundEffect:v=>({u_matrix:new s.b$(v),u_opacity:new s.bZ(v),u_ao_pass:new s.bZ(v),u_meter_to_tile:new s.bZ(v),u_ao:new s.b_(v),u_flood_light_intensity:new s.bZ(v),u_flood_light_color:new s.bY(v),u_attenuation:new s.bZ(v),u_edge_radius:new s.bZ(v),u_fb:new s.bX(v),u_fb_size:new s.bZ(v),u_dynamic_offset:new s.bZ(v)}),fill:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_ground_shadow_factor:new s.bY(v)}),fillPattern:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_image:new s.bX(v),u_texsize:new s.b_(v),u_pixel_coord_upper:new s.b_(v),u_pixel_coord_lower:new s.b_(v),u_tile_units_to_pixels:new s.bZ(v),u_ground_shadow_factor:new s.bY(v),u_pattern_transition:new s.bZ(v)}),fillOutline:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_world:new s.b_(v),u_ground_shadow_factor:new s.bY(v)}),fillOutlinePattern:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_world:new s.b_(v),u_image:new s.bX(v),u_texsize:new s.b_(v),u_pixel_coord_upper:new s.b_(v),u_pixel_coord_lower:new s.b_(v),u_tile_units_to_pixels:new s.bZ(v),u_ground_shadow_factor:new s.bY(v),u_pattern_transition:new s.bZ(v)}),lineBlendComposite:v=>({u_image:new s.bX(v),u_opacity:new s.bZ(v),u_blend_mode:new s.bX(v)}),building:v=>({u_matrix:new s.b$(v),u_normal_matrix:new s.b$(v),u_opacity:new s.bZ(v),u_faux_facade_ao_intensity:new s.bZ(v),u_camera_pos:new s.bY(v),u_tile_to_meter:new s.bZ(v),u_facade_emissive_chance:new s.bZ(v),u_flood_light_color:new s.bY(v),u_flood_light_intensity:new s.bZ(v),u_front_cutoff_params:new s.bY(v)}),buildingBloom:v=>({u_matrix:new s.b$(v)}),buildingDepth:v=>({u_matrix:new s.b$(v)}),elevatedStructuresDepth:v=>({u_matrix:new s.b$(v),u_depth_bias:new s.bZ(v)}),elevatedStructures:v=>({u_matrix:new s.b$(v),u_ground_shadow_factor:new s.bY(v)}),elevatedStructuresDepthReconstruct:v=>({u_matrix:new s.b$(v),u_camera_pos:new s.bY(v),u_depth_bias:new s.bZ(v),u_height_scale:new s.bZ(v),u_reset_depth:new s.bZ(v)}),circle:s.dO,collisionBox:v=>({u_matrix:new s.b$(v),u_inv_rot_matrix:new s.b$(v),u_camera_to_center_distance:new s.bZ(v),u_extrude_scale:new s.b_(v),u_zoom_transition:new s.bZ(v),u_merc_center:new s.b_(v),u_tile_id:new s.bY(v)}),collisionCircle:v=>({u_matrix:new s.b$(v),u_inv_matrix:new s.b$(v),u_camera_to_center_distance:new s.bZ(v),u_viewport_size:new s.b_(v)}),debug:v=>({u_color:new s.dl(v),u_matrix:new s.b$(v),u_overlay:new s.bX(v),u_overlay_scale:new s.bZ(v)}),clippingMask:v=>({u_matrix:new s.b$(v)}),heatmap:v=>({u_extrude_scale:new s.bZ(v),u_intensity:new s.bZ(v),u_matrix:new s.b$(v),u_inv_rot_matrix:new s.b$(v),u_merc_center:new s.b_(v),u_tile_id:new s.bY(v),u_zoom_transition:new s.bZ(v),u_up_dir:new s.bY(v)}),heatmapTexture:v=>({u_image:new s.bX(v),u_color_ramp:new s.bX(v),u_opacity:new s.bZ(v)}),hillshade:v=>({u_matrix:new s.b$(v),u_image:new s.bX(v),u_latrange:new s.b_(v),u_light:new s.b_(v),u_shadow:new s.dl(v),u_highlight:new s.dl(v),u_emissive_strength:new s.bZ(v),u_accent:new s.dl(v)}),hillshadePrepare:v=>({u_matrix:new s.b$(v),u_image:new s.bX(v),u_dimension:new s.b_(v),u_zoom:new s.bZ(v)}),line:s.dN,linePattern:s.dM,raster:v=>({u_matrix:new s.b$(v),u_normalize_matrix:new s.b$(v),u_globe_matrix:new s.b$(v),u_merc_matrix:new s.b$(v),u_grid_matrix:new s.dm(v),u_tl_parent:new s.b_(v),u_scale_parent:new s.bZ(v),u_fade_t:new s.bZ(v),u_opacity:new s.bZ(v),u_image0:new s.bX(v),u_image1:new s.bX(v),u_brightness_low:new s.bZ(v),u_brightness_high:new s.bZ(v),u_saturation_factor:new s.bZ(v),u_contrast_factor:new s.bZ(v),u_spin_weights:new s.bY(v),u_perspective_transform:new s.b_(v),u_raster_elevation:new s.bZ(v),u_zoom_transition:new s.bZ(v),u_merc_center:new s.b_(v),u_cutoff_params:new s.cO(v),u_colorization_mix:new s.cO(v),u_colorization_offset:new s.bZ(v),u_color_ramp:new s.bX(v),u_texture_offset:new s.b_(v),u_texture_res:new s.b_(v),u_emissive_strength:new s.bZ(v),u_zbias_factor:new s.bZ(v)}),rasterParticle:v=>({u_matrix:new s.b$(v),u_normalize_matrix:new s.b$(v),u_globe_matrix:new s.b$(v),u_merc_matrix:new s.b$(v),u_grid_matrix:new s.dm(v),u_tl_parent:new s.b_(v),u_scale_parent:new s.bZ(v),u_fade_t:new s.bZ(v),u_opacity:new s.bZ(v),u_image0:new s.bX(v),u_image1:new s.bX(v),u_raster_elevation:new s.bZ(v),u_zoom_transition:new s.bZ(v),u_merc_center:new s.b_(v),u_cutoff_params:new s.cO(v)}),rasterParticleTexture:v=>({u_texture:new s.bX(v),u_opacity:new s.bZ(v)}),rasterParticleDraw:v=>({u_particle_texture:new s.bX(v),u_particle_texture_side_len:new s.bZ(v),u_tile_offset:new s.b_(v),u_velocity:new s.bX(v),u_color_ramp:new s.bX(v),u_velocity_res:new s.b_(v),u_max_speed:new s.bZ(v),u_uv_offset:new s.b_(v),u_data_scale:new s.b_(v),u_data_offset:new s.bZ(v),u_particle_pos_scale:new s.bZ(v),u_particle_pos_offset:new s.b_(v)}),rasterParticleUpdate:v=>({u_particle_texture:new s.bX(v),u_particle_texture_side_len:new s.bZ(v),u_velocity:new s.bX(v),u_velocity_res:new s.b_(v),u_max_speed:new s.bZ(v),u_speed_factor:new s.bZ(v),u_reset_rate:new s.bZ(v),u_rand_seed:new s.bZ(v),u_uv_offset:new s.b_(v),u_data_scale:new s.b_(v),u_data_offset:new s.bZ(v),u_particle_pos_scale:new s.bZ(v),u_particle_pos_offset:new s.b_(v)}),symbol:v=>({u_is_size_zoom_constant:new s.bX(v),u_is_size_feature_constant:new s.bX(v),u_size_t:new s.bZ(v),u_size:new s.bZ(v),u_camera_to_center_distance:new s.bZ(v),u_rotate_symbol:new s.bX(v),u_aspect_ratio:new s.bZ(v),u_fade_change:new s.bZ(v),u_matrix:new s.b$(v),u_label_plane_matrix:new s.b$(v),u_coord_matrix:new s.b$(v),u_is_text:new s.bX(v),u_elevation_from_sea:new s.bX(v),u_pitch_with_map:new s.bX(v),u_texsize:new s.b_(v),u_texsize_icon:new s.b_(v),u_texture:new s.bX(v),u_texture_icon:new s.bX(v),u_gamma_scale:new s.bZ(v),u_device_pixel_ratio:new s.bZ(v),u_tile_id:new s.bY(v),u_zoom_transition:new s.bZ(v),u_inv_rot_matrix:new s.b$(v),u_merc_center:new s.b_(v),u_camera_forward:new s.bY(v),u_tile_matrix:new s.b$(v),u_up_vector:new s.bY(v),u_ecef_origin:new s.bY(v),u_is_halo:new s.bX(v),u_icon_transition:new s.bZ(v),u_color_adj_mat:new s.b$(v),u_scale_factor:new s.bZ(v),u_ground_shadow_factor:new s.bY(v),u_inv_matrix:new s.b$(v),u_normal_scale:new s.bZ(v),u_lutTexture:new s.bX(v),u_zoom:new s.bZ(v),u_spp_fill_np_color:new s.cO(v),u_spp_halo_np_color:new s.cO(v),u_spp_opacity:new s.bZ(v),u_spp_halo_width:new s.bZ(v),u_spp_halo_blur:new s.bZ(v),u_spp_emissive_strength:new s.bZ(v),u_spp_occlusion_opacity:new s.bZ(v),u_spp_z_offset:new s.bZ(v),u_spp_translate_rotation:new s.b_(v)}),background:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_opacity:new s.bZ(v),u_color:new s.dl(v)}),backgroundPattern:v=>({u_matrix:new s.b$(v),u_emissive_strength:new s.bZ(v),u_opacity:new s.bZ(v),u_image:new s.bX(v),u_pattern_tl:new s.b_(v),u_pattern_br:new s.b_(v),u_texsize:new s.b_(v),u_pattern_size:new s.b_(v),u_pixel_coord_upper:new s.b_(v),u_pixel_coord_lower:new s.b_(v),u_pattern_units_to_pixels:new s.b_(v)}),terrainRaster:v=>({u_matrix:new s.b$(v),u_image0:new s.bX(v),u_image1:new s.bX(v),u_skirt_height:new s.bZ(v),u_ground_shadow_factor:new s.bY(v),u_emissive_texture_available:new s.bZ(v)}),skybox:v=>({u_matrix:new s.b$(v),u_sun_direction:new s.bY(v),u_cubemap:new s.bX(v),u_opacity:new s.bZ(v),u_temporal_offset:new s.bZ(v)}),skyboxGradient:v=>({u_matrix:new s.b$(v),u_color_ramp:new s.bX(v),u_center_direction:new s.bY(v),u_radius:new s.bZ(v),u_opacity:new s.bZ(v),u_temporal_offset:new s.bZ(v)}),skyboxCapture:v=>({u_matrix_3f:new s.dm(v),u_sun_direction:new s.bY(v),u_sun_intensity:new s.bZ(v),u_color_tint_r:new s.cO(v),u_color_tint_m:new s.cO(v),u_luminance:new s.bZ(v)}),globeRaster:v=>({u_proj_matrix:new s.b$(v),u_globe_matrix:new s.b$(v),u_normalize_matrix:new s.b$(v),u_merc_matrix:new s.b$(v),u_zoom_transition:new s.bZ(v),u_merc_center:new s.b_(v),u_image0:new s.bX(v),u_image1:new s.bX(v),u_grid_matrix:new s.dm(v),u_skirt_height:new s.bZ(v),u_far_z_cutoff:new s.bZ(v),u_frustum_tl:new s.bY(v),u_frustum_tr:new s.bY(v),u_frustum_br:new s.bY(v),u_frustum_bl:new s.bY(v),u_globe_pos:new s.bY(v),u_globe_radius:new s.bZ(v),u_viewport:new s.b_(v),u_emissive_texture_available:new s.bZ(v)}),globeAtmosphere:v=>({u_frustum_tl:new s.bY(v),u_frustum_tr:new s.bY(v),u_frustum_br:new s.bY(v),u_frustum_bl:new s.bY(v),u_horizon:new s.bZ(v),u_transition:new s.bZ(v),u_fadeout_range:new s.bZ(v),u_atmosphere_fog_color:new s.cO(v),u_high_color:new s.cO(v),u_space_color:new s.cO(v),u_temporal_offset:new s.bZ(v),u_horizon_angle:new s.bZ(v)}),model:v=>({u_matrix:new s.b$(v),u_lighting_matrix:new s.b$(v),u_normal_matrix:new s.b$(v),u_node_matrix:new s.b$(v),u_lightpos:new s.bY(v),u_lightintensity:new s.bZ(v),u_lightcolor:new s.bY(v),u_camera_pos:new s.bY(v),u_opacity:new s.bZ(v),u_baseColorFactor:new s.cO(v),u_emissiveFactor:new s.cO(v),u_metallicFactor:new s.bZ(v),u_roughnessFactor:new s.bZ(v),u_baseTextureIsAlpha:new s.bX(v),u_alphaMask:new s.bX(v),u_alphaCutoff:new s.bZ(v),u_baseColorTexture:new s.bX(v),u_metallicRoughnessTexture:new s.bX(v),u_normalTexture:new s.bX(v),u_occlusionTexture:new s.bX(v),u_emissionTexture:new s.bX(v),u_lutTexture:new s.bX(v),u_color_mix:new s.cO(v),u_aoIntensity:new s.bZ(v),u_emissive_strength:new s.bZ(v),u_occlusionTextureTransform:new s.cO(v)}),modelDepth:v=>({u_matrix:new s.b$(v),u_instance:new s.b$(v),u_node_matrix:new s.b$(v)}),groundShadow:v=>({u_matrix:new s.b$(v),u_ground_shadow_factor:new s.bY(v)}),stars:v=>({u_matrix:new s.b$(v),u_up:new s.bY(v),u_right:new s.bY(v),u_intensity_multiplier:new s.bZ(v)}),snowParticle:v=>({u_modelview:new s.b$(v),u_projection:new s.b$(v),u_time:new s.bZ(v),u_cam_pos:new s.bY(v),u_velocityConeAperture:new s.bZ(v),u_velocity:new s.bZ(v),u_horizontalOscillationRadius:new s.bZ(v),u_horizontalOscillationRate:new s.bZ(v),u_boxSize:new s.bZ(v),u_billboardSize:new s.bZ(v),u_simpleShapeParameters:new s.b_(v),u_screenSize:new s.b_(v),u_thinningCenterPos:new s.b_(v),u_thinningShape:new s.bY(v),u_thinningAffectedRatio:new s.bZ(v),u_thinningParticleOffset:new s.bZ(v),u_particleColor:new s.cO(v),u_direction:new s.bY(v)}),rainParticle:v=>({u_modelview:new s.b$(v),u_projection:new s.b$(v),u_time:new s.bZ(v),u_cam_pos:new s.bY(v),u_texScreen:new s.bX(v),u_velocityConeAperture:new s.bZ(v),u_velocity:new s.bZ(v),u_boxSize:new s.bZ(v),u_rainDropletSize:new s.b_(v),u_distortionStrength:new s.bZ(v),u_rainDirection:new s.bY(v),u_color:new s.cO(v),u_screenSize:new s.b_(v),u_thinningCenterPos:new s.b_(v),u_thinningShape:new s.bY(v),u_thinningAffectedRatio:new s.bZ(v),u_thinningParticleOffset:new s.bZ(v),u_shapeDirectionalPower:new s.bZ(v),u_shapeNormalPower:new s.bZ(v),u_mode:new s.bZ(v)}),vignette:v=>({u_vignetteShape:new s.bY(v),u_vignetteColor:new s.cO(v)}),occlusion:v=>({u_matrix:new s.b$(v),u_anchorPos:new s.bY(v),u_screenSizePx:new s.b_(v),u_occluderSizePx:new s.b_(v),u_color:new s.cO(v)})};class Mu{constructor(d,g,w,A){this.id=Mu.uniqueIdxCounter,Mu.uniqueIdxCounter++,this.context=d;const j=d.gl;this.buffer=j.createBuffer(),this.dynamicDraw=!!w,this.context.unbindVAO(),d.bindElementBuffer.set(this.buffer),j.bufferData(j.ELEMENT_ARRAY_BUFFER,g.arrayBuffer,this.dynamicDraw?j.DYNAMIC_DRAW:j.STATIC_DRAW),this.dynamicDraw||A||g.destroy()}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(d){this.id=Mu.uniqueIdxCounter,Mu.uniqueIdxCounter++;const g=this.context.gl;this.context.unbindVAO(),this.bind(),g.bufferSubData(g.ELEMENT_ARRAY_BUFFER,0,d.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}Mu.uniqueIdxCounter=0;const TT={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class GI{constructor(d,g,w,A,j,R){this.length=g.length,this.attributes=w,this.itemSize=g.bytesPerElement,this.dynamicDraw=A,this.instanceCount=R,this.context=d;const F=d.gl;this.buffer=F.createBuffer(),d.bindVertexBuffer.set(this.buffer),F.bufferData(F.ARRAY_BUFFER,g.arrayBuffer,this.dynamicDraw?F.DYNAMIC_DRAW:F.STATIC_DRAW),this.dynamicDraw||j||g.destroy()}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(d){const g=this.context.gl;this.bind(),g.bufferSubData(g.ARRAY_BUFFER,0,d.arrayBuffer)}enableAttributes(d,g){for(const w of this.attributes){const A=g.getAttributeLocation(d,w.name);A!==-1&&d.enableVertexAttribArray(A)}}setVertexAttribPointers(d,g,w){for(const A of this.attributes){const j=g.getAttributeLocation(d,A.name);if(j!==-1){const R=A.offset+this.itemSize*(w||0);A.type==="Float32"?d.vertexAttribPointer(j,A.components,d.FLOAT,!1,this.itemSize,R):d.vertexAttribIPointer(j,A.components,d[TT[A.type]],this.itemSize,R)}}}setVertexAttribDivisor(d,g,w){for(let A=0;A0&&d.vertexAttribDivisor(j,w)}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class Vx{constructor(d,g,w,A,j){this.context=d,this.width=g,this.height=w;const R=this.framebuffer=d.gl.createFramebuffer();A>0&&(this.colorAttachment0=new cg(d,R,0)),A>1&&(this.colorAttachment1=new cg(d,R,1)),j&&(this.depthAttachmentType=j,this.depthAttachment=j==="renderbuffer"?new yT(d,R):new PI(d,R))}static createWithTexture(d,g,w,A,j){const R=d.gl;if(d.activeTexture.set(R.TEXTURE1),d.viewport.set([0,0,w,A]),g&&g.width===w&&g.height===A)return R.bindTexture(R.TEXTURE_2D,g.colorAttachment0.get()),d.bindFramebuffer.set(g.framebuffer),g;g&&g.destroy();const F=new s.T(d,{width:w,height:A,data:null},d.extRenderToTextureHalfFloat?d.gl.RGBA16F:d.gl.RGBA8);F.bind(R.LINEAR,R.CLAMP_TO_EDGE);const $=d.createFramebuffer(w,A,1,null);if($.colorAttachment0.set(F.texture),j){const H=d.createRenderbuffer(R.DEPTH24_STENCIL8,w,A);d.bindFramebuffer.set($.framebuffer),R.framebufferRenderbuffer(R.FRAMEBUFFER,R.DEPTH_STENCIL_ATTACHMENT,R.RENDERBUFFER,H),$._stencilRbo=H}return $}createColorAttachment(d,g){g===0?this.colorAttachment0=new cg(d,this.framebuffer,0):g===1&&(this.colorAttachment1=new cg(d,this.framebuffer,1))}removeColorAttachment(d,g){const w=this.context.gl;let A;g===0?(A=this.colorAttachment0.get(),this.colorAttachment0=void 0):g===1&&(A=this.colorAttachment1.get(),this.colorAttachment1=void 0),A&&w.deleteTexture(A)}destroy(){const d=this.context.gl;if(this.colorAttachment0){const g=this.colorAttachment0.get();g&&d.deleteTexture(g)}if(this.colorAttachment1){const g=this.colorAttachment1.get();g&&d.deleteTexture(g)}if(this.depthAttachment&&this.depthAttachmentType)if(this.depthAttachmentType==="renderbuffer"){const g=this.depthAttachment.get();g&&d.deleteRenderbuffer(g)}else{const g=this.depthAttachment.get();g&&d.deleteTexture(g)}this._stencilRbo&&(d.deleteRenderbuffer(this._stencilRbo),this._stencilRbo=null),d.deleteFramebuffer(this.framebuffer)}}class fg{constructor(d,g){this.gl=d,this.clearColor=new SI(this),this.clearDepth=new x3(this),this.clearStencil=new uv(this),this.colorMask=new _3(this),this.depthMask=new TI(this),this.stencilMask=new dT(this),this.stencilFunc=new dv(this),this.stencilOp=new hT(this),this.stencilTest=new Ap(this),this.depthRange=new kp(this),this.depthTest=new ag(this),this.depthFunc=new md(this),this.blend=new EI(this),this.blendFunc=new fT(this),this.blendColor=new AI(this),this.blendEquation=new og(this),this.cullFace=new hv(this),this.cullFaceSide=new fv(this),this.frontFace=new pT(this),this.program=new pv(this),this.activeTexture=new Nx(this),this.viewport=new kI(this),this.bindFramebuffer=new CI(this),this.bindRenderbuffer=new II(this),this.bindTexture=new lg(this),this.bindVertexBuffer=new jI(this),this.bindElementBuffer=new v3(this),this.bindVertexArrayOES=new b3(this),this.pixelStoreUnpack=new w3(this),this.pixelStoreUnpackPremultiplyAlpha=new mT(this),this.pixelStoreUnpackFlipY=new gT(this),this.options=g?Object.assign({},g):{},this.options.extTextureFilterAnisotropicForceOff||(this.extTextureFilterAnisotropic=d.getExtension("EXT_texture_filter_anisotropic")||d.getExtension("MOZ_EXT_texture_filter_anisotropic")||d.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=d.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT))),this.extDebugRendererInfo=d.getExtension("WEBGL_debug_renderer_info"),this.extDebugRendererInfo&&(this.renderer=d.getParameter(this.extDebugRendererInfo.UNMASKED_RENDERER_WEBGL),this.vendor=d.getParameter(this.extDebugRendererInfo.UNMASKED_VENDOR_WEBGL)),this.forceManualRenderingForInstanceIDShaders=g&&!!g.forceManualRenderingForInstanceIDShaders||this.renderer&&this.renderer.indexOf("PowerVR")!==-1,this.disableSymbolUBO=g&&!!g.forceDisableSymbolUBO,this.options.extTextureFloatLinearForceOff||(this.extTextureFloatLinear=d.getExtension("OES_texture_float_linear")),this.extRenderToTextureHalfFloat=d.getExtension("EXT_color_buffer_half_float"),this.extTimerQuery=d.getExtension("EXT_disjoint_timer_query_webgl2"),this.maxTextureSize=d.getParameter(d.MAX_TEXTURE_SIZE),this.maxUniformBlockSize=Math.min(d.getParameter(d.MAX_UNIFORM_BLOCK_SIZE),32768),this.maxUniformBufferBindings=d.getParameter(d.MAX_UNIFORM_BUFFER_BINDINGS),this.extBlendFuncExtended=d.getExtension("WEBGL_blend_func_extended")}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArrayOES.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(d,g,w){return new Mu(this,d,g,w)}createVertexBuffer(d,g,w,A,j){return new GI(this,d,g,w,A,j)}createRenderbuffer(d,g,w){const A=this.gl,j=A.createRenderbuffer();return this.bindRenderbuffer.set(j),A.renderbufferStorage(A.RENDERBUFFER,d,g,w),this.bindRenderbuffer.set(null),j}createFramebuffer(d,g,w,A){return new Vx(this,d,g,w,A)}clear({color:d,depth:g,stencil:w,colorMask:A}){const j=this.gl;let R=0;d&&(R|=j.COLOR_BUFFER_BIT,this.clearColor.set(d.toNonPremultipliedRenderColor(null)),this.colorMask.set(A||[!0,!0,!0,!0])),g!==void 0&&(R|=j.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(g),this.depthMask.set(!0)),w!==void 0&&(R|=j.STENCIL_BUFFER_BIT,this.clearStencil.set(w),this.stencilMask.set(255)),j.clear(R)}setCullFace(d){d.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(d.mode),this.frontFace.set(d.frontFace))}setDepthMode(d){d.func!==this.gl.ALWAYS||d.mask?(this.depthTest.set(!0),this.depthFunc.set(d.func),this.depthMask.set(d.mask),this.depthRange.set(d.range)):this.depthTest.set(!1)}setStencilMode(d){d.test.func!==this.gl.ALWAYS||d.mask?(this.stencilTest.set(!0),this.stencilMask.set(d.mask),this.stencilOp.set([d.fail,d.depthFail,d.pass]),this.stencilFunc.set({func:d.test.func,ref:d.ref,mask:d.test.mask})):this.stencilTest.set(!1)}setColorMode(d){s.b6(d.blendFunction,Yr.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(d.blendFunction),this.blendColor.set(d.blendColor),d.blendEquation?this.blendEquation.set(d.blendEquation):this.blendEquation.setDefault()),this.colorMask.set(d.mask)}unbindVAO(){this.bindVertexArrayOES.set(null)}}let jp;function yr(v,d,g,w,A,j,R){const F=v.context,$=F.gl,H=v.transform,Y=[s.aH(H.center.lng),s.aL(H.center.lat)],te=g.layout.get("symbol-placement"),ee=g.layout.get("text-variable-anchor"),ne=g.layout.get("icon-rotation-alignment")==="map",le=g.layout.get("text-rotation-alignment")==="map",oe=te!=="point",me=[];let pe=0,Ie=0;for(let Le=0;Le0){const Dr=s.bb(),pr=Vt;s.cz(Dr,st.placementInvProjMatrix,H.glCoordMatrix),s.cz(Dr,Dr,st.placementViewportMatrix),me.push({circleArray:Mt,circleOffset:Ie,transform:pr,invTransform:Dr,projection:st.getProjection()}),pe+=Mt.length/4,Ie=pe}if(!qt)continue;v.terrain&&v.terrain.setupElevationDraw(qe,tr);const Tr=bt?[Fe.canonical.x,Fe.canonical.y,1<=0&&(ne[Ne.associatedIconIndex]={x:Qe,y:yt,z:ft,angle:mt})}else Qm(Be,te)}if(H){ee.clear();const Ie=v.icon.placedSymbolArray;for(let Ne=0;Ne{let an=[0,0,0];if(Qn){const Wi=v.style.directionalLight,gi=v.style.ambientLight;Wi&&gi&&(an=Lu(v.style,Wi,gi))}return an},gn=Qn=>{if(v.context.disableSymbolUBO)return;Qn.push("USE_PAINT_PROPERTIES_UBO");const an=Math.floor(v.context.maxUniformBlockSize/4),Wi=Math.floor(an/4);Qn.push(`MAX_UBO_SIZE_VEC4 ${Wi}u`)},en=Qn=>{Fe.depthOcclusionForSymbolsAndCircles&&(g.hasOcclusionOpacityProperties||v.terrain)&&(Qn.push("DEPTH_D24"),Qn.push("DEPTH_OCCLUSION"))},Bn=Qn=>{g.lut&&!Be&&(g.lut.texture||(g.lut.texture=new s.dR(v.context,g.lut.image,[g.lut.image.height,g.lut.image.height,g.lut.image.height],We.gl.RGBA8)),We.activeTexture.set(We.gl.TEXTURE0+10),g.lut.texture&&g.lut.texture.bind(We.gl.LINEAR,We.gl.CLAMP_TO_EDGE),Qn.push("APPLY_LUT_ON_GPU"))},mi=()=>{const Qn=qe&&g.layout.get("symbol-placement")!=="point",an=[];en(an),Bn(an);const Wi=Qn||nn,gi=Mt.elevationType==="road",Os=v.shadowRenderer,An=gi&&Qe&&!!Os&&Os.enabled,bi=Ur(An),Js=gi&&Qe&&!v.terrain?ot:Ft,_o=g.paint.get("icon-image-cross-fade");v.terrainRenderModeElevated()&&Qe&&an.push("PITCH_WITH_MAP_TERRAIN"),Tr&&(an.push("PROJECTION_GLOBE_VIEW"),Wi&&an.push("PROJECTED_POS_ON_VIEWPORT")),_o>0&&Mt.hasAnySecondaryIcon&&an.push("ICON_TRANSITION"),!Mt.icon.zOffsetVertexBuffer||gi&&v.terrain||an.push("Z_OFFSET"),pe===0&&Ie===0&&Ne===0&&ve===1||an.push("COLOR_ADJUSTMENT"),Mt.sdfIcons&&an.push("RENDER_SDF"),An&&an.push("RENDER_SHADOWS","NORMAL_OFFSET"),gi&&Qe&&!v.terrain&&Mt.icon.orientationVertexBuffer&&an.push("ELEVATED_ROADS"),gn(an);const ca=We.disableSymbolUBO?Mt.icon.programConfigurations.get(g.id):null,Va=v.getOrCreateProgram("symbol",{config:ca,defines:an}),sc=qt.imageAtlasTexture?qt.imageAtlasTexture.size:[0,0],ii=Mt.iconSizeData,Tc=s.bj(ii,Fe.zoom),Ec=Qe||!Fe.isOrthographic,Pi=af(pr,qt.tileID.canonical,Qe,qe,Fe,Mt.getProjection(),wr),Fi=Xm(pr,qt.tileID.canonical,Qe,qe,Fe,Mt.getProjection(),wr),di=Mt.icon.uboBinder&&Mt.icon.uboBinder.cachedHeader&&256&Mt.icon.uboBinder.cachedHeader.dataDrivenMask?[0,0]:F,Ps=v.translatePosMatrix(Fi,qt,di,H,!0),Lo=v.translatePosMatrix(pr,qt,di,H),ps=Wi?qx:Pi,ac=qe&&!Qe&&!Qn;let gf=tr;!bt&&!Fe.mercatorFromTransition||qe||(gf=uh(Fe));const Fp=Tr?gf:tr,Bp=g.getColorAdjustmentMatrix(pe,Ie,Ne,ve),_g=kv(ii.kind,Tc,ac,Qe,v,Lo,ps,Ps,Ye,!1,sc,[0,0],0,Vt,Dr,tt,Jr,Fp,Mt.getProjection(),bi,mn,Bp,_o,null),gh=qt.imageAtlasTexture?qt.imageAtlasTexture:null,bd=g.layout.get("icon-size").constantOr(0)!==1||Mt.iconsNeedLinear,vg=Mt.sdfIcons||v.options.rotating||v.options.zooming||bd||Ec?Le.LINEAR:Le.NEAREST,Rl=Mt.sdfIcons&&g.paint.get("icon-halo-width").constantOr(1)!==0,yf=v.terrain&&Qe&&Qn?s.b7(s.bb(),Pi):qx;if(Qn&&Mt.icon){const xf=s.bu.getAtTileOffsetFunc(Vt,Fe.center.lat,Fe.worldSize,Mt.getProjection()),_f=Pu(pr,qt.tileID.canonical,Qe,qe,Fe,Mt.getProjection(),wr),Qv=g.layout.get("icon-size-scale-range"),bg=s.aC(v.scaleFactor,Qv[0],Qv[1]);rc(Mt,pr,v,!1,_f,Fi,Qe,oe,xf,Vt,bg)}return{program:Va,buffers:Mt.icon,uniformValues:_g,atlasTexture:gh,atlasTextureIcon:null,atlasInterpolation:vg,atlasInterpolationIcon:null,isSDF:Mt.sdfIcons,hasHalo:Rl,depthMode:Js,tile:qt,renderWithShadows:An,labelPlaneMatrixInv:yf}},Yi=()=>{const Qn=st&&g.layout.get("symbol-placement")!=="point",an=[],Wi=Qn||mt||nn,gi=Mt.elevationType==="road",Os=v.shadowRenderer,An=gi&&yt&&!!Os&&Os.enabled,bi=Ur(An),Js=gi&&yt&&!v.terrain?ot:Ft;v.terrainRenderModeElevated()&&yt&&an.push("PITCH_WITH_MAP_TERRAIN"),Tr&&(an.push("PROJECTION_GLOBE_VIEW"),Wi&&an.push("PROJECTED_POS_ON_VIEWPORT")),!Mt.text.zOffsetVertexBuffer||gi&&v.terrain||an.push("Z_OFFSET"),Mt.iconsInText&&an.push("RENDER_TEXT_AND_SYMBOL"),an.push("RENDER_SDF"),An&&an.push("RENDER_SHADOWS","NORMAL_OFFSET"),gi&&yt&&!v.terrain&&Mt.text.orientationVertexBuffer&&an.push("ELEVATED_ROADS"),en(an),gn(an);const _o=We.disableSymbolUBO?Mt.text.programConfigurations.get(g.id):null,ca=v.getOrCreateProgram("symbol",{config:_o,defines:an});let Va,sc=[0,0],ii=null;const Tc=Mt.textSizeData;Mt.iconsInText&&(sc=qt.imageAtlasTexture?qt.imageAtlasTexture.size:[0,0],ii=qt.imageAtlasTexture?qt.imageAtlasTexture:null,Va=yt||!Fe.isOrthographic||v.options.rotating||v.options.zooming||Tc.kind==="composite"||Tc.kind==="camera"?Le.LINEAR:Le.NEAREST);const Ec=qt.glyphAtlasTexture?qt.glyphAtlasTexture.size:[0,0],Pi=g.layout.get("text-size-scale-range"),Fi=s.aC(v.scaleFactor,Pi[0],Pi[1]),di=s.bj(Tc,Fe.zoom,Fi),Ps=af(pr,qt.tileID.canonical,yt,st,Fe,Mt.getProjection(),wr),Lo=Xm(pr,qt.tileID.canonical,yt,st,Fe,Mt.getProjection(),wr),ps=Mt.text.uboBinder&&Mt.text.uboBinder.cachedHeader&&256&Mt.text.uboBinder.cachedHeader.dataDrivenMask?[0,0]:$,ac=v.translatePosMatrix(Lo,qt,ps,Y,!0),gf=v.translatePosMatrix(pr,qt,ps,Y),Fp=Wi?qx:Ps,Bp=st&&!yt&&!Qn;let _g=tr;!bt&&!Fe.mercatorFromTransition||st||(_g=uh(Fe));const gh=kv(Tc.kind,di,Bp,yt,v,gf,Fp,ac,Ye,!0,Ec,sc,0,Vt,Dr,tt,Jr,Tr?_g:tr,Mt.getProjection(),bi,mn,null,null,Fi),bd=qt.glyphAtlasTexture?qt.glyphAtlasTexture:null,vg=Le.LINEAR,Rl=g.paint.get("text-halo-width").constantOr(1)!==0,yf=v.terrain&&yt&&Qn?s.b7(s.bb(),Ps):qx;if(Qn&&Mt.text){const xf=s.bu.getAtTileOffsetFunc(Vt,Fe.center.lat,Fe.worldSize,Mt.getProjection()),_f=Pu(pr,qt.tileID.canonical,yt,st,Fe,Mt.getProjection(),wr);rc(Mt,pr,v,!0,_f,Lo,yt,me,xf,Vt,Fi)}return{program:ca,buffers:Mt.text,uniformValues:gh,atlasTexture:bd,atlasTextureIcon:ii,atlasInterpolation:vg,atlasInterpolationIcon:Va,isSDF:!0,hasHalo:Rl,depthMode:Js,tile:qt,renderWithShadows:An,labelPlaneMatrixInv:yf}},Ti=Mt.icon.segments.get().length,Xn=Mt.text.segments.get().length,hn=Ti&&!R.onlyText?mi():null,fn=Xn&&!R.onlyIcons?Yi():null,Ei=g.paint.get("icon-opacity").constantOr(1),ss=g.paint.get("text-opacity").constantOr(1);if(ft&&Mt.canOverlap){Nt=!0;const Qn=Ei&&!R.onlyText?Mt.icon.segments.get():[],an=ss&&!R.onlyIcons?Mt.text.segments.get():[];for(const Wi of Qn)Et.push({segments:new s.dy([Wi]),sortKey:Wi.sortKey,state:hn});for(const Wi of an)Et.push({segments:new s.dy([Wi]),sortKey:Wi.sortKey,state:fn})}else R.onlyText||Et.push({segments:Ei?Mt.icon.segments:new s.dy([]),sortKey:0,state:hn}),R.onlyIcons||Et.push({segments:ss?Mt.text.segments:new s.dy([]),sortKey:0,state:fn})}Nt&&Et.sort((Vt,qt)=>Vt.sortKey-qt.sortKey);for(const Vt of Et){const qt=Vt.state;if(qt)if(v.terrain?v.terrain.setupElevationDraw(qt.tile,qt.program,{useDepthForOcclusion:Fe.depthOcclusionForSymbolsAndCircles,labelPlaneMatrixInv:qt.labelPlaneMatrixInv}):v.setupDepthForOcclusion(Fe.depthOcclusionForSymbolsAndCircles,qt.program),We.activeTexture.set(Le.TEXTURE0),qt.atlasTexture&&qt.atlasTexture.bind(qt.atlasInterpolation,Le.CLAMP_TO_EDGE,!0),qt.atlasTextureIcon&&(We.activeTexture.set(Le.TEXTURE1),qt.atlasTextureIcon&&qt.atlasTextureIcon.bind(qt.atlasInterpolationIcon,Le.CLAMP_TO_EDGE,!0)),qt.renderWithShadows&&v.shadowRenderer.setupShadows(qt.tile.tileID.toUnwrapped(),qt.program,"vector-tile"),v.uploadCommonLightUniforms(v.context,qt.program),qt.hasHalo){const Mt=qt.uniformValues;Mt.u_is_halo=1,jv(qt.buffers,Vt.segments,g,v,qt.program,qt.depthMode,A,j,Mt,2),Mt.u_is_halo=0}else{if(qt.isSDF){const Mt=qt.uniformValues;qt.hasHalo&&(Mt.u_is_halo=1,jv(qt.buffers,Vt.segments,g,v,qt.program,qt.depthMode,A,j,Mt,1)),Mt.u_is_halo=0}jv(qt.buffers,Vt.segments,g,v,qt.program,qt.depthMode,A,j,qt.uniformValues,1)}}}function jv(v,d,g,w,A,j,R,F,$,H){const Y=w.context,te=Y.gl,ee=[v.dynamicLayoutVertexBuffer,v.opacityVertexBuffer,v.iconTransitioningVertexBuffer,v.globeExtVertexBuffer,v.zOffsetVertexBuffer,v.orientationVertexBuffer];v.featureIdBuffer&&ee.push(v.featureIdBuffer);const ne=v.uboBinder?null:v.programConfigurations.get(g.id);if(v.uboBinder){v.uboBinder.layer=g;const me=w.transform.zoom,pe=w.style.getBrightness?w.style.getBrightness():null,Ie=v.uboBinder.getConstantUniformValues(me,pe);$.u_spp_fill_np_color=Ie.fill_np_color,$.u_spp_halo_np_color=Ie.halo_np_color,$.u_spp_opacity=Ie.opacity,$.u_spp_halo_width=Ie.halo_width,$.u_spp_halo_blur=Ie.halo_blur,$.u_spp_emissive_strength=Ie.emissive_strength,$.u_spp_occlusion_opacity=Ie.occlusion_opacity,$.u_spp_z_offset=Ie.z_offset;const Ne=g.paint.get(v.uboBinder.isText?"text-translate-anchor":"icon-translate-anchor"),ve=v.uboBinder.cachedHeader&&256&v.uboBinder.cachedHeader.dataDrivenMask&&Ne==="map"?w.transform.angle:0;$.u_spp_translate_rotation=[Math.cos(ve),Math.sin(ve)]}const{batchIndices:le,batchSegments:oe}=v.getBatchGrouping(d);for(const me of le){const pe=oe.get(me);v.uboBinder&&v.uboBinder.bind(Y,A.program,me),A.draw(w,te.TRIANGLES,j,R,F,Gr.disabled,$,g.id,v.layoutVertexBuffer,v.indexBuffer,pe,g.paint,w.transform.zoom,ne,ee,H)}}function Pv(v,d,g,w,A,j){const R=g.paint.get("line-width"),F=g.paint.get("line-emissive-strength").isConstant(),$=g.paint.get("line-emissive-strength").constantOr(0),H=g.paint.get("line-occlusion-opacity"),Y=g.layout.get("line-elevation-reference"),te=g.layout.get("line-width-unit")==="meters",ee=Y==="sea",ne=!(!v.terrain||!v.terrain.enabled),le=v.context,oe=le.gl;if(g.hasElevatedBuckets&&v.transform.projection.name==="globe")return;const me=g.layout.get("line-cross-slope"),pe=me!==void 0,Ie=me<1,Ne=A||v.colorModeForDrapableLayerRenderPass(F?$:null),ve=v.terrain&&v.terrain.renderingToTexture||j,Ye=ve?1:s.o.devicePixelRatio,Be=g.paint.get("line-dasharray"),We=Be.constantOr(1),Le=g.layout.get("line-cap"),Fe=Be.constantOr(null),qe=Le.constantOr(null),st=g.paint.get("line-pattern"),Qe=st.constantOr(1),yt=g.paint.get("line-pattern-cross-fade"),ft=st.constantOr(null),Nt=g.paint.get("line-opacity").constantOr(1);let Ft=!Qe&&Nt!==1||v.depthOcclusion&&H>0&&H<1;const ot=g.paint.get("line-gradient"),tt=Qe?"linePattern":"line",mt=s.dU(g);let bt;if(ve&&v.terrain&&v.terrain.clipOrMaskOverlapStencilType()&&(Ft=!1),H!==0&&v.depthOcclusion){const Mt=g.paint._values["line-opacity"];Mt&&Mt.value&&Mt.value.kind==="constant"?bt=Mt.value:s.w(`Occlusion opacity for layer ${g.id} is supported only when line-opacity isn't data-driven.`)}R.value.kind!=="constant"&&R.value.isLineProgressConstant===!1&&mt.push("VARIABLE_LINE_WIDTH"),ve&&(v.emissiveMode!=="dual-source-blending"||F?v.emissiveMode==="mrt-fallback"&&mt.push("USE_MRT1"):mt.push("DUAL_SOURCE_BLENDING"));const Et={},tr=(Mt,Tr,Dr,pr,wr,Wr)=>{for(const nn of Mt){const Jr=d.getTile(nn);if(Qe&&!Jr.patternsLoaded())continue;const mn=Jr.getBucket(g);if(!mn||mn.elevationType!=="none"&&!wr||mn.elevationType==="none"&&wr)continue;v.prepareDrawTile();const Ur=[...Tr],gn=v.shadowRenderer,en=mn.elevationType==="road"&&!!gn&&gn.enabled;let Bn=[0,0,0];if(en){const An=v.style.directionalLight,bi=v.style.ambientLight;An&&bi&&(Bn=Lu(v.style,An,bi)),Ur.push("RENDER_SHADOWS","NORMAL_OFFSET")}const mi=mn.programConfigurations.get(g.id);let Yi=!1;if(ft&&Jr.imageAtlas){const An=s.dV.from(ft),bi=An.getPrimary().scaleSelf(Ye).toString(),Js=Jr.imageAtlas.patternPositions.get(bi),_o=An.getSecondary(),ca=_o?Jr.imageAtlas.patternPositions.get(_o.scaleSelf(Ye).toString()):null;Yi=!!Js&&!!ca,Js&&mi.setConstantPatternPositions(Js,ca)}yt>0&&(Yi||mi.getPatternTransitionVertexBuffer("line-pattern"))&&Ur.push("LINE_PATTERN_TRANSITION"),mn.elevationGroundScaleVertexBuffer&&Ur.push("ELEVATION_GROUND_SCALE");const Ti=v.isTileAffectedByFog(nn),Xn=v.getOrCreateProgram(tt,{config:mi,defines:Ur,overrideFog:Ti});if(!Qe&&Fe&&qe&&Jr.lineAtlas){const An=Jr.lineAtlas.getDash(Fe,qe);An&&mi.setConstantPatternPositions(An)}en&&gn.setupShadows(Jr.tileID.toUnwrapped(),Xn,"vector-tile");let[hn,fn]=g.paint.get("line-trim-offset");(qe==="round"||qe==="square")&&hn!==fn&&(hn===0&&(hn-=1),fn===1&&(fn+=1));const Ei=ve?nn.projMatrix:null,ss=te?1/mn.tileToMeter/s.aA(Jr,1,v.transform.zoom):1,Qn=te?1/mn.tileToMeter/s.aA(Jr,1,Math.floor(v.transform.zoom)):1,an=We?g.paint._values["line-floorwidth"]:null;let Wi;if(an&&an.value.kind==="constant"){const An=mn.zoom;An in Et||(Et[An]=Math.max(.01,g.widthExpression().evaluate({zoom:An}))),Wi=an.value.value;const bi=Math.floor(v.transform.zoom);an.value.value=Et[An]*Math.pow(2,bi-Jr.tileID.overscaledZ)}const gi=Qe?s.dW(v,Jr,g,Ei,Ye,ss,Qn,[hn,fn],Bn,yt):s.dX(v,Jr,g,Ei,mn.lineClipsArray.length,Ye,ss,Qn,[hn,fn],Bn);if(ot){const An=mn.gradients[g.id];let bi=An.texture;if(g.gradientVersion!==An.version){let Js=256;if(g.stepInterpolant){const _o=d.getSource().maxzoom,ca=nn.canonical.z===_o?Math.ceil(1<{bt!=null&&(bt.value=Nt*H),Xn.draw(v,oe.TRIANGLES,Dr,An,Ne,Gr.disabled,gi,g.id,mn.layoutVertexBuffer,mn.indexBuffer,mn.segments,g.paint,v.transform.zoom,mi,[mn.layoutVertexBuffer2,mn.patternVertexBuffer,mn.zOffsetVertexBuffer,mn.elevationGroundScaleVertexBuffer]),bt!=null&&(bt.value=Nt)};if(Ft&&!wr){const An=v.stencilModeForClipping(nn).ref;An===0&&ve&&le.clear({stencil:0});const bi={func:oe.EQUAL,mask:255};gi.u_alpha_discard_threshold=.8,Os(new Xr(bi,An,255,oe.KEEP,oe.KEEP,oe.INVERT)),gi.u_alpha_discard_threshold=0,Os(new Xr(bi,An,255,oe.KEEP,oe.KEEP,oe.KEEP))}else gi.u_alpha_discard_threshold=Ft&&wr&&Wr?.8:0,Os(wr?pr:v.stencilModeForClipping(nn));Wi!==void 0&&(an.value.value=Wi)}};let Vt=v.depthModeForSublayer(0,Cr.ReadOnly);const qt=new Cr(v.depthOcclusion?oe.GREATER:oe.LEQUAL,Cr.ReadOnly,v.depthRangeFor3D);if(g.hasNonElevatedBuckets){const Mt=!ve&&v.terrain;H!==0&&Mt?s.w(`Occlusion opacity for layer ${g.id} is supported on terrain only if the layer has line-z-offset enabled.`):Mt?s.w(`Cannot render non-elevated lines in immediate mode when terrain is enabled. Layer: ${g.id}.`):tr(w,mt,Vt,Xr.disabled,!1,!0)}if(g.hasElevatedBuckets){Y==="hd-road-markup"?ne||(Vt=qt,mt.push("ELEVATED_ROADS")):(mt.push("ELEVATED"),Vt=qt,pe&&mt.push(Ie?"CROSS_SLOPE_HORIZONTAL":"CROSS_SLOPE_VERTICAL"),ee&&mt.push("ELEVATION_REFERENCE_SEA"));const Mt=Ft?v.stencilModeFor3D():Xr.disabled;v.forceTerrainMode=!0,tr(w,mt,Vt,Mt,!0,!0),Ft&&tr(w,mt,Vt,Mt,!0,!1),v.forceTerrainMode=!1}Ft&&(v.resetStencilClippingMasks(),ve&&le.clear({stencil:0})),H===0||v.depthOcclusion||ve||v.layersWithOcclusionOpacity.push(v.currentLayer)}const dh={additive:{clearColor:new s.aq(0,0,0,0),colorMode:Yr.additive,compositeUniformValue:1},multiply:{clearColor:new s.aq(1,1,1,1),colorMode:Yr.multiply,compositeUniformValue:0}};function ET(v,d){const g=1<=Sp?1:ne.pitch/Sp))),2*le}(v.transform),H=v.transform.getFreeCameraOptions().position,Y="elevatedStructuresDepthReconstruct",te=v.getOrCreateProgram(Y,{defines:["DEPTH_RECONSTRUCTION"]}),ee=v.getOrCreateProgram(Y);for(const ne of w){const le=d.getTile(ne),oe=le.getBucket(g);if(!oe)continue;const me=oe.elevatedStructures;if(!me)continue;const pe=oe.elevationBufferData.heightRange,Ie=ET(ne.toUnwrapped(),H),Ne=v.translatePosMatrix(ne.projMatrix,le,g.paint.get("fill-translate"),g.paint.get("fill-translate-anchor"));let ve,Ye,Be,We;if(A==="initialize"){if(!pe||pe.min>=1||me.depthSegments.segments[0].primitiveLength===0)continue;ve=zx(Ne,Ie,$,1,0),Ye=R,Be=me.depthSegments,We=te}else if(A==="reset"){if(!pe||pe.min>=0||me.maskSegments.segments[0].primitiveLength===0)continue;ve=zx(Ne,Ie,0,0,1),Ye=F,Be=me.maskSegments,We=te}else if(A==="geometry"){if(me.depthSegments.segments[0].primitiveLength===0)continue;ve=zx(Ne,Ie,$,1,0),Ye=R,Be=me.depthSegments,We=ee}We.draw(v,j.TRIANGLES,Ye,Xr.disabled,Yr.disabled,Gr.disabled,ve,g.id,me.vertexBuffer,me.indexBuffer,Be,g.paint,v.transform.zoom)}}function Hx(v,d,g,w){const{painter:A,sourceCache:j,layer:R,coords:F,colorMode:$,elevationType:H,terrainEnabled:Y,pass:te}=v,ee=A.context.gl,ne=R.paint.get("fill-pattern"),le=R.paint.get("fill-pattern-cross-fade"),oe=ne.constantOr(null);let me=H;H!=="road"||d&&!Y||(me="none");const pe=me==="road",Ie=v.painter.shadowRenderer,Ne=pe&&!!Ie&&Ie.enabled,ve=new Cr(A.context.gl.LEQUAL,Cr.ReadOnly,A.depthRangeFor3D);let Ye=[0,0,0];if(Ne){const Fe=A.style.directionalLight,qe=A.style.ambientLight;Fe&&qe&&(Ye=Lu(A.style,Fe,qe))}const Be=ne&&ne.constantOr(1),We=A.terrain&&A.terrain.renderingToTexture,Le=(Fe,qe)=>{let st,Qe,yt,ft,Nt;qe?(st=Be&&!R.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",yt=ee.LINES):(st=Be?"fillPattern":"fill",yt=ee.TRIANGLES);for(const Ft of F){const ot=j.getTile(Ft);if(Be&&!ot.patternsLoaded())continue;const tt=ot.getBucket(R);if(!tt)continue;const mt=d?tt.elevationBufferData:tt.bufferData;if(mt.isEmpty())continue;A.prepareDrawTile();const bt=mt.programConfigurations.get(R.id),Et=A.isTileAffectedByFog(Ft),tr=[],Vt=[];pe&&(tr.push("ELEVATED_ROADS"),Vt.push(mt.elevatedLayoutVertexBuffer)),Ne&&tr.push("RENDER_SHADOWS","NORMAL_OFFSET"),We&&g&&tr.push("USE_MRT1"),Be&&(A.context.activeTexture.set(ee.TEXTURE0),ot.imageAtlasTexture&&ot.imageAtlasTexture.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),bt.updatePaintBuffers());let qt=!1;if(oe&&ot.imageAtlas){const wr=ot.imageAtlas,Wr=s.dV.from(oe),nn=Wr.getPrimary().scaleSelf(s.o.devicePixelRatio).toString(),Jr=Wr.getSecondary(),mn=wr.patternPositions.get(nn),Ur=Jr?wr.patternPositions.get(Jr.scaleSelf(s.o.devicePixelRatio).toString()):null;qt=!!mn&&!!Ur,mn&&bt.setConstantPatternPositions(mn,Ur)}le>0&&(qt||bt.getPatternTransitionVertexBuffer("fill-pattern"))&&tr.push("FILL_PATTERN_TRANSITION");const Mt=A.getOrCreateProgram(st,{config:bt,overrideFog:Et,defines:tr}),Tr=A.translatePosMatrix(Ft.projMatrix,ot,R.paint.get("fill-translate"),R.paint.get("fill-translate-anchor"));Ne&&Ie.setupShadows(ot.tileID.toUnwrapped(),Mt,"vector-tile");const Dr=R.paint.get("fill-emissive-strength");if(qe){ft=mt.lineIndexBuffer,Nt=mt.lineSegments;const wr=A.terrain&&A.terrain.renderingToTexture?A.terrain.drapeBufferSize:[ee.drawingBufferWidth,ee.drawingBufferHeight];Qe=st==="fillOutlinePattern"&&Be?dg(Tr,Dr,A,ot,wr,Ye,le):MI(Tr,Dr,wr,Ye)}else ft=mt.indexBuffer,Nt=mt.triangleSegments,Qe=Be?bv(Tr,Dr,A,ot,Ye,le):vv(Tr,Dr,Ye);A.uploadCommonUniforms(A.context,Mt,Ft.toUnwrapped());let pr=Fe;(H==="road"&&!Y||H==="offset")&&(pr=ve),Mt.draw(A,yt,pr,w||A.stencilModeForClipping(Ft),$,Gr.disabled,Qe,R.id,mt.layoutVertexBuffer,ft,Nt,R.paint,A.transform.zoom,bt,Vt)}};A.renderPass===te&&Le(A.depthModeForSublayer(1,A.renderPass==="opaque"?Cr.ReadWrite:Cr.ReadOnly),!1),me==="none"&&A.renderPass==="translucent"&&R.paint.get("fill-antialias")&&Le(A.depthModeForSublayer(R.getPaintProperty("fill-outline-color")?2:0,Cr.ReadOnly),!0)}function Pp(v,d,g,w,A,j,R,F){g.resetLayerRenderingStats(v);const $=v.context,H=$.gl,Y=v.transform,te=g.paint.get("fill-extrusion-pattern"),ee=g.paint.get("fill-extrusion-pattern-cross-fade"),ne=te.constantOr(null),le=te.constantOr(1),oe=g.paint.get("fill-extrusion-opacity"),me=v.style.enable3dLights(),pe=g.paint.get(me&&!le?"fill-extrusion-ambient-occlusion-wall-radius":"fill-extrusion-ambient-occlusion-radius"),Ie=[g.paint.get("fill-extrusion-ambient-occlusion-intensity"),pe],Ne=g.layout.get("fill-extrusion-edge-radius"),ve=Ne>0&&!g.paint.get("fill-extrusion-rounded-roof"),Ye=ve?0:Ne,Be=Y.projection.name==="globe"?s.e1():0,We=Y.projection.name==="globe",Le=We?s.al(Y.zoom):0,Fe=[s.aH(Y.center.lng),s.aL(Y.center.lat)],qe=g.paint.get("fill-extrusion-flood-light-color-use-theme").constantOr("default")==="none",st=g.paint.get("fill-extrusion-flood-light-color").toNonPremultipliedRenderColor(qe?null:g.lut).toArray01().slice(0,3),Qe=g.paint.get("fill-extrusion-flood-light-intensity"),yt=g.paint.get("fill-extrusion-vertical-scale"),ft=g.paint.get("fill-extrusion-line-width").constantOr(1)!==0,Nt=g.paint.get("fill-extrusion-height-alignment"),Ft=g.paint.get("fill-extrusion-base-alignment"),ot=ja(v,g.paint.get("fill-extrusion-cutoff-fade-range")),tt=g.paint.get("fill-extrusion-front-cutoff"),mt=Nv(Y.pitch,tt,!!v.terrain),bt=mt[2]<1;bt&&(v.maxFrontCutoffRawStart=Math.max(v.maxFrontCutoffRawStart,tt[0]));const Et=[];let tr;We&&Et.push("PROJECTION_GLOBE_VIEW"),Ie[0]>0&&Et.push("FAUX_AO"),ve&&Et.push("ZERO_ROOF_RADIUS"),F&&Et.push("HAS_CENTROID"),Qe>0&&Et.push("FLOOD_LIGHT"),ot.shouldRenderCutoff&&Et.push("RENDER_CUTOFF"),bt&&Et.push("RENDER_FRONT_CUTOFF"),ft&&Et.push("RENDER_WALL_MODE");const Vt=v.renderPass==="shadow",qt=v.shadowRenderer,Mt=Vt&&!!qt,Tr=Vt?Gr.disabled:Gr.backCCW;v.shadowRenderer&&(v.shadowRenderer.useNormalOffset=!0);let Dr=[0,0,0];if(qt){const Wr=v.style.directionalLight,nn=v.style.ambientLight;Wr&&nn&&(Dr=Lu(v.style,Wr,nn)),Vt||(Et.push("RENDER_SHADOWS"),qt.useNormalOffset&&Et.push("NORMAL_OFFSET")),tr=Et.concat(["SHADOWS_SINGLE_CASCADE"])}const pr=Mt?"fillExtrusionDepth":le?"fillExtrusionPattern":"fillExtrusion",wr=g.getLayerRenderingStats();for(const Wr of w){const nn=d.getTile(Wr),Jr=nn.getBucket(g);if(!Jr||Jr.projection.name!==Y.projection.name)continue;let mn=!1;qt&&(mn=qt.getMaxCascadeForTile(Wr.toUnwrapped())===0);const Ur=v.isTileAffectedByFog(Wr),gn=Jr.programConfigurations.get(g.id);let en=!1;if(ne&&nn.imageAtlas){const fn=nn.imageAtlas,Ei=s.dV.from(ne),ss=Ei.getPrimary().scaleSelf(s.o.devicePixelRatio).toString(),Qn=Ei.getSecondary(),an=fn.patternPositions.get(ss),Wi=Qn?fn.patternPositions.get(Qn.scaleSelf(s.o.devicePixelRatio).toString()):null;en=!!an&&!!Wi,an&&gn.setConstantPatternPositions(an,Wi)}ee>0&&(en||gn.getPatternTransitionVertexBuffer("fill-extrusion-pattern"))&&Et.push("FILL_EXTRUSION_PATTERN_TRANSITION");const Bn=v.getOrCreateProgram(pr,{config:gn,defines:mn?tr:Et,overrideFog:Ur});if(v.terrain&&v.terrain.setupElevationDraw(nn,Bn,{useMeterToDem:!0}),!Jr.centroidVertexBuffer){const fn=Bn.getAttributeLocation(H,"a_centroid_pos");fn!==-1&&H.vertexAttribI4ui(fn,0,0,0,0)}!Vt&&qt&&qt.setupShadows(nn.tileID.toUnwrapped(),Bn,"vector-tile"),le&&(v.context.activeTexture.set(H.TEXTURE0),nn.imageAtlasTexture&&nn.imageAtlasTexture.bind(H.LINEAR,H.CLAMP_TO_EDGE),gn.updatePaintBuffers());const mi=g.paint.get("fill-extrusion-vertical-gradient"),Yi=1/Jr.tileToMeter;let Ti;if(Vt&&qt){if(Rv(nn.tileID,Jr.maxHeight,v))continue;const fn=qt.calculateShadowPassMatrixFromTile(nn.tileID.toUnwrapped());Ti=E3(fn,Ye,Yi,yt,Nt,Ft)}else{const fn=v.translatePosMatrix(Wr.expandedProjMatrix,nn,g.paint.get("fill-extrusion-translate"),g.paint.get("fill-extrusion-translate-anchor")),Ei=Y.projection.createInversionMatrix(Y,Wr.canonical);Ti=le?A3(fn,v,mi,oe,Ie,Ye,Yi,Wr,nn,Be,Nt,Ft,Le,Fe,Ei,st,yt,ee):DI(fn,v,mi,oe,Ie,Ye,Yi,Wr,Be,Nt,Ft,Le,Fe,Ei,st,yt,Qe,Dr,mt)}v.uploadCommonUniforms($,Bn,Wr.toUnwrapped(),null,ot);let Xn=Jr.segments;if(Y.projection.name==="mercator"&&!Vt&&(Xn=Jr.getVisibleSegments(nn.tileID,v.terrain,v.transform.getFrustum(0)),!Xn.get().length))continue;if(wr)if(Vt)for(const fn of Xn.get())wr.numRenderedVerticesInShadowPass+=fn.primitiveLength;else for(const fn of Xn.get())wr.numRenderedVerticesInTransparentPass+=fn.primitiveLength;const hn=[];(v.terrain||F)&&hn.push(Jr.centroidVertexBuffer),We&&hn.push(Jr.layoutVertexExtBuffer),ft&&hn.push(Jr.wallVertexBuffer),Bn.draw(v,$.gl.TRIANGLES,A,j,R,Tr,Ti,g.id,Jr.layoutVertexBuffer,Jr.indexBuffer,Xn,g.paint,v.transform.zoom,gn,hn)}v.shadowRenderer&&(v.shadowRenderer.useNormalOffset=!1)}class AT{constructor(){this.translate=[0,0],this.translateAnchor="map",this.edgeRadius=0,this.cutoffFadeRange=0}}function Nv(v,d,g){if(!(d[2]<1)||g)return[0,0,1];const w=180*v/Math.PI;if(w<15)return[-.5,d[1],d[2]];const A=Math.min(1,Math.max(0,(w-15)/5)),j=A*A*(3-2*A);return[-.5*(1-j)+d[0]*j,d[1],d[2]]}function yd(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne,le,oe,me,pe,Ie,Ne,ve){const Ye=d.context,Be=Ye.gl,We=d.transform,Le=d.transform.zoom,Fe=[],qe=v.translate,st=v.translateAnchor,Qe=v.edgeRadius,yt=ja(d,v.cutoffFadeRange);Y==="clear"?(Fe.push("CLEAR_SUBPASS"),Ne&&(Fe.push("CLEAR_FROM_TEXTURE"),Ye.activeTexture.set(Be.TEXTURE0),Ne.bind(Be.LINEAR,Be.CLAMP_TO_EDGE))):Y==="sdf"?Fe.push("SDF_SUBPASS"):Y==="emissive"&&(Fe.push("USE_MRT1"),Ye.activeTexture.set(Be.TEXTURE0),Ne.bind(Be.LINEAR,Be.CLAMP_TO_EDGE)),pe&&Fe.push("HAS_CENTROID"),yt.shouldRenderCutoff&&Fe.push("RENDER_CUTOFF");const ft=(Nt,Ft,ot,tt,mt)=>{let bt=Fe;Ft.groundRadiusBuffer!=null&&(bt=Fe.concat("HAS_ATTRIBUTE_a_flood_light_ground_radius"));const Et=Ft.programConfigurations.get(w.id),tr=d.isTileAffectedByFog(Nt),Vt=d.getOrCreateProgram("fillExtrusionGroundEffect",{config:Et,defines:bt,overrideFog:tr}),qt=((Tr,Dr,pr,wr,Wr,nn,Jr,mn,Ur,gn,en)=>({u_matrix:Dr,u_opacity:pr,u_ao_pass:wr?1:0,u_meter_to_tile:Wr,u_ao:nn,u_flood_light_intensity:Jr,u_flood_light_color:mn,u_attenuation:Ur,u_edge_radius:gn,u_fb:0,u_fb_size:en,u_dynamic_offset:1}))(0,tt,te,H,mt,[ee,ne*mt],le,oe,me,Le>=17?0:Qe*mt,Ne?Ne.size[0]:0),Mt=[];pe&&Mt.push(Ft.hiddenByLandmarkVertexBuffer),Ft.groundRadiusBuffer!=null&&Mt.push(Ft.groundRadiusBuffer),d.uploadCommonUniforms(Ye,Vt,Nt.toUnwrapped(),null,yt),Vt.draw(d,Ye.gl.TRIANGLES,j,R,F,$,qt,w.id,Ft.vertexBuffer,Ft.indexBuffer,ot,w.paint,Le,Et,Mt)};for(const Nt of A){const Ft=g.getTile(Nt),ot=Ft.getBucket(w);if(!ot||ot.projection.name!==We.projection.name||!ot.groundEffect||ot.groundEffect&&!ot.groundEffect.hasData())continue;const tt=ot.groundEffect,mt=1/ot.tileToMeter;{const bt=d.translatePosMatrix(Nt.projMatrix,Ft,qe,st),Et=tt.getDefaultSegment();ft(Nt,tt,Et,bt,mt)}if(Ie)for(let bt=0;bt<4;bt++){const Et=s.d$[bt](Nt),tr=g.getTile(Et);if(!tr)continue;const Vt=tr.getBucket(w);if(!Vt||Vt.projection.name!==We.projection.name||!Vt.groundEffect||Vt.groundEffect&&!Vt.groundEffect.hasData())continue;const qt=Vt.groundEffect;let Mt,Tr;bt===0?(Mt=[-s.an,0,0],Tr=1):bt===1?(Mt=[s.an,0,0],Tr=0):bt===2?(Mt=[0,-s.an,0],Tr=3):(Mt=[0,s.an,0],Tr=2);const Dr=qt.regionSegments[Tr];if(!Dr)continue;const pr=new Float32Array(16);s.bx(pr,Nt.projMatrix,Mt),ft(Nt,qt,Dr,d.translatePosMatrix(pr,Ft,qe,st),mt)}}}function WI(v,d,g,w,A,j,R){w.centroidVertexArray.length===0&&w.createCentroidsBuffer();const F=j?j.findDEMTileFor(g):null;if(!(F&&F.dem||R))return;j&&F&&F.dem&&w.selfDEMTileTimestamp!==F.dem._timestamp&&(w.borderDoneWithNeighborZ=[-1,-1,-1,-1],w.selfDEMTileTimestamp=F.dem._timestamp);const $=(pe,Ie)=>{(pe.flags|Ie.flags)&s.e3?(pe.flags|=s.e3,Ie.flags|=s.e3):(pe.flags&=~s.e3,Ie.flags&=~s.e3)},H=pe=>new s.P(Math.ceil((pe+s.e4)*s.e5),0),Y=(pe,Ie,Ne)=>{const ve=Math.ceil((pe+s.e4)*s.e5),Ye=Math.floor(Math.max(0,Math.min(s.an-1,Ne))/4);return new s.P(ve,Ye<<5|(3&Ie)<<3|7)},te=pe=>{const Ie=d.getSource().minzoom,Ne=Ye=>{const Be=d.getTileByID(Ye);if(Be&&Be.hasData())return Be.getBucket(A)},ve=[0,-1,1];for(const Ye of ve){if(pe.overscaledZ+Ye(ee[0]=Math.min(pe.min.y,Ie.min.y),ee[1]=Math.max(pe.max.y,Ie.max.y),ee[2]=s.an-Ie.min.x>pe.max.x?Ie.min.x-s.an:pe.max.x,ee),le=(pe,Ie)=>(ee[0]=Math.min(pe.min.x,Ie.min.x),ee[1]=Math.max(pe.max.x,Ie.max.x),ee[2]=s.an-Ie.min.y>pe.max.y?Ie.min.y-s.an:pe.max.y,ee),oe=[(pe,Ie)=>ne(pe,Ie),(pe,Ie)=>ne(Ie,pe),(pe,Ie)=>le(pe,Ie),(pe,Ie)=>le(Ie,pe)],me=(pe,Ie,Ne,ve,Ye,Be,We)=>{if(!j)return 0;const Le=[[Be?Ne:pe,Be?pe:Ne,0],[Be?Ne:Ie,Be?Ie:Ne,0]],Fe=We<0?s.an+We:We,qe=[Be?Fe:(pe+Ie)/2,Be?(pe+Ie)/2:Fe,0];return Ne===0&&We<0||Ne!==0&&We>0?j.getForTilePoints(Ye,[qe],!0,ve):Le.push(qe),j.getForTilePoints(g,Le,!0,F),Math.max(Le[0][2],Le[1][2],qe[2])/j.exaggeration()};for(let pe=0;pe<4;pe++){const Ie=w.borderFeatureIndices[pe];if(Ie.length===0)continue;const Ne=s.d$[pe](g),ve=te(Ne);if(!(ve&&ve instanceof s.e0))continue;const Ye=j?j.findDEMTileFor(Ne):null;if(!(Ye&&Ye.dem||R)||(j&&Ye&&Ye.dem&&w.borderDEMTileTimestamp[pe]!==Ye.dem._timestamp&&(w.borderDoneWithNeighborZ[pe]=-1,w.borderDEMTileTimestamp[pe]=Ye.dem._timestamp),w.borderDoneWithNeighborZ[pe]===ve.canonical.z))continue;ve.centroidVertexArray.length===0&&ve.createCentroidsBuffer();const Be=(pe<2?1:5)-pe,We=ve.borderDoneWithNeighborZ[Be]!==w.canonical.z,Le=ve.borderFeatureIndices[Be];let Fe=0;if(w.canonical.z!==ve.canonical.z){for(const yt of Ie)w.showCentroid(w.featuresOnBorder[yt]);if(We)for(const yt of Le)ve.showCentroid(ve.featuresOnBorder[yt]);w.borderDoneWithNeighborZ[pe]=ve.canonical.z,ve.borderDoneWithNeighborZ[Be]=w.canonical.z;continue}const qe=new Map,st=new Set,Qe=new Set;for(let yt=0;yt1||ot.intersectsCount()>1;{let Vt=0;if(Ye&&Ye.dem&&!tr){const qt=oe[pe](Nt,tt),Mt=pe%2?s.an-1:0;Vt=me(qt[0],Math.min(s.an-1,qt[1]),Mt,Ye,Ne,pe<2,qt[2])}Nt.centroidXY=Y(Vt,pe,Et),tt.centroidXY=Y(Vt,Be,Et)}if(w.writeCentroidToBuffer(Nt),ve.writeCentroidToBuffer(tt),ft.buildingId!==void 0){for(const Vt of w.centroidData)Vt.buildingId===ft.buildingId&&Vt!==Nt&&(Vt.centroidXY=Nt.centroidXY,w.writeCentroidToBuffer(Vt));for(const Vt of ve.centroidData)Vt.buildingId===ft.buildingId&&Vt!==tt&&(Vt.centroidXY=tt.centroidXY,ve.writeCentroidToBuffer(Vt))}}for(const yt of Ie){if(st.has(yt))continue;const ft=w.featuresOnBorder[yt],Nt=w.centroidData[ft.centroidDataIndex],Ft=ft.borders[pe];let ot;for(;FeFt[0]+3||tt[0]>Ft[0]-3)break;ve.showCentroid(ot),Fe++}if(ot&&FeFt[1]-3||(mt++,++Fe===Le.length))break;ot=ve.featuresOnBorder[Le[Fe]]}for(;tt=Le.length){w.showCentroid(ft);continue}ot=ve.featuresOnBorder[Le[tt]];let bt=!1;if(mt>=1){const Vt=ot.borders[Be];Math.abs(Ft[0]-Vt[0])<3&&Math.abs(Ft[1]-Vt[1])<3&&(mt=1,bt=!0,Fe=tt+1)}else if(mt===0){w.showCentroid(ft);continue}const Et=ve.centroidData[ot.centroidDataIndex];R&&bt&&$(Nt,Et);const tr=ft.intersectsCount()>1||ot.intersectsCount()>1;if(mt>1)Fe=tt,Nt.centroidXY=Et.centroidXY=new s.P(0,0);else if(Ye&&Ye.dem&&!tr){const Vt=oe[pe](Nt,Et),qt=pe%2?s.an-1:0,Mt=me(Vt[0],Math.min(s.an-1,Vt[1]),qt,Ye,Ne,pe<2,Vt[2]);Nt.centroidXY=Et.centroidXY=H(Mt)}else tr?Nt.centroidXY=Et.centroidXY=new s.P(0,0):(Nt.centroidXY=w.encodeBorderCentroid(ft),Et.centroidXY=ve.encodeBorderCentroid(ot));w.writeCentroidToBuffer(Nt),ve.writeCentroidToBuffer(Et)}else w.showCentroid(ft)}w.borderDoneWithNeighborZ[pe]=ve.canonical.z,ve.borderDoneWithNeighborZ[Be]=w.canonical.z}(w.needsCentroidUpdate||!w.centroidVertexBuffer&&w.centroidVertexArray.length!==0)&&w.uploadCentroid(v)}const KI=[1,0,0],YI=[0,1,0],kT=[0,0,1];function Rv(v,d,g){const w=g.transform,A=g.shadowRenderer;if(!A)return!0;const j=v.toUnwrapped(),R=w.tileSize*A._cascades[g.currentShadowCascade].scale;let F=d;if(w.elevation){const le=w.elevation.getMinMaxForTile(v);le&&(F+=le.max)}const $=w.scaleZoom(R);F/=s.e2(w.center.lat,$);const H=[...A.shadowDirection];H[2]=-H[2];const Y=A.computeSimplifiedTileShadowVolume(j,F,R,H);if(!Y)return!1;const te=[KI,YI,kT,H,[H[0],0,H[2]],[0,H[1],H[2]]],ee=s.cl.fromInvProjectionMatrix(w.invProjMatrix,w.worldSize,$,w.projection.name!=="globe"),ne=A.getCurrentCascadeFrustum();return ee.intersectsPrecise(Y.vertices,Y.planes,te)===0||ne.intersectsPrecise(Y.vertices,Y.planes,te)===0}function Wx(v){const{painter:d,source:g,layer:w,coords:A}=v;let j=v.defines;const R=d.context,F=d.renderPass==="shadow",$=d.renderPass==="light-beam",H=d.shadowRenderer,Y=s.e2(d.transform.center.lat,d.transform.zoom),te=ja(d,w.paint.get("building-cutoff-fade-range"));te.shouldRenderCutoff&&(j=j.concat("RENDER_CUTOFF"));const ee=w.paint.get("building-front-cutoff"),ne=ee[2]<1&&!d.terrain,le=Nv(d.transform.pitch,ee,!!d.terrain);ne&&(j=j.concat("RENDER_FRONT_CUTOFF"),d.maxFrontCutoffRawStart=Math.max(d.maxFrontCutoffRawStart,ee[0])),v.floodLightIntensity>0&&(j=j.concat("FLOOD_LIGHT"));for(const oe of A){const me=g.getTile(oe),pe=me.getBucket(w);if(!pe)continue;H&&H.getMaxCascadeForTile(oe.toUnwrapped())===0&&(j=j.concat("SHADOWS_SINGLE_CASCADE"));const Ie=pe.programConfigurations.get(w.id);let Ne,ve,Ye,Be=d.translatePosMatrix(oe.expandedProjMatrix,me,[0,0],"map");if(Be=s.cC(s.bb(),Be,[1,1,v.verticalScale]),F&&H){if(Rv(me.tileID,pe.maxHeight*Y,d))continue;let Le=H.calculateShadowPassMatrixFromTile(me.tileID.toUnwrapped());Le=s.cC(s.bb(),Le,[1,1,v.verticalScale]),Ye=Tv(Le),Ne=ve=d.getOrCreateProgram("buildingDepth",{config:Ie,defines:j,overrideFog:!1})}else if($)Ne=ve=d.getOrCreateProgram("buildingBloom",{config:Ie,defines:j,overrideFog:!1}),Ye=Sv(Be);else{const Le=d.transform.calculatePosMatrix(oe.toUnwrapped(),d.transform.worldSize);s.cC(Le,Le,[1,1,v.verticalScale]);const Fe=s.bb();s.cC(Fe,Le,[1,-1,1/Y]),s.b7(Fe,Fe),s.e6(Fe,Fe);const qe=d.transform.getFreeCameraOptions().position,st=1<{if($){const qe=Le.entranceBloom;Fe.draw(d,R.gl.TRIANGLES,v.depthMode,Xr.disabled,v.blendMode,Gr.disabled,Ye,w.id,qe.layoutVertexBuffer,qe.indexBuffer,qe.segmentsBucket,w.paint,d.transform.zoom,Ie,[qe.layoutAttenuationBuffer,qe.layoutColorBuffer])}else{const qe=Le.segmentsBucket;let st=[Le.layoutNormalBuffer,Le.layoutCentroidBuffer,Le.layoutColorBuffer,Le.layoutFloodLightDataBuffer];Le.layoutFacadePaintBuffer&&(st=st.concat([Le.layoutFacadeDataBuffer,Le.layoutFacadeVerticalRangeBuffer,Le.layoutFacadePaintBuffer])),Fe.draw(d,R.gl.TRIANGLES,v.depthMode,Xr.disabled,v.blendMode,F?Gr.disabled:Gr.backCW,Ye,w.id,Le.layoutVertexBuffer,Le.indexBuffer,qe,w.paint,d.transform.zoom,Ie,st)}};d.uploadCommonUniforms(R,ve,oe.toUnwrapped(),null,te),pe.buildingWithoutFacade&&We(pe.buildingWithoutFacade,ve),pe.buildingWithFacade&&(Ne!==ve&&d.uploadCommonUniforms(R,Ne,oe.toUnwrapped(),null,te),We(pe.buildingWithFacade,Ne))}}function CT(v,d,g,w,A,j,R,F,$,H,Y,te,ee,ne){const le=v.context.gl,oe=v.depthModeForSublayer(1,Cr.ReadOnly,le.LEQUAL,!0),me=.1*(1-(pe=Y))+3*pe;var pe;const Ie=v._showOverdrawInspector,Ne=te,ve=new AT;Ie||yd(ve,v,d,g,w,oe,new Xr({func:le.ALWAYS,mask:255},255,255,le.KEEP,le.KEEP,le.REPLACE),new Yr([le.ONE,le.ONE,le.ONE,le.ONE],s.aq.transparent,[!1,!1,!1,!0],le.MIN),Gr.disabled,A,"sdf",j,R,F,$,H,me,Ne,!1,void 0);{const Ye=Ie?Xr.disabled:new Xr({func:le.EQUAL,mask:255},255,255,le.KEEP,le.DECR,le.DECR),Be=Ie?v.colorModeForRenderPass():new Yr([le.ONE_MINUS_DST_ALPHA,le.DST_ALPHA,le.ONE,le.ONE],s.aq.transparent,[!0,!0,!0,!0]);yd(ve,v,d,g,w,oe,Ye,Be,Gr.disabled,A,"color",j,R,F,$,H,me,Ne,!1,void 0)}}function IT(v){return[v[0]*s.e7,v[1]*s.e7,v[2]*s.e7,0]}function Lv(v,d,g,w,A,j,R,F,$){const H=w.getSource(),Y=g.globeSharedBuffers;if(!Y)return;let te,ee,ne;if(d&&(te=w.getTile(d)),H instanceof s.aV?(ee=H.texture,ne=s.dw(0,0,g.transform)):te&&d&&(ee=te.texture,ne=s.dw(d.canonical.z,d.canonical.x,g.transform)),!ee||!ne)return;v||(ne=s.cC(s.bb(),ne,[1,-1,1]));const le=g.context,oe=le.gl,me=A.paint.get("raster-resampling")==="nearest"?oe.NEAREST:oe.LINEAR,pe=g.colorModeForDrapableLayerRenderPass(j),Ie=R.defines;Ie.push("GLOBE_POLES");const Ne=new Cr(oe.LEQUAL,Cr.ReadWrite,g.depthRangeFor3D),ve=Float32Array.from(g.transform.expandedFarZProjMatrix),Ye=Float32Array.from(s.du(s.dv(new s.cn(0,0,0))));g.terrain&&g.terrain.prepareDrawTile(),le.activeTexture.set(oe.TEXTURE0),ee.bind(me,oe.CLAMP_TO_EDGE),le.activeTexture.set(oe.TEXTURE1),ee.bind(me,oe.CLAMP_TO_EDGE),"useMipmap"in ee&&le.extTextureFilterAnisotropic&&g.transform.pitch>20&&oe.texParameterf(oe.TEXTURE_2D,le.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,le.extTextureFilterAnisotropicMax);const[Be,We,Le,Fe]=d?Y.getPoleBuffers(d.canonical.z,!1):Y.getPoleBuffers(0,!0),qe=A.paint.get("raster-elevation");let st;v?(st=Be,g.renderDefaultNorthPole=qe!==0):(st=We,g.renderDefaultSouthPole=qe!==0);const Qe=IT(R.mix),yt=((Nt,Ft,ot,tt,mt,bt,Et,tr,Vt,qt,Mt,Tr,Dr,pr)=>$I(Nt,Ft,ot,tt,new Float32Array(16),new Float32Array(9),[0,0],mt,[0,0],[0,0,0,0],1,{opacity:1,mix:0},Et,[0,0],Vt,2,Mt,Tr,Dr,1,0,pr))(g,ve,Ye,ne,s.al(g.transform.zoom),0,A,0,qe,0,Qe,R.offset,R.range,j),ft=g.getOrCreateProgram("raster",{defines:Ie});g.uploadCommonUniforms(le,ft,null),ft.draw(g,oe.TRIANGLES,Ne,$,pe,F,yt,A.id,st,Le,Fe)}function jT(v){if(v.isOrthographic)return[0,0,0,0];const d=v._nearZ,g=v.projection.farthestPixelDistance(v),w=g-d,A=.2*v.height,j=d+A;return[d,g,(j-A-d)/w,(j-d)/w]}function ZI(v,d,g,w){if(v)return d instanceof yp&&v instanceof xp?d.getTextureDescriptor(v,g,!0):{texture:v.texture,mix:IT(w.mix),offset:w.offset,buffer:0,tileSize:1}}var PT=s.e8([{name:"a_index",type:"Int16",components:1}]);class XI{constructor(d,g,w,A){const j={width:w[0],height:w[1],data:null},R=d.gl;this.targetColorTexture=new s.T(d,j,R.RGBA8,{useMipmap:!1}),this.backgroundColorTexture=new s.T(d,j,R.RGBA8,{useMipmap:!1}),this.context=d,this.updateParticleTexture(g,A),this.lastInvalidatedAt=0}updateParticleTexture(d,g){if(this.particleTextureDimension===g.width)return;(this.particleTexture0||this.particleTexture1||this.particleIndexBuffer||this.particleSegment)&&(this.particleTexture0.destroy(),this.particleTexture1.destroy(),this.particleIndexBuffer.destroy(),this.particleSegment.destroy());const w=this.context.gl,A=g.width*g.height;this.particleTexture0=new s.T(this.context,g,w.RGBA8,{premultiply:!1,useMipmap:!1}),this.particleTexture1=new s.T(this.context,g,w.RGBA8,{premultiply:!1,useMipmap:!1});const j=new s.e9;j.reserve(A);for(let R=0;R0){const Qe=s.ec(g.canonical,$),yt=s.ed(Qe);ee=s.aD(new Float32Array(16),$.globeMatrix,yt),s.aD(ee,$.projMatrix,ee)}const ne=s.bb();ne[12]+=2*A/(s.o.devicePixelRatio*$.width),ne[13]+=2*j/(s.o.devicePixelRatio*$.height),s.aD(ee,ne,ee);const le=v.getOrCreateProgram("debug",{defines:te}),oe=d.getTileByID(g.key);v.terrain&&v.terrain.setupElevationDraw(oe,le);const me=Cr.disabled,pe=Xr.disabled,Ie=v.colorModeForRenderPass(),Ne="$debug";F.activeTexture.set(H.TEXTURE0),v.emptyTexture.bind(H.LINEAR,H.CLAMP_TO_EDGE),Y?oe._makeGlobeTileDebugBuffers(v.context,$):oe._makeDebugTileBoundsBuffers(v.context,$.projection);const ve=oe._tileDebugBuffer||v.debugBuffer,Ye=oe._tileDebugIndexBuffer||v.debugIndexBuffer,Be=oe._tileDebugSegments||v.debugSegments;if(le.draw(v,H.LINE_STRIP,me,pe,Ie,Gr.disabled,$x(ee,w.toPremultipliedRenderColor(null)),Ne,ve,Ye,Be,null,null,null,[oe._globeTileDebugBorderBuffer]),R){const Qe=oe.latestRawTileData,yt=Math.floor((Qe&&Qe.byteLength||0)/1024);let ft=g.canonical.toString();g.overscaledZ!==g.canonical.z&&(ft+=` => ${g.overscaledZ}`),ft+=` ${oe.state}`,ft+=` ${yt}kb`,function(Nt,Ft){Nt.initDebugOverlayCanvas();const ot=Nt.debugOverlayCanvas,tt=Nt.context.gl,mt=Nt.debugOverlayCanvas.getContext("2d");mt.clearRect(0,0,ot.width,ot.height),mt.shadowColor="white",mt.shadowBlur=2,mt.lineWidth=1.5,mt.strokeStyle="white",mt.textBaseline="top",mt.font="bold 36px Open Sans, sans-serif",mt.fillText(Ft,5,5),mt.strokeText(Ft,5,5),Nt.debugOverlayTexture.update(ot),Nt.debugOverlayTexture.bind(tt.LINEAR,tt.CLAMP_TO_EDGE)}(v,ft)}const We=d.getTile(g).tileSize,Le=512/Math.min(We,512)*(g.overscaledZ/$.zoom)*.5,Fe=oe._tileDebugTextBuffer||v.debugBuffer,qe=oe._tileDebugTextIndexBuffer||v.quadTriangleIndexBuffer,st=oe._tileDebugTextSegments||v.debugSegments;le.draw(v,H.TRIANGLES,me,pe,Yr.alphaBlended,Gr.disabled,$x(ee,s.aq.transparent.toPremultipliedRenderColor(null),Le),Ne,Fe,qe,st,null,null,null,[oe._globeTileDebugTextBuffer])}function JI(v,d,g,w){Dv(v,0,d+g/2,v.transform.width,g,w)}function MT(v,d,g,w){Dv(v,d-g/2,0,g,v.transform.height,w)}function Dv(v,d,g,w,A,j){const R=v.context,F=R.gl;F.enable(F.SCISSOR_TEST),F.scissor(d*s.o.devicePixelRatio,g*s.o.devicePixelRatio,w*s.o.devicePixelRatio,A*s.o.devicePixelRatio),R.clear({color:j}),F.disable(F.SCISSOR_TEST)}const N3=s.e8([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:nc}=N3;function xd(v,d,g,w){v.emplaceBack(d,g,w)}class Ko{constructor(d){this.vertexArray=new s.ee,this.indices=new s.dC,xd(this.vertexArray,-1,-1,1),xd(this.vertexArray,1,-1,1),xd(this.vertexArray,-1,1,1),xd(this.vertexArray,1,1,1),xd(this.vertexArray,-1,-1,-1),xd(this.vertexArray,1,-1,-1),xd(this.vertexArray,-1,1,-1),xd(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=d.createVertexBuffer(this.vertexArray,nc),this.indexBuffer=d.createIndexBuffer(this.indices),this.segment=s.dy.simpleSegment(0,0,36,12)}}function bc(v,d,g,w,A,j){const R=v.context.gl,F=d.paint.get("sky-atmosphere-color"),$=d.paint.get("sky-atmosphere-halo-color"),H=d.paint.get("sky-atmosphere-sun-intensity"),Y=((te,ee,ne,le,oe)=>({u_matrix_3f:te,u_sun_direction:ee,u_sun_intensity:ne,u_color_tint_r:[le.r,le.g,le.b,le.a],u_color_tint_m:[oe.r,oe.g,oe.b,oe.a],u_luminance:5e-5}))(s.eg(s.dE(),w),A,H,F.toPremultipliedRenderColor(null),$.toPremultipliedRenderColor(null));R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+j,d.skyboxTexture,0),g.draw(v,R.TRIANGLES,Cr.disabled,Xr.disabled,Yr.unblended,Gr.frontCW,Y,"skyboxCapture",d.skyboxGeometry.vertexBuffer,d.skyboxGeometry.indexBuffer,d.skyboxGeometry.segment)}const ej=s.e8([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);class OT{constructor(d){const g=new s.eh;g.emplaceBack(-1,1,1,0,0),g.emplaceBack(1,1,1,1,0),g.emplaceBack(1,-1,1,1,1),g.emplaceBack(-1,-1,1,0,1);const w=new s.dC;w.emplaceBack(0,1,2),w.emplaceBack(2,3,0),this.vertexBuffer=d.createVertexBuffer(g,ej.members),this.indexBuffer=d.createIndexBuffer(w),this.segments=s.dy.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}const FT=s.e8([{type:"Float32",name:"a_pos_3f",components:3},{type:"Float32",name:"a_uv",components:2},{type:"Float32",name:"a_size_scale",components:1},{type:"Float32",name:"a_opacity",components:1}]);class BT{constructor(){this.starsCount=16e3,this.sizeMultiplier=.15,this.sizeRange=100,this.intensityRange=200}}class tj{constructor(d){this.colorModeAlphaBlendedWriteRGB=new Yr([1,js,1,js],s.aq.transparent,[!0,!0,!0,!1]),this.colorModeWriteAlpha=new Yr([1,0,1,0],s.aq.transparent,[!1,!1,!1,!0]),this.params=new BT,this.updateNeeded=!0}update(d){const g=d.context;if(!this.atmosphereBuffer||this.updateNeeded){this.updateNeeded=!1,this.atmosphereBuffer=new OT(g);const w=this.params.sizeRange,A=this.params.intensityRange,j=function(Y){const te=s.em(30),ee=[];for(let ne=0;ne{const Le=j.projection.name==="globe"?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"];We&&Le.push("ALPHA_PASS");const Fe=d.getOrCreateProgram("globeAtmosphere",{defines:Le}),qe=((Qe,yt,ft,Nt,Ft,ot,tt,mt,bt,Et,tr,Vt)=>({u_frustum_tl:Qe,u_frustum_tr:yt,u_frustum_br:ft,u_frustum_bl:Nt,u_horizon:Ft,u_transition:ot,u_fadeout_range:tt,u_atmosphere_fog_color:mt.toArray01(),u_high_color:bt.toArray01(),u_space_color:Et.toArray01(),u_temporal_offset:tr,u_horizon_angle:Vt}))(j.frustumCorners.TL,j.frustumCorners.TR,j.frustumCorners.BR,j.frustumCorners.BL,j.frustumCorners.horizon,F,me,Y,ee,le,Ie,Ye);d.uploadCommonUniforms(w,Fe);const st=this.atmosphereBuffer;st&&Fe.draw(d,A.TRIANGLES,R,Xr.disabled,We?this.colorModeWriteAlpha:this.colorModeAlphaBlendedWriteRGB,Gr.backCW,qe,We?"atmosphere_glow_alpha":"atmosphere_glow",st.vertexBuffer,st.indexBuffer,st.segments)};Be(!1),Be(!0)}drawStars(d,g){const w=s.aC(g.properties.get("star-intensity"),0,1);if(w===0)return;const A=d.context,j=A.gl,R=d.transform,F=d.getOrCreateProgram("stars"),$=s.bL([]);s.bN($,$,-R._pitch),s.bM($,$,-R.angle),s.bN($,$,s.ap(R._center.lat)),s.ek($,$,-s.ap(R._center.lng));const H=s.bR(new Float32Array(16),$),Y=s.aD([],R.starsProjMatrix,H),te=s.eg([],H),ee=s.el([],te),ne=[0,1,0];s.dG(ne,ne,ee),s.bJ(ne,ne,this.params.sizeMultiplier);const le=[1,0,0];s.dG(le,le,ee),s.bJ(le,le,this.params.sizeMultiplier);const oe=(me=ne,pe=le,Ie=w,{u_matrix:Float32Array.from(Y),u_up:me,u_right:pe,u_intensity_multiplier:Ie});var me,pe,Ie;d.uploadCommonUniforms(A,F),this.starsVx&&this.starsIdx&&F.draw(d,j.TRIANGLES,Cr.disabled,Xr.disabled,this.colorModeAlphaBlendedWriteRGB,Gr.disabled,oe,"atmosphere_stars",this.starsVx,this.starsIdx,this.starsSegments)}}class hh{constructor(){this.visibleTiles=[]}updateBorders(d,g){const w=[],A=[],j=d._getRenderableCoordinates(!1,!0);for(const $ of j){const H=d.getTile($);if(!H.hasData())continue;const Y=H.getBucket(g);Y&&(Y.isEmpty()||(w.push($.key),A.push({bucket:Y,tileID:$.canonical})))}let R=w.length!==this.visibleTiles.length;if(!R){w.sort();for(let $=0;$$.tileID.z-H.tileID.z||$.tileID.x-H.tileID.x||$.tileID.y-H.tileID.y);for(const $ of A){const H=new Array,Y=new Array,te=$.bucket;for(const ee of te.featuresOnBorder)F.has(ee.featureId)?Y.push(ee.footprintIndex):(F.add(ee.featureId),H.push(ee.footprintIndex));te.updateFootprintHiddenFlags(H,s.en,!1),te.updateFootprintHiddenFlags(Y,s.en,!0)}}}function rj(v,d){const g=[...v],w=d.cameraWorldSizeForFog/d.worldSize,A=s.b9([]);return s.cC(A,A,[w,w,1]),s.aD(g,A,g),s.aD(g,d.worldToFogMatrix,g),g}function Jn(v,d,g,w,A){const j=g.material,R=w.context,{baseColorTexture:F,metallicRoughnessTexture:$}=j.pbrMetallicRoughness,{normalTexture:H,occlusionTexture:Y,emissionTexture:te}=j;function ee(le,oe,me){if(le&&(v.push(oe),R.activeTexture.set(R.gl.TEXTURE0+me),le.gfxTexture)){const{minFilter:pe,magFilter:Ie,wrapS:Ne,wrapT:ve}=le.sampler;le.gfxTexture.bindExtraParam(pe,Ie,Ne,ve)}}ee(F,"HAS_TEXTURE_u_baseColorTexture",5),ee($,"HAS_TEXTURE_u_metallicRoughnessTexture",6),ee(H,"HAS_TEXTURE_u_normalTexture",7),ee(Y,"HAS_TEXTURE_u_occlusionTexture",8),ee(te,"HAS_TEXTURE_u_emissionTexture",9),A&&(A.texture||(A.texture=new s.dR(w.context,A.image,[A.image.height,A.image.height,A.image.height],R.gl.RGBA8)),R.activeTexture.set(R.gl.TEXTURE0+10),A.texture&&A.texture.bind(R.gl.LINEAR,R.gl.CLAMP_TO_EDGE),v.push("APPLY_LUT_ON_GPU")),g.texcoordBuffer&&(v.push("HAS_ATTRIBUTE_a_uv_2f"),d.push(g.texcoordBuffer)),g.colorBuffer&&(v.push(g.colorBuffer.itemSize===12?"HAS_ATTRIBUTE_a_color_3f":"HAS_ATTRIBUTE_a_color_4f"),d.push(g.colorBuffer)),g.normalBuffer&&(v.push("HAS_ATTRIBUTE_a_normal_3f"),d.push(g.normalBuffer)),g.pbrBuffer&&(v.push("HAS_ATTRIBUTE_a_pbr"),v.push("HAS_ATTRIBUTE_a_heightBasedEmissiveStrength"),d.push(g.pbrBuffer)),j.alphaMode!=="OPAQUE"&&j.alphaMode!=="MASK"||v.push("UNPREMULT_TEXTURE_IN_SHADER"),j.defined||v.push("DIFFUSE_SHADED");const ne=w.shadowRenderer;ne&&(v.push("RENDER_SHADOWS"),ne.useNormalOffset&&v.push("NORMAL_OFFSET"))}function pg(v,d,g,w,A,j){const R=v.modelOpacity,F=d.context,$=new Cr(d.context.gl.LEQUAL,v.isLightMesh?Cr.ReadOnly:Cr.ReadWrite,d.depthRangeFor3D),H=d.transform,Y=v.mesh,te=Y.material,ee=te.pbrMetallicRoughness,ne=d.style.fog;let le;le=d.transform.projection.zAxisUnit==="pixels"?[...v.nodeModelMatrix]:s.aD([],w.zScaleMatrix,v.nodeModelMatrix),s.aD(le,w.negCameraPosMatrix,le);const oe=s.b7([],le);s.e6(oe,oe);const me=g.paint.get("model-color-use-theme").constantOr("default")==="none",pe=g.paint.get("model-emissive-strength").constantOr(0),Ie=Ip(new Float32Array(v.worldViewProjection),new Float32Array(le),new Float32Array(oe),null,d,R,ee.baseColorFactor,te.emissiveFactor,ee.metallicFactor,ee.roughnessFactor,te,pe,g,void 0,void 0,v.materialOverride,v.modelColor),Ne={defines:[]},ve=[],Ye=d.shadowRenderer;Ye&&(Ye.useNormalOffset=!1),Jn(Ne.defines,ve,Y,d,me?null:g.lut);let Be=null;if(ne){const Fe=rj(v.nodeModelMatrix,d.transform);if(Be=new Float32Array(Fe),H.projection.name!=="globe"){const qe=Y.aabb.min,st=Y.aabb.max,[Qe,yt]=ne.getOpacityForBounds(Fe,qe[0],qe[1],st[0],st[1]);Ne.overrideFog=Qe>=In||yt>=In}}const We=ja(d,g.paint.get("model-cutoff-fade-range"));We.shouldRenderCutoff&&Ne.defines.push("RENDER_CUTOFF");const Le=d.getOrCreateProgram("model",Ne);d.uploadCommonUniforms(F,Le,null,Be,We),d.renderPass!=="shadow"&&Ye&&Ye.setupShadowsFromMatrix(v.nodeModelMatrix,Le),Le.draw(d,F.gl.TRIANGLES,$,A,j,Y.material.doubleSided?Gr.disabled:Gr.backCCW,Ie,g.id,Y.vertexBuffer,Y.indexBuffer,Y.segments,g.paint,d.transform.zoom,void 0,ve)}function Mv(v,d){return v.style._importedAsBasemap?"basemap":d.scope}function Ov(v,d,g,w,A,j,R,F,$,H){const Y=v.transform,te=!!d.isGeometryBloom&&d.isGeometryBloom;if(te&&v.renderPass==="shadow")return;const ee=Y.projection.name==="globe"?s.ev(g,Y):[...g];s.aD(ee,ee,d.globalMatrix);const ne=s.aD([],w,ee);if(d.meshes)for(const le of d.meshes){const oe=F.get(le.material.name);if(oe&&oe.opacity<=0)continue;if(le.material.alphaMode!=="BLEND"){R.push({mesh:le,depth:0,modelIndex:A,worldViewProjection:ne,nodeModelMatrix:ee,isLightMesh:te,materialOverride:oe,modelOpacity:$,modelColor:H,node:d,modelMatrix:g});continue}const me=s.ah([],le.centroid,ne);!Y.isOrthographic&&me[2]<=0||j.push({mesh:le,depth:me[2],modelIndex:A,worldViewProjection:ne,nodeModelMatrix:ee,isLightMesh:te,materialOverride:oe,modelOpacity:$,modelColor:H,node:d,modelMatrix:g})}if(d.children)for(const le of d.children)Ov(v,le,g,w,A,j,R,F,$,H)}function mg(v,d,g,w){const A=g.shadowRenderer;if(!A)return;const j=A.getShadowPassDepthMode(),R=A.calculateShadowPassMatrixFromMatrix(d),F=ST(R);g.getOrCreateProgram("modelDepth").draw(g,g.context.gl.TRIANGLES,j,Xr.disabled,Yr.disabled,Gr.disabled,F,w.id,v.vertexBuffer,v.indexBuffer,v.segments,w.paint,g.transform.zoom,void 0,void 0)}function zT(v,d,g,w){const A=function(Y,te){if(te.footprintDebugMesh)return te.footprintDebugMesh;if(!te.footprint)return null;const ee=Y.context,ne=te.footprint.vertices,le=te.footprint.indices,oe=new s.dB;oe.reserve(ne.length);for(const qe of ne)oe.emplaceBack(qe.x,qe.y);const me=new s.dC;me.reserve(le.length);for(let qe=0;qe0){const ee=j.terrain,ne=ee.findDEMTileFor(F);ne&&ne.dem?$=s.ex.create(ee,F,ne):te=0}if(te===0&&(R.terrainElevationMin=0,R.terrainElevationMax=0),te===R.validForExaggeration&&(te===0||$&&$._demTile&&$._demTile.tileID===R.validForDEMTile.id&&$._dem._timestamp===R.validForDEMTile.timestamp))return!1;for(const ee in R.instancesPerModel){const ne=R.instancesPerModel[ee];for(let le=0;leH&&(H=ne.max)}const Y=s.aC(w.x,j,R)-w.x,te=s.aC(w.y,F,$)-w.y,ee=s.bU(H,d.center.lat)-w.z;return d._zoomFromMercatorZ(Math.sqrt(Y*Y+te*te+ee*ee))}function is(v,d,g,w,A,j,R){const F=v.context,$=v.renderPass==="shadow",H=v.shadowRenderer,Y=$&&H?H.getShadowPassDepthMode():new Cr(F.gl.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D),te=v.isTileAffectedByFog(j),ee=v.transform.projection.name==="globe";if(g.meshes)for(const ne of g.meshes){const le=ee?[]:["MODEL_POSITION_ON_GPU"],oe=[];let me,pe,Ie;const Ne=!ee&&w.instancedDataArray.length>20;Ne&&le.push("INSTANCED_ARRAYS");const ve=ja(v,d.paint.get("model-cutoff-fade-range"));if(ve.shouldRenderCutoff&&le.push("RENDER_CUTOFF"),$&&H)me=v.getOrCreateProgram("modelDepth",{defines:le}),pe=ST(R.shadowTileMatrix,R.shadowTileMatrix,Float32Array.from(g.globalMatrix)),Ie=Yr.disabled;else{Jn(le,oe,ne,v,d.paint.get("model-color-use-theme").constantOr("default")==="none"?null:d.lut),me=v.getOrCreateProgram("model",{defines:le,overrideFog:te});const Be=ne.material,We=Be.pbrMetallicRoughness,Le=d.paint.get("model-opacity").constantOr(1),Fe=d.paint.get("model-emissive-strength").constantOr(0);pe=Ip(j.expandedProjMatrix,Float32Array.from(g.globalMatrix),new Float32Array(16),null,v,Le,We.baseColorFactor,Be.emissiveFactor,We.metallicFactor,We.roughnessFactor,Be,Fe,d,A),H&&(R.shadowUniformsInitialized?me.setShadowUniformValues(F,H.getShadowUniformValues()):(H.setupShadows(j.toUnwrapped(),me,"model-tile"),R.shadowUniformsInitialized=!0)),Ie=ve.shouldRenderCutoff||Le<1||Be.alphaMode!=="OPAQUE"?Yr.alphaBlended:Yr.unblended}v.uploadCommonUniforms(F,me,j.toUnwrapped(),null,ve);const Ye=ne.material.doubleSided?Gr.disabled:Gr.backCCW;if(Ne)oe.push(w.instancedDataBuffer),me.draw(v,F.gl.TRIANGLES,Y,Xr.disabled,Ie,Ye,pe,d.id,ne.vertexBuffer,ne.indexBuffer,ne.segments,d.paint,v.transform.zoom,void 0,oe,w.instancedDataArray.length);else{const Be=$?"u_instance":"u_normal_matrix";for(let We=0;We$[1]?R:$,j[0]=g.max[0],R=s.aE(s.bE(),j,A),F=R[1]$[1]?R:$,j[1]=g.min[1],R=s.aE(s.bE(),j,A),F=R[1]$[1]?R:$;const H=s.aC(w[0],0,1),Y=100*d.pixelsPerMeter*s.aC(w[1],0,1),te=s.aC(w[2],0,1),ee=s.ey(s.bE(),F,$,H),ne=Math.tan(.5*d.fovX),le=-ee[2]*ne;if(Y===0)return ee[1]<-Math.abs(le)?te:1;const oe=(-Math.abs(le)-ee[1])/Y,me=(Ie,Ne,ve)=>(1-ve)*Ie+ve*Ne,pe=s.aC(me(1,te,oe),te,1);return me(1,pe,s.aC((d.pitch-20)/20,0,1))}class Bv{}class ij{constructor(){this._storage=new Map}getLinesFromTrianglesBuffer(d,g,w){{const te=this._storage.get(g.id);if(te)return te.lastUsedFrameIdx=d,te.buf}const A=w.gl,j=A.getBufferParameter(A.ELEMENT_ARRAY_BUFFER,A.BUFFER_SIZE),R=new ArrayBuffer(j),F=new Int16Array(R);A.getBufferSubData(A.ELEMENT_ARRAY_BUFFER,0,new Int16Array(R));const $=new s.eA;for(let te=0;te30&&(w.buf.destroy(),this._storage.delete(g))}destroy(){for(const[d,g]of this._storage)g.buf.destroy(),this._storage.delete(d)}}class sj{constructor(){this.occluderSize=30,this.depthOffset=-1e-4}}const yg=s.e8([{type:"Float32",name:"a_pos_3f",components:3},{type:"Float32",name:"a_uv",components:2},{type:"Float32",name:"a_rainParticleData",components:4}]);class aj{constructor(d){this.revealStart=11,this.revealRange=2}}const R3=s.e8([{type:"Float32",name:"a_pos_2f",components:2}]);class oj{destroy(){this.vignetteVx&&this.vignetteVx.destroy(),this.vignetteIdx&&this.vignetteIdx.destroy()}draw(d,g){const w=d.getOrCreateProgram("vignette");if(!this.vignetteVx||!this.vignetteIdx){const R=new s.eB,F=new s.dC;R.emplaceBack(-1,-1),R.emplaceBack(1,-1),R.emplaceBack(1,1),R.emplaceBack(-1,1),F.emplaceBack(0,1,2),F.emplaceBack(0,2,3),this.vignetteVx=d.context.createVertexBuffer(R,R3.members),this.vignetteIdx=d.context.createIndexBuffer(F)}const A=s.dy.simpleSegment(0,0,4,6);if(this.vignetteVx&&this.vignetteIdx){d.uploadCommonUniforms(d.context,w);const R={u_vignetteShape:(j={vignetteShape:[g.start,g.range,Math.pow(10,g.fadePower)],vignetteColor:[g.color.r,g.color.g,g.color.b,g.color.a*g.strength]}).vignetteShape,u_vignetteColor:j.vignetteColor};w.draw(d,d.context.gl.TRIANGLES,Cr.disabled,Xr.disabled,Yr.alphaBlended,Gr.disabled,R,"vignette",this.vignetteVx,this.vignetteIdx,A)}var j}}class zv{constructor(){this._accumulatedOffsetX=0,this._accumulatedOffsetY=0,this._accumulatedElevation=0}update(d,g){const w=d.getFreeCameraOptions().position,A=w.toAltitude(),j=w.toLngLat(),R=s.ap(j.lng),F=s.ap(j.lat),$=d.pixelsPerMeter/g,H=R*s.eD,Y=s.eD*Math.log(Math.tan(Math.PI/4+F/2));if(this._offsetXPrev===void 0)this._offsetXPrev=0,this._offsetYPrev=0,this._elevationPrev=0,this._accumulatedOffsetX=0,this._accumulatedOffsetY=0,this._accumulatedElevation=0;else{const te=-this._offsetYPrev+Y,ee=-this._elevationPrev+A;this._accumulatedOffsetX+=(-this._offsetXPrev+H)*$,this._accumulatedOffsetY+=te*$,this._accumulatedElevation+=ee*$,this._offsetXPrev=H,this._offsetYPrev=Y,this._elevationPrev=A}}getPosition(){return[this._accumulatedOffsetX,this._accumulatedOffsetY,this._accumulatedElevation]}}function $v(v,d){return[-(v[0]-Math.floor(v[0]/d)*d),-(v[1]-Math.floor(v[1]/d)*d),-(v[2]-Math.floor(v[2]/d)*d)]}function VT(v){const d=s.em(1323123451230),g=[];for(let w=0;w Rain"),this._vignetteParams={strength:1,start:.7,range:1,fadePower:.4,color:{r:.27,g:.27,b:.27,a:1}},this.particlesCount=16e3}update(d){const g=d.context;if(!this.particlesVx){const w=VT(this.particlesCount),A=new s.eE,j=new s.dC;let R=0;const F=s.em(1323123451230);for(let $=0;$w)return;const A=ph(0,1,g.revealStart,g.revealStart+g.revealRange,w);if(!this.particlesVx||!this.particlesIdx)return;const j=structuredClone(this._params);let R=[-j.direction.x,j.direction.y,-100];s.ay(R,R);const F=structuredClone(this._vignetteParams);F.strength*=A,j.overrideStyleParameters||(j.intensity=d.style.rain.state.density,j.timeFactor=d.style.rain.state.intensity,j.color=structuredClone(d.style.rain.state.color),R=structuredClone(d.style.rain.state.direction),j.screenThinning.intensity=d.style.rain.state.centerThinning,j.dropletSizeX=d.style.rain.state.dropletSize[0],j.dropletSizeYScale=d.style.rain.state.dropletSize[1]/d.style.rain.state.dropletSize[0],j.distortionStrength=100*d.style.rain.state.distortionStrength,F.strength=1,F.color=structuredClone(d.style.rain.state.vignetteColor));const $=this.updateOnRender(d,j.timeFactor),H=d.context,Y=H.gl,te=d.transform;this.screenTexture&&this.screenTexture.size[0]===d.width&&this.screenTexture.size[1]===d.height||(this.screenTexture=new s.T(H,{width:d.width,height:d.height,data:null},Y.RGBA8)),j.distortionStrength>0&&(H.activeTexture.set(Y.TEXTURE0),this.screenTexture.bind(Y.LINEAR,Y.CLAMP_TO_EDGE),Y.copyTexSubImage2D(Y.TEXTURE_2D,0,0,0,0,0,d.width,d.height));const ee=d.getOrCreateProgram("rainParticle");d.uploadCommonUniforms(H,ee),H.activeTexture.set(Y.TEXTURE0),this.screenTexture.bind(Y.LINEAR,Y.CLAMP_TO_EDGE);const ne=[j.color.r,j.color.g,j.color.b,j.color.a],le=(oe,me)=>{const pe=$v(this._movement.getPosition(),oe),Ie=j.dropletSizeX,Ne=j.dropletSizeX*j.dropletSizeYScale,ve=d.width/2,Ye=d.height/2,Be=ph(0,j.screenThinning.start,0,1,j.screenThinning.intensity),We=ph(.001,j.screenThinning.range,0,1,j.screenThinning.intensity),Le=ph(0,j.screenThinning.particleOffset,0,1,j.screenThinning.intensity),Fe=(qe={modelview:$.modelviewMatrix,projection:$.projectionMatrix,time:this._accumulatedTimeFromStart,camPos:pe,velocityConeAperture:j.velocityConeAperture,velocity:j.velocity,boxSize:oe,rainDropletSize:[Ie,Ne],distortionStrength:j.distortionStrength,rainDirection:R,color:ne,screenSize:[te.width,te.height],thinningCenterPos:[ve,Ye],thinningShape:[Be,We,Math.pow(10,j.screenThinning.fadePower)],thinningAffectedRatio:j.screenThinning.affectedRatio,thinningParticleOffset:Le,shapeDirectionalPower:j.shapeDirPower,shapeNormalPower:j.shapeNormalPower,mode:me?0:1},{u_modelview:Float32Array.from(qe.modelview),u_projection:Float32Array.from(qe.projection),u_time:qe.time,u_cam_pos:qe.camPos,u_texScreen:0,u_velocityConeAperture:qe.velocityConeAperture,u_velocity:qe.velocity,u_boxSize:qe.boxSize,u_rainDropletSize:qe.rainDropletSize,u_distortionStrength:qe.distortionStrength,u_rainDirection:qe.rainDirection,u_color:qe.color,u_screenSize:qe.screenSize,u_thinningCenterPos:qe.thinningCenterPos,u_thinningShape:qe.thinningShape,u_thinningAffectedRatio:qe.thinningAffectedRatio,u_thinningParticleOffset:qe.thinningParticleOffset,u_shapeDirectionalPower:qe.shapeDirectionalPower,u_shapeNormalPower:qe.shapeNormalPower,u_mode:qe.mode});var qe;const st=Math.round(j.intensity*this.particlesCount),Qe=s.dy.simpleSegment(0,0,4*st,2*st);ee.draw(d,Y.TRIANGLES,Cr.disabled,Xr.disabled,Yr.alphaBlended,Gr.disabled,Fe,"rain_particles",this.particlesVx,this.particlesIdx,Qe)};j.distortionStrength>0&&le(j.boxSize,!0),le(j.boxSize,!1),this._vignette.draw(d,F)}}const Lp=s.e8([{type:"Float32",name:"a_pos_3f",components:3},{type:"Float32",name:"a_uv",components:2},{type:"Float32",name:"a_snowParticleData",components:4},{type:"Float32",name:"a_snowParticleDataHorizontalOscillation",components:2}]);class lj extends Kx{constructor(d){super(2.25),this._params={overrideStyleParameters:!1,intensity:.85,timeFactor:.75,velocityConeAperture:70,velocity:40,horizontalOscillationRadius:4,horizontalOscillationRate:1.5,boxSize:2e3,billboardSize:2,shapeFadeStart:.27,shapeFadePower:.21,screenThinning:{intensity:.4,start:.15,range:1.4,fadePower:.24,affectedRatio:1,particleOffset:-.2},color:{r:1,g:1,b:1,a:1},direction:{x:-50,y:-35}},this._revealParams=new aj("Precipitation > Snow"),this._vignetteParams={strength:.3,start:.78,range:.46,fadePower:.2,color:{r:1,g:1,b:1,a:1}},this.particlesCount=16e3}update(d){const g=d.context;if(!this.particlesVx){const w=VT(this.particlesCount),A=new s.eF,j=new s.dC;let R=0;const F=s.em(1323123451230);for(let $=0;$R)return;const F=ph(0,1,j.revealStart,j.revealStart+j.revealRange,R);A.strength*=F,g.overrideStyleParameters||(g.intensity=d.style.snow.state.density,g.timeFactor=d.style.snow.state.intensity,g.color=structuredClone(d.style.snow.state.color),w=structuredClone(d.style.snow.state.direction),g.screenThinning.intensity=d.style.snow.state.centerThinning,g.billboardSize=2.79*d.style.snow.state.flakeSize,A.strength=1,A.color=structuredClone(d.style.snow.state.vignetteColor));const $=this.updateOnRender(d,g.timeFactor);if(!this.particlesVx||!this.particlesIdx)return;const H=d.context,Y=H.gl,te=d.transform,ee=d.getOrCreateProgram("snowParticle");d.uploadCommonUniforms(H,ee),((ne,le,oe)=>{const me=$v(this._movement.getPosition(),ne),pe=te.width/2,Ie=te.height/2,Ne=ph(0,oe.screenThinning.start,0,1,oe.screenThinning.intensity),ve=ph(.001,oe.screenThinning.range,0,1,oe.screenThinning.intensity),Ye=ph(0,oe.screenThinning.particleOffset,0,1,oe.screenThinning.intensity),Be=(We={modelview:$.modelviewMatrix,projection:$.projectionMatrix,time:this._accumulatedTimeFromStart,camPos:me,velocityConeAperture:oe.velocityConeAperture,velocity:oe.velocity,horizontalOscillationRadius:oe.horizontalOscillationRadius,horizontalOscillationRate:oe.horizontalOscillationRate,boxSize:ne,billboardSize:1*oe.billboardSize,simpleShapeParameters:[oe.shapeFadeStart,oe.shapeFadePower],screenSize:[te.width,te.height],thinningCenterPos:[pe,Ie],thinningShape:[Ne,ve,Math.pow(10,oe.screenThinning.fadePower)],thinningAffectedRatio:oe.screenThinning.affectedRatio,thinningParticleOffset:Ye,color:[oe.color.r,oe.color.g,oe.color.b,oe.color.a],direction:w},{u_modelview:Float32Array.from(We.modelview),u_projection:Float32Array.from(We.projection),u_time:We.time,u_cam_pos:We.camPos,u_velocityConeAperture:We.velocityConeAperture,u_velocity:We.velocity,u_horizontalOscillationRadius:We.horizontalOscillationRadius,u_horizontalOscillationRate:We.horizontalOscillationRate,u_boxSize:We.boxSize,u_billboardSize:We.billboardSize,u_simpleShapeParameters:We.simpleShapeParameters,u_screenSize:We.screenSize,u_thinningCenterPos:We.thinningCenterPos,u_thinningShape:We.thinningShape,u_thinningAffectedRatio:We.thinningAffectedRatio,u_thinningParticleOffset:We.thinningParticleOffset,u_particleColor:We.color,u_direction:We.direction});var We;const Le=Math.round(oe.intensity*this.particlesCount),Fe=s.dy.simpleSegment(0,0,4*Le,2*Le);this.particlesVx&&this.particlesIdx&&ee.draw(d,Y.TRIANGLES,Cr.disabled,Xr.disabled,Yr.alphaBlended,Gr.disabled,Be,"snow_particles",this.particlesVx,this.particlesIdx,Fe)})(g.boxSize,0,g),this._vignette.draw(d,A)}}const cj={symbol:function(v,d,g,w,A){if(v.renderPass!=="translucent")return;const j=Xr.disabled,R=v.colorModeForRenderPass(),F=g.layout.get("text-variable-anchor"),$=g.layout.get("text-size-scale-range"),H=s.aC(v.scaleFactor,$[0],$[1]);F&&function(ee,ne,le,oe,me,pe,Ie,Ne){const ve=ne.transform,Ye=me==="map",Be=pe==="map";for(const We of ee){const Le=oe.getTile(We),Fe=Le.getBucket(le);if(!Fe||!Fe.text||!Fe.text.segments.get().length)continue;const qe=s.bj(Fe.textSizeData,ve.zoom,Ne),st=_p(We,Fe.getProjection(),ve),Qe=ve.calculatePixelsToTileUnitsMatrix(Le),yt=af(st,Le.tileID.canonical,Be,Ye,ve,Fe.getProjection(),Qe),ft=Fe.hasIconTextFit()&&Fe.hasIconData();qe&&HI(Fe,Ye,Be,Ie,ve,yt,We,Math.pow(2,ve.zoom-Le.tileID.overscaledZ),qe,ft)}}(w,v,g,d,g.layout.get("text-rotation-alignment"),g.layout.get("text-pitch-alignment"),A,H);const Y=g.paint.get("icon-opacity").constantOr(1)!==0,te=g.paint.get("text-opacity").constantOr(1)!==0;g.layout.get("symbol-sort-key").constantOr(1)!==void 0&&(Y||te)?Iv(v,d,g,w,j,R):(Y&&Iv(v,d,g,w,j,R,{onlyIcons:!0}),te&&Iv(v,d,g,w,j,R,{onlyText:!0})),d.map.showCollisionBoxes&&(yr(v,d,g,w,g.paint.get("text-translate"),g.paint.get("text-translate-anchor"),!0),yr(v,d,g,w,g.paint.get("icon-translate"),g.paint.get("icon-translate-anchor"),!1))},circle:function(v,d,g,w){if(v.renderPass!=="translucent")return;const A=g.paint.get("circle-opacity"),j=g.paint.get("circle-stroke-width"),R=g.paint.get("circle-stroke-opacity"),F=g.layout.get("circle-sort-key").constantOr(1)!==void 0,$=g.paint.get("circle-emissive-strength");if(A.constantOr(1)===0&&(j.constantOr(1)===0||R.constantOr(1)===0))return;const H=v.context,Y=H.gl,te=v.transform,ee=!(!v.terrain||!v.terrain.enabled),ne=g.layout.get("circle-elevation-reference"),le=v.depthModeForSublayer(0,Cr.ReadOnly),oe=new Cr(v.context.gl.LEQUAL,Cr.ReadOnly,v.depthRangeFor3D),me=ne==="none"||ee?le:oe,pe=Xr.disabled,Ie=v.colorModeForDrapableLayerRenderPass($),Ne=te.projection.name==="globe",ve=[s.aH(te.center.lng),s.aL(te.center.lat)],Ye=[];for(let We=0;WeWe.sortKey-Le.sortKey);const Be={useDepthForOcclusion:te.depthOcclusionForSymbolsAndCircles};for(const We of Ye){const{programConfiguration:Le,program:Fe,layoutVertexBuffer:qe,dynamicBuffers:st,indexBuffer:Qe,uniformValues:yt,tile:ft}=We.state,Nt=We.segments;v.terrain&&v.terrain.setupElevationDraw(ft,Fe,Be),v.uploadCommonUniforms(H,Fe,ft.tileID.toUnwrapped()),Fe.draw(v,Y.TRIANGLES,me,pe,Ie,Gr.disabled,yt,g.id,qe,Qe,Nt,g.paint,te.zoom,Le,st)}},heatmap:function(v,d,g,w){if(g.paint.get("heatmap-opacity")!==0)if(v.renderPass==="offscreen"){const A=v.context,j=A.gl,R=Xr.disabled,F=new Yr([j.ONE,j.ONE,j.ONE,j.ONE],s.aq.transparent,[!0,!0,!0,!0]),$=v.transform.projection.name==="globe"?.5:.25;g.heatmapFbo=Vx.createWithTexture(A,g.heatmapFbo,v.width*$,v.height*$),A.clear({color:s.aq.transparent});const H=v.transform,Y=H.projection.name==="globe",te=Y?["PROJECTION_GLOBE_VIEW"]:[],ee=Y?Gr.frontCCW:Gr.disabled,ne=[s.aH(H.center.lng),s.aL(H.center.lat)];for(let le=0;le({u_image:0,u_color_ramp:1,u_opacity:te.paint.get("heatmap-opacity")}))(0,j),j.id,A.viewportBuffer,A.quadTriangleIndexBuffer,A.viewportSegments,j.paint,A.transform.zoom)}(v,g))},line:function(v,d,g,w){const A=g.paint.get("line-opacity"),j=g.paint.get("line-width");if(A.constantOr(1)===0||j.constantOr(1)===0)return;const R=g.paint.get("line-blend-mode");if(R!=="default"&&v.transform.projection.name!=="globe")return v.terrain&&v.terrain.renderingToTexture?void function(F,$,H,Y,te){if(F.renderPass!=="translucent")return;const ee=F.context,ne=ee.gl,le=F.terrain;if(!le)return;const oe=ee.bindFramebuffer.current,me=F.emissiveMode==="mrt-fallback";H.lineBlendDrapeFbo=Vx.createWithTexture(ee,H.lineBlendDrapeFbo,le.drapeBufferSize[0],le.drapeBufferSize[1],!0),H.lineBlendDrapeStencil=H.lineBlendDrapeFbo._stencilRbo,me&&ne.drawBuffers([ne.COLOR_ATTACHMENT0]),ee.clear({color:dh[te].clearColor,depth:1,stencil:0});const pe=F.currentStencilSource,Ie=F._tileClippingMaskIDs,Ne=F.nextStencilID;F.currentStencilSource=void 0,F._tileClippingMaskIDs={},F.nextStencilID=1;const ve=F._terrain;F._terrain=null,F._renderTileClippingMasks(H,$,Y),Pv(F,$,H,Y,dh[te].colorMode,!0),F._terrain=ve,F.currentStencilSource=pe,F._tileClippingMaskIDs=Ie,F.nextStencilID=Ne,ee.bindFramebuffer.set(oe),me&&ne.drawBuffers([ne.COLOR_ATTACHMENT0,ne.COLOR_ATTACHMENT1]);const Ye=le.drapeBufferSize;ee.viewport.set([0,0,Ye[0],Ye[1]]);const Be=H.lineBlendDrapeFbo;if(!Be)return;ee.activeTexture.set(ne.TEXTURE0),ne.bindTexture(ne.TEXTURE_2D,Be.colorAttachment0.get());const We=te==="additive"?1:H.paint.get("line-opacity").constantOr(1),Le=H.paint.get("line-emissive-strength").constantOr(0),Fe=te==="additive"?F.colorModeForDrapableLayerRenderPass(Le):dh[te].colorMode;F.getOrCreateProgram("lineBlendComposite").draw(F,ne.TRIANGLES,Cr.disabled,Xr.disabled,Fe,Gr.disabled,wv(0,We,dh[te].compositeUniformValue),H.id,F.viewportBuffer,F.quadTriangleIndexBuffer,F.viewportSegments,H.paint,F.transform.zoom)}(v,d,g,w,R):v.renderPass==="offscreen"?void function(F,$,H,Y,te){const ee=F.context,ne=Math.ceil(F.width),le=Math.ceil(F.height);H.lineBlendFbo=Vx.createWithTexture(ee,H.lineBlendFbo,ne,le,!0),H.lineBlendStencil=H.lineBlendFbo._stencilRbo,ee.clear({color:dh[te].clearColor,depth:1,stencil:0});const oe=F.currentStencilSource,me=F._tileClippingMaskIDs,pe=F.nextStencilID;F.currentStencilSource=void 0,F._tileClippingMaskIDs={},F.nextStencilID=1,F._renderTileClippingMasks(H,$,Y);const Ie=F.renderPass;F.renderPass="translucent",Pv(F,$,H,Y,dh[te].colorMode),F.renderPass=Ie,F.currentStencilSource=oe,F._tileClippingMaskIDs=me,F.nextStencilID=pe,ee.viewport.set([0,0,F.width,F.height])}(v,d,g,w,R):v.renderPass==="translucent"?void function(F,$,H){const Y=F.context,te=Y.gl,ee=$.lineBlendFbo;if(!ee)return;Y.activeTexture.set(te.TEXTURE0),te.bindTexture(te.TEXTURE_2D,ee.colorAttachment0.get());const ne=H==="additive"?1:$.paint.get("line-opacity").constantOr(1),le=H==="additive"?F.colorModeForDrapableLayerRenderPass($.paint.get("line-emissive-strength").constantOr(0)):dh[H].colorMode;F.getOrCreateProgram("lineBlendComposite").draw(F,te.TRIANGLES,Cr.disabled,Xr.disabled,le,Gr.disabled,wv(0,ne,dh[H].compositeUniformValue),$.id,F.viewportBuffer,F.quadTriangleIndexBuffer,F.viewportSegments,$.paint,F.transform.zoom)}(v,g,R):void 0;v.renderPass==="translucent"&&Pv(v,d,g,w)},fill:function(v,d,g,w){const A=g.paint.get("fill-color"),j=g.paint.get("fill-opacity");if(j.constantOr(1)===0)return;const R=g.paint.get("fill-emissive-strength"),F=v.colorModeForDrapableLayerRenderPass(R),$=g.paint.get("fill-pattern"),H=v.opaquePassEnabledForLayer()&&!$.constantOr(1)&&A.constantOr(s.aq.transparent).a===1&&j.constantOr(0)===1?"opaque":"translucent";let Y="none";g.layout.get("fill-elevation-reference")!=="none"?Y="road":g.paint.get("fill-z-offset").constantOr(1)!==0&&(Y="offset");const te=!(!v.terrain||!v.terrain.enabled),ee={painter:v,sourceCache:d,layer:g,coords:w,colorMode:F,elevationType:Y,terrainEnabled:te,pass:H};if(v.renderPass==="shadow")return void(v.shadowRenderer&&Y==="road"&&!te&&function(le){const{painter:oe,sourceCache:me,layer:pe,coords:Ie}=le,Ne=oe.context.gl,ve=le.painter.shadowRenderer;for(const Ye of Ie){const Be=me.getTile(Ye),We=Be.getBucket(pe);if(!We)continue;const Le=We.elevatedStructures;if(!Le||!Le.shadowCasterSegments||Le.shadowCasterSegments.segments[0].primitiveLength===0)continue;oe.prepareDrawTile();const Fe=We.bufferData.programConfigurations.get(pe.id),qe=oe.isTileAffectedByFog(Ye),st=oe.getOrCreateProgram("elevatedStructuresDepth",{config:Fe,overrideFog:qe}),Qe=ve.calculateShadowPassMatrixFromTile(Be.tileID.toUnwrapped());oe.uploadCommonUniforms(oe.context,st,Ye.toUnwrapped());const yt=OI(Qe,0);st.draw(oe,Ne.TRIANGLES,ve.getShadowPassDepthMode(),Xr.disabled,Yr.disabled,Gr.disabled,yt,pe.id,Le.vertexBuffer,Le.indexBuffer,Le.shadowCasterSegments,pe.paint,oe.transform.zoom,Fe)}}(ee));const ne=v.emissiveMode==="mrt-fallback";if(Y!=="offset"){if(Hx(ee,!1,ne),Y==="road"){const le=!te&&v.renderPass==="translucent";le&&Gx(v,d,g,w,"geometry"),Hx(ee,!0,ne,Xr.disabled),le&&function(oe){const{painter:me,sourceCache:pe,layer:Ie,coords:Ne,colorMode:ve}=oe,Ye=me.context.gl,Be=oe.painter.shadowRenderer,We=!!Be&&Be.enabled,Le=new Cr(me.context.gl.LEQUAL,Cr.ReadOnly,me.depthRangeFor3D);let Fe=[0,0,0];if(We){const st=me.style.directionalLight,Qe=me.style.ambientLight;st&&Qe&&(Fe=Lu(me.style,st,Qe))}const qe=st=>{for(const Qe of Ne){const yt=pe.getTile(Qe),ft=yt.getBucket(Ie);if(!ft)continue;const Nt=ft.elevatedStructures;if(!Nt)continue;let Ft,ot;if(st?(Ft=Nt.renderableBridgeSegments,ot=Nt.bridgeProgramConfigurations.get(Ie.id)):(Ft=Nt.renderableTunnelSegments,ot=Nt.tunnelProgramConfigurations.get(Ie.id)),!Ft||Ft.segments[0].primitiveLength===0)continue;ot.updatePaintBuffers(),me.prepareDrawTile();const tt=me.isTileAffectedByFog(Qe),mt=[];We&&mt.push("RENDER_SHADOWS","NORMAL_OFFSET");const bt=me.getOrCreateProgram("elevatedStructures",{config:ot,overrideFog:tt,defines:mt}),Et=me.translatePosMatrix(Qe.projMatrix,yt,Ie.paint.get("fill-translate"),Ie.paint.get("fill-translate-anchor"));We&&Be.setupShadows(yt.tileID.toUnwrapped(),bt,"vector-tile");const tr=FI(Et,Fe);me.uploadCommonUniforms(me.context,bt,Qe.toUnwrapped()),bt.draw(me,Ye.TRIANGLES,Le,Xr.disabled,ve,Gr.backCCW,tr,Ie.id,Nt.vertexBuffer,Nt.indexBuffer,Ft,Ie.paint,me.transform.zoom,ot,[Nt.vertexBufferNormal])}};qe(!0),qe(!1)}(ee)}}else Hx(ee,!1,ne,v.stencilModeFor3D())},"fill-extrusion":function(v,d,g,w){const A=g.paint.get("fill-extrusion-opacity"),j=v.context,R=j.gl,F=v.terrain,$=F&&F.renderingToTexture;if(A===0)return;const H=v.emissiveMode==="mrt-fallback",Y=v.conflationActive&&v.style.isLayerClipped(g,d.getSource()),te=v.style.order.indexOf(g.fqid);if(Y&&function(ee,ne,le,oe,me){for(const pe of oe){const Ie=ne.getTile(pe).getBucket(le);Ie&&(Ie.updateReplacement(pe,ee.replacementSource,me),Ie.uploadCentroid(ee.context))}}(v,d,g,w,te),F||Y)for(const ee of w){const ne=d.getTile(ee).getBucket(g);ne&&WI(v.context,d,ee,ne,g,F,Y)}if(v.renderPass==="shadow"&&v.shadowRenderer){if(F&&A<.65&&g._transitionablePaint._values["fill-extrusion-opacity"].value.expression instanceof s.af)return;const ee=v.shadowRenderer.getShadowPassDepthMode();Pp(v,d,g,w,ee,Xr.disabled,Yr.disabled,Y)}else if(v.renderPass==="translucent"){const ee=!g.paint.get("fill-extrusion-pattern").constantOr(1),ne=g.paint.get("fill-extrusion-color").constantOr(s.aq.white);if(!$&&ne.a!==0){const le=new Cr(v.context.gl.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D);A===1&&ee?Pp(v,d,g,w,le,Xr.disabled,Yr.unblended,Y):(Pp(v,d,g,w,le,Xr.disabled,Yr.disabled,Y),Pp(v,d,g,w,le,v.stencilModeFor3D(),v.colorModeForRenderPass(),Y),v.resetStencilClippingMasks())}if(v.style.enable3dLights()&&ee&&(!F&&v.transform.projection.name!=="globe"||$)){const le=g.paint.get("fill-extrusion-opacity"),oe=g.paint.get("fill-extrusion-ambient-occlusion-intensity"),me=g.paint.get("fill-extrusion-ambient-occlusion-ground-radius"),pe=g.paint.get("fill-extrusion-flood-light-intensity"),Ie=g.paint.get("fill-extrusion-flood-light-color-use-theme").constantOr("default")==="none",Ne=g.paint.get("fill-extrusion-flood-light-color").toNonPremultipliedRenderColor(Ie?null:g.lut).toArray01().slice(0,3),ve=oe>0&&me>0,Ye=pe>0,Be=(Fe,qe,st)=>(1-st)*Fe+st*qe,We=new AT;We.translate=g.paint.get("fill-extrusion-translate"),We.translateAnchor=g.paint.get("fill-extrusion-translate-anchor"),We.edgeRadius=g.layout.get("fill-extrusion-edge-radius"),We.cutoffFadeRange=g.paint.get("fill-extrusion-cutoff-fade-range");const Le=Fe=>{const qe=v.depthModeForSublayer(1,Cr.ReadOnly,R.LEQUAL,!0),st=g.paint.get(Fe?"fill-extrusion-ambient-occlusion-ground-attenuation":"fill-extrusion-flood-light-ground-attenuation"),Qe=Be(.1,3,st),yt=v._showOverdrawInspector;if(!yt){const ft=new Xr({func:R.ALWAYS,mask:255},255,255,R.KEEP,R.KEEP,R.REPLACE),Nt=new Yr([R.ONE,R.ONE,R.ONE,R.ONE],s.aq.transparent,[!1,!1,!1,!0],R.MIN);yd(We,v,d,g,w,qe,ft,Nt,Gr.disabled,Fe,"sdf",le,oe,me,pe,Ne,Qe,Y,!1)}{const ft=yt?Xr.disabled:new Xr({func:R.EQUAL,mask:255},255,255,R.KEEP,R.DECR,R.DECR),Nt=yt?v.colorModeForRenderPass():new Yr([R.ONE_MINUS_DST_ALPHA,R.DST_ALPHA,R.ONE,R.ONE],s.aq.transparent,[!0,!0,!0,!0]);yd(We,v,d,g,w,qe,ft,Nt,Gr.disabled,Fe,"color",le,oe,me,pe,Ne,Qe,Y,!1)}};if($){const Fe=()=>{const st=F.drapeBufferSize[0],Qe=F.drapeBufferSize[1];let yt=F.framebufferCopyTexture;return yt&&(!yt||yt.size[0]===st&&yt.size[1]===Qe)||(yt&&yt.destroy(),yt=F.framebufferCopyTexture=new s.T(j,new s.q({width:st,height:Qe}),R.RGBA8)),yt.bind(R.LINEAR,R.CLAMP_TO_EDGE),R.copyTexSubImage2D(R.TEXTURE_2D,0,0,0,0,0,st,Qe),yt},qe=(st,Qe,yt)=>{const ft=v.depthModeForSublayer(1,Cr.ReadOnly,R.LEQUAL,!1),Nt=g.paint.get(st?"fill-extrusion-ambient-occlusion-ground-attenuation":"fill-extrusion-flood-light-ground-attenuation"),Ft=Be(.1,3,Nt);{const ot=new Yr([R.ONE,R.ONE,R.ONE,R.ONE],s.aq.transparent,[!1,!1,!1,!0]);yd(We,v,d,g,w,ft,Xr.disabled,ot,Gr.disabled,st,"clear",le,oe,me,pe,Ne,Ft,Y,Qe)}{const ot=new Xr({func:R.ALWAYS,mask:255},255,255,R.KEEP,R.KEEP,R.REPLACE),tt=new Yr([R.ONE,R.ONE,R.ONE,R.ONE],s.aq.transparent,[!1,!1,!1,!0],R.MIN);yd(We,v,d,g,w,ft,ot,tt,Gr.disabled,st,"sdf",le,oe,me,pe,Ne,Ft,Y,Qe)}H&&!st&&(yt=Fe());{const ot=st?R.ZERO:R.ONE_MINUS_DST_ALPHA,tt=new Xr({func:R.EQUAL,mask:255},255,255,R.KEEP,R.DECR,R.DECR),mt=new Yr([ot,R.DST_ALPHA,R.ONE_MINUS_DST_ALPHA,R.ZERO],s.aq.transparent,[!0,!0,!0,!0]);yd(We,v,d,g,w,ft,tt,mt,Gr.disabled,st,"color",le,oe,me,pe,Ne,Ft,Y,Qe)}if(!H||st){const ot=new Yr([R.ONE,R.ONE,R.ONE,st?R.ZERO:R.ONE],s.aq.transparent,[!1,!1,!1,!0],st?R.FUNC_ADD:R.MAX);yd(We,v,d,g,w,ft,Xr.disabled,ot,Gr.disabled,st,"clear",le,oe,me,pe,Ne,Ft,Y,Qe,yt)}else{R.drawBuffers([R.NONE,R.COLOR_ATTACHMENT1]);const ot=new Xr({func:R.EQUAL,mask:255},254,255,R.KEEP,R.DECR,R.DECR),tt=new Yr([R.ONE,R.ONE,R.ONE,R.ONE],s.aq.transparent,[!0,!1,!1,!1],R.MAX);yd(We,v,d,g,w,ft,ot,tt,Gr.disabled,st,"emissive",le,oe,me,pe,Ne,Ft,Y,Qe,yt),R.drawBuffers([R.COLOR_ATTACHMENT0])}};if(ve||Ye){let st;v.prepareDrawTile(),H&&!ve||(st=Fe()),ve&&qe(!0,!1,st),Ye&&qe(!1,!0,st)}}else ve&&Le(!0),Ye&&Le(!1),(ve||Ye)&&v.resetStencilClippingMasks()}}},building:function(v,d,g,w){v.currentLayer0&&j>0,H=!0;const Y=g.paint.get("building-vertical-scale");if(Y<=0)return;v.shadowRenderer||(H=!1);const te=v.conflationActive&&v.style.isLayerClipped(g,d.getSource()),ee=v.style.order.indexOf(g.fqid);if(function(ne,le,oe,me,pe,Ie){for(const Ne of Ie){const ve=le.getTile(Ne).getBucket(oe);ve&&(pe&&ve.updateReplacement(Ne,ne.replacementSource,me),ve.uploadUpdatedIndexBuffer(ne.context))}}(v,d,g,ee,te,w),function(ne,le,oe,me){for(const pe of me){const Ie=le.getTile(pe).getBucket(oe);Ie&&Ie.needsEvaluation()&&Ie.uploadUpdatedColorBuffer(ne.context)}}(v,d,g,w),g.resetLayerRenderingStats(v),v.shadowRenderer&&(v.shadowRenderer.useNormalOffset=!0),v.renderPass==="shadow"&&v.shadowRenderer){const ne=[],le=v.shadowRenderer.getShadowPassDepthMode();Wx({painter:v,source:d,layer:g,coords:w,defines:ne,blendMode:Yr.disabled,depthMode:le,opacity:F,verticalScale:Y,facadeEmissiveChance:0,facadeAOIntensity:0,floodLightIntensity:0,floodLightColor:[0,0,0]})}else if(v.renderPass==="translucent"){let ne=["HAS_ATTRIBUTE_a_part_color_emissive","LIGHTING_3D_MODE"];H&&(ne=ne.concat("RENDER_SHADOWS")),v.shadowRenderer&&v.shadowRenderer.useNormalOffset&&(ne=ne.concat("NORMAL_OFFSET"));const le=g.paint.get("building-facade-emissive-chance"),oe=g.paint.get("building-ambient-occlusion-intensity"),me=g.paint.get("building-flood-light-intensity"),pe=g.paint.get("building-flood-light-color-use-theme").constantOr("default")==="none",Ie=g.paint.get("building-flood-light-color").toNonPremultipliedRenderColor(pe?null:g.lut).toArray01().slice(0,3),Ne=g.paint.get("building-flood-light-ground-attenuation"),ve=me>0,Ye=new Cr(v.context.gl.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D);F<1&&Wx({painter:v,source:d,layer:g,coords:w,defines:ne,blendMode:Yr.disabled,depthMode:Ye,opacity:F,verticalScale:Y,facadeEmissiveChance:le,facadeAOIntensity:oe,floodLightIntensity:me,floodLightColor:Ie,depthOnly:!0});const Be=v.colorModeForRenderPass();Wx({painter:v,source:d,layer:g,coords:w,defines:ne,blendMode:Be,depthMode:Ye,opacity:F,verticalScale:Y,facadeEmissiveChance:le,facadeAOIntensity:oe,floodLightIntensity:me,floodLightColor:Ie});const We=g.paint.get("building-front-cutoff");Nv(v.transform.pitch,We,!!v.terrain),$&&CT(v,d,g,w,!0,F,A,j,me,Ie,R,te),ve&&CT(v,d,g,w,!1,F,A,j,me,Ie,Ne,te)}else if(v.renderPass==="light-beam"){const ne=["HAS_ATTRIBUTE_a_part_color_emissive","HAS_ATTRIBUTE_a_bloom_attenuation"],le=new Cr(v.context.gl.LEQUAL,Cr.ReadOnly,v.depthRangeFor3D);Wx({painter:v,source:d,layer:g,coords:w,defines:ne,blendMode:Yr.alphaBlended,depthMode:le,opacity:F,verticalScale:Y,facadeEmissiveChance:0,facadeAOIntensity:0,floodLightIntensity:0,floodLightColor:[0,0,0]})}v.shadowRenderer&&(v.shadowRenderer.useNormalOffset=!1),v.resetStencilClippingMasks()},hillshade:function(v,d,g,w){if(v.renderPass!=="offscreen"&&v.renderPass!=="translucent"||v.style.disableElevatedTerrain)return;const A=v.context,j=v.terrain&&v.terrain.renderingToTexture,[R,F]=v.renderPass!=="translucent"||j?[{},w]:v.stencilConfigForOverlap(w);for(const $ of F){const H=d.getTile($);if(H.needsHillshadePrepare&&v.renderPass==="offscreen")y3(v,H,g);else if(v.renderPass==="translucent"){const Y=v.depthModeForSublayer(0,Cr.ReadOnly),te=g.paint.get("hillshade-emissive-strength"),ee=v.colorModeForDrapableLayerRenderPass(te),ne=j&&v.terrain?v.terrain.stencilModeForRTTOverlap($):R[$.overscaledZ];g3(v,$,H,g,Y,ne,ee)}}A.viewport.set([0,0,v.width,v.height]),v.resetStencilClippingMasks()},raster:function(v,d,g,w,A,j){if(v.renderPass!=="translucent")return;const R=g.paint.get("raster-opacity");if(R===0)return;const F=v.transform.projection.name==="globe",$=g.paint.get("raster-elevation")!==0,H=$&&F,Y=v.terrain&&v.terrain.exaggeration()>0&&$&&g.paint.get("raster-elevation-reference")==="ground",te=!F&&Y;if(v.renderElevatedRasterBackface&&!H)return;const ee=v.context,ne=ee.gl,le=d.getSource(),oe=function(Fe,qe,st,Qe,yt){const ft=qe.paint.get("raster-color"),Nt=Fe.type==="raster-array",Ft=[],ot=qe.paint.get("raster-resampling"),tt=qe.paint.get("raster-color-mix");let mt=qe.paint.get("raster-color-range");const bt=[tt[0],tt[1],tt[2],0],Et=tt[3];let tr=ot==="nearest"?Qe.NEAREST:Qe.LINEAR;if(Nt&&(Ft.push("RASTER_ARRAY"),ft||Ft.push("RASTER_COLOR"),ot==="linear"&&Ft.push("RASTER_ARRAY_LINEAR"),tr=Qe.NEAREST,!mt&&Fe.rasterLayers)){const Vt=Fe.rasterLayers.find(({id:qt})=>qt===qe.sourceLayer);Vt&&Vt.fields&&Vt.fields.range&&(mt=Vt.fields.range)}if(mt=mt||[0,1],ft){Ft.push("RASTER_COLOR"),st.activeTexture.set(Qe.TEXTURE2),qe.updateColorRamp(mt);let Vt=qe.colorRampTexture;Vt||(Vt=qe.colorRampTexture=new s.T(st,qe.colorRamp,Qe.RGBA8)),Vt.bind(tr,Qe.CLAMP_TO_EDGE)}return yt&&Ft.push("USE_MRT1"),{mix:bt,range:mt,offset:Et,defines:Ft,resampling:tr}}(le,g,ee,ne,v.terrain&&v.terrain.renderingToTexture&&v.emissiveMode==="mrt-fallback");if(le instanceof s.aV&&!w.length&&!F)return;const me=g.paint.get("raster-emissive-strength"),pe=v.colorModeForDrapableLayerRenderPass(me),Ie=v.terrain&&v.terrain.renderingToTexture,Ne=!v.options.moving,ve=g.paint.get("raster-resampling")==="nearest"?ne.NEAREST:ne.LINEAR;if(le instanceof s.aV&&!w.length&&(le.onNorthPole||le.onSouthPole)){const Fe=$?v.stencilModeFor3D():Xr.disabled;return void Lv(!!le.onNorthPole,null,v,d,g,me,oe,Gr.disabled,Fe)}if(!w.length)return;const[Ye,Be]=le instanceof s.aV||Ie?[{},w]:v.stencilConfigForOverlap(w),We=Be[Be.length-1].overscaledZ;H&&oe.defines.push("PROJECTION_GLOBE_VIEW"),$&&oe.defines.push("RENDER_CUTOFF","ELEVATED"),Y&&oe.defines.push("ELEVATION_REFERENCE_GROUND");const Le=(Fe,qe,st)=>{for(const Qe of Fe){const yt=Qe.toUnwrapped(),ft=d.getTile(Qe);if(Ie&&(!ft||!ft.hasData()))continue;ee.activeTexture.set(ne.TEXTURE0);const Nt=ZI(ft,le,g,oe);if(!Nt||!Nt.texture)continue;const{texture:Ft,mix:ot,offset:tt,tileSize:mt,buffer:bt}=Nt;let Et,tr;Ie?(Et=Cr.disabled,tr=Qe.projMatrix):$?(Et=new Cr(ne.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D),tr=F?Float32Array.from(v.transform.expandedFarZProjMatrix):v.transform.calculateProjMatrix(yt,Ne)):(Et=v.depthModeForSublayer(Qe.overscaledZ-We,R===1?Cr.ReadWrite:Cr.ReadOnly,ne.LESS),tr=v.transform.calculateProjMatrix(yt,Ne));const Vt=v.terrain&&Ie?v.terrain.stencilModeForRTTOverlap(Qe):Ye[Qe.overscaledZ],qt=j?0:g.paint.get("raster-fade-duration");ft.registerFadeDuration(qt);const Mt=d.findLoadedParent(Qe,0),Tr=Fx(ft,Mt,d,v.transform,qt);let Dr,pr;!Tr.isFading&&ft.refreshedUponExpiration&&(ft.refreshedUponExpiration=!1),v.terrain&&v.terrain.prepareDrawTile(),ee.activeTexture.set(ne.TEXTURE0),Ft.bind(ve,ne.CLAMP_TO_EDGE),ee.activeTexture.set(ne.TEXTURE1),Mt?(Mt.texture&&Mt.texture.bind(ve,ne.CLAMP_TO_EDGE),Dr=Math.pow(2,Mt.tileID.overscaledZ-ft.tileID.overscaledZ),pr=[ft.tileID.canonical.x*Dr%1,ft.tileID.canonical.y*Dr%1]):Ft.bind(ve,ne.CLAMP_TO_EDGE),"useMipmap"in Ft&&ee.extTextureFilterAnisotropic&&v.transform.pitch>20&&ne.texParameterf(ne.TEXTURE_2D,ee.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,ee.extTextureFilterAnisotropicMax);const wr=v.transform;let Wr;const nn=$?jT(wr):[0,0,0,0];let Jr,mn,Ur,gn,en,Bn=0;if(H&&le instanceof s.aV&&le.coordinates.length>3)Jr=Float32Array.from(s.du(s.dv(new s.cn(0,0,0)))),mn=Float32Array.from(wr.globeMatrix),Ur=Float32Array.from(s.dq(wr)),gn=[s.aH(wr.center.lng),s.aL(wr.center.lat)],Wr=le.elevatedGlobePerspectiveTransform,en=le.elevatedGlobeGridMatrix||new Float32Array(9);else if(H){const Xn=s.dr(Qe.canonical);Bn=s.ds(Xn.getCenter().lat),Jr=Float32Array.from(s.du(s.dv(Qe.canonical))),mn=Float32Array.from(wr.globeMatrix),Ur=Float32Array.from(s.dq(wr)),gn=[s.aH(wr.center.lng),s.aL(wr.center.lat)],Wr=[0,0],en=Float32Array.from(s.dt(Qe.canonical,Xn,Bn,wr.worldSize/wr._pixelsPerMercatorPixel))}else Wr=le instanceof s.aV?le.perspectiveTransform:[0,0],Jr=new Float32Array(16),mn=new Float32Array(9),Ur=new Float32Array(16),gn=[0,0],en=new Float32Array(9);const mi=$I(v,tr,Jr,mn,Ur,en,pr||[0,0],s.al(v.transform.zoom),gn,nn,Dr||1,Tr,g,Wr,$?g.paint.get("raster-elevation"):0,2,ot,tt,oe.range,mt,bt,me),Yi=v.isTileAffectedByFog(Qe),Ti=v.getOrCreateProgram("raster",{defines:oe.defines,overrideFog:Yi});if(v.uploadCommonUniforms(ee,Ti,yt),le instanceof s.aV){const Xn=le.elevatedGlobeVertexBuffer,hn=le.elevatedGlobeIndexBuffer;if(Ie||!F)le.boundsBuffer&&le.boundsSegments&&Ti.draw(v,ne.TRIANGLES,Et,Xr.disabled,pe,Gr.disabled,mi,g.id,le.boundsBuffer,v.quadTriangleIndexBuffer,le.boundsSegments);else if(Xn&&hn){const fn=wr.zoom<=s.cJ?le.elevatedGlobeSegments:le.getSegmentsForLongitude(wr.center.lng);fn&&Ti.draw(v,ne.TRIANGLES,Et,Xr.disabled,pe,qe,mi,g.id,Xn,hn,fn)}}else if(H){Et=new Cr(ne.LEQUAL,Cr.ReadOnly,v.depthRangeFor3D);const Xn=v.globeSharedBuffers;if(Xn){Y&&(v.terrain.setupElevationDraw(ft,Ti),v.uploadCommonUniforms(ee,Ti,ft.tileID.toUnwrapped()));const[hn,fn,Ei]=Xn.getGridBuffers(Bn,!1),ss=Ti.getAttributeLocation(ne,"a_texture_pos");ss!==-1&&ne.vertexAttribI4ui(ss,0,0,0,0),Ti.draw(v,ne.TRIANGLES,Et,st||Vt,v.colorModeForRenderPass(),qe,mi,g.id,hn,fn,Ei)}}else if(te)Et=new Cr(ne.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D),v.terrain.setupElevationDraw(ft,Ti),v.uploadCommonUniforms(ee,Ti,ft.tileID.toUnwrapped()),wr.pitch>20&&Ti.draw(v,ne.TRIANGLES,Et,Xr.disabled,Yr.disabled,Gr.frontCCW,mi,g.id,v.terrain.gridBuffer,v.terrain.gridIndexBuffer,v.terrain.gridSegments),Ti.draw(v,ne.TRIANGLES,Et,Vt,pe,Gr.backCCW,mi,g.id,v.terrain.gridBuffer,v.terrain.gridIndexBuffer,v.terrain.gridSegments);else{const{tileBoundsBuffer:Xn,tileBoundsIndexBuffer:hn,tileBoundsSegments:fn}=v.getTileBoundsBuffers(ft);Ti.draw(v,ne.TRIANGLES,Et,Vt,pe,Gr.disabled,mi,g.id,Xn,hn,fn)}}if(!(le instanceof s.aV)&&H)for(const Qe of Fe){const yt=Qe.canonical.y===(1<s.d$[bt](yt));ot.push(yt);const tt=yt.canonical.x,mt=yt.canonical.y;for(const bt of ot){const Et=ve.getTile(qe?bt.wrapped():bt);if(!Et)continue;const tr=Et.rasterParticleState;if(!tr)continue;const Vt=bt.canonical.x+(1<We.tileID)),ne&&(H.activeTexture.set(Y.TEXTURE0),v.imageManager.bind(v.context,g.scope));const Be=[];if(v.terrain&&v.terrain.renderingToTexture&&v.emissiveMode==="mrt-fallback"&&Be.push("USE_MRT1"),$){const We=v.getOrCreateProgram(Ne,{overrideFog:!1,overrideRtt:!0,defines:Be}),Le=new Float32Array(s.b9([])),Fe=new s.aR(0,0,0,0,0),qe=ne?pf(Le,F,R,v,0,g.scope,le,$,{tileID:Fe,tileSize:ee}):Ux(Le,F,R,A.toPremultipliedRenderColor(j?null:g.lut));return void We.draw(v,Y.TRIANGLES,pe,me,Ie,Gr.disabled,qe,g.id,v.viewportBuffer,v.quadTriangleIndexBuffer,v.viewportSegments)}for(const We of Ye){const Le=v.isTileAffectedByFog(We),Fe=v.getOrCreateProgram(Ne,{overrideFog:Le,defines:Be}),qe=We.toUnwrapped(),st=w?We.projMatrix:v.transform.calculateProjMatrix(qe);v.prepareDrawTile();const Qe=d?d.getTile(We):ve?ve[We.key]:new s.b0(We,ee,te.zoom,v),yt=ne?pf(st,F,R,v,0,g.scope,le,$,{tileID:We,tileSize:ee}):Ux(st,F,R,A.toPremultipliedRenderColor(j?null:g.lut));v.uploadCommonUniforms(H,Fe,qe);const{tileBoundsBuffer:ft,tileBoundsIndexBuffer:Nt,tileBoundsSegments:Ft}=v.getTileBoundsBuffers(Qe);Fe.draw(v,Y.TRIANGLES,pe,me,Ie,Gr.disabled,yt,g.id,ft,Nt,Ft)}},sky:function(v,d,g){const w=v._atmosphere?s.al(v.transform.zoom):1,A=g.paint.get("sky-opacity")*w;if(A===0)return;const j=v.context,R=g.paint.get("sky-type"),F=new Cr(j.gl.LEQUAL,Cr.ReadOnly,[0,1]),$=v.frameCounter/1e3%1;R==="atmosphere"?v.renderPass==="offscreen"?g.needsSkyboxCapture(v)&&(function(H,Y){const te=H.context,ee=te.gl;let ne=Y.skyboxFbo;if(!ne){ne=Y.skyboxFbo=te.createFramebuffer(32,32,1,null),Y.skyboxGeometry=new Ko(te),Y.skyboxTexture=te.gl.createTexture(),ee.bindTexture(ee.TEXTURE_CUBE_MAP,Y.skyboxTexture),ee.texParameteri(ee.TEXTURE_CUBE_MAP,ee.TEXTURE_WRAP_S,ee.CLAMP_TO_EDGE),ee.texParameteri(ee.TEXTURE_CUBE_MAP,ee.TEXTURE_WRAP_T,ee.CLAMP_TO_EDGE),ee.texParameteri(ee.TEXTURE_CUBE_MAP,ee.TEXTURE_MIN_FILTER,ee.LINEAR),ee.texParameteri(ee.TEXTURE_CUBE_MAP,ee.TEXTURE_MAG_FILTER,ee.LINEAR);for(let pe=0;pe<6;++pe)ee.texImage2D(ee.TEXTURE_CUBE_MAP_POSITIVE_X+pe,0,ee.RGBA,32,32,0,ee.RGBA,ee.UNSIGNED_BYTE,null)}te.bindFramebuffer.set(ne.framebuffer),te.viewport.set([0,0,32,32]);const le=Y.getCenter(H,!0),oe=H.getOrCreateProgram("skyboxCapture"),me=new Float64Array(16);s.b9(me),s.ef(me,me,.5*-Math.PI),bc(H,Y,oe,me,le,0),s.b9(me),s.ef(me,me,.5*Math.PI),bc(H,Y,oe,me,le,1),s.b9(me),s.cE(me,me,.5*-Math.PI),bc(H,Y,oe,me,le,2),s.b9(me),s.cE(me,me,.5*Math.PI),bc(H,Y,oe,me,le,3),s.b9(me),bc(H,Y,oe,me,le,4),s.b9(me),s.ef(me,me,Math.PI),bc(H,Y,oe,me,le,5),te.viewport.set([0,0,H.width,H.height])}(v,g),g.markSkyboxValid(v)):v.renderPass==="sky"&&function(H,Y,te,ee,ne){const le=H.context,oe=le.gl,me=H.transform,pe=H.getOrCreateProgram("skybox");le.activeTexture.set(oe.TEXTURE0),oe.bindTexture(oe.TEXTURE_CUBE_MAP,Y.skyboxTexture);const Ie=((Ne,ve,Ye,Be,We)=>({u_matrix:Ne,u_sun_direction:ve,u_cubemap:0,u_opacity:Be,u_temporal_offset:We}))(me.skyboxMatrix,Y.getCenter(H,!1),0,ee,ne);H.uploadCommonUniforms(le,pe),pe.draw(H,oe.TRIANGLES,te,Xr.disabled,H.colorModeForRenderPass(),Gr.backCW,Ie,"skybox",Y.skyboxGeometry.vertexBuffer,Y.skyboxGeometry.indexBuffer,Y.skyboxGeometry.segment)}(v,g,F,A,$):R==="gradient"&&v.renderPass==="sky"&&function(H,Y,te,ee,ne){const le=H.context,oe=le.gl,me=H.transform,pe=H.getOrCreateProgram("skyboxGradient");Y.skyboxGeometry||(Y.skyboxGeometry=new Ko(le)),le.activeTexture.set(oe.TEXTURE0);let Ie=Y.colorRampTexture;Ie||(Ie=Y.colorRampTexture=new s.T(le,Y.colorRamp,oe.RGBA8)),Ie.bind(oe.LINEAR,oe.CLAMP_TO_EDGE);const Ne=((ve,Ye,Be,We,Le)=>({u_matrix:ve,u_color_ramp:0,u_center_direction:Ye,u_radius:s.ap(Be),u_opacity:We,u_temporal_offset:Le}))(me.skyboxMatrix,Y.getCenter(H,!1),Y.paint.get("sky-gradient-radius"),ee,ne);H.uploadCommonUniforms(le,pe),pe.draw(H,oe.TRIANGLES,te,Xr.disabled,H.colorModeForRenderPass(),Gr.backCW,Ne,"skyboxGradient",Y.skyboxGeometry.vertexBuffer,Y.skyboxGeometry.indexBuffer,Y.skyboxGeometry.segment)}(v,g,F,A,$)},custom:function(v,d,g,w){const A=v.context,j=g.implementation;if(!v.transform.projection.unsupportedLayers||!v.transform.projection.unsupportedLayers.includes("custom")||v.terrain&&(v.terrain.renderingToTexture||v.renderPass==="offscreen")&&g.isDraped(d)){if(v.renderPass==="offscreen"){const R=j.prerender;if(R){if(v.setCustomLayerDefaults(),A.setColorMode(v.colorModeForRenderPass()),v.transform.projection.name==="globe"){const F=v.transform.pointMerc;R.call(j,A.gl,v.transform.customLayerMatrix(),v.transform.getProjection(),v.transform.globeToMercatorMatrix(),s.al(v.transform.zoom),[F.x,F.y],v.transform.pixelsPerMeterRatio)}else R.call(j,A.gl,v.transform.customLayerMatrix());A.setDirty(),v.setBaseState()}}else if(v.renderPass==="translucent"){if(v.terrain&&v.terrain.renderingToTexture){const F=j.renderToTile;if(F){const $=w[0].canonical,H={x:$.x+w[0].wrap*(j.wrapTileId?0:1<<$.z),y:$.y,z:$.z};A.setDepthMode(Cr.disabled),A.setStencilMode(Xr.disabled),A.setColorMode(v.colorModeForRenderPass()),v.setCustomLayerDefaults(),F.call(j,A.gl,H),A.setDirty(),v.setBaseState()}return}v.setCustomLayerDefaults(),A.setColorMode(v.colorModeForRenderPass()),A.setStencilMode(Xr.disabled);const R=j.renderingMode==="3d"?new Cr(v.context.gl.LEQUAL,Cr.ReadWrite,v.depthRangeFor3D):v.depthModeForSublayer(0,Cr.ReadOnly);if(A.setDepthMode(R),v.transform.projection.name==="globe"){const F=v.transform.pointMerc;j.render(A.gl,v.transform.customLayerMatrix(),v.transform.getProjection(),v.transform.globeToMercatorMatrix(),s.al(v.transform.zoom),[F.x,F.y],v.transform.pixelsPerMeterRatio)}else j.render(A.gl,v.transform.customLayerMatrix());A.setDirty(),v.setBaseState(),A.bindFramebuffer.set(null)}}else s.w("Custom layers are not yet supported with this projection. Use mercator or globe to enable usage of custom layers.")},model:function(v,d,g,w){if(v.renderPass==="opaque")return;const A=g.paint.get("model-opacity").constantOr(1),j=g.paint.get("model-elevation-reference"),R=j==="ground",F=j==="ground";if(A===0)return;const $=g.paint.get("model-cast-shadows");if(v.renderPass==="shadow"&&(!$||v.terrain&&A<.65&&g._transitionablePaint._values["model-opacity"].value.expression instanceof s.af))return;const H=v.shadowRenderer,Y=g.paint.get("model-receive-shadows");H&&(H.useNormalOffset=!0,Y||(H.enabled=!1));const te=()=>{H&&(H.useNormalOffset=!0,Y||(H.enabled=!0))},ee=d.getSource();if(v.renderPass==="light-beam"&&ee.type!=="batched-model")return;if(ee.type==="vector"||ee.type==="geojson")return function(ve,Ye,Be,We,Le){const Fe=ve.transform,qe=Fe.projection.name==="globe",st=Fe.getFreeCameraOptions().position;if(!ve.modelManager)return;const Qe=ve.modelManager;Be.modelManager=Qe;const yt=ve.shadowRenderer;if(!Be._unevaluatedLayout._values.hasOwnProperty("model-id"))return;const ft=Be._unevaluatedLayout._values["model-id"],Nt=Object.assign({},Be.layout.get("model-id").parameters),Ft=ve.style.order.indexOf(Be.fqid),ot=Be.paint.get("model-opacity").constantOr(1);for(const tt of We){const mt=Ye.getTile(tt).getBucket(Be);if(!mt||mt.projection.name!==Fe.projection.name)continue;const bt=mt.getModelUris();if(bt&&!mt.modelsRequested&&(Qe.addModelsFromBucket(bt,Le),mt.modelsRequested=!0),qe)Nt.zoom=tt.overscaledZ;else{const pr=gg(tt,Fe);Nt.zoom=pr}const Et=ft.possiblyEvaluate(Nt);if(Yt(ve,mt,tt),Ut.shadowUniformsInitialized=!1,Ut.useSingleShadowCascade=!!yt&&yt.getMaxCascadeForTile(tt.toUnwrapped())===0,ve.renderPass==="shadow"&&yt){if(ve.currentShadowCascade===1&&mt.isInsideFirstShadowMapFrustum)continue;const pr=Fe.calculatePosMatrix(tt.toUnwrapped(),Fe.worldSize);if(Ut.tileMatrix.set(pr),Ut.shadowTileMatrix=Float32Array.from(yt.calculateShadowPassMatrixFromMatrix(pr)),Ut.aabb.min=[0,0,0],Ut.aabb.max[0]=Ut.aabb.max[1]=s.an,Ut.aabb.max[2]=0,nj(mt,Ut,ve,Be.scope))continue}const tr=1<0&&ve.style.isLayerClipped(Be,Ye.getSource())&&mt.updateReplacement(tt,ve.replacementSource,Ft,Be.scope)&&(mt.uploaded=!1,mt.upload(ve.context));let qt=0;const Mt=new Array,Tr=new Array,Dr=new Array;for(let pr in mt.instancesPerModel){const wr=mt.instancesPerModel[pr];wr.features.length>0&&!qe&&(pr=Et.evaluate(wr.features[0].feature,{}));const Wr=Qe.getModel(pr,Le);if(Wr||Qe.hasURLBeenRequested(pr)||mt.modelUris.includes(pr)||(mt.modelUris.push(pr),mt.modelsRequested=!1),Wr&&Wr.uploaded)if(qe){const nn=s.bJ([],[st.x,st.y,st.z],ve.transform.worldSize);s.eo(nn,nn);for(let Jr=0;Jr0&&gn.elevationUpdate(pr.terrain,Jr,Ur,Wr.source),gn.needsReEvaluation(pr,mn,Wr)&&gn.evaluate(Wr))}})(ve,Ye,Be,We),function(){const pr=new Map;let wr,Wr,nn;Mt?(wr=We.length-1,Wr=-1,nn=-1):(wr=0,Wr=We.length,nn=1);const Jr=new Float64Array(16),mn=s.ce(),Ur=new s.P(0,0);for(let gn=wr;gn!==Wr;gn+=nn){const en=We[gn],Bn=Ye.getTile(en).getBucket(Be);if(!Bn||!Bn.uploaded)continue;let mi=!1;st&&(mi=st.getMaxCascadeForTile(en.toUnwrapped())===0);const Yi=Fe.calculatePosMatrix(en.toUnwrapped(),Fe.worldSize),Ti=Bn.modelTraits;!tr&&Mt&&(s.b7(Jr,Yi),s.ah(mn,yt,Jr),Ur.x=mn[0],Ur.y=mn[1]);const Xn=[];Bn.setFilter(Be.filter);for(const hn of Bn.getNodesInfo()){if(hn.hiddenByReplacement||!hn.node.meshes)continue;const fn=hn.node;let Ei=0;ve.terrain&&fn.elevation&&(Ei=fn.elevation*ve.terrain.exaggeration());const ss=(()=>{const Va=hn.aabb;return Et.min=[...Va.min],Et.max=[...Va.max],Et.min[2]+=Ei,Et.max[2]+=Ei,s.ah(Et.min,Et.min,Yi),s.ah(Et.max,Et.max,Yi),Et})(),Qn=hn.evaluatedScale;if(Qn[0]<=1&&Qn[1]<=1&&Qn[2]<=1&&ss.intersects(Vt)===0)continue;if(!tr&&Mt){const Va=.16666666666666666;hn.cameraCollisionOpacity=yt[0]>ss.min[0]&&yt[0]ss.min[1]&&yt[1]!Mt||hn.opacity===1&&fn.opacity===1?hn.depthfn.depth?-1:1);for(const hn of Xn){const fn=hn.nodeInfo,Ei=fn.node;if(ve._debugParams.show3DModelFootprints&&Ei.footprint){const An=Ei.id||Ei.name||"footprint";pr.has(An)||pr.set(An,{node:Ei,mvp:hn.wvpForTile})}let ss=s.aD([],ot,hn.tileModelMatrix);s.aD(ss,Nt,ss);const Qn=s.b7([],ss);s.e6(Qn,Qn),s.cC(Qn,Qn,nt),ss=s.aD(ss,ss,Ei.globalMatrix);const an=ve.renderPass==="light-beam",Wi=Be.paint.get("model-color-use-theme").constantOr("default")==="none",gi=Ti&s.ez.HasMapboxMeshFeatures,Os=gi?0:fn.evaluatedRMEA[0][2];for(let An=0;An=In||ac>=In}}const ii=bi.material;let Tc;ii.occlusionTexture&&ii.occlusionTexture.offsetScale&&(Tc=ii.occlusionTexture.offsetScale,ca.defines.push("OCCLUSION_TEXTURE_TRANSFORM"));const Ec=ve.getOrCreateProgram("model",ca);!tr&&st&&st.setupShadowsFromMatrix(hn.tileModelMatrix,Ec,st.useNormalOffset),ve.uploadCommonUniforms(Le,Ec,null,sc);const Pi=ii.pbrMetallicRoughness;Pi.metallicFactor=.9,Pi.roughnessFactor=.5;const Fi=Ip(new Float32Array(_o),new Float32Array(ss),new Float32Array(Qn),new Float32Array(Ei.globalMatrix),ve,hn.opacity,Pi.baseColorFactor,ii.emissiveFactor,Pi.metallicFactor,Pi.roughnessFactor,ii,Os,Be,[0,0,0],Tc);!Js&&(fn.hasTranslucentParts||hn.opacity<1)&&Ec.draw(ve,Le.gl.TRIANGLES,mt,Xr.disabled,Yr.disabled,Gr.backCCW,Fi,Be.id,bi.vertexBuffer,bi.indexBuffer,bi.segments,Be.paint,ve.transform.zoom,void 0,Va),Ec.draw(ve,Le.gl.TRIANGLES,Js?bt:mt,Xr.disabled,Js||hn.opacity<1||fn.hasTranslucentParts?Yr.alphaBlended:Yr.unblended,Gr.backCCW,Fi,Be.id,bi.vertexBuffer,bi.indexBuffer,bi.segments,Be.paint,ve.transform.zoom,void 0,Va)}}}if(ve._debugParams.show3DModelFootprints&&pr.size>0){const gn=Array.from(pr.keys()).sort();for(const en of gn){const{node:Bn,mvp:mi}=pr.get(en);zT(ve,0,Bn,mi)}}}()}(v,d,g,w),void te();if(ee.type!=="model")return;const ne=ee.getModels(),le=[],oe=v.transform.getFreeCameraOptions().position,me=s.bJ([],[oe.x,oe.y,oe.z],v.transform.worldSize);s.eo(me,me);const pe=[],Ie=[];let Ne=0;for(const ve of ne){const Ye=d.getFeatureState("",ve.id),Be={type:"Unknown",id:ve.id,properties:ve.featureProperties},We=g.paint.get("model-rotation").evaluate(Be,Ye),Le=g.paint.get("model-scale").evaluate(Be,Ye),Fe=g.paint.get("model-translation").evaluate(Be,Ye),qe=g.paint.get("model-opacity").evaluate(Be,Ye);$T(g,ve.id,Ye,ve.featureProperties,ve.nodeOverrideNames,ve.nodeOverrides),Rp(g,ve.id,Ye,ve.featureProperties,ve.materialOverrideNames,ve.materialOverrides),ve.nodeOverrides.size>0&&ve.computeBoundsAndApplyParent(),ve.computeModelMatrix(v,We,Le,Fe,F,R,!1);const st=s.b9([]),Qe=s.e2(ve.position.lat,v.transform.zoom),yt=s.bP([],[1,1,1/Qe]);s.bx(st,st,me),le.push({zScaleMatrix:yt,negCameraPosMatrix:st});for(const ft of ve.nodes)Ov(v,ft,ve.matrix,v.transform.expandedFarZProjMatrix,Ne,pe,Ie,ve.materialOverrides,qe);Ne++}if(pe.sort((ve,Ye)=>Ye.depth-ve.depth),v.renderPass!=="shadow"){if(v._debugParams.show3DModelFootprints){const ve=v.transform.projMatrix,Ye=new Map,Be=(Le,Fe)=>{if(Le.footprint){const qe=Le.id||Le.name||"footprint";if(!Ye.has(qe)){const st=s.aD([],ve,Fe);Ye.set(qe,{node:Le,mvp:st})}}};for(const Le of Ie)Be(Le.node,Le.modelMatrix);for(const Le of pe)Be(Le.node,Le.modelMatrix);const We=Array.from(Ye.keys()).sort();for(const Le of We){const{node:Fe,mvp:qe}=Ye.get(Le);zT(v,0,Fe,qe)}}fh(v,g,pe,Ie,le),te()}else{for(const ve of Ie)mg(ve.mesh,ve.nodeModelMatrix,v,g);for(const ve of pe)mg(ve.mesh,ve.nodeModelMatrix,v,g);te()}}},qT={line:function(v,d,g){if(v.hasElevatedBuckets=!1,v.hasNonElevatedBuckets=!1,v._unevaluatedLayout.getValue("line-elevation-reference")!==void 0||v._unevaluatedLayout.getValue("line-z-offset")!==void 0){if(d){const w=d.getVisibleCoordinates();for(const A of w){const j=d.getTile(A).getBucket(v);if(j&&(j.elevationType!=="none"?v.hasElevatedBuckets=!0:v.hasNonElevatedBuckets=!0,v.hasElevatedBuckets&&v.hasNonElevatedBuckets))break}}}else v.hasNonElevatedBuckets=!0},model:function(v,d,g){const w=d.getSource();if(!w.loaded())return;if(w.type==="vector"||w.type==="geojson")return void(g.modelManager&&g.modelManager.upload(g,Mv(g,v)));if(w.type==="batched-model"||w.type!=="model")return;const A=w.getModels();for(const j of A)j.upload(g.context)},raster:function(v,d,g){const w=d.getSource();if(!(w instanceof yp&&w.loaded()))return;const A=v.sourceLayer||w.rasterLayerIds&&w.rasterLayerIds[0];if(!A)return;const j=v.paint.get("raster-array-band")||w.getInitialBand(A);if(j==null)return;const R=d.getIds().map(F=>d.getTileByID(F));for(const F of R)F.updateNeeded(v.id,j)&&w.prepareTile(F,A,v.id,j)},"raster-particle":function(v,d,g){const w=d.getSource();if(!(w instanceof yp&&w.loaded()))return;const A=v.sourceLayer||w.rasterLayerIds&&w.rasterLayerIds[0];if(!A)return;const j=v.paint.get("raster-particle-array-band")||w.getInitialBand(A);if(j==null)return;const R=d.getIds().map(F=>d.getTileByID(F));for(const F of R)F.updateNeeded(v.id,j)&&w.prepareTile(F,A,v.id,j)}},GT={fill:Gx},HT={fill:function(v,d,g,w){if(!g.layout||g.layout.get("fill-elevation-reference")==="none"||g.paint.get("fill-opacity").constantOr(1)===0)return;const A=v.context.gl,j=new Cr(A.LEQUAL,Cr.ReadOnly,v.depthRangeFor3D),R=new Xr({func:A.ALWAYS,mask:255},255,255,A.KEEP,A.KEEP,A.REPLACE),F=v.transform.getFreeCameraOptions().position,$=v.getOrCreateProgram("elevatedStructuresDepthReconstruct");for(const H of w){const Y=d.getTile(H),te=Y.getBucket(g);if(!te)continue;const ee=te.elevatedStructures;if(!ee||ee.depthSegments.segments[0].primitiveLength===0)continue;const ne=ET(H.toUnwrapped(),F),le=v.translatePosMatrix(H.projMatrix,Y,g.paint.get("fill-translate"),g.paint.get("fill-translate-anchor")),oe=zx(le,ne,0,1,0);$.draw(v,A.TRIANGLES,j,R,Yr.disabled,Gr.disabled,oe,g.id,ee.vertexBuffer,ee.indexBuffer,ee.depthSegments,g.paint,v.transform.zoom)}}};class L3{constructor(d,g,w,A,j){this.context=new fg(d,g),this.transform=w,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this._timeStamp=s.o.now(),this._averageFPS=0,this._fpsHistory=[],this._dt=0,this._debugParams={forceEnablePrecipitation:!1,showTerrainProxyTiles:!1,fpsWindow:30,continousRedraw:!1,show3DModelFootprints:!1,enabledLayers:{}};const R=["fill","line","symbol","circle","heatmap","fill-extrusion","building","raster","raster-particle","hillshade","model","background","sky"];for(const $ of R)this._debugParams.enabledLayers[$]=!0;for(const $ of R);this.occlusionParams=new sj,this.setup(),this.numSublayers=nu.maxUnderzooming+nu.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.deferredRenderGpuTimeQueries=[],this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={},this.conflationActive=!1,this.replacementSource=new s.eG,this.longestCutoffRange=0,this.minCutoffZoom=0,this._fogVisible=!1,this._cachedTileFogOpacities={},this._shadowRenderer=new Ax(this),this._wireframeDebugCache=new ij,this.renderDefaultNorthPole=!0,this.renderDefaultSouthPole=!0,this.layersWithOcclusionOpacity=[];const F=new s.q({width:1,height:1},Uint8Array.of(0,0,0,0));this.emptyDepthTexture=new s.T(this.context,F,d.RGBA8),this._clippingActiveLastFrame=!1,this.scaleFactor=A,this.maxFrontCutoffRawStart=0,this.worldview=j,this._forceEmissiveMode=!1,this.emissiveMode="constant"}updateTerrain(d,g){const w=!!d&&!!d.terrain&&this.transform.projection.supportsTerrain;if(!(w||this._terrain&&this._terrain.enabled))return;this._terrain||(this._terrain=new Bx(this,d));const A=this._terrain;this.transform.elevation=w?A:null,A.update(d,this.transform,g),this.transform.elevation&&!A.enabled&&(this.transform.elevation=null)}_updateFog(d){const g=d.fog;if(!g||this.transform.projection.name==="globe"||g.getOpacity(this.transform.pitch)<1||g.properties.get("horizon-blend")<.03)return void(this.transform.fogCullDistSq=null);const[w,A]=g.getFovAdjustedRange(this.transform._fov);if(w>A)return void(this.transform.fogCullDistSq=null);const j=w+.78*(A-w);this.transform.fogCullDistSq=j*j}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled||this._forceTerrainMode?this._terrain:null}get forceTerrainMode(){return this._forceTerrainMode}set forceTerrainMode(d){d&&!this._terrain&&(this._terrain=new Bx(this,this.style)),this._forceTerrainMode=d}get shadowRenderer(){return this._shadowRenderer&&this._shadowRenderer.enabled?this._shadowRenderer:null}get wireframeDebugCache(){return this._wireframeDebugCache}resize(d,g){if(this.width=d*s.o.devicePixelRatio,this.height=g*s.o.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const w of this.style.order)this.style._mergedLayers[w].resize()}setup(){const d=this.context,g=new s.dB;g.emplaceBack(0,0),g.emplaceBack(s.an,0),g.emplaceBack(0,s.an),g.emplaceBack(s.an,s.an),this.tileExtentBuffer=d.createVertexBuffer(g,s.dx.members),this.tileExtentSegments=s.dy.simpleSegment(0,0,4,2);const w=new s.dB;w.emplaceBack(0,0),w.emplaceBack(s.an,0),w.emplaceBack(0,s.an),w.emplaceBack(s.an,s.an),this.debugBuffer=d.createVertexBuffer(w,s.dx.members),this.debugSegments=s.dy.simpleSegment(0,0,4,5);const A=new s.dB;A.emplaceBack(-1,-1),A.emplaceBack(1,-1),A.emplaceBack(-1,1),A.emplaceBack(1,1),this.viewportBuffer=d.createVertexBuffer(A,s.dx.members),this.viewportSegments=s.dy.simpleSegment(0,0,4,2);const j=new s.eH;j.emplaceBack(0,0,0,0),j.emplaceBack(s.an,0,s.an,0),j.emplaceBack(0,s.an,0,s.an),j.emplaceBack(s.an,s.an,s.an,s.an),this.mercatorBoundsBuffer=d.createVertexBuffer(j,s.eI.members),this.mercatorBoundsSegments=s.dy.simpleSegment(0,0,4,2);const R=new s.dC;R.emplaceBack(0,1,2),R.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=d.createIndexBuffer(R);const F=new s.eJ;for(const H of[0,1,3,2,0])F.emplaceBack(H);this.debugIndexBuffer=d.createIndexBuffer(F),this.emptyTexture=new s.T(d,new s.q({width:1,height:1},Uint8Array.of(0,0,0,0)),d.gl.RGBA8),this.identityMat=s.bb();const $=this.context.gl;this.stencilClearMode=new Xr({func:$.ALWAYS,mask:0},0,255,$.ZERO,$.ZERO,$.ZERO),this.loadTimeStamps.push(performance.now())}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(d){return d._makeTileBoundsBuffers(this.context,this.transform.projection),d._tileBoundsBuffer?{tileBoundsBuffer:d._tileBoundsBuffer,tileBoundsIndexBuffer:d._tileBoundsIndexBuffer,tileBoundsSegments:d._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const d=this.context.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.getOrCreateProgram("clippingMask").draw(this,d.TRIANGLES,Cr.disabled,this.stencilClearMode,Yr.disabled,Gr.disabled,Ox(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(d,g,w){if(!g||this.currentStencilSource===g.id||!d.isTileClipped()||!w||w.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let F=!1;for(const $ of w)if(this._tileClippingMaskIDs[$.key]===void 0){F=!0;break}if(!F)return}this.currentStencilSource=g.id;const A=this.context,j=A.gl;this.nextStencilID+w.length>256&&this.clearStencil(),A.setColorMode(Yr.disabled),A.setDepthMode(Cr.disabled);const R=this.getOrCreateProgram("clippingMask");this._tileClippingMaskIDs={};for(const F of w){const $=g.getTile(F),H=this._tileClippingMaskIDs[F.key]=this.nextStencilID++,{tileBoundsBuffer:Y,tileBoundsIndexBuffer:te,tileBoundsSegments:ee}=this.getTileBoundsBuffers($);R.draw(this,j.TRIANGLES,Cr.disabled,new Xr({func:j.ALWAYS,mask:0},H,255,j.KEEP,j.KEEP,j.REPLACE),Yr.disabled,Gr.disabled,Ox(F.projMatrix),"$clipping",Y,te,ee)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const d=this.nextStencilID++,g=this.context.gl;return new Xr({func:g.NOTEQUAL,mask:255},d,255,g.KEEP,g.KEEP,g.REPLACE)}stencilModeForClipping(d){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(d);const g=this.context.gl;return new Xr({func:g.EQUAL,mask:255},this._tileClippingMaskIDs[d.key],0,g.KEEP,g.KEEP,g.REPLACE)}stencilConfigForOverlap(d){const g=this.context.gl,w=d.sort((R,F)=>F.overscaledZ-R.overscaledZ),A=w[w.length-1].overscaledZ,j=w[0].overscaledZ-A+1;if(j>1){this.currentStencilSource=void 0,this.nextStencilID+j>256&&this.clearStencil();const R={};for(let F=0;Fthis._debugParams.fpsWindow&&this._fpsHistory.splice(0,this._fpsHistory.length-this._debugParams.fpsWindow),this._averageFPS=Math.round(this._fpsHistory.reduce((d,g)=>d+g/this._fpsHistory.length,0))}render(d,g){const w=s.o.now();this._dt=w-this._timeStamp,this._timeStamp=w,this._wireframeDebugCache.update(this.frameCounter),this._debugParams.continousRedraw=d.map.repaint,this.style=d,this.options=g;const A=this.style._mergedLayers,j=!(!this.terrain||!this.terrain.enabled),R=()=>this.style._getOrder(j).filter(ot=>{const tt=A[ot];return!(tt.type in this._debugParams.enabledLayers)||this._debugParams.enabledLayers[tt.type]});let F=R(),$=!1,H=!1,Y=null,te=0,ee=!1;for(const ot of F){const tt=A[ot];tt.visibility!=="none"&&(tt.type==="circle"?$=!0:tt.type==="building"?(Y=tt,++te):tt.type==="symbol"&&(tt.hasOcclusionOpacityProperties?H=!0:$=!0))}this.updateEmissiveMode();let ne=F.map(ot=>A[ot]);const le=this.style._mergedSourceCaches;this.imageManager=d.imageManager,this.modelManager=d.modelManager,this.symbolFadeChange=d.placement.symbolFadeChange(s.o.now()),this.imageManager.beginFrame();for(const ot in le){const tt=le[ot];tt.used&&(tt.prepare(this.context),tt.getSource().usedInConflation&&++te)}let oe=!1;for(const ot of ne)ot.isHidden(this.transform.zoom)||(ot.type==="clip"&&(oe=!0),this.prepareLayer(ot));const me={},pe={},Ie={},Ne={},ve={};for(const ot in le){const tt=le[ot];me[ot]=tt.getVisibleCoordinates(),pe[ot]=me[ot].slice().reverse(),Ie[ot]=tt.getVisibleCoordinates(!0).reverse(),Ne[ot]=tt.getShadowCasterCoordinates(),ve[ot]=tt.sortCoordinatesByDistance(me[ot])}const Ye=ot=>{const tt=this.style.getLayerSourceCache(ot);return tt&&tt.used?tt.getSource():null};if(te||oe||this._clippingActiveLastFrame){const ot=[],tt=[];let mt=0;for(const bt of ne)this.isSourceForClippingOrConflation(bt,Ye(bt))&&(ot.push(bt),tt.push(mt)),mt++;if(ot&&(oe||ot.length>1)||this._clippingActiveLastFrame){oe=!1;const bt=[];for(let Et=0;Et0){const bt=Ye(tt);bt&&(this.minCutoffZoom=Math.max(bt.minzoom,this.minCutoffZoom)),tt.minzoom&&(this.minCutoffZoom=Math.max(tt.minzoom,this.minCutoffZoom))}tt.is3D(j)&&(this.opaquePassCutoff===1/0&&(this.opaquePassCutoff=ot),this._lastOcclusionLayer=ot)}const Be=this.style&&this.style.fog;Be?(this._fogVisible=Be.getOpacity(this.transform.pitch)!==0,this._fogVisible&&this.transform.projection.name!=="globe"&&(this._fogVisible=Be.isVisibleOnFrustum(this.transform.cameraFrustum))):this._fogVisible=!1,this._cachedTileFogOpacities={},this.terrain&&(this.terrain.updateTileBinding(Ie),this.opaquePassCutoff=0,F=R(),ne=F.map(ot=>A[ot]));const We=this._shadowRenderer;if(We){We.updateShadowParameters(this.transform,this.style.directionalLight);for(const ot in le)for(const tt of me[ot]){let mt={min:0,max:0};this.terrain&&(mt=this.terrain.getMinMaxForTile(tt)||mt),We.addShadowReceiver(tt.toUnwrapped(),mt.min,mt.max)}}this.transform.projection.name!=="globe"||this.globeSharedBuffers||(this.globeSharedBuffers=new s.eL(this.context)),this.style.fog&&this.transform.projection.supportsFog?(this._atmosphere||(this._atmosphere=new tj(this)),this._atmosphere.update(this)):this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=void 0);const Le=this._debugParams.forceEnablePrecipitation||!(!this.style||!this.style.snow),Fe=this._debugParams.forceEnablePrecipitation||!(!this.style||!this.style.rain);if(Le&&!this._snow&&(this._snow=new lj(this)),!Le&&this._snow&&(this._snow.destroy(),delete this._snow),Fe&&!this._rain&&(this._rain=new Yx(this)),!Fe&&this._rain&&(this._rain.destroy(),delete this._rain),this._snow&&this._snow.update(this),this._rain&&this._rain.update(this),Y){this.buildingTileBorderManager||(this.buildingTileBorderManager=new hh);const ot=this.style.getLayerSourceCache(Y);this.buildingTileBorderManager.updateBorders(ot,Y)}if(!Sr.has(this.context.gl))return;this.renderPass="offscreen";for(const ot of ne){const tt=d.getLayerSourceCache(ot);if(!ot.hasOffscreenPass()||ot.isHidden(this.transform.zoom))continue;const mt=tt?pe[tt.id]:void 0;(ot.type==="custom"||ot.type==="raster"||ot.type==="raster-particle"||ot.isSky()||mt&&mt.length)&&this.renderLayer(this,tt,ot,mt)}this.depthRangeFor3D=[0,1-(ne.length+2)*this.numSublayers*this.depthEpsilon],this._shadowRenderer&&(this.renderPass="shadow",this._shadowRenderer.drawShadowPass(this.style,Ne)),this.context.bindFramebuffer.set(null),this.context.viewport.set([0,0,this.width,this.height]);const qe=this.transform.projection.name==="globe"||this.transform.isHorizonVisible(),st=(()=>{if(g.showOverdrawInspector)return s.aq.black;const ot=this.style.fog;if(ot&&this.transform.projection.supportsFog){const tt=this.style.getLut(ot.scope);if(!qe){const mt=ot.properties.get("color-use-theme")==="none",bt=ot.properties.get("color").toNonPremultipliedRenderColor(mt?null:tt).toArray01();return new s.aq(...bt)}if(qe){const mt=ot.properties.get("space-color-use-theme")==="none",bt=ot.properties.get("space-color").toNonPremultipliedRenderColor(mt?null:tt).toArray01();return new s.aq(...bt)}}return s.aq.transparent})();if(this.context.clear({color:st,depth:1}),this.clearStencil(),this._showOverdrawInspector=g.showOverdrawInspector,this.renderPass="opaque",this.style.fog&&this.transform.projection.supportsFog&&this._atmosphere&&!this._showOverdrawInspector&&qe&&this._atmosphere.drawStars(this,this.style.fog),!this.terrain)for(this.currentLayer=F.length-1;this.currentLayer>=0;this.currentLayer--){const ot=ne[this.currentLayer],tt=d.getLayerSourceCache(ot);if(ot.isSky())continue;const mt=tt?(ot.is3D(j)?ve:pe)[tt.id]:void 0;this._renderTileClippingMasks(ot,tt,mt),this.renderLayer(this,tt,ot,mt)}if(this.style.fog&&this.transform.projection.supportsFog&&this._atmosphere&&!this._showOverdrawInspector&&qe&&this._atmosphere.drawAtmosphereGlow(this,this.style.fog),this.renderPass="sky",(!this._atmosphere||s.al(this.transform.zoom)>0)&&(this.transform.projection.name==="globe"||this.transform.isHorizonVisible()))for(this.currentLayer=0;this.currentLayer{for(this.currentLayer=0;this.currentLayer=this._lastOcclusionLayer&&this.layersWithOcclusionOpacity.length>0){const mt=this.currentLayer;this.depthOcclusion=!0;for(const bt of this.layersWithOcclusionOpacity){this.currentLayer=bt;const Et=ne[this.currentLayer],tr=d.getLayerSourceCache(Et),Vt=tr?pe[tr.id]:void 0;this.terrain||this._renderTileClippingMasks(Et,tr,tr?me[tr.id]:void 0),this.renderLayer(this,tr,Et,Vt)}this.depthOcclusion=!1,this.currentLayer=mt,this.renderPass="translucent",this.layersWithOcclusionOpacity=[]}++this.currentLayer}}if(this.terrain&&this.terrain.postRender(),this._snow&&this._snow.draw(this),this._rain&&this._rain.draw(this),this.options.showTileBoundaries||this.options.showQueryGeometry||this.options.showTileAABBs){let ot=null;ne.forEach(tt=>{const mt=d.getLayerSourceCache(tt);mt&&!tt.isHidden(this.transform.zoom)&&mt.getVisibleCoordinates().length&&(!ot||ot.getSource().maxzoom0?g.pop():null}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture||this.forceTerrainMode}linearFloatFilteringSupported(){return this.context.extTextureFloatLinear!=null}currentGlobalDefines(d,g,w){const A=w===void 0?this.terrain&&this.terrain.renderingToTexture:w,j=[];return this.style&&this.style.enable3dLights()&&(d==="globeRaster"||d==="terrainRaster"?(j.push("LIGHTING_3D_MODE"),j.push("LIGHTING_3D_ALPHA_EMISSIVENESS")):A||j.push("LIGHTING_3D_MODE")),this.terrainRenderModeElevated()&&(j.push("TERRAIN"),this.linearFloatFilteringSupported()&&j.push("TERRAIN_DEM_FLOAT_FORMAT")),this.transform.projection.name==="globe"&&j.push("GLOBE"),!this._fogVisible||A||g!==void 0&&!g||j.push("FOG"),A&&j.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&j.push("OVERDRAW_INSPECTOR"),j}getOrCreateProgram(d,g){this.cache=this.cache||{};const w=g&&g.defines||[],A=g&&g.config,j=this.currentGlobalDefines(d,g&&g.overrideFog,g&&g.overrideRtt).concat(w),R=Cp.cacheKey(_I[d],d,j,A);return this.cache[R]||(this.cache[R]=new Cp(this.context,d,_I[d],A,Cv[d],j)),this.cache[R]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const d=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(d.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new s.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA8))}destroy(){this._terrain&&this._terrain.destroy(),this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=void 0),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this._wireframeDebugCache.destroy(),this.depthFBO&&(this.depthFBO.destroy(),this.depthFBO=void 0,this.depthTexture=void 0),this.emptyDepthTexture&&this.emptyDepthTexture.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}uploadCommonLightUniforms(d,g){if(this.style.enable3dLights()){const w=this.style.directionalLight,A=this.style.ambientLight;if(w&&A){const j=((R,F,$)=>{const H=R.properties.get("direction"),Y=R.properties.get("color-use-theme")==="none",te=R.properties.get("color").toNonPremultipliedRenderColor(Y?null:$.getLut(R.scope)).toArray01(),ee=R.properties.get("intensity"),ne=F.properties.get("color-use-theme")==="none",le=F.properties.get("color").toNonPremultipliedRenderColor(ne?null:$.getLut(F.scope)).toArray01(),oe=F.properties.get("intensity"),me=[H.x,H.y,H.z],pe=s.dD(le,oe),Ie=s.dD(te,ee);return{u_lighting_ambient_color:pe,u_lighting_directional_dir:me,u_lighting_directional_color:Ie,u_ground_radiance:vT(me,Ie,pe)}})(w,A,this.style);g.setLightsUniformValues(d,j)}}}uploadCommonUniforms(d,g,w,A,j){if(this.uploadCommonLightUniforms(d,g),this.terrain&&this.terrain.renderingToTexture)return;const R=this.style.fog;if(R){const F=R.getOpacity(this.transform.pitch),$=((H,Y,te,ee,ne,le,oe,me,pe,Ie,Ne,ve)=>{const Ye=H.transform,Be=Y.properties.get("color-use-theme")==="none",We=Y.properties.get("color").toNonPremultipliedRenderColor(Be?null:H.style.getLut(Y.scope)).toArray01();We[3]=ee;const Le=H.frameCounter/1e3%1,[Fe,qe]=Y.properties.get("vertical-range");return{u_fog_matrix:te?Ye.calculateFogTileMatrix(te):ve||H.identityMat,u_fog_range:Y.getFovAdjustedRange(Ye._fov),u_fog_color:We,u_fog_horizon_blend:Y.properties.get("horizon-blend"),u_fog_vertical_limit:[Math.min(Fe,qe),qe],u_fog_temporal_offset:Le,u_frustum_tl:ne,u_frustum_tr:le,u_frustum_br:oe,u_frustum_bl:me,u_globe_pos:pe,u_globe_radius:Ie,u_viewport:Ne,u_globe_transition:s.al(Ye.zoom),u_is_globe:+(Ye.projection.name==="globe")}})(this,R,w,F,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*s.o.devicePixelRatio,this.transform.height*s.o.devicePixelRatio],A);g.setFogUniformValues(d,$)}j&&g.setCutoffUniformValues(d,j.uniformValues)}setTileLoadedFlag(d){this.tileLoaded=d}saveCanvasCopy(){const d=this.canvasCopy();d&&(this.frameCopies.push(d),this.tileLoaded=!1)}canvasCopy(){const d=this.context.gl,g=d.createTexture();return d.bindTexture(d.TEXTURE_2D,g),d.copyTexImage2D(d.TEXTURE_2D,0,d.RGBA,0,0,d.drawingBufferWidth,d.drawingBufferHeight,0),g}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const d=this.style&&this.style.fog;return!!d&&d.getOpacity(this.transform.pitch)!==0}getBackgroundTiles(){const d=this._backgroundTiles,g=this._backgroundTiles={},w=this.transform.coveringTiles({tileSize:512});for(const A of w)g[A.key]=d[A.key]||new s.b0(A,512,this.transform.tileZoom,this,void 0,this.worldview);return g}clearBackgroundTiles(){this._backgroundTiles={}}isSourceForClippingOrConflation(d,g){return!(!d.is3D(!(!this.terrain||!this.terrain.enabled))||d.type!=="clip"&&d.type!=="building"&&(d.minzoom&&d.minzoom>this.transform.zoom||(this.style._clipLayerPresent||d.sourceLayer!=="building"&&d.sourceLayer!=="procedural_buildings")&&(!g||g.type!=="batched-model")))}isTileAffectedByFog(d){if(!this.style||!this.style.fog)return!1;if(this.transform.projection.name==="globe")return!0;let g=this._cachedTileFogOpacities[d.key];return g||(this._cachedTileFogOpacities[d.key]=g=this.style.fog.getOpacityForTile(d)),g[0]>=In||g[1]>=In}setupDepthForOcclusion(d,g,w){const A=this.context,j=A.gl,R=!!w;var F;w||(w={u_dem:2,u_dem_prev:4,u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_depth_range_unpack:[0,1],u_occluder_half_size:16,u_occlusion_depth_offset:-1e-4,u_exaggeration:0}),A.activeTexture.set(j.TEXTURE3),d&&this.depthFBO&&this.depthTexture?(this.depthTexture.bind(j.NEAREST,j.CLAMP_TO_EDGE),w.u_depth_size_inv=[1/this.depthFBO.width,1/this.depthFBO.height],w.u_depth_range_unpack=[2/((F=this.depthRangeFor3D)[1]-F[0]),-1-2*F[0]/(F[1]-F[0])],w.u_occluder_half_size=.5*this.occlusionParams.occluderSize,w.u_occlusion_depth_offset=this.occlusionParams.depthOffset):this.emptyDepthTexture.bind(j.NEAREST,j.CLAMP_TO_EDGE),A.activeTexture.set(j.TEXTURE0),R||g.setTerrainUniformValues(A,w)}updateEmissiveMode(){if(this._forceEmissiveMode)return;const d=this.style.hasDataDrivenEmissiveStrength();this.emissiveMode=d?this.context.extBlendFuncExtended?"dual-source-blending":"mrt-fallback":"constant"}}function WT(v,d){let g=!1,w=null;const A=()=>{w=null,g&&(v(),w=setTimeout(A,d),g=!1)};return()=>(g=!0,w||A(),w)}class D3{constructor(d){this._hashName=d&&encodeURIComponent(d),s.aZ(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=WT(this._updateHashUnthrottled.bind(this),300)}addTo(d){return this._map=d,window.addEventListener("hashchange",this._onHashChange,!1),d.on("moveend",this._updateHash),this}remove(){return this._map?(this._map.off("moveend",this._updateHash),window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const d=this._map;if(!d)return"";const g=Yo(d);if(this._hashName){const w=this._hashName;let A=!1;const j=location.hash.slice(1).split("&").map(R=>{const F=R.split("=")[0];return F===w?(A=!0,`${F}=${g}`):R}).filter(R=>R);return A||j.push(`${w}=${g}`),`#${j.join("&")}`}return`#${g}`}_getCurrentHash(){const d=location.hash.replace("#","");if(this._hashName){let g;return d.split("&").map(w=>w.split("=")).forEach(w=>{w[0]===this._hashName&&(g=w)}),(g&&g[1]||"").split("/")}return d.split("/")}_onHashChange(){const d=this._map;if(!d)return!1;const g=this._getCurrentHash();if(g.length>=3&&!g.some(w=>isNaN(Number(w)))){const w=d.dragRotate.isEnabled()&&d.touchZoomRotate.isEnabled()?+(g[3]||0):d.getBearing();return d.jumpTo({center:[+g[2],+g[1]],zoom:+g[0],bearing:w,pitch:+(g[4]||0)}),!0}return!1}_updateHashUnthrottled(){history.replaceState(history.state,"",location.href.replace(/(#.+)?$/,this.getHashString()))}}function Yo(v,d){const g=v.getCenter(),w=Math.round(100*v.getZoom())/100,A=Math.ceil((w*Math.LN2+Math.log(512/360/.5))/Math.LN10),j=Math.pow(10,A),R=Math.round(g.lng*j)/j,F=Math.round(g.lat*j)/j,$=v.getBearing(),H=v.getPitch();let Y=d?`/${R}/${F}/${w}`:`${w}/${F}/${R}`;return($||H)&&(Y+="/"+Math.round(10*$)/10),H&&(Y+=`/${Math.round(H)}`),Y}const Uv={linearity:.3,easing:s.eN(0,0,.3,1)},Zx=Object.assign({deceleration:2500,maxSpeed:1400},Uv),M3=Object.assign({deceleration:20,maxSpeed:1400},Uv),Vi=Object.assign({deceleration:1e3,maxSpeed:360},Uv),Cn=Object.assign({deceleration:1e3,maxSpeed:90},Uv);class uj{constructor(d){this._map=d,this.clear()}clear(){this._inertiaBuffer=[]}record(d){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:s.o.now(),settings:d})}_drainInertiaBuffer(){const d=this._inertiaBuffer,g=s.o.now();for(;d.length>0&&g-d[0].time>160;)d.shift()}_onMoveEnd(d){if(this._map._prefersReducedMotion()||(this._drainInertiaBuffer(),this._inertiaBuffer.length<2))return;const g={zoom:0,bearing:0,pitch:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:j}of this._inertiaBuffer)g.zoom+=j.zoomDelta||0,g.bearing+=j.bearingDelta||0,g.pitch+=j.pitchDelta||0,j.panDelta&&g.pan._add(j.panDelta),j.around&&(g.around=j.around),j.pinchAround&&(g.pinchAround=j.pinchAround);const w=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,A={};if(g.pan.mag()){const j=_d(g.pan.mag(),w,Object.assign({},Zx,d||{}));A.offset=g.pan.mult(j.amount/g.pan.mag()),A.center=this._map.transform.center,ic(A,j)}if(g.zoom){const j=_d(g.zoom,w,M3);A.zoom=this._map.transform.zoom+j.amount,ic(A,j)}if(g.bearing){const j=_d(g.bearing,w,Vi);A.bearing=this._map.transform.bearing+s.aC(j.amount,-179,179),ic(A,j)}if(g.pitch){const j=_d(g.pitch,w,Cn);A.pitch=this._map.transform.pitch+j.amount,ic(A,j)}if(A.zoom||A.bearing){const j=g.pinchAround===void 0?g.around:g.pinchAround;A.around=j?this._map.unproject(j):this._map.getCenter()}return this.clear(),A.noMoveStart=!0,A}}function ic(v,d){(!v.duration||v.durationg.unproject($)),F=j.reduce(($,H,Y,te)=>$.add(H.div(te.length)),new s.P(0,0));super(d,{points:j,point:F,lngLats:R,lngLat:g.unproject(F),originalEvent:w}),this._defaultPrevented=!1}}class KT extends s.C{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(d,g){super("wheel",{originalEvent:g}),this._defaultPrevented=!1}}class YT{constructor(d,g){this._map=d,this._clickTolerance=g.clickTolerance}reset(){this._mousedownPos=void 0}wheel(d){return this._firePreventable(new KT(this._map,d))}mousedown(d,g){return this._mousedownPos=g,this._firePreventable(new xo(d.type,this._map,d))}mouseup(d){this._map.fire(new xo(d.type,this._map,d))}preclick(d){const g=new MouseEvent("preclick",d);this._map.fire(new xo(g.type,this._map,g))}click(d,g){this._mousedownPos&&this._mousedownPos.dist(g)>=this._clickTolerance||(this.preclick(d),this._map.fire(new xo(d.type,this._map,d)))}dblclick(d){return this._firePreventable(new xo(d.type,this._map,d))}mouseover(d){this._map.fire(new xo(d.type,this._map,d))}mouseout(d){this._map.fire(new xo(d.type,this._map,d))}touchstart(d){return this._firePreventable(new wc(d.type,this._map,d))}touchmove(d){this._map.fire(new wc(d.type,this._map,d))}touchend(d){this._map.fire(new wc(d.type,this._map,d))}touchcancel(d){this._map.fire(new wc(d.type,this._map,d))}_firePreventable(d){if(this._map.fire(d),d.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class ZT{constructor(d){this._map=d}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(d){this._map.fire(new xo(d.type,this._map,d))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new xo("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(d){this._delayContextMenu?this._contextMenuEvent=d:this._map.fire(new xo(d.type,this._map,d)),this._map.listens("contextmenu")&&d.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class XT{constructor(d,g){this._map=d,this._el=d.getCanvasContainer(),this._container=d.getContainer(),this._clickTolerance=g.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(d,g){this.isEnabled()&&d.shiftKey&&d.button===0&&(V(),this._startPos=this._lastPos=g,this._active=!0)}mousemoveWindow(d,g){if(!this._active)return;const w=g,A=this._startPos,j=this._lastPos;if(!A||!j||j.equals(w)||!this._box&&w.dist(A){this._box&&(this._box.style.transform=`translate(${R}px,${$}px)`,this._box.style.width=F-R+"px",this._box.style.height=H-$+"px")})}mouseupWindow(d,g){if(!this._active)return;const w=this._startPos,A=g;if(w&&d.button===0){if(this.reset(),Z(),w.x!==A.x||w.y!==A.y)return this._map.fire(new s.C("boxzoomend",{originalEvent:d})),{cameraAnimation:j=>j.fitScreenCoordinates(w,A,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",d)}}keydown(d){this._active&&d.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",d))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),G(),delete this._startPos,delete this._lastPos}_fireEvent(d,g){return this._map.fire(new s.C(d,{originalEvent:g}))}}function Xx(v,d){const g={};for(let w=0;wthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=d.timeStamp),w.length===this.numTouches&&(this.centroid=function(A){const j=new s.P(0,0);for(const R of A)j._add(R);return j.div(A.length)}(g),this.touches=Xx(w,g)))}touchmove(d,g,w){if(this.aborted||!this.centroid)return;const A=Xx(w,g);for(const j in this.touches){const R=A[j];(!R||R.dist(this.touches[j])>30)&&(this.aborted=!0)}}touchend(d,g,w){if((!this.centroid||d.timeStamp-this.startTime>500)&&(this.aborted=!0),w.length===0){const A=!this.aborted&&this.centroid;if(this.reset(),A)return A}}}class vd{constructor(d){this.singleTap=new lu(d),this.numTaps=d.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(d,g,w){this.singleTap.touchstart(d,g,w)}touchmove(d,g,w){this.singleTap.touchmove(d,g,w)}touchend(d,g,w){const A=this.singleTap.touchend(d,g,w);if(A){const j=d.timeStamp-this.lastTime<500,R=!this.lastTap||this.lastTap.dist(A)<30;if(j&&R||this.reset(),this.count++,this.lastTime=d.timeStamp,this.lastTap=A,this.count===this.numTaps)return this.reset(),A}}}class xg{constructor(){this._zoomIn=new vd({numTouches:1,numTaps:2}),this._zoomOut=new vd({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(d,g,w){this._zoomIn.touchstart(d,g,w),this._zoomOut.touchstart(d,g,w)}touchmove(d,g,w){this._zoomIn.touchmove(d,g,w),this._zoomOut.touchmove(d,g,w)}touchend(d,g,w){const A=this._zoomIn.touchend(d,g,w),j=this._zoomOut.touchend(d,g,w);return A?(this._active=!0,d.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:R=>R.easeTo({duration:300,zoom:R.getZoom()+1,around:R.unproject(A)},{originalEvent:d})}):j?(this._active=!0,d.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:R=>R.easeTo({duration:300,zoom:R.getZoom()-1,around:R.unproject(j)},{originalEvent:d})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const Vv=0,QT=2,JT={[Vv]:1,[QT]:2},mh={Control:"ctrlKey",Alt:"altKey",Shift:"shiftKey",Meta:"metaKey"};class Qx{constructor(d){this.reset(),this._clickTolerance=d.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(d,g){return!1}_move(d,g){return{}}mousedown(d,g){if(this._lastPoint)return;const w=ie(d);this._correctButton(d,w)&&(this._lastPoint=g,this._eventButton=w)}mousemoveWindow(d,g){const w=this._lastPoint;if(w){if(d.preventDefault(),this._eventButton!=null&&function(A,j){const R=JT[j];return A.buttons===void 0||(A.buttons&R)!==R}(d,this._eventButton))this.reset();else if(this._moved||!(g.dist(w)0&&(this._active=!0);const A=Xx(w,g),j=new s.P(0,0),R=new s.P(0,0);let F=0;for(const H in A){const Y=A[H],te=this._touches[H];te&&(j._add(Y),R._add(Y.sub(te)),F++,A[H]=Y)}if(this._touches=A,F{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.removeAttribute("role")},500)}}class e0{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(d){}_move(d,g,w){return{}}touchstart(d,g,w){this._firstTwoTouches||w.length<2||(this._firstTwoTouches=[w[0].identifier,w[1].identifier],this._start([g[0],g[1]]))}touchmove(d,g,w){const A=this._firstTwoTouches;if(!A)return;d.preventDefault();const[j,R]=A,F=bs(w,g,j),$=bs(w,g,R);if(!F||!$)return;const H=this._aroundCenter?null:F.add($).div(2);return this._move([F,$],H,d)}touchend(d,g,w){if(!this._firstTwoTouches)return;const[A,j]=this._firstTwoTouches,R=bs(w,g,A),F=bs(w,g,j);R&&F||(this._active&&Z(),this.reset())}touchcancel(){this.reset()}enable(d){this._enabled=!0,this._aroundCenter=!!d&&d.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function bs(v,d,g){for(let w=0;wMath.abs(v.x)}class rE extends e0{constructor(d){super(),this._map=d}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(d){this._lastPoints=d,t0(d[0].sub(d[1]))&&(this._valid=!1)}_move(d,g,w){const A=this._lastPoints;if(!A)return;const j=d[0].sub(A[0]),R=d[1].sub(A[1]);return this._map._cooperativeGestures&&!s.eO()&&w.touches.length<3||(this._valid=this.gestureBeginsVertically(j,R,w.timeStamp),!this._valid)?void 0:(this._lastPoints=d,this._active=!0,{pitchDelta:(j.y+R.y)/2*-.5})}gestureBeginsVertically(d,g,w){if(this._valid!==void 0)return this._valid;const A=d.mag()>=2,j=g.mag()>=2;if(!A&&!j)return;if(!A||!j)return this._firstMove==null&&(this._firstMove=w),w-this._firstMove<100&&void 0;const R=d.y>0==g.y>0;return t0(d)&&t0(g)&&R}}const nE={panStep:100,bearingStep:15,pitchStep:10};class Mp{constructor(){const d=nE;this._panStep=d.panStep,this._bearingStep=d.bearingStep,this._pitchStep=d.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(d){if(d.altKey||d.ctrlKey||d.metaKey)return;let g=0,w=0,A=0,j=0,R=0;switch(d.keyCode){case 61:case 107:case 171:case 187:g=1;break;case 189:case 109:case 173:g=-1;break;case 37:d.shiftKey?w=-1:(d.preventDefault(),j=-1);break;case 39:d.shiftKey?w=1:(d.preventDefault(),j=1);break;case 38:d.shiftKey?A=1:(d.preventDefault(),R=-1);break;case 40:d.shiftKey?A=-1:(d.preventDefault(),R=1);break;default:return}return this._rotationDisabled&&(w=0,A=0),{cameraAnimation:F=>{const $=F.getZoom();F.easeTo({duration:300,easeId:"keyboardHandler",easing:iE,zoom:g?Math.round($)+g*(d.shiftKey?2:1):$,bearing:F.getBearing()+w*this._bearingStep,pitch:F.getPitch()+A*this._pitchStep,offset:[-j*this._panStep,-R*this._panStep],center:F.getCenter()},{originalEvent:d})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function iE(v){return v*(2-v)}const Op=4.000244140625,sE=1/450;class Wv{constructor(d,g){this._map=d,this._el=d.getCanvasContainer(),this._handler=g,this._delta=0,this._lastDelta=0,this._defaultZoomRate=.01,this._wheelZoomRate=sE,s.aZ(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(d){this._defaultZoomRate=d}setWheelZoomRate(d){this._wheelZoomRate=d}isEnabled(){return!!this._enabled}isActive(){return this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(d){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!d&&d.around==="center",this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(d){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(d.ctrlKey||d.metaKey||this.isZooming()||s.eO()))return void this._showBlockerAlert();this._alertContainer.style.visibility!=="hidden"&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let g=d.deltaMode===WheelEvent.DOM_DELTA_LINE?40*d.deltaY:d.deltaY;const w=s.o.now(),A=w-(this._lastWheelEventTime||0);this._lastWheelEventTime=w,g!==0&&g%Op===0?this._type="wheel":g!==0&&Math.abs(g)<4?this._type="trackpad":A>400?(this._type=null,this._lastValue=g,this._timeout=window.setTimeout(this._onTimeout,40,d)):this._type||(this._type=Math.abs(A*g)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,g+=this._lastValue)),d.shiftKey&&g&&(g/=4),this._type&&(this._lastWheelEvent=d,this._delta-=g,this._active||this._start(d)),d.preventDefault()}_onTimeout(d){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(d)}_start(d){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const g=Q(this._el,d);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:g,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const d=this._map.transform;this._type==="wheel"&&d.projection.wrap&&(d._center.lng>=180||d._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const g=()=>d._terrainEnabled()&&this._aroundCoord?d.computeZoomRelativeTo(this._aroundCoord):d.zoom;if(this._delta!==0){const H=this._type==="wheel"&&Math.abs(this._delta)>Op?this._wheelZoomRate:this._defaultZoomRate;let Y=2/(1+Math.exp(-Math.abs(this._delta*H)));this._delta<0&&Y!==0&&(Y=1/Y);const te=g(),ee=Math.pow(2,te),ne=typeof this._targetZoom=="number"?d.zoomScale(this._targetZoom):ee;this._targetZoom=Math.min(d.maxZoom,Math.max(d.minZoom,d.scaleZoom(ne*Y))),this._type==="wheel"&&(this._startZoom=te,this._easing=this._smoothOutEasing(200)),this._lastDelta=this._delta,this._delta=0}const w=typeof this._targetZoom=="number"?this._targetZoom:g(),A=this._startZoom,j=this._easing;let R,F=!1;if(this._type==="wheel"&&A&&j){const H=Math.min((s.o.now()-this._lastWheelEventTime)/200,1),Y=j(H);R=s.am(A,w,Y),H<1?this._frameId||(this._frameId=!0):F=!0}else R=w,F=!0;this._active=!0,F&&(this._active=!1,this._finishTimeout=window.setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200));let $=R-g();return $*this._lastDelta<0&&($=0),{noInertia:!0,needsRenderFrame:!F,zoomDelta:$,around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(d){let g=s.eP;if(this._prevEase){const w=this._prevEase,A=(s.o.now()-w.start)/w.duration,j=w.easing(A+.01)-w.easing(A),R=.27/Math.sqrt(j*j+1e-4)*.01,F=Math.sqrt(.0729-R*R);g=s.eN(R,F,.25,1)}return this._prevEase={start:s.o.now(),duration:d,easing:g},g}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=N("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=window.setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.removeAttribute("role")},200)}}class Kv{constructor(d,g){this._clickZoom=d,this._tapZoom=g}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Yv{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(d,g){return d.preventDefault(),{cameraAnimation:w=>{w.easeTo({duration:300,zoom:w.getZoom()+(d.shiftKey?-1:1),around:w.unproject(g)},{originalEvent:d})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class dj{constructor(){this._tap=new vd({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(d,g,w){this._swipePoint||(this._tapTime&&d.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?w.length>0&&(this._swipePoint=g[0],this._swipeTouch=w[0].identifier):this._tap.touchstart(d,g,w))}touchmove(d,g,w){if(this._tapTime){if(this._swipePoint){if(w[0].identifier!==this._swipeTouch)return;const A=g[0],j=A.y-this._swipePoint.y;return this._swipePoint=A,d.preventDefault(),this._active=!0,{zoomDelta:j/128}}}else this._tap.touchmove(d,g,w)}touchend(d,g,w){this._tapTime?this._swipePoint&&w.length===0&&this.reset():this._tap.touchend(d,g,w)&&(this._tapTime=d.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class aE{constructor(d,g,w){this._el=d,this._mousePan=g,this._touchPan=w}enable(d){this._inertiaOptions=d||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class hj{constructor(d,g,w){this._pitchWithRotate=d.pitchWithRotate,this._mouseRotate=g,this._mousePitch=w}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class fj{constructor(d,g,w,A){this._el=d,this._touchZoom=g,this._touchRotate=w,this._tapDragZoom=A,this._rotationDisabled=!1,this._enabled=!0}enable(d){this._touchZoom.enable(d),this._rotationDisabled||this._touchRotate.enable(d),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}const r0=v=>v.zoom||v.drag||v.pitch||v.rotate;class pj extends s.C{}class mj{constructor(){this.constants=[1,1,.01],this.radius=0}setup(d,g){const w=s.ax([],g,d);this.radius=s.ai(w[2]<0?s.eR([],w,this.constants):[w[0],w[1],0])}projectRay(d){s.eR(d,d,this.constants),s.ay(d,d),s.eS(d,d,this.constants);const g=s.bJ([],d,this.radius);if(g[2]>0){const w=s.bJ([],[0,0,1],s.bi(g,[0,0,1])),A=s.bJ([],s.ay([],[g[0],g[1],0]),this.radius),j=s.cT([],g,s.bJ([],s.ax([],s.cT([],A,w),g),2));g[0]=j[0],g[1]=j[1]}return g}}function n0(v){return v.panDelta&&v.panDelta.mag()||v.zoomDelta||v.bearingDelta||v.pitchDelta}class gj{constructor(d,g){this._map=d,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new uj(d),this._bearingSnap=g.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new mj,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(g),s.aZ(["handleEvent","handleWindowEvent"],this);const w=this._el;this._listeners=[[w,"touchstart",{passive:!0}],[w,"touchmove",{passive:!1}],[w,"touchend",void 0],[w,"touchcancel",void 0],[w,"mousedown",void 0],[w,"mousemove",void 0],[w,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[w,"mouseover",void 0],[w,"mouseout",void 0],[w,"dblclick",void 0],[w,"click",void 0],[w,"keydown",{capture:!1}],[w,"keyup",void 0],[w,"wheel",{passive:!1}],[w,"contextmenu",void 0],[window,"blur",void 0]];for(const[A,j,R]of this._listeners){const F=A===document?this.handleWindowEvent:this.handleEvent;A.addEventListener(j,F,R)}}destroy(){for(const[d,g,w]of this._listeners){const A=d===document?this.handleWindowEvent:this.handleEvent;d.removeEventListener(g,A,w)}}_addDefaultHandlers(d){const g=this._map,w=g.getCanvasContainer();this._add("mapEvent",new YT(g,d));const A=g.boxZoom=new XT(g,d);this._add("boxZoom",A);const j=new xg,R=new Yv;g.doubleClickZoom=new Kv(R,j),this._add("tapZoom",j),this._add("clickZoom",R);const F=new dj;this._add("tapDragZoom",F);const $=g.touchPitch=new rE(g);this._add("touchPitch",$);const H=new qv(d),Y=new Jx(d);g.dragRotate=new hj(d,H,Y),this._add("mouseRotate",H,["mousePitch"]),this._add("mousePitch",Y,["mouseRotate"]);const te=new cu(d),ee=new eE(g,d);g.dragPan=new aE(w,te,ee),this._add("mousePan",te),this._add("touchPan",ee,["touchZoom","touchRotate"]);const ne=new Dp,le=new tE;g.touchZoomRotate=new fj(w,le,ne,F),this._add("touchRotate",ne,["touchPan","touchZoom"]),this._add("touchZoom",le,["touchPan","touchRotate"]),this._add("blockableMapEvent",new ZT(g));const oe=g.scrollZoom=new Wv(g,this);this._add("scrollZoom",oe,["mousePan"]);const me=g.keyboard=new Mp;this._add("keyboard",me);for(const pe of["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"])d.interactive&&d[pe]&&g[pe].enable(d[pe])}_add(d,g,w){this._handlers.push({handlerName:d,handler:g,allowed:w}),this._handlersById[d]=g}stop(d){if(!this._updatingCamera){for(const{handler:g}of this._handlers)g.reset();this._inertia.clear(),this._fireEvents({},{},d),this._changes=[],this._originalZoom=void 0}}isActive(){for(const{handler:d}of this._handlers)if(d.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!r0(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(d,g,w){for(const A in d)if(A!==w&&(!g||g.indexOf(A)<0))return!0;return!1}handleWindowEvent(d){this.handleEvent(d,`${d.type}Window`)}_getMapTouches(d){const g=[];for(const w of d)this._el.contains(w.target)&&g.push(w);return g}handleEvent(d,g){this._updatingCamera=!0;const w=d.type==="renderFrame",A=w?void 0:d,j={needsRenderFrame:!1},R={},F={},$=d.touches?this._getMapTouches(d.touches):void 0,H=$?se(this._el,$):w?void 0:Q(this._el,d);for(const{handlerName:ee,handler:ne,allowed:le}of this._handlers){if(!ne.isEnabled())continue;let oe;this._blockedByActive(F,le,ee)?ne.reset():ne[g||d.type]&&(oe=ne[g||d.type](d,H,$),this.mergeHandlerResult(j,R,oe,ee,A),oe&&oe.needsRenderFrame&&this._triggerRenderFrame()),(oe||ne.isActive())&&(F[ee]=ne)}const Y={};for(const ee in this._previousActiveHandlers)F[ee]||(Y[ee]=A);this._previousActiveHandlers=F,(Object.keys(Y).length||n0(j))&&(this._changes.push([j,R,Y]),this._triggerRenderFrame()),(Object.keys(F).length||n0(j))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:te}=j;te&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],te(this._map))}mergeHandlerResult(d,g,w,A,j){if(!w)return;Object.assign(d,w);const R={handlerName:A,originalEvent:w.originalEvent||j};w.zoomDelta!==void 0&&(g.zoom=R),w.panDelta!==void 0&&(g.drag=R),w.pitchDelta!==void 0&&(g.pitch=R),w.bearingDelta!==void 0&&(g.rotate=R)}_applyChanges(){const d={},g={},w={};for(const[A,j,R]of this._changes)A.panDelta&&(d.panDelta=(d.panDelta||new s.P(0,0))._add(A.panDelta)),A.zoomDelta&&(d.zoomDelta=(d.zoomDelta||0)+A.zoomDelta),A.bearingDelta&&(d.bearingDelta=(d.bearingDelta||0)+A.bearingDelta),A.pitchDelta&&(d.pitchDelta=(d.pitchDelta||0)+A.pitchDelta),A.around!==void 0&&(d.around=A.around),A.aroundCoord!==void 0&&(d.aroundCoord=A.aroundCoord),A.pinchAround!==void 0&&(d.pinchAround=A.pinchAround),A.noInertia&&(d.noInertia=A.noInertia),Object.assign(g,j),Object.assign(w,R);this._updateMapTransform(d,g,w),this._changes=[]}_updateMapTransform(d,g,w){const A=this._map,j=A.transform,R=Ie=>[Ie.x,Ie.y,Ie.z];if((()=>{const Ie=this._eventsInProgress.drag;return Ie&&!this._handlersById[Ie.handlerName].isActive()})()&&!n0(d)){const Ie=j.zoom;j.cameraElevationReference="sea",this._originalZoom!=null&&j._orthographicProjectionAtLowPitch&&j.projection.name!=="globe"&&j.pitch===0?(j.cameraElevationReference="ground",j.zoom=this._originalZoom):(j.recenterOnTerrain(),j.cameraElevationReference="ground"),Ie!==j.zoom&&this._map._update(!0)}if(j._isCameraConstrained&&A._stop(!0),!n0(d))return void this._fireEvents(g,w,!0);let{panDelta:F,zoomDelta:$,bearingDelta:H,pitchDelta:Y,around:te,aroundCoord:ee,pinchAround:ne}=d;j._isCameraConstrained&&($>0&&($=0),j._isCameraConstrained=!1),ne!==void 0&&(te=ne),($||(Ie=>g[Ie]&&!this._eventsInProgress[Ie])("drag"))&&te&&(this._dragOrigin=R(j.pointCoordinate3D(te)),this._originalZoom=j.zoom,this._trackingEllipsoid.setup(j._camera.position,this._dragOrigin)),j.cameraElevationReference="sea",A._stop(!0),te=te||A.transform.centerPoint,H&&(j.bearing+=H),Y&&(j.pitch+=Y),j._updateCameraState();const le=[0,0,0];if(F)if(j.projection.name==="mercator"){const Ie=this._trackingEllipsoid.projectRay(j.screenPointToMercatorRay(te).dir),Ne=this._trackingEllipsoid.projectRay(j.screenPointToMercatorRay(te.sub(F)).dir);le[0]=Ne[0]-Ie[0],le[1]=Ne[1]-Ie[1]}else{const Ie=j.pointCoordinate(te);if(j.projection.name==="globe"){F=F.rotate(-j.angle);const Ne=j._pixelsPerMercatorPixel/j.worldSize;le[0]=-F.x*s.eQ(s.bV(Ie.y))*Ne,le[1]=-F.y*s.eQ(j.center.lat)*Ne}else{const Ne=j.pointCoordinate(te.sub(F));Ie&&Ne&&(le[0]=Ne.x-Ie.x,le[1]=Ne.y-Ie.y)}}const oe=j.zoom,me=[0,0,0];if($){const Ie=R(ee||j.pointCoordinate3D(te)),Ne={dir:s.ay([],s.ax([],Ie,j._camera.position))};if(Ne.dir[2]<0){const ve=j.zoomDeltaToMovement(Ie,$);s.bJ(me,Ne.dir,ve)}}const pe=s.cT(le,le,me);j._translateCameraConstrained(pe),$&&Math.abs(j.zoom-oe)>1e-4&&j.recenterOnTerrain(),j.cameraElevationReference="ground",this._map._update(),d.noInertia||this._inertia.record(d),this._fireEvents(g,w,!0)}_fireEvents(d,g,w){const A=r0(this._eventsInProgress),j=r0(d),R={};for(const Y in d){const{originalEvent:te}=d[Y];this._eventsInProgress[Y]||(R[`${Y}start`]=te),this._eventsInProgress[Y]=d[Y]}!A&&j&&this._fireEvent("movestart",j.originalEvent);for(const Y in R)this._fireEvent(Y,R[Y]);j&&this._fireEvent("move",j.originalEvent);for(const Y in d){const{originalEvent:te}=d[Y];this._fireEvent(Y,te)}const F={};let $;for(const Y in this._eventsInProgress){const{handlerName:te,originalEvent:ee}=this._eventsInProgress[Y];this._handlersById[te].isActive()||(delete this._eventsInProgress[Y],$=g[te]||ee,F[`${Y}end`]=$)}for(const Y in F)this._fireEvent(Y,F[Y]);const H=r0(this._eventsInProgress);if(w&&(A||j)&&!H){this._updatingCamera=!0;const Y=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),te=ee=>ee!==0&&-this._bearingSnap{this._frameId=void 0,this.handleEvent(new pj("renderFrame",{timeStamp:d})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}const oE="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class yj extends s.E{constructor(d,g){super(),this._moving=!1,this._zooming=!1,this.transform=d,this._bearingSnap=g.bearingSnap,this._respectPrefersReducedMotion=g.respectPrefersReducedMotion!==!1,s.aZ(["_renderFrameCallback"],this)}getCenter(){return new s.aU(this.transform.center.lng,this.transform.center.lat)}setCenter(d,g){return this.jumpTo({center:d},g)}panBy(d,g,w){return d=s.P.convert(d).mult(-1),this.panTo(this.transform.center,Object.assign({offset:d},g),w)}panTo(d,g,w){return this.easeTo(Object.assign({center:d},g),w)}getZoom(){return this.transform.zoom}setZoom(d,g){return this.jumpTo({zoom:d},g),this}zoomTo(d,g,w){return this.easeTo(Object.assign({zoom:d},g),w)}zoomIn(d,g){return this.zoomTo(this.getZoom()+1,d,g),this}zoomOut(d,g){return this.zoomTo(this.getZoom()-1,d,g),this}getBearing(){return this.transform.bearing}setBearing(d,g){return this.jumpTo({bearing:d},g),this}getPadding(){return this.transform.padding}setPadding(d,g){return this.jumpTo({padding:d},g),this}rotateTo(d,g,w){return this.easeTo(Object.assign({bearing:d},g),w)}resetNorth(d,g){return this.rotateTo(0,Object.assign({duration:1e3},d),g),this}resetNorthPitch(d,g){return this.easeTo(Object.assign({bearing:0,pitch:0,duration:1e3},d),g),this}snapToNorth(d,g){return Math.abs(this.getBearing())d.aspect?w/(2*Math.tan(.5*d.fovX)*d.aspect):A/(2*Math.tan(.5*d.fovY)*d.aspect)}_cameraForBoundsOnGlobe(d,g,w,A,j,R){const F=d.clone(),$=this._extendCameraOptions(R);F.bearing=A,F.pitch=j;const H=s.aU.convert(g),Y=s.aU.convert(w),te=.5*(H.lat+Y.lat),ee=.5*(H.lng+Y.lng),ne=s.eT(te,ee),le=s.ay([],ne),oe=s.ay([],s.bh([],le,[0,1,0])),me=s.bh([],oe,le),pe=[oe[0],oe[1],oe[2],0,me[0],me[1],me[2],0,le[0],le[1],le[2],0,0,0,0,1],Ie=[ne,s.eT(H.lat,H.lng),s.eT(Y.lat,H.lng),s.eT(Y.lat,Y.lng),s.eT(H.lat,Y.lng),s.eT(te,H.lng),s.eT(te,Y.lng),s.eT(H.lat,ee),s.eT(Y.lat,ee)];let Ne=s.cU.fromPoints(Ie.map(bt=>[s.bi(oe,bt),s.bi(me,bt),s.bi(le,bt)]));const ve=s.ah([],Ne.center,pe);s.eU(ve)===0&&s.eV(ve,0,0,1),s.ay(ve,ve),s.bJ(ve,ve,s.aF),F.center=s.eW(ve);const Ye=F.getWorldToCameraMatrix(),Be=s.b7(new Float64Array(16),Ye);Ne=s.cU.applyTransform(Ne,s.aD([],Ye,pe));const We=this._extendAABB(Ne,F,$,A);if(!We)return void s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.");Ne=We,s.ah(ve,ve,Ye);const Le=.5*(Ne.max[2]-Ne.min[2]),Fe=this._minimumAABBFrustumDistance(F,Ne),qe=s.bJ([],[0,0,1],Le),st=s.cT(qe,ve,qe),Qe=Fe+(F.pitch===0?0:s.bf(ve,st)),yt=F.globeCenterInViewSpace,ft=s.ax([],ve,[yt[0],yt[1],yt[2]]);s.ay(ft,ft),s.bJ(ft,ft,Qe);const Nt=s.cT([],ve,ft);s.ah(Nt,Nt,Be);const Ft=s.eD/s.aF,ot=s.ai(Nt),tt=s.bU(Math.max(ot*Ft-s.eD,Number.EPSILON),0),mt=Math.min(F.zoomFromMercatorZAdjusted(tt),$.maxZoom);return mt>.5*(s.cJ+s.cv)?(F.setProjection({name:"mercator"}),F.zoom=mt,this._cameraForBounds(F,g,w,A,j,R)):{center:F.center,zoom:mt,bearing:A,pitch:j}}_extendAABB(d,g,w,A){const j=.5*((w.padding.left||0)+(w.padding.right||0)),R=.5*((w.padding.top||0)+(w.padding.bottom||0)),F=R,$=j,H=j,Y=R,te=g.width-($+H),ee=g.height-(F+Y),ne=s.ax([],d.max,d.min),le=Math.min(te/ne[0],ee/ne[1]),oe=Math.min(g.scaleZoom(g.scale*le),w.maxZoom);if(isNaN(oe))return null;const me=g.scale/g.zoomScale(oe),pe=new s.cU([d.min[0]-$*me,d.min[1]-Y*me,d.min[2]],[d.max[0]+H*me,d.max[1]+F*me,d.max[2]]),Ie=(typeof w.offset.x=="number"&&typeof w.offset.y=="number"?new s.P(w.offset.x,w.offset.y):s.P.convert(w.offset)).rotate(-s.ap(A));return pe.center[0]-=Ie.x*me,pe.center[1]+=Ie.y*me,pe}queryTerrainElevation(d,g){const w=this.transform.elevation;return w?(g=Object.assign({},{exaggerated:!0},g),w.getAtPoint(s.ag.fromLngLat(d),null,g.exaggerated)):null}_cameraForBounds(d,g,w,A,j,R){if(d.projection.name==="globe")return this._cameraForBoundsOnGlobe(d,g,w,A,j,R);const F=d.clone(),$=this._extendCameraOptions(R);F.bearing=A,F.pitch=j;const H=s.aU.convert(g),Y=s.aU.convert(w),te=new s.aU(H.lng,Y.lat),ee=new s.aU(Y.lng,H.lat),ne=F.project(H),le=F.project(Y),oe=this.queryTerrainElevation(H),me=this.queryTerrainElevation(Y),pe=this.queryTerrainElevation(te),Ie=this.queryTerrainElevation(ee),Ne=[[ne.x,ne.y,Math.min(oe||0,me||0,pe||0,Ie||0)],[le.x,le.y,Math.max(oe||0,me||0,pe||0,Ie||0)]];let ve=s.cU.fromPoints(Ne);const Ye=F.getWorldToCameraMatrix(),Be=s.b7(new Float64Array(16),Ye);ve=s.cU.applyTransform(ve,Ye);const We=this._extendAABB(ve,F,$,A);if(!We)return void s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.");ve=We;const Le=.5*s.ax([],ve.max,ve.min)[2],Fe=this._minimumAABBFrustumDistance(F,ve),qe=[0,0,1,0];s.aE(qe,qe,Ye),s.eX(qe,qe);const st=s.bJ([],qe,Fe+Le),Qe=s.cT([],ve.center,st);s.ah(ve.center,ve.center,Be),s.ah(Qe,Qe,Be);const yt=F.unproject(new s.P(ve.center[0],ve.center[1])),ft=s.eY(F.projection,yt),Nt=Math.pow(2,ft),Ft=Math.min(F._zoomFromMercatorZ(Qe[2]*F.pixelsPerMeter*Nt/F.worldSize),$.maxZoom);return F.mercatorFromTransition&&Ft<.5*(s.cJ+s.cv)?(F.setProjection({name:"globe"}),F.zoom=Ft,this._cameraForBounds(F,g,w,A,j,R)):{center:yt,zoom:Ft,bearing:A,pitch:j}}fitBounds(d,g,w){const A=this.cameraForBounds(d,g);return this._fitInternal(A,g,w)}fitScreenCoordinates(d,g,w,A,j){const R=s.P.convert(d),F=s.P.convert(g),$=new s.P(Math.min(R.x,F.x),Math.min(R.y,F.y)),H=new s.P(Math.max(R.x,F.x),Math.max(R.y,F.y));if(this.transform.projection.name==="mercator"&&this.transform.anyCornerOffEdge(R,F))return this;const Y=this.transform.pointLocation3D($),te=this.transform.pointLocation3D(H),ee=this.transform.pointLocation3D(new s.P($.x,H.y)),ne=this.transform.pointLocation3D(new s.P(H.x,$.y)),le=[Math.min(Y.lng,te.lng,ee.lng,ne.lng),Math.min(Y.lat,te.lat,ee.lat,ne.lat)],oe=[Math.max(Y.lng,te.lng,ee.lng,ne.lng),Math.max(Y.lat,te.lat,ee.lat,ne.lat)],me=A&&A.pitch?A.pitch:this.getPitch(),pe=this._cameraForBounds(this.transform,le,oe,w,me,A);return this._fitInternal(pe,A,j)}_fitInternal(d,g,w){return d?(g=Object.assign(d,g)).linear?this.easeTo(g,w):this.flyTo(g,w):this}jumpTo(d,g){this.stop();const w=d.preloadOnly?this.transform.clone():this.transform;let A=!1,j=!1,R=!1;"zoom"in d&&w.zoom!==+d.zoom&&(A=!0,w.zoom=+d.zoom),d.center!==void 0&&(w.center=s.aU.convert(d.center)),"bearing"in d&&w.bearing!==+d.bearing&&(j=!0,w.bearing=+d.bearing),"pitch"in d&&w.pitch!==+d.pitch&&(R=!0,w.pitch=+d.pitch);const F=typeof d.padding=="number"?this._extendPadding(d.padding):d.padding;if(d.padding!=null&&!w.isPaddingEqual(F))if(d.retainPadding===!1){const $=w.clone();$.padding=F,w.setLocationAtPoint(w.center,$.centerPoint)}else w.padding=F;return d.preloadOnly?(this._preloadTiles(w),this):(this.fire(new s.C("movestart",g)).fire(new s.C("move",g)),A&&this.fire(new s.C("zoomstart",g)).fire(new s.C("zoom",g)).fire(new s.C("zoomend",g)),j&&this.fire(new s.C("rotatestart",g)).fire(new s.C("rotate",g)).fire(new s.C("rotateend",g)),R&&this.fire(new s.C("pitchstart",g)).fire(new s.C("pitch",g)).fire(new s.C("pitchend",g)),this.fire(new s.C("moveend",g)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||s.w(oE),this.transform.getFreeCameraOptions()}setFreeCameraOptions(d,g){const w=this.transform;if(!w.projection.supportsFreeCamera)return s.w(oE),this;this.stop();const A=w.zoom,j=w.pitch,R=w.bearing;w.setFreeCameraOptions(d);const F=A!==w.zoom,$=j!==w.pitch,H=R!==w.bearing;return this.fire(new s.C("movestart",g)).fire(new s.C("move",g)),F&&this.fire(new s.C("zoomstart",g)).fire(new s.C("zoom",g)).fire(new s.C("zoomend",g)),H&&this.fire(new s.C("rotatestart",g)).fire(new s.C("rotate",g)).fire(new s.C("rotateend",g)),$&&this.fire(new s.C("pitchstart",g)).fire(new s.C("pitch",g)).fire(new s.C("pitchend",g)),this.fire(new s.C("moveend",g)),this}easeTo(d,g){this._stop(!1,d.easeId),((d=Object.assign({offset:[0,0],duration:500,easing:s.eP},d)).animate===!1||this._prefersReducedMotion(d))&&(d.duration=0);const w=this.transform,A=this.getZoom(),j=this.getBearing(),R=this.getPitch(),F=this.getPadding(),$="zoom"in d?+d.zoom:A,H="bearing"in d?this._normalizeBearing(d.bearing,j):j,Y="pitch"in d?+d.pitch:R,te=this._extendPadding(d.padding),ee=s.P.convert(d.offset);let ne,le,oe;if(w.projection.name==="globe"){const qe=s.ag.fromLngLat(w.center),st=ee.rotate(-w.angle);qe.x+=st.x/w.worldSize,qe.y+=st.y/w.worldSize;const Qe=qe.toLngLat(),yt=s.aU.convert(d.center||Qe);this._normalizeCenter(yt),ne=w.centerPoint.add(st),le=new s.P(qe.x,qe.y).mult(w.worldSize),oe=new s.P(s.aH(yt.lng),s.aL(yt.lat)).mult(w.worldSize).sub(le)}else{ne=w.centerPoint.add(ee);const qe=w.pointLocation(ne),st=s.aU.convert(d.center||qe);this._normalizeCenter(st),le=w.project(qe),oe=w.project(st).sub(le)}const me=w.zoomScale($-A);let pe,Ie;d.around&&(pe=s.aU.convert(d.around),Ie=w.locationPoint(pe));const Ne=this._zooming||$!==A,ve=this._rotating||j!==H,Ye=this._pitching||Y!==R,Be=!w.isPaddingEqual(te),We=d.retainPadding===!1?w.clone():w,Le=qe=>st=>{if(Ne&&(qe.zoom=s.am(A,$,st)),ve&&(qe.bearing=s.am(j,H,st)),Ye&&(qe.pitch=s.am(R,Y,st)),Be&&(We.interpolatePadding(F,te,st),ne=We.centerPoint.add(ee)),pe)qe.setLocationAtPoint(pe,Ie);else{const Qe=qe.zoomScale(qe.zoom-A),yt=$>A?Math.min(2,me):Math.max(.5,me),ft=Math.pow(yt,1-st),Nt=qe.unproject(le.add(oe.mult(st*ft)).mult(Qe));qe.setLocationAtPoint(qe.renderWorldCopies?Nt.wrap():Nt,ne)}return d.preloadOnly||this._fireMoveEvents(g),qe};if(d.preloadOnly){const qe=this._emulate(Le,d.duration,w);return this._preloadTiles(qe),this}const Fe={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=Ne,this._rotating=ve,this._pitching=Ye,this._padding=Be,this._easeId=d.easeId,this._prepareEase(g,d.noMoveStart,Fe),this._ease(Le(w),qe=>{w.cameraElevationReference==="sea"&&w.recenterOnTerrain(),this._afterEase(g,qe)},d),this}_prepareEase(d,g,w={}){this._moving=!0,this.transform.cameraElevationReference="sea",this.transform._orthographicProjectionAtLowPitch&&this.transform.pitch===0&&this.transform.projection.name!=="globe"&&(this.transform.cameraElevationReference="ground"),g||w.moving||this.fire(new s.C("movestart",d)),this._zooming&&!w.zooming&&this.fire(new s.C("zoomstart",d)),this._rotating&&!w.rotating&&this.fire(new s.C("rotatestart",d)),this._pitching&&!w.pitching&&this.fire(new s.C("pitchstart",d))}_fireMoveEvents(d){this.fire(new s.C("move",d)),this._zooming&&this.fire(new s.C("zoom",d)),this._rotating&&this.fire(new s.C("rotate",d)),this._pitching&&this.fire(new s.C("pitch",d))}_afterEase(d,g){if(this._easeId&&g&&this._easeId===g)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";const w=this._zooming,A=this._rotating,j=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,w&&this.fire(new s.C("zoomend",d)),A&&this.fire(new s.C("rotateend",d)),j&&this.fire(new s.C("pitchend",d)),this.fire(new s.C("moveend",d))}flyTo(d,g){if(this._prefersReducedMotion(d)){const bt=s.aJ(d,["center","zoom","bearing","pitch","around","padding","retainPadding"]);return this.jumpTo(bt,g)}this.stop(),d=Object.assign({offset:[0,0],speed:1.2,curve:1.42,easing:s.eP},d);const w=this.transform,A=this.getZoom(),j=this.getBearing(),R=this.getPitch(),F=this.getPadding(),$="zoom"in d?s.aC(+d.zoom,w.minZoom,w.maxZoom):A,H="bearing"in d?this._normalizeBearing(d.bearing,j):j,Y="pitch"in d?+d.pitch:R,te=this._extendPadding(d.padding),ee=w.zoomScale($-A),ne=s.P.convert(d.offset);let le=w.centerPoint.add(ne);const oe=w.pointLocation(le),me=s.aU.convert(d.center||oe);this._normalizeCenter(me);const pe=w.project(oe),Ie=w.project(me).sub(pe);let Ne=d.curve;const ve=Math.max(w.width,w.height),Ye=ve/ee,Be=Ie.mag();if("minZoom"in d){const bt=s.aC(Math.min(d.minZoom,A,$),w.minZoom,w.maxZoom),Et=ve/w.zoomScale(bt-A);Ne=Math.sqrt(Et/Be*2)}const We=Ne*Ne;function Le(bt){const Et=(Ye*Ye-ve*ve+(bt?-1:1)*We*We*Be*Be)/(2*(bt?Ye:ve)*We*Be);return Math.log(Math.sqrt(Et*Et+1)-Et)}function Fe(bt){return(Math.exp(bt)-Math.exp(-bt))/2}function qe(bt){return(Math.exp(bt)+Math.exp(-bt))/2}const st=Le(0);let Qe=function(bt){return qe(st)/qe(st+Ne*bt)},yt=function(bt){return ve*((qe(st)*(Fe(Et=st+Ne*bt)/qe(Et))-Fe(st))/We)/Be;var Et},ft=(Le(1)-st)/Ne;if(Math.abs(Be)<1e-6||!isFinite(ft)){if(Math.abs(ve-Ye)<1e-6)return this.easeTo(d,g);const bt=Yed.maxDuration&&(d.duration=0);const Nt=j!==H,Ft=Y!==R,ot=!w.isPaddingEqual(te),tt=d.retainPadding===!1?w.clone():w,mt=bt=>Et=>{const tr=Et*ft,Vt=1/Qe(tr);bt.zoom=Et===1?$:A+bt.scaleZoom(Vt),Nt&&(bt.bearing=s.am(j,H,Et)),Ft&&(bt.pitch=s.am(R,Y,Et)),ot&&(tt.interpolatePadding(F,te,Et),le=tt.centerPoint.add(ne));const qt=Et===1?me:bt.unproject(pe.add(Ie.mult(yt(tr))).mult(Vt));return bt.setLocationAtPoint(bt.renderWorldCopies?qt.wrap():qt,le),bt._updateCameraOnTerrain(),d.preloadOnly||this._fireMoveEvents(g),bt};if(d.preloadOnly){const bt=this._emulate(mt,d.duration,w);return this._preloadTiles(bt),this}return this._zooming=!0,this._rotating=Nt,this._pitching=Ft,this._padding=ot,this._prepareEase(g,!1),this._ease(mt(w),()=>this._afterEase(g),d),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_requestRenderFrame(d){}_cancelRenderFrame(d){}_stop(d,g){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const w=this._onEaseEnd;this._onEaseEnd=void 0,w.call(this,g)}if(!d){const w=this.handlers;w&&w.stop(!1)}return this}_ease(d,g,w){w.animate===!1||w.duration===0?(d(1),g()):(this._easeStart=s.o.now(),this._easeOptions=w,this._onEaseFrame=d,this._onEaseEnd=g,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const d=Math.min((s.o.now()-this._easeStart)/this._easeOptions.duration,1),g=this._onEaseFrame;g&&g(this._easeOptions.easing(d)),d<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(d,g){d=s.bs(d,-180,180);const w=Math.abs(d-g);return Math.abs(d-360-g)180?-360:w<-180?360:0}_prefersReducedMotion(d){return this._respectPrefersReducedMotion&&s.o.prefersReducedMotion&&!(d&&d.essential)}_emulate(d,g,w){const A=Math.ceil(15*g/1e3),j=[],R=d(w.clone());for(let F=0;F<=A;F++){const $=R(F/A);j.push($.clone())}return j}_preloadTiles(d,g){}}class lE{constructor(d={}){this.options=d,s.aZ(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(d){const g=this.options&&this.options.compact,w=d._getUIString("AttributionControl.ToggleAttribution");this._map=d,this._container=N("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=N("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._compactButton.setAttribute("aria-label",w);const A=N("span","mapboxgl-ctrl-icon",this._compactButton);return A.setAttribute("aria-hidden","true"),A.setAttribute("title",w),this._innerContainer=N("div","mapboxgl-ctrl-attrib-inner",this._container),g&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),g===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let d=this._editLink;d||(d=this._editLink=this._container.querySelector(".mapbox-improve-map"));const g=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||s.g.ACCESS_TOKEN}];if(d){const w=g.reduce((A,j,R)=>(j.value&&(A+=`${j.key}=${j.value}${RA.length-j.length),d=d.filter((A,j)=>{for(let R=j+1;R=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?d=[...this.options.customAttribution,...d]:d.unshift(this.options.customAttribution));const w=d.map(A=>function(j){const R=new DOMParser().parseFromString(j,"text/html");return Array.from(R.body.querySelectorAll("*")).reverse().forEach(F=>{const $=F.textContent||"";if(F.tagName!=="A")return void F.replaceWith(...F.childNodes);const H=F.getAttribute("href");if(!H||!/^(https?:|mailto:)/i.test(H))return void F.replaceWith(R.createTextNode($));const Y=R.createElement("a");Y.href=H,Y.textContent=$,Y.rel="noopener nofollow";const te=F.getAttribute("class");te&&(Y.className=te),F.replaceWith(Y)}),R.body.innerHTML}(A)).join(" | ");w!==this._attribHTML&&(this._attribHTML=w,d.length?(this._innerContainer.innerHTML=w,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}}class cE{constructor(){s.aZ(["_updateLogo","_updateCompact"],this)}onAdd(d){this._map=d,this._container=N("div","mapboxgl-ctrl");const g=N("a","mapboxgl-ctrl-logo");return g.target="_blank",g.rel="noopener nofollow",g.href="https://www.mapbox.com/",g.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),g.setAttribute("rel","noopener nofollow"),this._container.appendChild(g),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(d){d&&d.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const d=this._map.style._sourceCaches;if(Object.entries(d).length===0)return!0;for(const g in d){const w=d[g].getSource();if(w.hasOwnProperty("mapbox_logo")&&!w.mapbox_logo)return!1}return!0}_updateCompact(){const d=this._container.children;if(d.length){const g=d[0];this._map.getCanvasContainer().offsetWidth<250?g.classList.add("mapboxgl-compact"):g.classList.remove("mapboxgl-compact")}}}class xj{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(d){const g=++this._id;return this._queue.push({callback:d,id:g,cancelled:!1}),g}remove(d){const g=this._currentlyRunning,w=g?this._queue.concat(g):this._queue;for(const A of w)if(A.id===d)return void(A.cancelled=!0)}run(d=0){const g=this._currentlyRunning=this._queue;this._queue=[];for(const w of g)if(!w.cancelled&&(w.callback(d),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}class O3{constructor(d){this.jumpTo(d)}getValue(d){if(d<=this._startTime)return this._start;if(d>=this._endTime)return this._end;const g=s.dn((d-this._startTime)/(this._endTime-this._startTime));return this._start*(1-g)+this._end*g}isEasing(d){return d>=this._startTime&&d<=this._endTime}jumpTo(d){this._startTime=-1/0,this._endTime=-1/0,this._start=d,this._end=d}easeTo(d,g,w){this._start=this.getValue(g),this._end=d,this._startTime=g,this._endTime=g+w}}const F3={"AttributionControl.ToggleAttribution":"Toggle attribution","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox homepage","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use ⌘ + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"};class Si extends s.C{constructor(d,g,w,A){const{point:j,lngLat:R,originalEvent:F,target:$}=d;super(d.type,{point:j,lngLat:R,originalEvent:F,target:$}),this.preventDefault=()=>{d.preventDefault()},this.id=g,this.interaction=w,this.feature=A}}class Zv{constructor(d){this.map=d,this.interactionsByType=new Map,this.delegatedInteractions=new Map,this.typeById=new Map,this.filters=new Map,this.handleType=this.handleType.bind(this),this.handleMove=this.handleMove.bind(this),this.handleOut=this.handleOut.bind(this),this.hoveredFeatures=new Map,this.prevHoveredFeatures=new Map}add(d,g){if(this.typeById.has(d))throw new Error(`Interaction id "${d}" already exists.`);const w=g.filter;let A=g.type;w&&this.filters.set(d,s.dg(w)),A==="mouseover"&&(A="mouseenter"),A==="mouseout"&&(A="mouseleave");const j=this.interactionsByType.get(A)||new Map;A==="mouseenter"||A==="mouseleave"?(this.delegatedInteractions.size===0&&(this.map.on("mousemove",this.handleMove),this.map.on("mouseout",this.handleOut)),this.delegatedInteractions.set(d,g)):j.size===0&&this.map.on(A,this.handleType),j.size===0&&this.interactionsByType.set(A,j),j.set(d,g),this.typeById.set(d,A)}get(d){const g=this.typeById.get(d);if(!g)return;const w=this.interactionsByType.get(g);return w?w.get(d):void 0}remove(d){const g=this.typeById.get(d);if(!g)return;this.typeById.delete(d),this.filters.delete(d);const w=this.interactionsByType.get(g);w&&(w.delete(d),g==="mouseenter"||g==="mouseleave"?(this.delegatedInteractions.delete(d),this.delegatedInteractions.size===0&&(this.map.off("mousemove",this.handleMove),this.map.off("mouseout",this.handleOut))):w.size===0&&this.map.off(g,this.handleType))}queryTargets(d,g){const w=[];for(const[A,j]of g)j.target&&w.push({targetId:A,target:j.target,filter:this.filters.get(A)});return this.map.style.queryRenderedTargets(d,w,this.map.transform)}handleMove(d){this.prevHoveredFeatures=this.hoveredFeatures,this.hoveredFeatures=new Map;const g=this.queryTargets(d.point,Array.from(this.delegatedInteractions).reverse());g.length&&(d.type="mouseenter",this.handleType(d,g));const w=new Map;for(const[A,{feature:j}]of this.prevHoveredFeatures)this.hoveredFeatures.has(A)||w.set(j.id,j);w.size&&(d.type="mouseleave",this.handleType(d,Array.from(w.values())))}handleOut(d){const g=Array.from(this.hoveredFeatures.values()).map(({feature:w})=>w);g.length&&(d.type="mouseleave",this.handleType(d,g)),this.hoveredFeatures.clear()}handleType(d,g){const w=d.type==="mouseenter";if(w&&!this.interactionsByType.has(d.type))return void s.w("mouseenter interaction required for mouseleave to work.");const A=Array.from(this.interactionsByType.get(d.type)).reverse(),j=!!g;g=g||this.queryTargets(d.point,A);let R=!1;const F=new Set;for(const $ of g){for(const[H,Y]of A){if(!Y.target)continue;const te=$.variants?$.variants[H]:null;if(te){for(const ee of te){if(pd(ee,$,F,H))continue;const ne=new s.di($,ee),le=VS(ee,$,H);j&&ne.id!==void 0&&(ne.state=this.map.getFeatureState(ne));const oe=w?this.prevHoveredFeatures.get(le):null,me=new Si(d,H,Y,ne),pe=oe?oe.stop:Y.handler(me);if(w&&this.hoveredFeatures.set(le,{feature:$,stop:pe}),pe!==!1){R=!0;break}}if(R)break}}if(R)break}if(!R)for(const[$,H]of A){const{handler:Y,target:te}=H;if(!te&&Y(new Si(d,$,H,null))!==!1)break}}}function B3(v,d){if(Array.isArray(v)&&Array.isArray(d)){const g=new Set(v),w=new Set(d);return g.size===w.size&&v.every(A=>w.has(A))}return s.b6(v,d)}const z3={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,antialias:!1,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,useServerFontComposition:!0,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0,collectResourceTiming:!1,testMode:!1,precompilePrograms:!0,scaleFactor:1},$3={showCompass:!0,showZoom:!0,visualizePitch:!1};class i0{constructor(d,g,w=!1){this._clickTolerance=10,this.element=g,this.mouseRotate=new qv({clickTolerance:d.dragRotate._mouseRotate._clickTolerance}),this.map=d,w&&(this.mousePitch=new Jx({clickTolerance:d.dragRotate._mousePitch._clickTolerance})),s.aZ(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),g.addEventListener("mousedown",this.mousedown),g.addEventListener("touchstart",this.touchstart,{passive:!1}),g.addEventListener("touchmove",this.touchmove),g.addEventListener("touchend",this.touchend),g.addEventListener("touchcancel",this.reset)}down(d,g){this.mouseRotate.mousedown(d,g),this.mousePitch&&this.mousePitch.mousedown(d,g),V()}move(d,g){const w=this.map,A=this.mouseRotate.mousemoveWindow(d,g),j=A&&A.bearingDelta;if(j&&w.setBearing(w.getBearing()+j),this.mousePitch){const R=this.mousePitch.mousemoveWindow(d,g),F=R&&R.pitchDelta;F&&w.setPitch(w.getPitch()+F)}}off(){const d=this.element;d.removeEventListener("mousedown",this.mousedown),d.removeEventListener("touchstart",this.touchstart),d.removeEventListener("touchmove",this.touchmove),d.removeEventListener("touchend",this.touchend),d.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){G(),window.removeEventListener("mousemove",this.mousemove),window.removeEventListener("mouseup",this.mouseup)}mousedown(d){this.down(Object.assign({},d,{button:d.button,type:d.type,ctrlKey:!0,preventDefault:()=>d.preventDefault()}),Q(this.element,d)),window.addEventListener("mousemove",this.mousemove),window.addEventListener("mouseup",this.mouseup)}mousemove(d){this.move(d,Q(this.element,d))}mouseup(d){this.mouseRotate.mouseupWindow(d),this.mousePitch&&this.mousePitch.mouseupWindow(d),this.offTemp()}touchstart(d){d.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=se(this.element,d.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>d.preventDefault()},this._startPos))}touchmove(d){d.targetTouches.length!==1?this.reset():(this._lastPos=se(this.element,d.targetTouches)[0],this.move({buttons:1,preventDefault:()=>d.preventDefault()},this._lastPos))}touchend(d){d.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)g.width||d.y>g.height;g.locationPoint3D(w).distSqr(d)180;){const w=g.locationPoint3D(v);if(w.x>=0&&w.y>=0&&w.x<=g.width&&w.y<=g.height)break;v.lng>g.center.lng?v.lng-=360:v.lng+=360}return v}const s0={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"},Sc={rotation:0,rotationAlignment:"auto",pitchAlignment:"auto",occludedOpacity:.2,altitude:0};class uu extends s.E{constructor(d,g){super(),(d instanceof HTMLElement||g)&&(d=Object.assign({element:d},g)),s.aZ(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this);const{anchor:w="center",color:A="#3FB1CE",scale:j=1,draggable:R=!1,clickTolerance:F=0,rotation:$=Sc.rotation,rotationAlignment:H=Sc.rotationAlignment,pitchAlignment:Y=Sc.pitchAlignment,occludedOpacity:te=Sc.occludedOpacity,altitude:ee=Sc.altitude}=d||{};this._anchor=w,this._color=A,this._scale=j,this._draggable=R,this._clickTolerance=F,this._rotation=$,this._rotationAlignment=H,this._pitchAlignment=Y,this._occludedOpacity=te,this._altitude=ee,this._state="inactive",this._isDragging=!1,this._updateMoving=()=>this._update(!0),d&&d.element?(this._element=d.element,this._offset=s.P.convert(d&&d.offset||[0,0])):(this._defaultMarker=!0,this._element=this._createDefaultMarker(),this._offset=s.P.convert(d&&d.offset||[0,-14])),this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.hasAttribute("role")||this._element.setAttribute("role","img"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",oe=>{oe.preventDefault()}),this._element.addEventListener("mousedown",oe=>{oe.preventDefault()});const ne=this._element.classList;for(const oe in s0)ne.remove(`mapboxgl-marker-anchor-${oe}`);ne.add(`mapboxgl-marker-anchor-${this._anchor}`);const le=d&&d.className?d.className.trim().split(/\s+/):[];ne.add(...le),this._popup=null}_createDefaultMarker(){const d=N("div"),g=L("svg",{display:"block",height:41*this._scale+"px",width:27*this._scale+"px",viewBox:"0 0 27 41"},d);if(this._altitude===0){const w=L("radialGradient",{id:"shadowGradient"},L("defs",{},g));L("stop",{offset:"10%","stop-opacity":.4},w),L("stop",{offset:"100%","stop-opacity":.05},w),L("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},g)}return L("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},g),L("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},g),L("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},g),d}addTo(d){return d===this._map||(this.remove(),this._map=d,d.getCanvasContainer().appendChild(this._element),d.on("move",this._updateMoving),d.on("moveend",this._update),d.on("remove",this._clearFadeTimer),d._addMarker(this),this.setDraggable(this._draggable),this._update(),d.on("click",this._onMapClick)),this}remove(){const d=this._map;return d&&(d.off("click",this._onMapClick),d.off("move",this._updateMoving),d.off("moveend",this._update),d.off("mousedown",this._addDragHandler),d.off("touchstart",this._addDragHandler),d.off("mouseup",this._onUp),d.off("touchend",this._onUp),d.off("mousemove",this._onMove),d.off("touchmove",this._onMove),d.off("remove",this._clearFadeTimer),d._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(d){return this._lngLat=s.aU.convert(d),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}setAltitude(d){return d===this._altitude||(this._defaultMarker&&(this._altitude===0&&d!==0||this._altitude!==0&&d===0)&&(this._element=this._createDefaultMarker()),this._altitude=d||Sc.altitude,this._update()),this}getAltitude(){return this._altitude}getElement(){return this._element}setPopup(d){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),d){if(!("offset"in d.options)){const A=Math.sqrt(Math.pow(13.5,2)/2);d.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[A,-1*(38.1-13.5+A)],"bottom-right":[-A,-1*(38.1-13.5+A)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=d,d._marker=this,d._altitude=this._altitude,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(d){const g=d.code,w=d.charCode||d.keyCode;g!=="Space"&&g!=="Enter"&&w!==32&&w!==13||this.togglePopup()}_onMapClick(d){const g=d.originalEvent.target,w=this._element;this._popup&&(g===w||w.contains(g))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const d=this._popup;return d?(d.isOpen()?(d.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(d.addTo(this._map),this._element.setAttribute("aria-expanded","true")),this):this}_behindTerrain(){const d=this._map,g=this._pos;if(!d||!g)return!1;const w=d.unproject(g,this._altitude),A=d.getFreeCameraOptions();if(!A.position)return!1;const j=A.position.toLngLat();return j.distanceTo(w)<.9*j.distanceTo(this._lngLat)}_evaluateOpacity(){const d=this._map;if(!d)return;const g=this._pos;if(!g||g.x<0||g.x>d.transform.width||g.y<0||g.y>d.transform.height)return void this._clearFadeTimer();const w=d.unproject(g,this._altitude);let A;d._showingGlobe()&&s.e$(d.transform,this._lngLat)?A=0:(A=1-d._queryFogOpacity(w),d.transform._terrainEnabled()&&d.getTerrain()&&this._behindTerrain()&&(A*=this._occludedOpacity)),this._element.style.opacity=`${A}`,this._element.style.pointerEvents=A>0?"auto":"none",this._popup&&this._popup._setOpacity(A),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){const d=this._pos;if(!d||!this._map)return;const g=this._offset.mult(this._scale);this._element.style.transform=` translate(${d.x}px,${d.y}px) ${s0[this._anchor]} ${this._calculateXYTransform()} ${this._calculateZTransform()} translate(${g.x}px,${g.y}px) `}_calculateXYTransform(){const d=this._pos,g=this._map,w=this.getPitchAlignment();if(!g||!d||w!=="map")return"";if(!g._showingGlobe()){const $=g.getPitch();return $?`rotateX(${$}deg)`:""}const A=s.cH(s.f0(g.transform,this._lngLat)),j=d.sub(s.f1(g.transform)),R=Math.abs(j.x)+Math.abs(j.y);if(R===0)return"";const F=A/R;return`rotateX(${-j.y*F}deg) rotateY(${j.x*F}deg)`}_calculateZTransform(){const d=this._pos,g=this._map;if(!g||!d)return"";let w=0;const A=this.getRotationAlignment();if(A==="map")if(g._showingGlobe()){const j=g.project(new s.aU(this._lngLat.lng,this._lngLat.lat+.001),this._altitude),R=g.project(new s.aU(this._lngLat.lng,this._lngLat.lat-.001),this._altitude).sub(j);w=s.cH(Math.atan2(R.y,R.x))-90}else w=-g.getBearing();else if(A==="horizon"){const j=s.aj(4,6,g.getZoom()),R=s.f1(g.transform);R.y+=j*g.transform.height;const F=d.sub(R),$=s.cH(Math.atan2(F.y,F.x));w=($>90?$-270:$+90)*(1-j)}return w+=this._rotation,w?`rotateZ(${w}deg)`:""}_update(d){cancelAnimationFrame(this._updateFrameId);const g=this._map;g&&(g.transform.renderWorldCopies&&(this._lngLat=uE(this._lngLat,this._pos,g.transform)),this._pos=g.project(this._lngLat,this._altitude),d===!0?this._updateFrameId=requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),g._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(g._showingGlobe()||g.getTerrain()||g.getFog())&&!this._fadeTimer&&(this._fadeTimer=window.setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(d){return this._offset=s.P.convert(d),this._update(),this}addClassName(d){return this._element.classList.add(d),this}removeClassName(d){return this._element.classList.remove(d),this}toggleClassName(d){return this._element.classList.toggle(d)}_onMove(d){const g=this._map;if(!g)return;const w=this._pointerdownPos,A=this._positionDelta;if(w&&A){if(!this._isDragging){const j=this._clickTolerance||g._clickTolerance;if(d.point.dist(w)v.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(v.minPitch!=null&&v.maxPitch!=null&&v.minPitch>v.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(v.minPitch!=null&&v.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(v.maxPitch!=null&&v.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");v.antialias&&s.eZ(window)&&(v.antialias=!1,s.w("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new Ex(v.minZoom,v.maxZoom,v.minPitch,v.maxPitch,v.renderWorldCopies,null,null),v),this._repaint=!!v.repaint,this._interactive=v.interactive,this._minTileCacheSize=v.minTileCacheSize,this._maxTileCacheSize=v.maxTileCacheSize,this._failIfMajorPerformanceCaveat=v.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=v.preserveDrawingBuffer,this._antialias=v.antialias,this._trackResize=v.trackResize,this._bearingSnap=v.bearingSnap,this._refreshExpiredTiles=v.refreshExpiredTiles,this._fadeDuration=v.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=v.crossSourceCollisions,this._collectResourceTiming=v.collectResourceTiming,this._language=this._parseLanguage(v.language),this._worldview=v.worldview,this._renderTaskQueue=new xj,this._domRenderTaskQueue=new xj,this._controls=[],this._markers=[],this._popups=[],this._mapId=s.r(),this._locale=Object.assign({},F3,v.locale),this._clickTolerance=v.clickTolerance,this._cooperativeGestures=v.cooperativeGestures,this._performanceMetricsCollection=v.performanceMetricsCollection,this._tessellationStep=v.tessellationStep,this._containerWidth=0,this._containerHeight=0,this._showParseStatus=!0,this._precompilePrograms=v.precompilePrograms,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new O3(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._frameId=0,this._scaleFactor=v.scaleFactor,this._requestManager=new we(v.transformRequest,v.accessToken,v.testMode);const g=je(v.accessToken||s.g.ACCESS_TOKEN);if(g&&"atlas"in g&&typeof g.atlas=="number"&&(this._tokenExpiration=g.atlas),this._silenceAuthErrors=!!v.testMode,this._contextCreateOptions=v.contextCreateOptions?Object.assign({},v.contextCreateOptions):{},typeof v.container=="string"){const w=document.getElementById(v.container);if(!w)throw new Error(`Container '${v.container.toString()}' not found.`);this._container=w}else{if(!(v.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=v.container}if(this._container.childNodes.length>0&&s.w("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),v.maxBounds&&this.setMaxBounds(v.maxBounds),this._spriteFormat="auto",s.aZ(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");if(this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this._fullscreenchangeEvent="onfullscreenchange"in document?"fullscreenchange":"webkitfullscreenchange",window.addEventListener("online",this._onWindowOnline,!1),window.addEventListener("resize",this._onWindowResize,!1),window.addEventListener("orientationchange",this._onWindowResize,!1),window.addEventListener(this._fullscreenchangeEvent,this._onWindowResize,!1),window.addEventListener("visibilitychange",this._onVisibilityChange,!1),this.handlers=new gj(this,v),this._localFontFamily=v.localFontFamily,this._localIdeographFontFamily=v.localIdeographFontFamily,this._useServerFontComposition=v.useServerFontComposition,(v.style||!v.testMode)&&this.setStyle(v.style||s.g.DEFAULT_STYLE,{config:v.config,localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily,useServerFontComposition:this._useServerFontComposition}),v.projection&&this.setProjection(v.projection),v.hash&&(this._hash=new D3(typeof v.hash=="string"&&v.hash||void 0).addTo(this)),!this._hash||!this._hash._onHashChange()){d.center==null&&d.zoom==null||(this.transform._unmodified=!1),this.jumpTo({center:v.center,zoom:v.zoom,bearing:v.bearing,pitch:v.pitch});const w=v.bounds;w&&(this.resize(),this.fitBounds(w,Object.assign({},v.fitBoundsOptions,{duration:0})))}this.resize(),v.attributionControl&&this.addControl(new lE({customAttribution:v.customAttribution})),this._logoControl=new cE,this.addControl(this._logoControl,v.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this._postStyleLoadEvent(),this._postStyleWithAppearanceEvent()}),this.on("data",w=>{this._update(w.dataType==="style"),this.fire(new s.C(`${w.dataType}data`,w))}),this.on("dataloading",w=>{this.fire(new s.C(`${w.dataType}dataloading`,w))}),this._interactions=new Zv(this)}_getMapId(){return this._mapId}addControl(v,d){if(d===void 0&&(d=v.getDefaultPosition?v.getDefaultPosition():"top-right"),!v||!v.onAdd)return this.fire(new s.B(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const g=v.onAdd(this);this._controls.push(v);const w=this._controlPositions[d];return d.indexOf("bottom")!==-1?w.insertBefore(g,w.firstChild):w.appendChild(g),this}removeControl(v){if(!v||!v.onRemove)return this.fire(new s.B(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const d=this._controls.indexOf(v);return d>-1&&this._controls.splice(d,1),v.onRemove(this),this}hasControl(v){return this._controls.indexOf(v)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(v){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const d=!this._moving;return d&&this.fire(new s.C("movestart",v)).fire(new s.C("move",v)),this.fire(new s.C("resize",v)),d&&this.fire(new s.C("moveend",v)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(v){return this.transform.setMaxBounds(s.aK.convert(v)),this._update()}setMinZoom(v){if((v=v??-2)>=-2&&v<=this.transform.maxZoom)return this.transform.minZoom=v,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=v,this._update(),this.getZoom()>v?this.setZoom(v):this.fire(new s.C("zoomstart")).fire(new s.C("zoom")).fire(new s.C("zoomend")),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(v){if((v=v??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(v>=0&&v<=this.transform.maxPitch)return this.transform.minPitch=v,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(v>=this.transform.minPitch)return this.transform.maxPitch=v,this._update(),this.getPitch()>v?this.setPitch(v):this.fire(new s.C("pitchstart")).fire(new s.C("pitch")).fire(new s.C("pitchend")),this;throw new Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getScaleFactor(){return this._scaleFactor}setScaleFactor(v){return this._scaleFactor=v,this.painter.scaleFactor=v,this.style&&this.style._setLabelPlacementStale(),this.style._updateFilteredLayers(d=>d.type==="symbol"),this._update(!0),this}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(v){return this.transform.renderWorldCopies=v,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(v){return v==="auto"?navigator.language:Array.isArray(v)?v.length===0?void 0:v.map(d=>d==="auto"?navigator.language:d):v}setLanguage(v){const d=this._parseLanguage(v);if(!this.style||d===this._language)return this;this._language=d,this.style.reloadSources();for(const g of this._controls)g._setLanguage&&g._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(v){return this.style&&v!==this._worldview?(this._worldview=v,this._styleDirty=!0,this.style.setWorldview(v),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name==="globe"}setProjection(v){return this._lazyInitEmptyStyle(),v?typeof v=="string"&&(v={name:v}):v=null,this._useExplicitProjection=!!v,this._prioritizeAndUpdateProjection(v,this.style.projection)}_updateProjectionTransition(){if(this.getProjection().name!=="globe")return;const v=this.transform,d=v.projection.name;let g;d==="globe"&&v.zoom>=s.cv?(v.setMercatorFromTransition(),g=!0):d==="mercator"&&v.zoom=s.cv?this.transform.setMercatorFromTransition():this.transform.setProjection(v),this.style.applyProjectionUpdate();const w=this.transform.getProjection().name==="mercator"&&g!==this.transform.mercatorFromTransition;return(d||w)&&(this.painter.clearBackgroundTiles(),this.style.clearSources(),this._update(!0),this._forceMarkerAndPopupUpdate(!0)),this}project(v,d){return this.transform.locationPoint3D(s.aU.convert(v),d)}unproject(v,d){return this.transform.pointLocation3D(s.P.convert(v),d)}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(v,d,g){const w=A=>{let j=[];if(Array.isArray(d)){const R=d.filter(F=>this.getLayer(F));j=R.length?this.queryRenderedFeatures(A,{layers:R}):[]}else j=this.queryRenderedFeatures(A,{target:d});return j};if(v==="mouseenter"||v==="mouseover"){let A=!1;return{listener:g,targets:d,delegates:{mousemove:R=>{const F=w(R.point);F.length?A||(A=!0,g.call(this,new xo(v,this,R.originalEvent,{features:F}))):A=!1},mouseout:()=>{A=!1}}}}if(v==="mouseleave"||v==="mouseout"){let A=!1;return{listener:g,targets:d,delegates:{mousemove:F=>{w(F.point).length?A=!0:A&&(A=!1,g.call(this,new xo(v,this,F.originalEvent)))},mouseout:F=>{A&&(A=!1,g.call(this,new xo(v,this,F.originalEvent)))}}}}{const A=j=>{const R=w(j.point);R.length&&(j.features=R,g.call(this,j),delete j.features)};return{listener:g,targets:d,delegates:{[v]:A}}}}on(v,d,g){if(typeof d=="function"||g===void 0)return super.on(v,d);if(typeof d=="string"&&(d=[d]),!this._areTargetsValid(d))return this;const w=this._createDelegatedListener(v,d,g);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[v]=this._delegatedListeners[v]||[],this._delegatedListeners[v].push(w);for(const A in w.delegates)this.on(A,w.delegates[A]);return this}once(v,d,g){if(typeof d=="function"||g===void 0)return super.once(v,d);if(typeof d=="string"&&(d=[d]),!this._areTargetsValid(d))return this;const w=this._createDelegatedListener(v,d,g);for(const A in w.delegates)this.once(A,w.delegates[A]);return this}off(v,d,g){if(typeof d=="function"||g===void 0)return super.off(v,d);if(typeof d=="string"&&(d=[d]),!this._areTargetsValid(d))return this;const w=this._delegatedListeners?this._delegatedListeners[v]:void 0;return w&&(A=>{for(let j=0;j{if(g){const A=typeof g=="string"?g:g instanceof Error?g.message:g.error;s.w(`Unable to perform style diff: ${A}. Rebuilding the style from scratch.`),this._updateStyle(v,d)}else w&&this._update(!0)},()=>this._postStyleLoadEvent()),this):(this._localIdeographFontFamily=d.localIdeographFontFamily,this._localFontFamily=d.localFontFamily,this._updateStyle(v,d))}_getUIString(v){const d=this._locale[v];if(d==null)throw new Error(`Missing UI string '${v}'`);return d}_updateStyle(v,d){if(this.style&&(this.style.setEventedParent(null),this.style._remove(),this.style=void 0),v){const g=Object.assign({},d);d&&d.config&&(g.initialConfig=d.config,delete g.config),this.style=new ou(this,g).load(v),this.style.setEventedParent(this,{style:this.style})}return this._updateTerrain(),this}_lazyInitEmptyStyle(){this.style||(this.style=new ou(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(s.w("There is no style added to the map."),!1)}_isValidId(v){return v==null?(this.fire(new s.B(new Error("IDs can't be empty."))),!1):!s.db(v)||(this.fire(new s.B(new Error(`IDs can't contain special symbols: "${v}".`))),!1)}_isTargetValid(v){return"featuresetId"in v?this._isValidId("importId"in v?v.importId:v.featuresetId):"layerId"in v&&this._isValidId(v.layerId)}_areTargetsValid(v){if(Array.isArray(v)){for(const d of v)if(!this._isValidId(d))return!1;return!0}return this._isTargetValid(v)}addSource(v,d){return this._isValidId(v)?(this._lazyInitEmptyStyle(),this.style.addSource(v,d),this._update(!0)):this}isSourceLoaded(v){return!!this._isValidId(v)&&!!this.style&&this.style._isSourceCacheLoaded(v)}areTilesLoaded(){return this.style.areTilesLoaded()}addSourceType(v,d,g){this._lazyInitEmptyStyle(),this.style.addSourceType(v,d,g)}removeSource(v){return this._isValidId(v)?(this.style.removeSource(v),this._updateTerrain(),this._update(!0)):this}getSource(v){return this._isValidId(v)?this.style.getOwnSource(v):null}addImage(v,d,{pixelRatio:g=1,sdf:w=!1,stretchX:A,stretchY:j,content:R}={}){this._lazyInitEmptyStyle();const F=s.I.from(v);if(d instanceof HTMLImageElement||ImageBitmap&&d instanceof ImageBitmap){const{width:$,height:H,data:Y}=s.o.getImageData(d);this.style.addImage(F,{data:new s.q({width:$,height:H},Y),pixelRatio:g,stretchX:A,stretchY:j,content:R,sdf:w,version:0,usvg:!1})}else if(d.width===void 0||d.height===void 0)this.fire(new s.B(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));else{const{width:$,height:H}=d,Y=d;this.style.addImage(F,{data:new s.q({width:$,height:H},new Uint8Array(Y.data)),pixelRatio:g,stretchX:A,stretchY:j,content:R,sdf:w,usvg:!1,version:0,userImage:Y}),Y.onAdd&&Y.onAdd(this,v)}}updateImage(v,d){this._lazyInitEmptyStyle();const g=s.I.from(v),w=this.style.getImage(g);if(!w)return void this.fire(new s.B(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const A=d instanceof HTMLImageElement||ImageBitmap&&d instanceof ImageBitmap?s.o.getImageData(d):d,{width:j,height:R,data:F}=A;if(j===void 0||R===void 0)return void this.fire(new s.B(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(j!==(w.usvg?w.icon.usvg_tree.width:w.data.width)||R!==(w.usvg?w.icon.usvg_tree.height:w.data.height))return void this.fire(new s.B(new Error(`The width and height of the updated image (${j}, ${R}) must be that same as the previous version of the image (${w.data.width}, ${w.data.height})`)));const $=!(d instanceof HTMLImageElement||ImageBitmap&&d instanceof ImageBitmap);let H=!1;w.usvg?(w.data=new s.q({width:j,height:R},new Uint8Array(F)),w.usvg=!1,w.icon=void 0,H=!0):w.data.replace(F,$),this.style.updateImage(g,w,H)}hasImage(v){return v?!!this.style&&!!this.style.getImage(s.I.from(v)):(this.fire(new s.B(new Error("Missing required image id"))),!1)}removeImage(v){this.style.removeImage(s.I.from(v))}loadImage(v,d){s.n(this._requestManager.transformRequest(v,s.R.Image),(g,w)=>{d(g,w)})}listImages(){return this.style.listImages().map(v=>v.name)}addModel(v,d){this._lazyInitEmptyStyle(),this.style.addModel(v,d)}hasModel(v){return v?this.style.hasModel(v):(this.fire(new s.B(new Error("Missing required model id"))),!1)}removeModel(v){this.style.removeModel(v)}listModels(){return this.style.listModels()}addLayer(v,d){return this._isValidId(v.id)?(this._lazyInitEmptyStyle(),this.style.addLayer(v,d),this._update(!0)):this}getSlot(v){const d=this.getLayer(v);return d&&d.slot||null}setSlot(v,d){return this.style.setSlot(v,d),this.style.mergeLayers(),this._update(!0)}addImport(v,d){return this.style.addImport(v,d).catch(g=>this.fire(new s.B(new Error("Failed to add import",g)))),this}updateImport(v,d){return typeof d!="string"&&d.id!==v?(this.removeImport(v),this.addImport(d)):(this.style.updateImport(v,d),this._update(!0))}removeImport(v){return this.style.removeImport(v),this}moveImport(v,d){return this.style.moveImport(v,d),this._update(!0)}moveLayer(v,d){return this._isValidId(v)?(this.style.moveLayer(v,d),this._update(!0)):this}removeLayer(v){return this._isValidId(v)?(this.style.removeLayer(v),this._update(!0)):this}getLayer(v){if(!this._isValidId(v))return null;const d=this.style.getOwnLayer(v);return d?d.type==="custom"?d.implementation:d.serialize():void 0}getSlots(){return this.style.getSlots()}setLayerZoomRange(v,d,g){return this._isValidId(v)?(this.style.setLayerZoomRange(v,d,g),this._update(!0)):this}setFilter(v,d,g={}){return this._isValidId(v)?(this.style.setFilter(v,d,g),this._update(!0)):this}getFilter(v){return this._isValidId(v)?this.style.getFilter(v):null}setPaintProperty(v,d,g,w={}){return this._isValidId(v)?(this.style.setPaintProperty(v,d,g,w),this._update(!0)):this}getPaintProperty(v,d){return this._isValidId(v)?this.style.getPaintProperty(v,d):null}setLayoutProperty(v,d,g,w={}){return this._isValidId(v)?(this.style.setLayoutProperty(v,d,g,w),this._update(!0)):this}getLayoutProperty(v,d){return this._isValidId(v)?this.style.getLayoutProperty(v,d):null}setLayerProperty(v,d,g,w={}){return this._isValidId(v)?(d==="appearances"&&this._postAddingAppearancesToStyleEvent(),this.style.setLayerProperty(v,d,g,w),this._update(!0)):this}getGlyphsUrl(){return this.style.getGlyphsUrl()}setGlyphsUrl(v){return this.style.setGlyphsUrl(v),this._update(!0)}getSchema(v){return this.style.getSchema(v)}setSchema(v,d){return this.style.setSchema(v,d),this._update(!0)}getConfig(v){return this.style.getConfig(v)}setConfig(v,d){return this.style.setConfig(v,d),this._update(!0)}getConfigProperty(v,d){return this.style.getConfigProperty(v,d)}setConfigProperty(v,d,g){return this.style.setConfigProperty(v,d,g),this._update(!0)}getFeaturesetDescriptors(v){return this.style.getFeaturesetDescriptors(v)}setLights(v){if(this._lazyInitEmptyStyle(),v&&v.length===1&&v[0].type==="flat"){const d=v[0];d.properties?this.style.setFlatLight(d.properties,d.id,{}):this.style.setFlatLight({},"flat")}else this.style.setLights(v),this.painter.terrain&&(this.painter.terrain.invalidateRenderCache=!0);return this._update(!0)}getLights(){const v=this.style.getLights()||[];return v.length===0&&v.push({id:this.style.light.id,type:"flat",properties:this.style.getFlatLight()}),v}setLight(v,d={}){return console.log("The `map.setLight` function is deprecated, prefer using `map.setLights` with `flat` light type instead."),this.setLights([{id:"flat",type:"flat",properties:v}])}getLight(){return console.log("The `map.getLight` function is deprecated, prefer using `map.getLights` instead."),this.style.getFlatLight()}setTerrain(v){return this._lazyInitEmptyStyle(),!v&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(v),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(v){return this._lazyInitEmptyStyle(),this.style.setFog(v),this._update(!0)}getFog(){return this.style?this.style.getFog():null}setSnow(v){return this._lazyInitEmptyStyle(),this.style.setSnow(v),this._update(!0)}getSnow(){return this.style?this.style.getSnow():null}setRain(v){return this._lazyInitEmptyStyle(),this.style.setRain(v),this._update(!0)}getRain(){return this.style?this.style.getRain():null}setColorTheme(v){return this._lazyInitEmptyStyle(),this.style.setColorTheme(v),this._update(!0)}setImportColorTheme(v,d){return this._lazyInitEmptyStyle(),this.style.setImportColorTheme(v,d),this._update(!0)}setCamera(v){return this.style.setCamera(v),this._triggerCameraUpdate(v)}getNearClipOffset(){return this.transform.nearClipOffset}setNearClipOffset(v){const d=this.transform.nearClipOffset!==v;return this.transform.nearClipOffset=v,this._update(d)}_triggerCameraUpdate(v){return this._update(this.transform.setOrthographicProjectionAtLowPitch(v["camera-projection"]==="orthographic"))}getCamera(){return this.style.camera}_queryFogOpacity(v){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(s.aU.convert(v),this.transform):0}setFeatureState(v,d){return v.source&&!this._isValidId(v.source)?this:(this.style.setFeatureState(v,d),this._update())}removeFeatureState(v,d){return v.source&&!this._isValidId(v.source)?this:(this.style.removeFeatureState(v,d),this._update())}getFeatureState(v){return v.source&&!this._isValidId(v.source)?null:this.style.getFeatureState(v)}_selectIndoorFloor(v){this.style.indoorManager.selectFloor(v)}_setIndoorActiveFloorsVisibility(v){this.style.indoorManager.setActiveFloorsVisibility(v)}getIndoorTileOptions(v,d){return this.style.isIndoorEnabled()?this.style.indoorManager.getIndoorTileOptions(v,d):null}_updateContainerDimensions(){if(!this._container)return;const v=this._container.getBoundingClientRect().width||400,d=this._container.getBoundingClientRect().height||300;let g,w,A,j=this._container;for(;j&&(!w||!A);){const R=window.getComputedStyle(j).transform;R&&R!=="none"&&(g=R.match(/matrix.*\((.+)\)/)[1].split(", "),g[0]&&g[0]!=="0"&&g[0]!=="1"&&(w=g[0]),g[3]&&g[3]!=="0"&&g[3]!=="1"&&(A=g[3])),j=j.parentElement}this._containerWidth=w?Math.abs(v/w):v,this._containerHeight=A?Math.abs(d/A):d}_detectMissingCSS(){window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&s.w("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){const v=this._container;v.classList.add("mapboxgl-map"),(this._missingCSSCanary=N("div","mapboxgl-canary",v)).style.visibility="hidden",this._detectMissingCSS();const d=this._canvasContainer=N("div","mapboxgl-canvas-container",v);this._canvas=N("canvas","mapboxgl-canvas",d),this._interactive&&(d.classList.add("mapboxgl-interactive"),this._canvas.setAttribute("tabindex","0")),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const g=this._controlContainer=N("div","mapboxgl-control-container",v),w=this._controlPositions={};["top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"].forEach(A=>{w[A]=N("div",`mapboxgl-ctrl-${A}`,g)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(v,d){const g=s.o.devicePixelRatio||1;this._canvas.width=g*Math.ceil(v),this._canvas.height=g*Math.ceil(d),this._canvas.style.width=`${v}px`,this._canvas.style.height=`${d}px`}_addMarker(v){this._markers.push(v)}_removeMarker(v){const d=this._markers.indexOf(v);d!==-1&&this._markers.splice(d,1)}_addPopup(v){this._popups.push(v)}_removePopup(v){const d=this._popups.indexOf(v);d!==-1&&this._popups.splice(d,1)}_setupPainter(){const v=Object.assign({},C.supported.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),d=this._canvas.getContext("webgl2",v);d?(jr(d,!0),this.painter=new L3(d,this._contextCreateOptions,this.transform,this._scaleFactor,this._worldview),this.on("data",g=>{if(g.dataType==="source"){const w=this.transform.elevation?this.transform.elevation._source():null;w&&g.sourceCacheId===w.id&&this.style&&this.style._setLabelPlacementStale(),this.painter.setTileLoadedFlag(!0)}}),s.k.testSupport(d)):this.fire(new s.B(new Error("Failed to initialize WebGL")))}_contextLost(v){v.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new s.C("webglcontextlost",{originalEvent:v}))}_contextRestored(v){this._setupPainter(),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight)),this._updateTerrain(),this.style&&(this.style.clearLayers(),this.style.imageManager.destroyAtlasTextures(),this.style.imageManager.imageAtlasCache.destroyTextures(),this.style.reloadModels(),this.style.clearSources()),this._update(),this.fire(new s.C("webglcontextrestored",{originalEvent:v}))}_onMapScroll(v){if(v.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}idle(){return!this.isMoving()&&this.loaded()}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}frameReady(){return this.loaded()&&!this._placementDirty}_update(v){return this.style?(this._styleDirty=this._styleDirty||v,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(v){return this._update(),this._renderTaskQueue.add(v)}_cancelRenderFrame(v){this._renderTaskQueue.remove(v)}_requestDomTask(v){!this.loaded()||this.loaded()&&!this.isMoving()?v():this._domRenderTaskQueue.add(v)}_render(v){let d;this.fire(new s.C("renderstart")),++this._frameId;const g=this.painter.context.extTimerQuery,w=s.o.now(),A=this.painter.context.gl;if(this.listens("gpu-timing-frame")&&(d=A.createQuery(),A.beginQuery(g.TIME_ELAPSED_EXT,d)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],performance.now())),this._renderTaskQueue.run(v),this._domRenderTaskQueue.run(v),this._removed)return;this._updateProjectionTransition();const j=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const $=this.transform.zoom,H=this.transform.pitch,Y=s.o.now(),te=new s.ae($,{now:Y,fadeDuration:j,pitch:H,transition:this.style.transition,worldview:this._worldview});this.style.update(te)}this.style&&this.style.hasFogTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let R=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),R=this._updateAverageElevation(w),this.style.updateSources(this.transform),this.style.updateImageProviders(),this.isMoving()||this._forceMarkerAndPopupUpdate()):R=this._updateAverageElevation(w),this.style&&(this._placementDirty=this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,j,this._crossSourceCollisions,this.painter.replacementSource)),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showParseStatus:this.showParseStatus,wireframe:{terrain:this.showTerrainWireframe,layers2D:this.showLayers2DWireframe,layers3D:this.showLayers3DWireframe},showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:j,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new s.C("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,x.mark(m.load),this.fire(new s.C("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&(this.style.snow||this.style.rain)&&(this._styleDirty=!0),this.style&&this.style.imageManager.hasPatternsInFlight()&&(this._styleDirty=!0),this.style&&!this.style.modelManager.isLoaded()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),d){const $=s.o.now()-w;A.endQuery(g.TIME_ELAPSED_EXT),setTimeout(()=>{const H=A.getQueryParameter(d,A.QUERY_RESULT)/1e6;A.deleteQuery(d),this.fire(new s.C("gpu-timing-frame",{cpuTime:$,gpuTime:H}))},50)}if(this.listens("gpu-timing-layer")){const $=this.painter.collectGpuTimers();setTimeout(()=>{const H=this.painter.queryGpuTimers($);this.fire(new s.C("gpu-timing-layer",{layerTimes:H}))},50)}if(this.listens("gpu-timing-deferred-render")){const $=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{const H=this.painter.queryGpuTimeDeferredRender($);this.fire(new s.C("gpu-timing-deferred-render",{gpuTime:H}))},50)}const F=this._sourcesDirty||this._styleDirty||this._placementDirty||R;if(F||this._repaint)this.triggerRepaint();else{const $=this.idle();if($&&(R=this._updateAverageElevation(w,!0)),R)this.triggerRepaint();else if(this._triggerFrame(!1),$&&(this.fire(new s.C("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const H=this._calculateSpeedIndex();this.fire(new s.C("speedindexcompleted",{speedIndex:H})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||F||(this._fullyLoaded=!0,x.mark(m.fullLoad),this._performanceMetricsCollection&&_r(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(v){for(const d of this._markers)v&&!this.getRenderWorldCopies()&&(d._lngLat=d._lngLat.wrap()),d._update();for(const d of this._popups)!v||this.getRenderWorldCopies()||d._trackPointer||(d._lngLat=d._lngLat.wrap()),d._update()}_updateAverageElevation(v,d=!1){const g=A=>(this.transform.averageElevation=A,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&g(0);const w=this.transform.elevation&&this.transform.elevation.exaggeration()!==this._averageElevationExaggeration;if(w||(d||v-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(v)){const A=this.transform.averageElevation;let j=this.transform.sampleAverageElevation();this.transform.elevation!=null&&(this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(j)?j=0:this._averageElevationLastSampledAt=v;const R=Math.abs(A-j);if(R>1){if(this._isInitialLoad||w)return this._averageElevation.jumpTo(j),g(j);this._averageElevation.easeTo(j,v,300)}else if(R>1e-4)return this._averageElevation.jumpTo(j),g(j)}return!!this._averageElevation.isEasing(v)&&g(this._averageElevation.getValue(v))}_isTokenExpired(){return this._tokenExpiration!=null&&Date.now()>this._tokenExpiration}_revokeAuth(){const v=this.painter.context.gl;jr(v,!1),this._logoControl instanceof cE&&this._logoControl._updateLogo(),v&&v.clear(v.DEPTH_BUFFER_BIT|v.COLOR_BUFFER_BIT|v.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new s.B(new Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}_authenticate(){or(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,v=>{v&&(v.message!==Te&&v.status!==401||this._revokeAuth())}),this._isTokenExpired()&&this._revokeAuth(),xt(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_postStyleLoadEvent(){this.style.globalId&&Xt(this._requestManager._customAccessToken,{map:this,style:this.style.globalId,importedStyles:this.style.getImportGlobalIds()})}_postStyleWithAppearanceEvent(){this.style.globalId&&this.style.hasAppearances()&&Rt(this._requestManager._customAccessToken)}_postAddingAppearancesToStyleEvent(){vt(this._requestManager._customAccessToken)}_updateTerrain(){const v=this._isDragging();this.painter.updateTerrain(this.style,v)}_calculateSpeedIndex(){const v=this.painter.canvasCopy(),d=this.painter.getCanvasCopiesAndTimestamps();d.timeStamps.push(performance.now());const g=this.painter.context.gl,w=g.createFramebuffer();function A(j){g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,j,0);const R=new Uint8Array(g.drawingBufferWidth*g.drawingBufferHeight*4);return g.readPixels(0,0,g.drawingBufferWidth,g.drawingBufferHeight,g.RGBA,g.UNSIGNED_BYTE,R),R}return g.bindFramebuffer(g.FRAMEBUFFER,w),this._canvasPixelComparison(A(v),d.canvasCopies.map(A),d.timeStamps)}_canvasPixelComparison(v,d,g){let w=g[1]-g[0];const A=v.length/4;for(let j=0;j{const g=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,g&&this._render(d)}))}_preloadTiles(v){const d=this.style?this.style.getSourceCaches():[];return s.t(d,(g,w)=>g._preloadTiles(v,w),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(v){this._trackResize&&this.resize({originalEvent:v})._update()}_onVisibilityChange(){document.visibilityState==="hidden"&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(v){this._showTileBoundaries!==v&&(this._showTileBoundaries=v,this._update())}get showParseStatus(){return!!this._showParseStatus}set showParseStatus(v){this._showParseStatus!==v&&(this._showParseStatus=v,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(v){this._showTerrainWireframe!==v&&(this._showTerrainWireframe=v,this._update())}get showLayers2DWireframe(){return!!this._showLayers2DWireframe}set showLayers2DWireframe(v){this._showLayers2DWireframe!==v&&(this._showLayers2DWireframe=v,this._update())}get showLayers3DWireframe(){return!!this._showLayers3DWireframe}set showLayers3DWireframe(v){this._showLayers3DWireframe!==v&&(this._showLayers3DWireframe=v,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(v){this._speedIndexTiming!==v&&(this._speedIndexTiming=v,this._update())}get showPadding(){return!!this._showPadding}set showPadding(v){this._showPadding!==v&&(this._showPadding=v,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(v){this._showCollisionBoxes!==v&&(this._showCollisionBoxes=v,this.style&&v?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(v){this._showOverdrawInspector!==v&&(this._showOverdrawInspector=v,this._update())}get repaint(){return!!this._repaint}set repaint(v){this._repaint!==v&&(this._repaint=v,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(v){this._vertices=v,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(v){this._showTileAABBs!==v&&(this._showTileAABBs=v,v&&this._update())}_setCacheLimits(v,d){s.e_(v,d)}get version(){return f}},NavigationControl:class{constructor(v={}){this.options=Object.assign({},$3,v),this._container=N("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",d=>d.preventDefault()),this.options.showZoom&&(s.aZ(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",d=>{this._map&&this._map.zoomIn({},{originalEvent:d})}),N("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",d=>{this._map&&this._map.zoomOut({},{originalEvent:d})}),N("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(s.aZ(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",d=>{const g=this._map;g&&(this.options.visualizePitch?g.resetNorthPitch({},{originalEvent:d}):g.resetNorth({},{originalEvent:d}))}),this._compassIcon=N("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){const v=this._map;if(!v)return;const d=v.getZoom(),g=d===v.getMaxZoom(),w=d===v.getMinZoom();this._zoomInButton.disabled=g,this._zoomOutButton.disabled=w,this._zoomInButton.setAttribute("aria-disabled",g.toString()),this._zoomOutButton.setAttribute("aria-disabled",w.toString())}_rotateCompassArrow(){const v=this._map;if(!v)return;const d=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(v.transform.pitch*(Math.PI/180)),.5)}) rotateX(${v.transform.pitch}deg) rotateZ(${v.transform.angle*(180/Math.PI)}deg)`:`rotate(${v.transform.angle*(180/Math.PI)}deg)`;v._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=d)})}onAdd(v){return this._map=v,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),v.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&v.on("pitch",this._rotateCompassArrow),v.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new i0(v,this._compass,this.options.visualizePitch)),this._container}onRemove(){const v=this._map;v&&(this._container.remove(),this.options.showZoom&&v.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&v.off("pitch",this._rotateCompassArrow),v.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(v,d){const g=N("button",v,this._container);return g.type="button",g.addEventListener("click",d),g}_setButtonTitle(v,d){if(!this._map)return;const g=this._map._getUIString(`NavigationControl.${d}`);v.setAttribute("aria-label",g),v.firstElementChild&&v.firstElementChild.setAttribute("title",g)}},GeolocateControl:class extends s.E{constructor(v={}){super();const d=navigator.geolocation;this.options=Object.assign({geolocation:d},a0,v),s.aZ(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=WT(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(v){return this._map=v,this._container=N("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._clearRequestTimeout(),this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(v){const d=(g=!!this.options.geolocation)=>{this._supportsGeolocation=g,v(g)};this._supportsGeolocation!==void 0?v(this._supportsGeolocation):navigator.permissions!==void 0?navigator.permissions.query({name:"geolocation"}).then(g=>d(g.state!=="denied")).catch(()=>d()):d()}_isOutOfMapMaxBounds(v){const d=this._map.getMaxBounds(),g=v.coords;return!!d&&(g.longituded.getEast()||g.latituded.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(v){if(this._map){if(this._clearRequestTimeout(),this._isOutOfMapMaxBounds(v))return this._setErrorState(),this.fire(new s.C("outofmaxbounds",v)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=v,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this.options.followUserLocation?(this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active")):(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"));break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(v),this.options.followUserLocation&&(!this.options.trackUserLocation||this._watchState==="ACTIVE_LOCK")&&this._updateCamera(v),this.options.showUserLocation&&this._userLocationDotMarker.removeClassName("mapboxgl-user-location-dot-stale"),this.fire(new s.C("geolocate",Object.assign({coords:v.coords,timestamp:v.timestamp},v.toJSON?{toJSON:v.toJSON.bind(v)}:{}))),this._finish()}}_updateCamera(v){const d=new s.aU(v.coords.longitude,v.coords.latitude),g=v.coords.accuracy,w=this._map.getBearing(),A=Object.assign({bearing:w},this.options.fitBoundsOptions);this._map.fitBounds(d.toBounds(g),A,{geolocateSource:!0})}_updateMarker(v){if(v){const d=new s.aU(v.coords.longitude,v.coords.latitude);this._accuracyCircleMarker.setLngLat(d).addTo(this._map),this._userLocationDotMarker.setLngLat(d).addTo(this._map),this._accuracy=v.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const v=this._map.transform,d=s.bU(1,v._center.lat)*v.worldSize,g=Math.ceil(2*this._accuracy*d);this._circleElement.style.width=`${g}px`,this._circleElement.style.height=`${g}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading=="number"?(this._userLocationDotMarker.setRotation(this._heading),this._userLocationDotMarker.addClassName("mapboxgl-user-location-show-heading")):(this._userLocationDotMarker.removeClassName("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(v){if(this._map){if(this._clearRequestTimeout(),this.options.trackUserLocation)if(v.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const d=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",d),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",d),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(v.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._userLocationDotMarker.addClassName("mapboxgl-user-location-dot-stale"),this.fire(new s.C("error",{code:v.code,message:v.message,PERMISSION_DENIED:v.PERMISSION_DENIED,POSITION_UNAVAILABLE:v.POSITION_UNAVAILABLE,TIMEOUT:v.TIMEOUT})),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_startRequestTimeout(){this._clearRequestTimeout();const v=this.options.positionOptions.timeout;v&&(this._requestTimeoutId=window.setTimeout(()=>{this._onError({code:3,message:"Geolocation request timed out"})},v))}_clearRequestTimeout(){this._requestTimeoutId!==void 0&&(clearTimeout(this._requestTimeoutId),this._requestTimeoutId=void 0)}_setupUI(v){if(this._map!==void 0){if(this._container.addEventListener("contextmenu",d=>d.preventDefault()),this._geolocateButton=N("button","mapboxgl-ctrl-geolocate",this._container),N("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",v===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const d=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",d),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",d)}else{const d=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",d),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",d)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=N("div","mapboxgl-user-location"),this._dotElement.appendChild(N("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(N("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new uu({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=N("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new uu({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.showButton||(this._container.style.display="none"),this.options.trackUserLocation&&this._map.on("movestart",d=>{d.geolocateSource||this._watchState!=="ACTIVE_LOCK"||d.originalEvent&&d.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new s.C("trackuserlocationend")))})}}_onDeviceOrientation(v){this._userLocationDotMarker&&(v.webkitCompassHeading?this._heading=v.webkitCompassHeading:v.absolute===!0&&(this._heading=-1*v.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return s.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.C("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new s.C("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.C("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let v;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(v={maximumAge:6e5,timeout:0},this._noTimeout=!0):(v=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,v),this._startRequestTimeout(),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._startRequestTimeout(),this._timeoutId=window.setTimeout(this._finish,1e4);return!0}setFollowUserLocation(v){return this.options.followUserLocation=v??a0.followUserLocation,this.options.trackUserLocation&&this._watchState!=="OFF"&&(this.options.followUserLocation?this._watchState!=="BACKGROUND"&&this._watchState!=="BACKGROUND_ERROR"||(this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.C("trackuserlocationstart"))):this._watchState!=="ACTIVE_LOCK"&&this._watchState!=="ACTIVE_ERROR"||(this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this.fire(new s.C("trackuserlocationend")))),this}_addDeviceOrientationListener(){const v=()=>{const d="ondeviceorientationabsolute"in window?"deviceorientationabsolute":"deviceorientation";window.addEventListener(d,this._onDeviceOrientation)};typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(d=>{d==="granted"&&v()}).catch(console.error):v()}_clearWatch(){this._clearRequestTimeout(),this.options.geolocation.clearWatch(this._geolocationWatchID),window.removeEventListener("deviceorientation",this._onDeviceOrientation),window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:lE,ScaleControl:class{constructor(v={}){this.options=Object.assign({},la,v),s.aZ(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){const v=this.options.maxWidth||100,d=this._map,g=d._containerHeight/2,w=d._containerWidth/2-v/2,A=d.unproject([w,g]),j=d.unproject([w+v,g]),R=A.distanceTo(j);if(this.options.unit==="imperial"){const F=3.2808*R;F>5280?this._setScale(v,F/5280,"mile"):this._setScale(v,F,"foot")}else this.options.unit==="nautical"?this._setScale(v,R/1852,"nautical-mile"):R>=1e3?this._setScale(v,R/1e3,"kilometer"):this._setScale(v,R,"meter")}_setScale(v,d,g){this._map._requestDomTask(()=>{const w=function(j){const R=Math.pow(10,`${Math.floor(j)}`.length-1);let F=j/R;return F=F>=10?10:F>=5?5:F>=3?3:F>=2?2:F>=1?1:function($){const H=Math.pow(10,Math.ceil(-Math.log($)/Math.LN10));return Math.round($*H)/H}(F),R*F}(d),A=w/d;this._container.innerHTML=g!=="nautical-mile"?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"short",unit:g}).format(w):`${w} ${du[g]}`,this._container.style.width=v*A+"px"})}onAdd(v){return this._map=v,this._language=v.getLanguage(),this._container=N("div","mapboxgl-ctrl mapboxgl-ctrl-scale",v.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(v){this._language=v,this._update()}setUnit(v){this.options.unit=v,this._update()}},FullscreenControl:class{constructor(v={}){this._fullscreen=!1,v&&v.container&&(v.container instanceof HTMLElement?this._container=v.container:s.w("Full screen control 'container' must be a DOM element.")),s.aZ(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(v){return this._map=v,this._container||(this._container=this._map.getContainer()),this._controlContainer=N("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",s.w("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!document.fullscreenEnabled&&!document.webkitFullscreenEnabled)}_setupUI(){const v=this._fullscreenButton=N("button","mapboxgl-ctrl-fullscreen",this._controlContainer);N("span","mapboxgl-ctrl-icon",v).setAttribute("aria-hidden","true"),v.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const v=this._getTitle();this._fullscreenButton.setAttribute("aria-label",v),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",v)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(document.fullscreenElement||document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?document.exitFullscreen?document.exitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},IndoorControl:class{constructor(){s.aZ(["_onIndoorUpdate","_onStyleData","_scrollUp","_scrollDown","_toggleIndoor"],this),this._visibleFloorStart=0,this._lastSelectedFloorId=null}onAdd(v){return this._map=v,this._container=N("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.style.display="none",this._map.on("styledata",this._onStyleData),this._updateConnection(),this._container}_onStyleData(){this._updateConnection()}_updateConnection(){if(this._map&&this._map.style&&this._map.style.indoorManager){const v=this._map.style.indoorManager;v.off("selector-update",this._onIndoorUpdate),v.on("selector-update",this._onIndoorUpdate),this._onIndoorUpdate(v.getControlState())}}_createButton(v,d){const g=N("button",v,this._container);return g.type="button",g.addEventListener("click",d),g}_setButtonTitle(v,d){v.setAttribute("aria-label",d),v.textContent=d}onRemove(){this._container&&this._container.remove(),this._map&&(this._map.off("styledata",this._onStyleData),this._map.style&&this._map.style.indoorManager.off("selector-update",this._onIndoorUpdate),this._map=null)}getDefaultPosition(){return"top-right"}_onIndoorUpdate(v){if(!v||!v.floors||v.floors.length===0)return this._model=v,void(this._container.style.display="none");const d=this._model;this._model=v,this._container.style.display="inline-block";const g=!d||d.floors.length!==v.floors.length||d.floors.some((w,A)=>w.id!==v.floors[A].id);if(g&&(this._visibleFloorStart=0,this._lastSelectedFloorId=null),v.selectedFloorId){if(v.selectedFloorId!==this._lastSelectedFloorId||g){const w=v.floors.findIndex(A=>A.id===v.selectedFloorId);if(w!==-1){const A=v.floors.length;let j,R;A<=5?(j=0,R=A-1):this._visibleFloorStart===0?(j=0,R=3):this._visibleFloorStart>=A-3?(j=A-3-1,R=A-1):(j=this._visibleFloorStart,R=this._visibleFloorStart+3-1),wR&&(this._visibleFloorStart=w-2)}}this._lastSelectedFloorId=v.selectedFloorId}this._render()}_render(){if(!this._container||!this._model||!this._model.floors)return;this._container.innerHTML="";const v=this._createButton("mapboxgl-ctrl-indoor-toggle",this._toggleIndoor);N("span","mapboxgl-ctrl-icon",v).setAttribute("aria-hidden","true"),this._model.activeFloorsVisible||v.classList.add("mapboxgl-ctrl-level-button-selected"),this._container.appendChild(v);const d=this._model.floors,g=d.length;if(g<=5)return void d.forEach(R=>this._createFloorButton(R));const w=this._visibleFloorStart===0,A=this._visibleFloorStart>=g-3;if(w)this._createFloorButton(d[0]);else{const R=this._createButton("mapboxgl-ctrl-arrow-up",this._scrollUp);N("span","mapboxgl-ctrl-icon",R).setAttribute("aria-hidden","true"),this._container.appendChild(R)}let j=[];if(j=w?d.slice(1,4):A?d.slice(this._visibleFloorStart-1,this._visibleFloorStart+3-1):d.slice(this._visibleFloorStart,this._visibleFloorStart+3),j.forEach(R=>this._createFloorButton(R)),A)this._createFloorButton(d[g-1]);else{const R=this._createButton("mapboxgl-ctrl-arrow-down",this._scrollDown);N("span","mapboxgl-ctrl-icon",R).setAttribute("aria-hidden","true"),this._container.appendChild(R)}}_createFloorButton(v){const d=this._createButton("mapboxgl-ctrl-level-button",()=>{const j=v.id;this._model&&this._model.selectedFloorId===j&&this._model.activeFloorsVisible||this._map&&(this._model&&!this._model.activeFloorsVisible&&this._map.style&&this._map.style.indoorManager&&this._map.style.indoorManager.setActiveFloorsVisibility(!0),this._map._selectIndoorFloor(j))}),g=(v.name||"").trim(),w=v.zIndex.toString(),A=g?Array.from(g).slice(0,3).join(""):w;this._setButtonTitle(d,A),this._model&&this._model.activeFloorsVisible&&v.id===this._model.selectedFloorId&&d.classList.add("mapboxgl-ctrl-level-button-selected"),this._container&&this._container.appendChild(d)}_toggleIndoor(){this._map&&this._map.style&&this._map.style.indoorManager&&this._model&&this._model.activeFloorsVisible&&this._map.style.indoorManager.setActiveFloorsVisibility(!1)}_scrollUp(){if(this._visibleFloorStart>0){this._visibleFloorStart--,this._visibleFloorStart===1&&(this._visibleFloorStart=0);const v=this._model&&this._model.floors||[];if(v.length>3){const d=v.length-3;this._visibleFloorStart===d-1&&(this._visibleFloorStart=d-2)}this._render()}}_scrollDown(){if(this._model&&this._model.floors){const v=this._model.floors.length-3;this._visibleFloorStartv&&(this._visibleFloorStart=v),this._render())}}},Popup:class extends s.E{constructor(v){super(),this.options=Object.assign(Object.create(o0),v),this._altitude=this.options.altitude,s.aZ(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(v&&v.className?v.className.trim().split(/\s+/):[])}addTo(v){return this._map&&this.remove(),this._map=v,this.options.closeOnClick&&v.on("preclick",this._onClose),this.options.closeOnMove&&v.on("move",this._onClose),v.on("remove",this.remove),this._update(),v._addPopup(this),this._focusFirstElement(),this._trackPointer?(v.on("mousemove",this._onMouseEvent),v.on("mouseup",this._onMouseEvent),v._canvasContainer.classList.add("mapboxgl-track-pointer")):v.on("move",this._update),this.fire(new s.C("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const v=this._map;return v&&(v.off("move",this._update),v.off("move",this._onClose),v.off("preclick",this._onClose),v.off("click",this._onClose),v.off("remove",this.remove),v.off("mousemove",this._onMouseEvent),v.off("mouseup",this._onMouseEvent),v.off("drag",this._onMouseEvent),v._canvasContainer&&v._canvasContainer.classList.remove("mapboxgl-track-pointer"),v._removePopup(this),this._map=void 0),this.fire(new s.C("close")),this}getLngLat(){return this._lngLat}setLngLat(v){this._lngLat=s.aU.convert(v),this._pos=null,this._trackPointer=!1,this._update();const d=this._map;return d&&(d.on("move",this._update),d.off("mousemove",this._onMouseEvent),d._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}getAltitude(){return this._altitude}setAltitude(v){return this._altitude=v,this._update(),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const v=this._map;return v&&(v.off("move",this._update),v.on("mousemove",this._onMouseEvent),v.on("drag",this._onMouseEvent),v._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(v){return this.setDOMContent(document.createTextNode(v))}setHTML(v){const d=document.createDocumentFragment(),g=document.createElement("body");let w;for(g.innerHTML=v;w=g.firstChild,w;)d.appendChild(w);return this.setDOMContent(d)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(v){return this.options.maxWidth=v,this._update(),this}setDOMContent(v){let d=this._content;if(d)for(;d.hasChildNodes();)d.firstChild&&d.removeChild(d.firstChild);else d=this._content=N("div","mapboxgl-popup-content",this._container||void 0);if(d.appendChild(v),this.options.closeButton){const g=this._closeButton=N("button","mapboxgl-popup-close-button",d);g.type="button",g.setAttribute("aria-label","Close popup"),g.innerHTML='',g.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(v){return this._classList.add(v),this._updateClassList(),this}removeClassName(v){return this._classList.delete(v),this._updateClassList(),this}setOffset(v){return this.options.offset=v,this._update(),this}toggleClassName(v){let d;return this._classList.delete(v)?d=!1:(this._classList.add(v),d=!0),this._updateClassList(),d}_onMouseEvent(v){this._update(v.point)}_getAnchor(v){if(this.options.anchor)return this.options.anchor;const d=this._map,g=this._container,w=this._pos;if(!d||!g||!w)return"bottom";const A=g.offsetWidth,j=g.offsetHeight,R=w.xd.transform.width-A/2;if(w.y+vd.transform.height-j){if(R)return"bottom-left";if(F)return"bottom-right"}return R?"left":F?"right":"bottom"}_updateClassList(){const v=this._container;if(!v)return;const d=[...this._classList];d.push("mapboxgl-popup"),this._anchor&&d.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&d.push("mapboxgl-popup-track-pointer"),v.className=d.join(" ")}_update(v){const d=this._map,g=this._content;if(!d||!this._lngLat&&!this._trackPointer||!g)return;let w=this._container;if(w||(w=this._container=N("div","mapboxgl-popup",d.getContainer()),this._tip=N("div","mapboxgl-popup-tip",w),w.appendChild(g)),this.options.maxWidth&&w.style.maxWidth!==this.options.maxWidth&&(w.style.maxWidth=this.options.maxWidth),d.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=uE(this._lngLat,this._pos,d.transform)),!this._trackPointer||v){const A=this._pos=this._trackPointer&&v instanceof s.P?v:d.project(this._lngLat,this._altitude),j=Xv(this.options.offset),R=this._anchor=this._getAnchor(j.y),F=Xv(this.options.offset,R),$=A.add(F).round();d._requestDomTask(()=>{this._container&&R&&(this._container.style.transform=`${s0[R]} translate(${$.x}px,${$.y}px)`)})}if(!this._marker&&d._showingGlobe()){const A=s.e$(d.transform,this._lngLat)?0:1;this._setOpacity(A)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const v=this._container.querySelector(U3);v&&v.focus()}_onClose(){this.remove()}_setOpacity(v){this._container&&(this._container.style.opacity=`${v}`),this._content&&(this._content.style.pointerEvents=v?"auto":"none")}},Marker:uu,Style:ou,LngLat:s.aU,LngLatBounds:s.aK,Point:s.P,MercatorCoordinate:s.ag,FreeCameraOptions:Sx,Evented:s.E,config:s.g,prewarm:function(){Yn().acquire(cr)},clearPrewarmedResources:function(){const v=Rr;v&&(v.isPreloaded()&&v.numActive()===1?(v.release(cr),Rr=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return s.g.ACCESS_TOKEN},set accessToken(v){s.g.ACCESS_TOKEN=v},get baseApiUrl(){return s.g.API_URL},set baseApiUrl(v){s.g.API_URL=v},get workerCount(){return lr.workerCount},set workerCount(v){lr.workerCount=v},get maxParallelImageRequests(){return s.g.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(v){s.g.MAX_PARALLEL_IMAGE_REQUESTS=v},clearStorage(v){s.f7(v)},get workerUrl(){return Tt.workerUrl},set workerUrl(v){Tt.workerUrl=v},get workerClass(){return Tt.workerClass},set workerClass(v){Tt.workerClass=v},get workerParams(){return Tt.workerParams},set workerParams(v){Tt.workerParams=v},get dracoUrl(){return s.f6()},set dracoUrl(v){s.g.DRACO_URL=s.o.resolveURL(v)},get meshoptUrl(){return s.f5()},set meshoptUrl(v){const d=s.o.resolveURL(v);s.g.MESHOPT_URL=d,s.g.MESHOPT_SIMD_URL=d},get buildingGenUrl(){return s.f4()},set buildingGenUrl(v){s.g.BUILDING_GEN_URL=s.o.resolveURL(v)},setNow:s.o.setNow,restoreNow:s.o.restoreNow}});var c=i;return c})})(d_e);var JKe=d_e.exports;const Md=fs(JKe),Bte={coming_soon:"#3B82F6",office_exclusive:"#6366F1",temp_off_market:"#D97706",withdrawn:"#64748B",pre_market:"#06B6D4",active:"#10B981",price_improvement:"#F97316",under_contract:"#8B5CF6",sold:"#6B7280"},zte={coming_soon:"Coming Soon",office_exclusive:"Office Exclusive",temp_off_market:"Temporarily Off Market",withdrawn:"Withdrawn",pre_market:"Pre-Market",active:"Active",price_improvement:"Price Improvement",under_contract:"Under Contract",sold:"Sold"};function eYe(t){return t>=1e6?`$${(t/1e6).toFixed(1)}M`:`$${(t/1e3).toFixed(0)}K`}function tYe({listings:t,isLoading:e}){const r=$a(),n=P.useRef(null),i=P.useRef(null),a=P.useRef([]),[c,s]=P.useState(""),[f,m]=P.useState(!0);return P.useEffect(()=>{(async()=>{m(!0);try{const{data:T}=await De.from("settings").select("value").eq("key","mapbox_public_token").maybeSingle();T!=null&&T.value&&s(T.value)}catch(T){console.error("Error fetching mapbox token:",T)}m(!1)})()},[]),P.useEffect(()=>{if(!n.current||!c||i.current)return;Md.accessToken=c;const _=t.filter(C=>C.latitude!=null&&C.longitude!=null);let T=[-98.5795,39.8283],E=4;if(_.length>0){const C=_.reduce((L,M)=>L+M.longitude,0)/_.length,N=_.reduce((L,M)=>L+M.latitude,0)/_.length;T=[C,N],E=_.length===1?12:10}return i.current=new Md.Map({container:n.current,style:"mapbox://styles/mapbox/light-v11",zoom:E,center:T}),i.current.addControl(new Md.NavigationControl,"top-right"),()=>{var C;(C=i.current)==null||C.remove(),i.current=null}},[c]),P.useEffect(()=>{if(!i.current||!c)return;a.current.forEach(T=>T.remove()),a.current=[];const _=t.filter(T=>T.latitude!=null&&T.longitude!=null);if(_.forEach(T=>{var V,G,W;const E=Bte[T.status]||"#10B981",C=((V=T.photos)==null?void 0:V.find(Z=>Z.is_primary))||((G=T.photos)==null?void 0:G[0]),L=window.location.hostname==="listings.relevelup.com"||window.location.hostname.startsWith("listings.")?`/${T.slug||T.id}`:`/public/listing/${T.slug||T.id}`,M=document.createElement("div");M.className="cursor-pointer",M.innerHTML=`
`;const D=new Md.Popup({offset:25,closeButton:!0,maxWidth:"280px"}).setHTML(`
${C!=null&&C.photo_url?``:""}
${eYe(T.price)}
${T.property_address||""}
${T.city}, ${T.state}
${zte[T.status]||T.status} ${T.bedrooms?`${T.bedrooms} bed`:""} ${T.bathrooms?`${T.bathrooms} bath`:""}
${(W=T.agent)!=null&&W.name?`
Listed by ${T.agent.name}
`:""}
Click to view details →
`),B=new Md.Marker(M).setLngLat([T.longitude,T.latitude]).setPopup(D).addTo(i.current);a.current.push(B)}),_.length>1){const T=new Md.LngLatBounds;_.forEach(E=>T.extend([E.longitude,E.latitude])),i.current.fitBounds(T,{padding:60,maxZoom:13})}else _.length===1&&i.current.flyTo({center:[_[0].longitude,_[0].latitude],zoom:12})},[t,c]),P.useEffect(()=>(window.__navigateToPublicListing__=_=>{r(_)},()=>{delete window.__navigateToPublicListing__}),[r]),f||e?o.jsx(al,{className:"w-full h-[500px] rounded-lg"}):!c||t.filter(_=>_.latitude!=null&&_.longitude!=null).length===0?null:o.jsxs("div",{className:"space-y-3",children:[o.jsx("div",{className:"flex flex-wrap items-center gap-3 text-sm",children:Object.entries(Bte).map(([_,T])=>o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("div",{className:"w-3 h-3 rounded-full border-2 border-white shadow",style:{background:T}}),o.jsx("span",{className:"text-xs text-gray-600",children:zte[_]})]},_))}),o.jsx("div",{ref:n,className:"w-full h-[500px] rounded-lg shadow-lg border border-gray-200"})]})}const zB={active:"Active",coming_soon:"Coming Soon",office_exclusive:"Office Exclusive",temp_off_market:"Temporarily Off Market",withdrawn:"Withdrawn",pre_market:"Pre-Market",price_improvement:"Price Improvement",under_contract:"Under Contract",sold:"Sold"},rYe={single_family:"Single Family",condo:"Condo",townhouse:"Townhouse",land:"Land",multi_family:"Multi-Family",luxury:"Luxury",commercial:"Commercial",other:"Other"},Ob="#0d0d0d",$te="#1a1a1a",Zi="#c9a84c",Og="#f0d78c";function f_e(){const[t,e]=P.useState(""),[r,n]=P.useState(!1),[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(-1),x=P.useRef(null),[_,T]=P.useState({status:"",propertyType:"",minPrice:"",maxPrice:""}),{data:E}=LKe(),C=P.useMemo(()=>{if(!E)return[];const ue=t.trim().toLowerCase(),be=[...E.cities.map(we=>({label:we.label,value:we.city,type:"city",count:we.count})),...E.neighborhoods.map(we=>({label:we.label,value:we.neighborhood,type:"neighborhood",count:we.count})),...E.zips.map(we=>({label:`ZIP ${we.label}`,value:we.zip,type:"zip",count:we.count}))];return(ue?be.filter(we=>we.label.toLowerCase().includes(ue)||we.value.toLowerCase().includes(ue)):be).slice(0,8)},[E,t]);P.useEffect(()=>{const ue=be=>{x.current&&!x.current.contains(be.target)&&s(!1)};return document.addEventListener("mousedown",ue),()=>document.removeEventListener("mousedown",ue)},[]);const{data:N,isLoading:L}=RKe({city:t||void 0,status:_.status||void 0,propertyType:_.propertyType||void 0,minPrice:_.minPrice?Number(_.minPrice):void 0,maxPrice:_.maxPrice?Number(_.maxPrice):void 0}),M=ue=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(ue),D=()=>{T({status:"",propertyType:"",minPrice:"",maxPrice:""}),e("")},B=t||_.status||_.propertyType||_.minPrice||_.maxPrice,V=typeof window<"u"&&(window.location.hostname==="listings.relevelup.com"||window.location.hostname.startsWith("listings.")),G=ue=>V?`/${ue.slug||ue.id}`:`/public/listing/${ue.slug||ue.id}`,{featured:W,restListings:Z,luxeCount:Q,cities:se,activeCount:ie}=P.useMemo(()=>{const ue=N||[],be=ue.filter(at=>at.status==="active"),Te=be.length>0?be:ue,we=new Intl.DateTimeFormat("en-CA",{timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date),[Oe,Ae,Se]=we.split("-").map(Number),ge=Math.floor(Date.UTC(Oe,Ae-1,Se)/864e5),je=Te.length>0?Te[ge%Te.length]:void 0,_e=ue.filter(at=>!je||at.id!==je.id),xe=Array.from(new Set(ue.map(at=>at.city).filter(Boolean))).slice(0,8),Pe=ue.filter(at=>(at.price||0)>=1e6).length,Ze=be.length;return{featured:je,restListings:_e,luxeCount:Pe,cities:xe,activeCount:Ze}},[N]);return o.jsxs(o.Fragment,{children:[o.jsxs(Il,{children:[o.jsx("title",{children:"LevelUp Listings — Curated Homes for Sale"}),o.jsx("meta",{name:"description",content:"A curated collection of exclusive properties from LevelUp real estate agents. Discover luxury homes, coming soon listings, and market-defining architecture."}),o.jsx("link",{rel:"canonical",href:"https://listings.relevelup.com"}),o.jsx("meta",{property:"og:title",content:"LevelUp Listings — Curated Homes for Sale"}),o.jsx("meta",{property:"og:description",content:"A curated collection of exclusive properties from LevelUp real estate agents."}),o.jsx("meta",{property:"og:type",content:"website"}),o.jsx("meta",{property:"og:url",content:"https://listings.relevelup.com"}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),o.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"WebSite",name:"LevelUp Listings",url:"https://listings.relevelup.com"})})]}),o.jsxs("div",{className:"min-h-screen text-white",style:{backgroundColor:Ob,fontFamily:"'Fira Sans', system-ui, sans-serif"},children:[o.jsx("style",{children:` .lu-serif { font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; letter-spacing: -0.01em; } .lu-eyebrow { font-family: 'Fira Sans', sans-serif; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; font-size: 11px; } .lu-gold { color: ${Zi}; } .lu-gold-line { background: linear-gradient(90deg, transparent, ${Zi}, transparent); } .lu-card-hover { transition: transform .6s cubic-bezier(.2,.7,.2,1), box-shadow .6s; } .lu-card-hover:hover { transform: translateY(-6px); } .lu-img-zoom { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); } .group:hover .lu-img-zoom { transform: scale(1.06); } .lu-hero-title { animation: luFadeUp 1.1s cubic-bezier(.2,.7,.2,1) both; } .lu-hero-sub { animation: luFadeUp 1.1s .15s cubic-bezier(.2,.7,.2,1) both; } .lu-hero-search { animation: luFadeUp 1.1s .3s cubic-bezier(.2,.7,.2,1) both; } .lu-hero-stats { animation: luFadeUp 1.1s .45s cubic-bezier(.2,.7,.2,1) both; } @keyframes luFadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } } .lu-grain::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .18; background-image: url("data:image/svg+xml;utf8,"); } .lu-marquee { display: flex; gap: 3rem; animation: luMarquee 40s linear infinite; } @keyframes luMarquee { to { transform: translateX(-50%); } } .lu-input-dark { background: rgba(255,255,255,0.06) !important; border-color: rgba(201,168,76,0.25) !important; color: #fff !important; } .lu-input-dark::placeholder { color: rgba(255,255,255,0.5) !important; } `}),o.jsxs("header",{className:"sticky top-0 z-50 backdrop-blur-md",style:{backgroundColor:"rgba(13,13,13,0.75)",borderBottom:"1px solid rgba(201,168,76,0.15)"},children:[o.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-4 flex items-center justify-between",children:[o.jsxs(zi,{to:"/",className:"flex items-center gap-3",children:[o.jsx("img",{src:Fte,alt:"LevelUp",className:"h-7"}),o.jsx("span",{className:"hidden sm:inline-block h-5 w-px",style:{background:"rgba(255,255,255,0.2)"}}),o.jsx("span",{className:"hidden sm:inline lu-eyebrow lu-gold",children:"Listings"})]}),o.jsxs("nav",{className:"hidden md:flex items-center gap-8",children:[o.jsx("a",{href:"#featured",className:"text-sm text-white/80 hover:text-white transition",children:"Featured"}),o.jsx("a",{href:"#collection",className:"text-sm text-white/80 hover:text-white transition",children:"Collection"}),o.jsx("a",{href:"#map",className:"text-sm text-white/80 hover:text-white transition",children:"Map"}),o.jsx(zi,{to:"/home-value",className:"text-sm text-white/80 hover:text-white transition",children:"Home Value"}),o.jsx("a",{href:"https://relevelup.com",target:"_blank",rel:"noopener noreferrer",className:"text-sm px-4 py-2 rounded-full transition",style:{border:`1px solid ${Zi}`,color:Zi},children:"About LevelUp"})]}),o.jsx("button",{type:"button",onClick:()=>a(ue=>!ue),className:"md:hidden inline-flex items-center justify-center w-10 h-10 rounded-full",style:{border:`1px solid ${Zi}`,color:Zi},"aria-label":"Toggle menu","aria-expanded":i,children:i?o.jsx(Zs,{className:"w-5 h-5"}):o.jsx(VM,{className:"w-5 h-5"})})]}),i&&o.jsx("div",{className:"md:hidden border-t",style:{borderColor:"rgba(201,168,76,0.15)"},children:o.jsxs("nav",{className:"max-w-7xl mx-auto px-6 py-4 flex flex-col gap-1",children:[o.jsx("a",{href:"#featured",onClick:()=>a(!1),className:"py-3 text-white/85 hover:text-white transition border-b",style:{borderColor:"rgba(255,255,255,0.06)"},children:"Featured"}),o.jsx("a",{href:"#collection",onClick:()=>a(!1),className:"py-3 text-white/85 hover:text-white transition border-b",style:{borderColor:"rgba(255,255,255,0.06)"},children:"Collection"}),o.jsx("a",{href:"#map",onClick:()=>a(!1),className:"py-3 text-white/85 hover:text-white transition border-b",style:{borderColor:"rgba(255,255,255,0.06)"},children:"Map"}),o.jsx(zi,{to:"/home-value",onClick:()=>a(!1),className:"py-3 text-white/85 hover:text-white transition border-b",style:{borderColor:"rgba(255,255,255,0.06)"},children:"Home Value"}),o.jsx("a",{href:"https://relevelup.com",target:"_blank",rel:"noopener noreferrer",onClick:()=>a(!1),className:"mt-3 text-center text-sm px-4 py-3 rounded-full",style:{border:`1px solid ${Zi}`,color:Zi},children:"About LevelUp"})]})})]}),o.jsxs("section",{className:"relative overflow-hidden lu-grain",style:{minHeight:"92vh"},children:[o.jsxs("div",{className:"absolute inset-0",children:[o.jsx("img",{src:QKe,alt:"Luxury home at dusk",className:"w-full h-full object-cover",style:{filter:"brightness(0.55) contrast(1.05)"}}),o.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(180deg, rgba(13,13,13,0.55) 0%, rgba(13,13,13,0.25) 40%, rgba(13,13,13,0.9) 100%)"}})]}),o.jsxs("div",{className:"relative max-w-7xl mx-auto px-6 pt-24 md:pt-32 pb-16 flex flex-col justify-center",style:{minHeight:"92vh"},children:[o.jsxs("div",{className:"max-w-4xl",children:[o.jsxs("div",{className:"lu-hero-title flex items-center gap-3 mb-6",children:[o.jsx("span",{className:"h-px w-10",style:{background:Zi}}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"The LevelUp Collection"})]}),o.jsxs("h1",{className:"lu-serif lu-hero-title text-white text-5xl sm:text-6xl md:text-7xl lg:text-8xl leading-[1.02] mb-6",children:["Homes with a",o.jsx("br",{}),o.jsx("span",{className:"italic",style:{color:Og},children:"quiet"})," kind of luxury."]}),o.jsx("p",{className:"lu-hero-sub text-white/75 text-lg md:text-xl max-w-2xl mb-10 leading-relaxed",children:"A private, hand-picked collection of properties represented by LevelUp agents — from waterfront estates to architectural landmarks and everything in between."}),o.jsxs("div",{className:"lu-hero-search max-w-3xl",ref:x,children:[o.jsxs("div",{className:"flex items-stretch rounded-full overflow-hidden shadow-2xl relative",style:{background:"rgba(13,13,13,0.7)",border:`1px solid ${Zi}`,backdropFilter:"blur(12px)"},children:[o.jsxs("div",{className:"relative flex-1",children:[o.jsx(x_,{className:"absolute left-6 top-1/2 -translate-y-1/2 h-5 w-5",style:{color:Zi}}),o.jsx(Hr,{placeholder:"City, neighborhood, or ZIP",value:t,onChange:ue=>{e(ue.target.value),s(!0),m(-1)},onFocus:()=>s(!0),onKeyDown:ue=>{if(!(!c||C.length===0))if(ue.key==="ArrowDown")ue.preventDefault(),m(be=>Math.min(be+1,C.length-1));else if(ue.key==="ArrowUp")ue.preventDefault(),m(be=>Math.max(be-1,0));else if(ue.key==="Enter"&&f>=0){ue.preventDefault();const be=C[f];e(be.value),s(!1)}else ue.key==="Escape"&&s(!1)},className:"pl-16 h-16 text-base md:text-lg border-0 bg-transparent text-white placeholder:text-white/50 focus-visible:ring-0 rounded-none"})]}),o.jsxs("button",{onClick:()=>n(!r),className:"hidden sm:flex items-center gap-2 px-6 border-l text-sm text-white/80 hover:text-white transition",style:{borderColor:"rgba(201,168,76,0.3)"},children:[o.jsx(nLe,{className:"h-4 w-4"}),"Filters"]}),o.jsxs("button",{className:"px-8 flex items-center gap-2 font-medium transition hover:brightness-110",style:{background:Zi,color:Ob},onClick:()=>s(!1),children:[o.jsx(x_,{className:"h-5 w-5"}),o.jsx("span",{className:"hidden md:inline",children:"Search"})]})]}),c&&C.length>0&&o.jsxs("div",{className:"mt-2 rounded-2xl overflow-hidden shadow-2xl animate-fade-in",style:{background:"rgba(13,13,13,0.96)",border:"1px solid rgba(201,168,76,0.35)",backdropFilter:"blur(12px)"},children:[o.jsx("div",{className:"px-5 pt-3 pb-2 text-[10px] tracking-[0.2em] uppercase",style:{color:Zi},children:"Suggestions"}),o.jsx("ul",{className:"max-h-80 overflow-y-auto",children:C.map((ue,be)=>o.jsx("li",{children:o.jsxs("button",{type:"button",onMouseEnter:()=>m(be),onClick:()=>{e(ue.value),s(!1)},className:"w-full flex items-center justify-between gap-3 px-5 py-3 text-left transition",style:{background:f===be?"rgba(201,168,76,0.12)":"transparent"},children:[o.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[ue.type==="city"&&o.jsx(ga,{className:"h-4 w-4 shrink-0",style:{color:Zi}}),ue.type==="neighborhood"&&o.jsx(Eo,{className:"h-4 w-4 shrink-0",style:{color:Zi}}),ue.type==="zip"&&o.jsx(Ma,{className:"h-4 w-4 shrink-0",style:{color:Zi}}),o.jsx("span",{className:"text-white/90 truncate",children:ue.label})]}),o.jsxs("span",{className:"text-xs text-white/50 shrink-0",children:[ue.count," ",ue.count===1?"listing":"listings"]})]})},`${ue.type}-${ue.value}-${be}`))})]}),c&&t.trim()&&C.length===0&&o.jsx("div",{className:"mt-2 rounded-2xl px-5 py-4 text-sm text-white/70",style:{background:"rgba(13,13,13,0.96)",border:"1px solid rgba(201,168,76,0.25)"},children:"No matches yet — try a nearby city or ZIP."}),r&&o.jsxs("div",{className:"mt-4 p-6 rounded-2xl grid sm:grid-cols-2 md:grid-cols-4 gap-4 animate-fade-in",style:{background:"rgba(26,26,26,0.9)",border:"1px solid rgba(201,168,76,0.25)"},children:[o.jsxs("div",{children:[o.jsx("label",{className:"lu-eyebrow text-white/60 mb-2 block",children:"Status"}),o.jsxs(Fa,{value:_.status||"all",onValueChange:ue=>T({..._,status:ue==="all"?"":ue}),children:[o.jsx(Ca,{className:"lu-input-dark",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"Any status"}),Object.entries(zB).map(([ue,be])=>o.jsx(xn,{value:ue,children:be},ue))]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"lu-eyebrow text-white/60 mb-2 block",children:"Type"}),o.jsxs(Fa,{value:_.propertyType||"all",onValueChange:ue=>T({..._,propertyType:ue==="all"?"":ue}),children:[o.jsx(Ca,{className:"lu-input-dark",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"Any type"}),Object.entries(rYe).map(([ue,be])=>o.jsx(xn,{value:ue,children:be},ue))]})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"lu-eyebrow text-white/60 mb-2 block",children:"Min Price"}),o.jsx(Hr,{type:"number",placeholder:"No min",value:_.minPrice,onChange:ue=>T({..._,minPrice:ue.target.value}),className:"lu-input-dark"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"lu-eyebrow text-white/60 mb-2 block",children:"Max Price"}),o.jsx(Hr,{type:"number",placeholder:"No max",value:_.maxPrice,onChange:ue=>T({..._,maxPrice:ue.target.value}),className:"lu-input-dark"})]}),B&&o.jsx("div",{className:"sm:col-span-2 md:col-span-4 flex justify-end",children:o.jsxs(Kt,{variant:"ghost",size:"sm",onClick:D,className:"text-white/70 hover:text-white gap-1",children:[o.jsx(Zs,{className:"h-4 w-4"})," Clear all"]})})]})]}),o.jsx("div",{className:"lu-hero-stats mt-14 grid grid-cols-3 gap-6 max-w-2xl",children:[{label:"Listings",value:((N==null?void 0:N.length)??0).toString()},{label:"Active Now",value:ie.toString()},{label:"Luxury $1M+",value:Q.toString()}].map(ue=>o.jsxs("div",{children:[o.jsx("div",{className:"lu-serif text-4xl md:text-5xl",style:{color:Og},children:ue.value}),o.jsx("div",{className:"lu-eyebrow text-white/60 mt-1",children:ue.label})]},ue.label))})]}),o.jsxs("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 flex flex-col items-center gap-2 text-white/60",children:[o.jsx("span",{className:"lu-eyebrow",children:"Scroll"}),o.jsx(Yd,{className:"h-4 w-4 animate-bounce"})]})]})]}),se.length>0&&o.jsx("section",{className:"py-8 overflow-hidden",style:{background:$te,borderTop:"1px solid rgba(201,168,76,0.15)",borderBottom:"1px solid rgba(201,168,76,0.15)"},children:o.jsx("div",{className:"lu-marquee whitespace-nowrap",children:[...se,...se,...se].map((ue,be)=>o.jsxs("span",{className:"flex items-center gap-3 lu-serif text-2xl md:text-3xl text-white/40",children:[ue,o.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:Zi}})]},be))})}),W&&o.jsx("section",{id:"featured",className:"py-20 md:py-28",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6",children:[o.jsxs("div",{className:"flex items-end justify-between mb-10 md:mb-14",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx(Es,{className:"h-4 w-4",style:{color:Zi}}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"Today's Featured Residence"})]}),o.jsxs("h2",{className:"lu-serif text-4xl md:text-5xl lg:text-6xl",children:["Today's ",o.jsx("span",{className:"italic",style:{color:Og},children:"standout"}),"."]})]}),o.jsx("div",{className:"hidden md:block h-px flex-1 mx-8 lu-gold-line"})]}),o.jsx(zi,{to:G(W),className:"group block",children:o.jsxs("div",{className:"grid lg:grid-cols-5 gap-6 lg:gap-10 items-stretch",children:[o.jsxs("div",{className:"lg:col-span-3 relative overflow-hidden rounded-2xl aspect-[4/3] bg-black",children:[(()=>{var be,Te;const ue=((be=W.photos)==null?void 0:be.find(we=>we.is_primary))||((Te=W.photos)==null?void 0:Te[0]);return ue?o.jsx("img",{src:ue.photo_url,alt:W.property_address||W.city,className:"w-full h-full object-cover lu-img-zoom"}):o.jsx("div",{className:"w-full h-full flex items-center justify-center",children:o.jsx(Ma,{className:"h-16 w-16 text-white/20"})})})(),o.jsx("div",{className:"absolute top-5 left-5 px-4 py-1.5 rounded-full lu-eyebrow",style:{background:Zi,color:Ob},children:zB[W.status]||"Featured"})]}),o.jsxs("div",{className:"lg:col-span-2 flex flex-col justify-center",children:[o.jsxs("div",{className:"lu-eyebrow text-white/60 mb-4 flex items-center gap-2",children:[o.jsx(ga,{className:"h-3.5 w-3.5",style:{color:Zi}}),W.city,W.state?`, ${W.state}`:""]}),W.property_address&&o.jsx("h3",{className:"lu-serif text-3xl md:text-4xl mb-4 leading-tight",children:W.property_address}),o.jsx("div",{className:"lu-serif text-5xl md:text-6xl mb-6",style:{color:Og},children:M(W.price)}),o.jsxs("div",{className:"flex items-center gap-6 text-white/70 mb-8",children:[W.bedrooms&&o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(_C,{className:"h-4 w-4",style:{color:Zi}}),W.bedrooms," bd"]}),W.bathrooms&&o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(iS,{className:"h-4 w-4",style:{color:Zi}}),W.bathrooms," ba"]}),W.square_footage&&o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx(cG,{className:"h-4 w-4",style:{color:Zi}}),W.square_footage.toLocaleString()," sf"]})]}),W.description&&o.jsx("p",{className:"text-white/60 leading-relaxed mb-8 line-clamp-4",children:W.description}),o.jsxs("div",{className:"inline-flex items-center gap-3 lu-eyebrow group-hover:gap-5 transition-all",style:{color:Zi},children:["View Residence ",o.jsx(Uc,{className:"h-4 w-4"})]})]})]})})]})}),o.jsx("section",{id:"collection",className:"py-20 md:py-28",style:{background:$te},children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6",children:[o.jsxs("div",{className:"text-center mb-14",children:[o.jsxs("div",{className:"flex items-center justify-center gap-3 mb-4",children:[o.jsx("span",{className:"h-px w-10",style:{background:Zi}}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"The Collection"}),o.jsx("span",{className:"h-px w-10",style:{background:Zi}})]}),o.jsxs("h2",{className:"lu-serif text-4xl md:text-5xl lg:text-6xl mb-4",children:["Every home, ",o.jsx("span",{className:"italic",style:{color:Og},children:"carefully considered"}),"."]}),o.jsx("p",{className:"text-white/60 max-w-2xl mx-auto",children:"Browse the full catalogue of LevelUp-represented properties. Filter, refine, and find the one that feels like yours."})]}),L?o.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-8",children:[...Array(6)].map((ue,be)=>o.jsxs("div",{className:"space-y-3",children:[o.jsx(al,{className:"aspect-[4/5] bg-white/5"}),o.jsx(al,{className:"h-6 w-32 bg-white/5"}),o.jsx(al,{className:"h-4 w-full bg-white/5"})]},be))}):Z.length>0?o.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-14",children:Z.map(ue=>{var Te,we,Oe,Ae,Se;const be=((Te=ue.photos)==null?void 0:Te.find(ge=>ge.is_primary))||((we=ue.photos)==null?void 0:we[0]);return o.jsxs(zi,{to:G(ue),className:"group lu-card-hover block",children:[o.jsxs("div",{className:"relative aspect-[4/5] overflow-hidden bg-black mb-5 rounded-lg",children:[be?o.jsx("img",{src:be.photo_url,alt:ue.property_address||ue.city,className:"w-full h-full object-cover lu-img-zoom"}):o.jsx("div",{className:"w-full h-full flex items-center justify-center",children:o.jsx(Ma,{className:"h-12 w-12 text-white/20"})}),o.jsx("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity",style:{background:"linear-gradient(180deg, transparent 40%, rgba(13,13,13,0.85) 100%)"}}),o.jsx("div",{className:"absolute top-4 left-4 px-3 py-1 lu-eyebrow rounded-full",style:{background:"rgba(13,13,13,0.75)",color:Zi,border:`1px solid ${Zi}`},children:zB[ue.status]}),o.jsxs("div",{className:"absolute bottom-4 left-4 right-4 flex items-center gap-4 text-white/90 text-sm opacity-0 group-hover:opacity-100 translate-y-2 group-hover:translate-y-0 transition-all",children:[ue.bedrooms&&o.jsxs("span",{children:[ue.bedrooms," bd"]}),ue.bathrooms&&o.jsxs("span",{children:[ue.bathrooms," ba"]}),ue.square_footage&&o.jsxs("span",{children:[ue.square_footage.toLocaleString()," sf"]})]})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"lu-eyebrow text-white/50 mb-2 flex items-center gap-2",children:[o.jsx(ga,{className:"h-3 w-3",style:{color:Zi}}),ue.city,ue.state?`, ${ue.state}`:""]}),o.jsx("div",{className:"lu-serif text-2xl md:text-3xl mb-1",style:{color:Og},children:M(ue.price)}),ue.property_address&&o.jsx("p",{className:"text-white/70 text-sm truncate",children:ue.property_address}),((Oe=ue.agent)==null?void 0:Oe.name)&&o.jsxs("p",{className:"text-white/40 text-xs mt-3 flex items-center gap-2",children:[o.jsx(Eo,{className:"h-3 w-3"}),ue.agent.name,(((Ae=ue.agent.brokerage)==null?void 0:Ae.name)||ue.agent.brokerage_name)&&o.jsxs("span",{className:"truncate",children:["· ",((Se=ue.agent.brokerage)==null?void 0:Se.name)||ue.agent.brokerage_name]})]})]})]},ue.id)})}):o.jsxs("div",{className:"text-center py-20",children:[o.jsx("div",{className:"w-20 h-20 mx-auto mb-6 rounded-full flex items-center justify-center",style:{border:`1px solid ${Zi}`},children:o.jsx(Ma,{className:"h-8 w-8",style:{color:Zi}})}),o.jsx("h3",{className:"lu-serif text-2xl mb-2",children:"No listings match yet"}),o.jsx("p",{className:"text-white/60 mb-6",children:"Adjust your search — or check back soon for new arrivals."}),B&&o.jsx(Kt,{onClick:D,style:{background:Zi,color:Ob},className:"hover:brightness-110",children:"Clear filters"})]})]})}),N&&N.length>0&&o.jsx("section",{id:"map",className:"py-20 md:py-28",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6",children:[o.jsx("div",{className:"flex flex-col md:flex-row md:items-end md:justify-between gap-4 mb-10",children:o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("span",{className:"h-px w-10",style:{background:Zi}}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"Explore"})]}),o.jsxs("h2",{className:"lu-serif text-4xl md:text-5xl",children:["Every listing, ",o.jsx("span",{className:"italic",style:{color:Og},children:"on the map"}),"."]})]})}),o.jsx("div",{className:"rounded-2xl overflow-hidden",style:{border:"1px solid rgba(201,168,76,0.2)"},children:o.jsx(tYe,{listings:N,isLoading:L})})]})}),o.jsxs("section",{className:"relative py-24 md:py-32 overflow-hidden lu-grain",children:[o.jsx("div",{className:"absolute inset-0",style:{background:`radial-gradient(ellipse at center, rgba(201,168,76,0.15) 0%, ${Ob} 70%)`}}),o.jsxs("div",{className:"relative max-w-4xl mx-auto px-6 text-center",children:[o.jsxs("div",{className:"flex items-center justify-center gap-3 mb-6",children:[o.jsx("span",{className:"h-px w-10",style:{background:Zi}}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"For Agents"}),o.jsx("span",{className:"h-px w-10",style:{background:Zi}})]}),o.jsxs("h2",{className:"lu-serif text-4xl md:text-6xl mb-6 leading-tight",children:["Your listings deserve a",o.jsx("br",{}),o.jsx("span",{className:"italic",style:{color:Og},children:"stage this good"}),"."]}),o.jsx("p",{className:"text-white/70 text-lg mb-10 max-w-2xl mx-auto",children:"Join LevelUp and get every listing published to this collection — with a cinematic microsite, lead capture, and marketing tools that do the heavy lifting."}),o.jsxs("a",{href:"https://relevelup.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-medium transition hover:brightness-110",style:{background:Zi,color:Ob},children:["Explore LevelUp",o.jsx(Uc,{className:"h-4 w-4"})]})]})]}),o.jsx("footer",{className:"py-14",style:{background:"#080808",borderTop:"1px solid rgba(201,168,76,0.15)"},children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6 flex flex-col md:flex-row items-center justify-between gap-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("img",{src:Fte,alt:"LevelUp",className:"h-6"}),o.jsx("span",{className:"h-4 w-px bg-white/20"}),o.jsx("span",{className:"lu-eyebrow lu-gold",children:"Listings"})]}),o.jsxs("p",{className:"text-white/40 text-sm",children:["© ",new Date().getFullYear()," LevelUp. All rights reserved."]}),o.jsx("a",{href:"https://relevelup.com",target:"_blank",rel:"noopener noreferrer",className:"text-white/60 hover:text-white text-sm transition",children:"relevelup.com →"})]})})]}),o.jsx(uKe,{}),o.jsx(dKe,{})]})}const nYe=Object.freeze(Object.defineProperty({__proto__:null,default:f_e},Symbol.toStringTag,{value:"Module"})),iYe=P.lazy(()=>$e(()=>import("./PublicHomeValue-rGme8kYE.js"),[]));function sYe(){const t=Ji(),e=window.location.hostname;if(!(e==="listings.relevelup.com"||e.startsWith("listings.")))return null;const n=t.pathname.slice(1);return!n||n===""?o.jsx(f_e,{}):n==="home-value"||n==="whats-my-home-worth"?o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(iYe,{})}):n.startsWith("public/")?null:o.jsx(e7,{slugOverride:n})}const aYe=P.lazy(()=>$e(()=>import("./CommercialMarketplace-BP9xbDlD.js"),__vite__mapDeps([9,3])));function oYe(){const e=Ji().pathname.slice(1);return e?e.startsWith("public/")?null:o.jsx(e7,{slugOverride:e}):o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"min-h-screen bg-[#0a0d12]"}),children:o.jsx(aYe,{})})}function WO({card:t,variant:e}){const r=t.brokerage_display_name||t.brokerage_logo_url,n=t.team_name||t.team_logo_url;if(!r&&!n)return null;const i={standard:{container:"bg-slate-50 border border-slate-100",text:"text-slate-600",subtext:"text-slate-400"},luxury:{container:"bg-[#1e2636] border border-[#c9a84c]/10",text:"text-[#e2e8f0]",subtext:"text-[#4a5568]"},bold:{container:"bg-gray-50 border border-gray-100",text:"text-[#1a1a2e]",subtext:"text-gray-400"},classic:{container:"bg-white border border-[#d4cfc5] shadow-sm",text:"text-[#1b3a4b]",subtext:"text-[#a0aec0]"}}[e];return o.jsx("div",{className:`rounded-2xl p-4 mb-6 ${i.container}`,children:o.jsxs("div",{className:`flex flex-col items-center gap-3 ${r&&n?"divide-y divide-current/10":""}`,children:[r&&o.jsxs("div",{className:"flex flex-col items-center gap-1.5 w-full",children:[t.brokerage_logo_url&&o.jsx("img",{src:t.brokerage_logo_url,alt:t.brokerage_display_name||"Brokerage",style:{height:`${t.brokerage_logo_size||56}px`},className:"max-w-[280px] object-contain"}),t.brokerage_display_name&&!t.brokerage_logo_url&&o.jsx("p",{className:`text-sm font-medium ${i.text}`,children:t.brokerage_display_name})]}),n&&o.jsxs("div",{className:`flex flex-col items-center gap-1.5 w-full ${r?"pt-3":""}`,children:[t.team_logo_url&&o.jsx("img",{src:t.team_logo_url,alt:t.team_name||"Team",style:{height:`${t.team_logo_size||56}px`},className:"max-w-[280px] object-contain"}),t.team_name&&!t.team_logo_url&&o.jsx("p",{className:`text-sm font-medium ${i.text}`,children:t.team_name})]})]})})}const lYe=t=>br({queryKey:["agent-card-public",t],queryFn:async()=>{if(!t)throw new Error("No slug provided");const{data:e,error:r}=await De.from("agent_cards").select("*").eq("slug",t).eq("is_published",!0).single();if(r)throw r;const{data:n}=await De.from("profiles").select("name, email, phone, brokerage_id").eq("id",e.user_id).single();let i=null;if(n!=null&&n.brokerage_id){const{data:s}=await De.from("brokerages").select("name").eq("id",n.brokerage_id).single();i=(s==null?void 0:s.name)||null}let a=null;try{const{data:s}=await De.from("profiles").select("avatar_url").eq("id",e.user_id).single();if(s!=null&&s.avatar_url)a=s.avatar_url;else{const{data:f}=await De.storage.from("avatars").list(`${e.user_id}`);if(f&&f.length>0){const{data:m}=De.storage.from("avatars").getPublicUrl(`${e.user_id}/${f[0].name}`);a=`${m.publicUrl}?t=${Date.now()}`}}}catch{}const c={...n||{name:null,email:null,phone:null,brokerage_id:null},email:e.display_email||(n==null?void 0:n.email)||null};return{...e,social_links:e.social_links||[],profile:c,brokerage_name:e.brokerage_display_name||i,avatar_url:a}},enabled:!!t}),FUt=()=>br({queryKey:["agent-cards-admin"],queryFn:async()=>{const{data:t,error:e}=await De.from("agent_cards").select("*").order("created_at",{ascending:!1});if(e)throw e;return t}}),BUt=t=>br({queryKey:["agent-card",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("agent_cards").select("*").eq("user_id",t).maybeSingle();if(r)throw r;return e},enabled:!!t}),zUt=()=>{const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("agent_cards").insert(e).select().single();if(n)throw n;return r},onSuccess:()=>{t.invalidateQueries({queryKey:["agent-cards-admin"]}),t.invalidateQueries({queryKey:["agent-card"]}),Jt.success("Agent card created")},onError:e=>Jt.error(e.message)})},$Ut=()=>{const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("agent_cards").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["agent-cards-admin"]}),t.invalidateQueries({queryKey:["agent-card"]}),Jt.success("Agent card updated")},onError:e=>Jt.error(e.message)})},Qi=async(t,e,r,n)=>{const i=new URLSearchParams(window.location.search);await De.from("agent_card_interactions").insert({card_id:t,interaction_type:e,interaction_detail:r||null,referrer:document.referrer||null,user_agent:navigator.userAgent||null,utm_source:i.get("utm_source")||null,utm_medium:i.get("utm_medium")||null,utm_campaign:i.get("utm_campaign")||null,metadata:{}})},cYe=async(t,e)=>{const{error:r}=await De.from("agent_card_leads").insert({card_id:t,...e});if(r)throw r},UUt=t=>br({queryKey:["agent-card-analytics",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("agent_card_interactions").select("interaction_type, interaction_detail, created_at").eq("card_id",t).order("created_at",{ascending:!1}).limit(500);if(r)throw r;const{data:n,error:i}=await De.from("agent_card_leads").select("*").eq("card_id",t).order("created_at",{ascending:!1});if(i)throw i;const a=(e==null?void 0:e.filter(f=>f.interaction_type==="card_view").length)||0,c=(e==null?void 0:e.filter(f=>f.interaction_type==="button_click").length)||0,s=(e==null?void 0:e.filter(f=>f.interaction_type==="contact_saved").length)||0;return{views:a,clicks:c,saves:s,leads:n||[],interactions:e||[]}},enabled:!!t});function KO({open:t,onOpenChange:e,cardId:r,type:n,agentName:i}){const[a,c]=P.useState(""),[s,f]=P.useState(""),[m,x]=P.useState(""),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(!1),M=async D=>{if(D.preventDefault(),!a.trim()){Jt.error("Please enter your name");return}L(!0);try{await cYe(r,{lead_type:n,name:a.trim(),email:s.trim()||void 0,phone:m.trim()||void 0,message:E.trim()||void 0,intent:_||void 0}),Qi(r,"lead_submitted",n),De.functions.invoke("card-lead-notify",{body:{cardId:r,leadType:n,name:a.trim(),email:s.trim()||void 0,phone:m.trim()||void 0,message:E.trim()||void 0,intent:_||void 0}}).catch(B=>console.error("Card lead notify failed:",B)),Jt.success(n==="booking"?"Request sent! They'll be in touch soon.":n==="connect"?"Info shared! They'll be in touch soon.":"Referral submitted! Thank you."),e(!1),c(""),f(""),x(""),T(""),C("")}catch{Jt.error("Something went wrong. Please try again.")}finally{L(!1)}};return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"sm:max-w-md rounded-2xl",children:[o.jsxs(cl,{children:[o.jsx(qo,{children:n==="booking"?"Book a Call":n==="connect"?"Connect with Me":"Refer a Friend"}),o.jsx(ad,{children:n==="booking"?`Let ${i} know you'd like to connect.`:n==="connect"?`Share your info and ${i} will reach out.`:`Know someone who could use ${i}'s help?`})]}),o.jsxs("form",{onSubmit:M,className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lead-name",children:"Name *"}),o.jsx(Hr,{id:"lead-name",value:a,onChange:D=>c(D.target.value),placeholder:"Your name",required:!0})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lead-phone",children:"Phone"}),o.jsx(Hr,{id:"lead-phone",type:"tel",value:m,onChange:D=>x(D.target.value),placeholder:"(555) 123-4567"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lead-email",children:"Email"}),o.jsx(Hr,{id:"lead-email",type:"email",value:s,onChange:D=>f(D.target.value),placeholder:"you@example.com"})]}),n==="booking"&&o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lead-intent",children:"I'm looking to..."}),o.jsxs(Fa,{value:_,onValueChange:T,children:[o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select one"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"buy",children:"Buy a home"}),o.jsx(xn,{value:"sell",children:"Sell my home"}),o.jsx(xn,{value:"both",children:"Buy & Sell"}),o.jsx(xn,{value:"other",children:"Something else"})]})]})]}),n!=="connect"&&o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"lead-message",children:n==="referral"?"Tell us about them":"Message (optional)"}),o.jsx(Hr,{id:"lead-message",value:E,onChange:D=>C(D.target.value),placeholder:n==="referral"?"Their name, phone, situation...":"Anything you'd like us to know"})]}),o.jsx(Kt,{type:"submit",className:"w-full rounded-2xl",disabled:N,children:N?"Sending...":"Submit"})]})]})})}const uYe=t=>br({queryKey:["card-blocks",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("card_blocks").select("*").eq("card_id",t).eq("is_visible",!0).order("sort_order",{ascending:!0});if(r)throw r;return e||[]},enabled:!!t}),VUt=t=>br({queryKey:["card-blocks-all",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("card_blocks").select("*").eq("card_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e||[]},enabled:!!t}),qUt=()=>{const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("card_blocks").insert(e).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["card-blocks",r.card_id]}),t.invalidateQueries({queryKey:["card-blocks-all",r.card_id]}),Jt.success("Block added")},onError:e=>Jt.error(e.message)})},GUt=()=>{const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("card_blocks").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["card-blocks"]}),t.invalidateQueries({queryKey:["card-blocks-all"]}),Jt.success("Block updated")},onError:e=>Jt.error(e.message)})},HUt=()=>{const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("card_blocks").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["card-blocks"]}),t.invalidateQueries({queryKey:["card-blocks-all"]}),Jt.success("Block removed")},onError:e=>Jt.error(e.message)})};function dYe(t){const e=t.match(/(?:iframe\.mediadelivery\.net\/embed\/|video\.bunnycdn\.com\/play\/)(\d+)\/([a-f0-9-]+)/i);return e?`https://iframe.mediadelivery.net/embed/${e[1]}/${e[2]}?autoplay=false&responsive=true`:(t.includes("iframe.mediadelivery.net"),t)}function hYe(t){const e=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]{11})/);return e?`https://www.youtube.com/embed/${e[1]}`:null}const fYe={standard:"rounded-2xl overflow-hidden mb-6 bg-slate-100",luxury:"rounded-xl overflow-hidden mb-6 bg-[#1e2636] border border-[#c9a84c]/10",bold:"rounded-2xl overflow-hidden mb-6",classic:"rounded-lg overflow-hidden mb-6 border border-[#d4cfc5] shadow-sm"};function pYe({block:t,variant:e}){const r=t.config;if(!r.video_url)return null;const n=r.video_url.includes("mediadelivery.net")||r.video_url.includes("bunnycdn.com"),i=hYe(r.video_url),a=n||!!i,c=n?dYe(r.video_url):i||r.video_url;return o.jsx("div",{className:fYe[e],children:a?o.jsx("div",{style:{position:"relative",paddingTop:"56.25%"},children:o.jsx("iframe",{src:c,loading:"lazy",style:{border:0,position:"absolute",top:0,left:0,width:"100%",height:"100%"},allow:"accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture",allowFullScreen:!0})}):o.jsx("video",{src:r.video_url,controls:!0,className:"w-full",preload:"metadata"})})}const mYe={standard:{container:"mb-6",card:"bg-slate-50 rounded-2xl p-5 border border-slate-100",quote:"text-sm text-slate-600 italic",name:"text-sm font-semibold text-slate-800",role:"text-xs text-slate-500",dot:"bg-primary",dotInactive:"bg-slate-300",nav:"text-slate-400 hover:text-slate-600"},luxury:{container:"mb-6",card:"bg-[#1e2636] rounded-xl p-5 border border-[#c9a84c]/10",quote:"text-sm text-[#a0aec0] italic font-serif",name:"text-sm font-semibold text-white",role:"text-xs text-[#c9a84c]",dot:"bg-[#c9a84c]",dotInactive:"bg-[#2a3040]",nav:"text-[#4a5568] hover:text-[#c9a84c]"},bold:{container:"mb-6",card:"bg-[#fff3e0] rounded-2xl p-5",quote:"text-sm text-[#1a1a2e] font-medium",name:"text-sm font-black text-[#1a1a2e]",role:"text-xs text-[#ff5722] font-bold",dot:"bg-[#ff5722]",dotInactive:"bg-gray-300",nav:"text-gray-400 hover:text-[#ff5722]"},classic:{container:"mb-6",card:"bg-white rounded-lg p-5 border border-[#d4cfc5] shadow-sm",quote:"text-sm text-[#4a5568] italic font-serif",name:"text-sm font-semibold text-[#1b3a4b]",role:"text-xs text-[#5a7a6f]",dot:"bg-[#1b3a4b]",dotInactive:"bg-[#d4cfc5]",nav:"text-[#a0aec0] hover:text-[#1b3a4b]"}};function gYe({block:t,variant:e}){const n=t.config.testimonials||[],[i,a]=P.useState(0);if(n.length===0)return null;const c=mYe[e],s=n[i];return o.jsxs("div",{className:c.container,children:[o.jsxs("div",{className:c.card,children:[o.jsx(XRe,{className:"h-4 w-4 mb-2 opacity-30"}),o.jsxs("p",{className:`${c.quote} mb-3`,children:['"',s.quote,'"']}),o.jsxs("div",{children:[o.jsx("p",{className:c.name,children:s.name}),s.role&&o.jsx("p",{className:c.role,children:s.role})]})]}),n.length>1&&o.jsxs("div",{className:"flex items-center justify-center gap-3 mt-3",children:[o.jsx("button",{onClick:()=>a(f=>(f-1+n.length)%n.length),className:c.nav,children:o.jsx(Bm,{className:"h-4 w-4"})}),o.jsx("div",{className:"flex gap-1.5",children:n.map((f,m)=>o.jsx("div",{className:`h-1.5 w-1.5 rounded-full transition-colors cursor-pointer ${m===i?c.dot:c.dotInactive}`,onClick:()=>a(m)},m))}),o.jsx("button",{onClick:()=>a(f=>(f+1)%n.length),className:c.nav,children:o.jsx(th,{className:"h-4 w-4"})})]})]})}const yYe={standard:{container:"flex flex-wrap gap-2 mb-6 justify-center",tag:"px-3 py-1.5 text-xs font-medium rounded-full bg-primary/10 text-primary"},luxury:{container:"flex flex-wrap gap-2 mb-6 justify-center",tag:"px-3 py-1.5 text-xs font-medium rounded-full bg-[#c9a84c]/10 text-[#e8d48b] border border-[#c9a84c]/20"},bold:{container:"flex flex-wrap gap-2 mb-6 justify-center",tag:"px-3 py-1.5 text-xs font-black rounded-full bg-[#1a1a2e] text-white uppercase tracking-wide"},classic:{container:"flex flex-wrap gap-2 mb-6 justify-center",tag:"px-3 py-1.5 text-xs font-medium rounded-md bg-[#1b3a4b]/10 text-[#1b3a4b] border border-[#d4cfc5]"}};function xYe({block:t,variant:e}){const n=t.config.tags||[];if(n.length===0)return null;const i=yYe[e];return o.jsx("div",{className:i.container,children:n.map((a,c)=>o.jsx("span",{className:i.tag,children:a},c))})}const _Ye={standard:{container:"space-y-2 mb-6",link:"w-full flex items-center justify-between h-12 px-4 rounded-2xl bg-slate-50 hover:bg-slate-100 border border-slate-100 transition-colors text-sm font-medium text-slate-700",icon:"text-primary"},luxury:{container:"space-y-2 mb-6",link:"w-full flex items-center justify-between h-12 px-4 rounded-xl bg-[#1e2636] hover:bg-[#252d3f] border border-[#c9a84c]/10 transition-colors text-sm font-medium text-[#e2e8f0]",icon:"text-[#c9a84c]"},bold:{container:"space-y-2 mb-6",link:"w-full flex items-center justify-between h-12 px-4 rounded-2xl bg-gray-50 hover:bg-gray-100 transition-colors text-sm font-bold text-[#1a1a2e]",icon:"text-[#ff5722]"},classic:{container:"space-y-2 mb-6",link:"w-full flex items-center justify-between h-12 px-4 rounded-lg bg-white hover:bg-[#f5f1eb] border border-[#d4cfc5] shadow-sm transition-colors text-sm font-medium text-[#1b3a4b]",icon:"text-[#5a7a6f]"}};function vYe({block:t,cardId:e,variant:r}){const i=t.config.links||[];if(i.length===0)return null;const a=_Ye[r];return o.jsx("div",{className:a.container,children:i.map((c,s)=>o.jsxs("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(e,"button_click",`custom_link_${c.label}`),className:a.link,children:[o.jsx("span",{children:c.label}),o.jsx(sS,{className:`h-4 w-4 ${a.icon}`})]},s))})}const bYe={instagram:{label:"Instagram",icon:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z",color:"#E4405F",hoverBg:"hover:bg-[#E4405F]/10"},facebook:{label:"Facebook",icon:"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z",color:"#1877F2",hoverBg:"hover:bg-[#1877F2]/10"},linkedin:{label:"LinkedIn",icon:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z",color:"#0A66C2",hoverBg:"hover:bg-[#0A66C2]/10"},twitter:{label:"X",icon:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z",color:"#000000",hoverBg:"hover:bg-black/10"},youtube:{label:"YouTube",icon:"M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814z M9.545 15.568V8.432L15.818 12z",color:"#FF0000",hoverBg:"hover:bg-[#FF0000]/10"},tiktok:{label:"TikTok",icon:"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z",color:"#000000",hoverBg:"hover:bg-black/10"},zillow:{label:"Zillow",icon:"M12 0L1 6v12l11 6 11-6V6L12 0zm0 2.18L21 7.5v9L12 21.82 3 16.5v-9L12 2.18z",color:"#006AFF",hoverBg:"hover:bg-[#006AFF]/10"},realtor:{label:"Realtor",icon:"M12 2L2 7v10l10 5 10-5V7L12 2zm0 2.18l8 4v8l-8 4-8-4v-8l8-4z",color:"#D92228",hoverBg:"hover:bg-[#D92228]/10"},spotify:{label:"Spotify",icon:"M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z",color:"#1DB954",hoverBg:"hover:bg-[#1DB954]/10"},apple_music:{label:"Apple Music",icon:"M23.994 6.124a9.23 9.23 0 00-.24-2.19c-.317-1.31-1.062-2.31-2.18-3.043A5.022 5.022 0 0019.7.198a10.7 10.7 0 00-1.564-.15C17.637.017 17.14 0 12.002 0h-.004C6.858 0 6.362.017 5.862.047 5.34.08 4.82.13 4.309.325a5.017 5.017 0 00-1.874.826C1.317 2.07.573 3.07.255 4.38A9.234 9.234 0 00.02 6.57C-.013 7.068-.03 7.564 0 12.002v.004c-.03 4.438.013 4.934.047 5.432.033.522.083 1.042.278 1.554a5.017 5.017 0 00.826 1.874c.92 1.118 1.92 1.862 3.23 2.18a9.23 9.23 0 002.19.24c.498.03.994.013 5.432.047h.004c4.438.034 4.934-.013 5.432-.047a9.23 9.23 0 002.19-.24c1.31-.317 2.31-1.062 3.043-2.18a5.022 5.022 0 00.627-1.874c.195-.492.245-1.012.278-1.534.03-.498.047-.994.047-5.432v-.004c.034-4.438-.013-4.934-.047-5.432zM17.42 16.41c0 .612-.15 1.21-.44 1.758a3.58 3.58 0 01-1.207 1.31c-.518.339-1.09.521-1.705.545-.13.005-.26 0-.39-.017a2.617 2.617 0 01-1.653-.772 2.305 2.305 0 01-.668-1.653c-.005-.13 0-.26.017-.39.07-.52.275-.986.602-1.39a2.998 2.998 0 011.218-.94 3.14 3.14 0 011.12-.282c.17-.009.336.002.502.034V9.472L10.2 10.637v7.093c0 .612-.15 1.21-.44 1.758a3.58 3.58 0 01-1.207 1.31c-.518.339-1.09.521-1.705.545-.13.005-.26 0-.39-.017a2.617 2.617 0 01-1.653-.772A2.305 2.305 0 014.137 18.9c-.005-.13 0-.26.017-.39.07-.52.275-.986.602-1.39a2.998 2.998 0 011.218-.94 3.14 3.14 0 011.12-.282c.17-.009.336.002.502.034V8.377c0-.453.066-.903.195-1.34a3.2 3.2 0 01.694-1.204 2.62 2.62 0 011.063-.738c.39-.14.793-.208 1.196-.196l4.84-1.01v10.52z",color:"#FA243C",hoverBg:"hover:bg-[#FA243C]/10"}};function wYe({path:t,color:e,size:r=20}){return o.jsx("svg",{viewBox:"0 0 24 24",width:r,height:r,fill:e,children:o.jsx("path",{d:t})})}const SYe={standard:{container:"bg-white rounded-2xl border border-slate-100 p-5 mb-6 shadow-sm",title:"text-sm font-semibold text-slate-800 mb-3",linkClass:"h-11 w-11 rounded-xl bg-slate-50 border border-slate-100 flex items-center justify-center transition-all duration-200 hover:scale-110 hover:shadow-md"},luxury:{container:"bg-zinc-900/50 backdrop-blur rounded-2xl border border-amber-900/20 p-5 mb-6",title:"text-sm font-semibold text-amber-200/80 mb-3",linkClass:"h-11 w-11 rounded-xl bg-zinc-800/80 border border-amber-900/20 flex items-center justify-center transition-all duration-200 hover:scale-110 hover:border-amber-500/40 hover:shadow-md hover:shadow-amber-500/10"},bold:{container:"bg-white/10 backdrop-blur rounded-2xl border border-white/20 p-5 mb-6",title:"text-sm font-semibold text-white/90 mb-3",linkClass:"h-11 w-11 rounded-xl bg-white/10 border border-white/20 flex items-center justify-center transition-all duration-200 hover:scale-110 hover:bg-white/20 hover:shadow-md"},classic:{container:"bg-stone-50 rounded-2xl border border-stone-200 p-5 mb-6",title:"text-sm font-semibold text-stone-800 mb-3",linkClass:"h-11 w-11 rounded-xl bg-white border border-stone-200 flex items-center justify-center transition-all duration-200 hover:scale-110 hover:shadow-md"}};function TYe({block:t,cardId:e,variant:r}){const i=t.config.platforms||[],a=SYe[r];return i.length===0?null:o.jsxs("div",{className:a.container,children:[o.jsx("h3",{className:a.title,children:"Follow Me"}),o.jsx("div",{className:"flex flex-wrap gap-3 justify-center",children:i.map((c,s)=>{const f=bYe[c.platform.toLowerCase()];return!f||!c.url?null:o.jsx("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(e,"button_click",`social_${c.platform}`),className:a.linkClass,title:f.label,children:o.jsx(wYe,{path:f.icon,color:f.color})},s)})})]})}function YO({cardId:t,variant:e}){const{data:r}=uYe(t);if(!r||r.length===0)return null;const n=r.filter(c=>c.block_type==="social_media"&&c.is_visible),i=r.filter(c=>c.block_type!=="social_media"),a=n.length>0?{...n[0],config:{platforms:n.flatMap(c=>c.config.platforms||[])}}:null;return r.findIndex(c=>c.block_type==="social_media"),o.jsxs(o.Fragment,{children:[i.map(c=>{switch(c.block_type){case"video_intro":return o.jsx(pYe,{block:c,variant:e},c.id);case"testimonials":return o.jsx(gYe,{block:c,variant:e},c.id);case"specialties":return o.jsx(xYe,{block:c,variant:e},c.id);case"custom_links":return o.jsx(vYe,{block:c,cardId:t,variant:e},c.id);default:return null}}),a&&o.jsx(TYe,{block:a,cardId:t,variant:e})]})}async function EYe(t){try{const e=await fetch(t);if(!e.ok)return null;const r=await e.blob(),n=r.type||"image/jpeg";return new Promise(i=>{const a=new FileReader;a.onloadend=()=>{const s=a.result.split(",")[1];i({base64:s,mimeType:n})},a.onerror=()=>i(null),a.readAsDataURL(r)})}catch{return null}}function AYe(t){const e=t.trim().split(/\s+/);if(e.length<=1)return{first:e[0]||"",last:""};const r=e.pop();return{first:e.join(" "),last:r}}async function ZO(t){const{first:e,last:r}=AYe(t.name),n=["BEGIN:VCARD","VERSION:3.0",`FN:${t.name}`,`N:${r};${e};;;`];if(t.phone&&n.push(`TEL;TYPE=CELL:${t.phone}`),t.email&&n.push(`EMAIL;TYPE=INTERNET:${t.email}`),t.brokerage&&n.push(`ORG:${t.brokerage}`),n.push(`URL:${t.cardUrl}`),t.avatarUrl){const s=await EYe(t.avatarUrl);if(s){const m={"image/jpeg":"JPEG","image/jpg":"JPEG","image/png":"PNG","image/gif":"GIF","image/webp":"JPEG"}[s.mimeType]||"JPEG";n.push(`PHOTO;ENCODING=b;TYPE=${m}:${s.base64}`)}}n.push("END:VCARD");const i=new Blob([n.join(`\r `)],{type:"text/vcard"}),a=URL.createObjectURL(i),c=document.createElement("a");c.href=a,c.download=`${t.name.replace(/\s+/g,"_")}.vcf`,c.click(),URL.revokeObjectURL(a),Jt.success("Contact saved!")}function kYe({card:t}){var M;const[e,r]=P.useState(!1),[n,i]=P.useState("booking"),a=((M=t.profile)==null?void 0:M.name)||"Agent",c=a.split(" ").map(D=>D[0]).join("").toUpperCase().slice(0,2),s=(D,B)=>{Qi(t.id,"button_click",D),B()},f=()=>s("call",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`tel:${t.profile.phone}`:Jt.error("Phone number not available")}),m=()=>s("text",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`sms:${t.profile.phone}`:Jt.error("Phone number not available")}),x=()=>s("email",()=>{var D;(D=t.profile)!=null&&D.email?window.location.href=`mailto:${t.profile.email}`:Jt.error("Email not available")}),_=()=>{t.booking_url?s("book",()=>window.open(t.booking_url,"_blank")):(i("booking"),r(!0),Qi(t.id,"button_click","book"))},T=()=>{var D,B;Qi(t.id,"contact_saved"),ZO({name:a,phone:(D=t.profile)==null?void 0:D.phone,email:(B=t.profile)==null?void 0:B.email,brokerage:t.brokerage_name,avatarUrl:t.avatar_url,cardUrl:window.location.href})},E=async()=>{Qi(t.id,"share_event");const D=`https://cards.relevelup.com/${t.slug}`,B="Here's my contact card — save it so we can stay in touch.";if(navigator.share)try{await navigator.share({title:`${a}`,text:B,url:D})}catch{}else await navigator.clipboard.writeText(D),Jt.success("Link copied!")},C=()=>{i("referral"),r(!0),Qi(t.id,"button_click","refer")},N=()=>{i("connect"),r(!0),Qi(t.id,"button_click","connect")},L={instagram:"📸",facebook:"📘",linkedin:"💼",twitter:"🐦",youtube:"🎬",tiktok:"🎵"};return o.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 via-white to-slate-50",children:[o.jsxs("div",{className:"max-w-md mx-auto px-5 py-10",children:[o.jsxs("div",{className:"text-center mb-8",children:[t.show_photo&&o.jsxs(Zd,{className:"h-28 w-28 mx-auto mb-4 ring-4 ring-white shadow-lg",children:[o.jsx(Xd,{src:t.avatar_url||void 0,alt:a}),o.jsx(Qd,{className:"text-2xl font-semibold bg-primary text-primary-foreground",children:c})]}),o.jsx("h1",{className:"text-2xl font-bold text-slate-900 mb-0.5",children:a}),t.title&&o.jsx("p",{className:"text-sm font-medium text-primary mb-1",children:t.title}),t.brokerage_name&&!t.brokerage_logo_url&&o.jsx("p",{className:"text-sm font-medium text-slate-500 mb-1",children:t.brokerage_name}),t.team_name&&!t.team_logo_url&&o.jsx("p",{className:"text-xs font-medium text-slate-400 mb-3",children:t.team_name}),t.positioning_statement&&o.jsxs("p",{className:"text-base text-slate-600 italic leading-relaxed max-w-xs mx-auto",children:['"',t.positioning_statement,'"']})]}),o.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[o.jsxs(Kt,{onClick:f,className:"flex flex-col items-center gap-1.5 h-auto py-4 bg-primary hover:bg-primary/90 text-primary-foreground rounded-2xl shadow-sm",children:[o.jsx(Ui,{className:"h-5 w-5"}),o.jsx("span",{className:"text-xs font-medium",children:"Call"})]}),o.jsxs(Kt,{onClick:m,className:"flex flex-col items-center gap-1.5 h-auto py-4 bg-primary hover:bg-primary/90 text-primary-foreground rounded-2xl shadow-sm",children:[o.jsx(rp,{className:"h-5 w-5"}),o.jsx("span",{className:"text-xs font-medium",children:"Text"})]}),o.jsxs(Kt,{onClick:x,className:"flex flex-col items-center gap-1.5 h-auto py-4 bg-primary hover:bg-primary/90 text-primary-foreground rounded-2xl shadow-sm",children:[o.jsx($i,{className:"h-5 w-5"}),o.jsx("span",{className:"text-xs font-medium",children:"Email"})]})]}),o.jsxs(Kt,{onClick:_,className:"w-full h-12 text-base font-semibold rounded-2xl shadow-sm mb-6",variant:"outline",children:[o.jsx(fo,{className:"h-5 w-5 mr-2"}),t.custom_cta_label||"Book a Call"]}),t.show_credentials&&t.review_snippet&&o.jsx("div",{className:"flex items-center justify-center gap-4 mb-6 text-sm text-slate-600",children:o.jsxs("div",{className:"text-center flex items-center gap-1",children:[o.jsx(Xc,{className:"h-4 w-4 text-amber-500 fill-amber-500"}),o.jsx("span",{className:"font-bold text-slate-900",children:"5.0"})]})}),t.review_snippet&&o.jsx("div",{className:"bg-slate-50 rounded-2xl p-4 mb-6 border border-slate-100",children:o.jsxs("p",{className:"text-sm text-slate-600 italic text-center",children:['"',t.review_snippet,'"']})}),t.show_bio&&t.bio&&o.jsxs("div",{className:"mb-6",children:[o.jsx("h2",{className:"text-sm font-semibold text-slate-800 mb-2",children:"About Me"}),o.jsx("p",{className:"text-sm text-slate-600 leading-relaxed",children:t.bio})]}),o.jsx(WO,{card:t,variant:"standard"}),o.jsx(YO,{cardId:t.id,variant:"standard"}),o.jsxs("div",{className:"space-y-2 mb-6",children:[t.show_save_contact&&o.jsxs(Kt,{variant:"ghost",onClick:T,className:"w-full justify-start h-12 rounded-2xl text-slate-700 hover:bg-slate-100",children:[o.jsx(Zl,{className:"h-4 w-4 mr-3 text-primary"}),"Save Contact"]}),t.show_leave_review&&t.review_source_url&&o.jsxs(Kt,{variant:"ghost",onClick:()=>{Qi(t.id,"button_click","review"),window.open(t.review_source_url,"_blank")},className:"w-full justify-start h-12 rounded-2xl text-slate-700 hover:bg-slate-100",children:[o.jsx(Xc,{className:"h-4 w-4 mr-3 text-amber-500"}),"Leave a Review"]}),t.show_refer_friend&&o.jsxs(Kt,{variant:"ghost",onClick:C,className:"w-full justify-start h-12 rounded-2xl text-slate-700 hover:bg-slate-100",children:[o.jsx(El,{className:"h-4 w-4 mr-3 text-primary"}),"Refer a Friend"]}),o.jsxs(Kt,{variant:"ghost",onClick:N,className:"w-full justify-start h-12 rounded-2xl text-slate-700 hover:bg-slate-100",children:[o.jsx(HM,{className:"h-4 w-4 mr-3 text-primary"}),"Connect with Me"]}),o.jsxs(Kt,{variant:"ghost",onClick:E,className:"w-full justify-start h-12 rounded-2xl text-slate-700 hover:bg-slate-100",children:[o.jsx(wC,{className:"h-4 w-4 mr-3 text-primary"}),"Share My Card"]})]}),t.show_social_links&&t.social_links&&t.social_links.length>0&&o.jsx("div",{className:"flex justify-center gap-4 mb-8",children:t.social_links.slice(0,3).map((D,B)=>o.jsx("a",{href:D.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(t.id,"button_click",`social_${D.platform}`),className:"h-10 w-10 rounded-full bg-slate-100 hover:bg-slate-200 flex items-center justify-center text-lg transition-colors",children:L[D.platform.toLowerCase()]||"🔗"},B))}),o.jsx("div",{className:"text-center",children:o.jsx("p",{className:"text-xs text-slate-400",children:"Powered by LevelUp"})})]}),o.jsx(KO,{open:e,onOpenChange:r,cardId:t.id,type:n,agentName:a})]})}function CYe({card:t}){var M;const[e,r]=P.useState(!1),[n,i]=P.useState("booking"),a=((M=t.profile)==null?void 0:M.name)||"Agent",c=a.split(" ").map(D=>D[0]).join("").toUpperCase().slice(0,2),s=(D,B)=>{Qi(t.id,"button_click",D),B()},f=()=>s("call",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`tel:${t.profile.phone}`:Jt.error("Phone number not available")}),m=()=>s("text",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`sms:${t.profile.phone}`:Jt.error("Phone number not available")}),x=()=>s("email",()=>{var D;(D=t.profile)!=null&&D.email?window.location.href=`mailto:${t.profile.email}`:Jt.error("Email not available")}),_=()=>{t.booking_url?s("book",()=>window.open(t.booking_url,"_blank")):(i("booking"),r(!0),Qi(t.id,"button_click","book"))},T=()=>{var D,B;Qi(t.id,"contact_saved"),ZO({name:a,phone:(D=t.profile)==null?void 0:D.phone,email:(B=t.profile)==null?void 0:B.email,brokerage:t.brokerage_name,avatarUrl:t.avatar_url,cardUrl:window.location.href})},E=async()=>{Qi(t.id,"share_event");const D=`https://cards.relevelup.com/${t.slug}`,B="Here's my contact card — save it so we can stay in touch.";if(navigator.share)try{await navigator.share({title:`${a}`,text:B,url:D})}catch{}else await navigator.clipboard.writeText(D),Jt.success("Link copied!")},C=()=>{i("referral"),r(!0),Qi(t.id,"button_click","refer")},N=()=>{i("connect"),r(!0),Qi(t.id,"button_click","connect")},L={instagram:"📸",facebook:"📘",linkedin:"💼",twitter:"🐦",youtube:"🎬",tiktok:"🎵"};return o.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-[#0f1419] via-[#1a1f2e] to-[#0f1419]",children:[o.jsxs("div",{className:"max-w-md mx-auto px-5 py-10",children:[o.jsx("div",{className:"w-16 h-0.5 bg-gradient-to-r from-[#c9a84c] to-[#e8d48b] mx-auto mb-8"}),o.jsxs("div",{className:"text-center mb-8",children:[t.show_photo&&o.jsxs(Zd,{className:"h-32 w-32 mx-auto mb-5 ring-2 ring-[#c9a84c]/40 shadow-2xl",children:[o.jsx(Xd,{src:t.avatar_url||void 0,alt:a}),o.jsx(Qd,{className:"text-2xl font-serif bg-[#c9a84c]/20 text-[#e8d48b]",children:c})]}),o.jsx("h1",{className:"text-2xl font-serif font-bold text-white tracking-wide mb-0.5",children:a}),t.title&&o.jsx("p",{className:"text-sm font-medium text-[#e8d48b] mb-1",children:t.title}),t.brokerage_name&&!t.brokerage_logo_url&&o.jsx("p",{className:"text-sm font-medium text-[#c9a84c] tracking-widest uppercase mb-1",children:t.brokerage_name}),t.team_name&&!t.team_logo_url&&o.jsx("p",{className:"text-xs font-medium text-[#a0aec0] mb-3",children:t.team_name}),t.positioning_statement&&o.jsxs("p",{className:"text-base text-[#a0aec0] italic leading-relaxed max-w-xs mx-auto font-serif",children:['"',t.positioning_statement,'"']})]}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[{icon:Ui,label:"Call",handler:f},{icon:rp,label:"Text",handler:m},{icon:$i,label:"Email",handler:x}].map(({icon:D,label:B,handler:V})=>o.jsxs("button",{onClick:V,className:"flex flex-col items-center gap-1.5 py-4 bg-[#1e2636] hover:bg-[#252d3f] border border-[#c9a84c]/20 rounded-xl transition-colors",children:[o.jsx(D,{className:"h-5 w-5 text-[#c9a84c]"}),o.jsx("span",{className:"text-xs font-medium text-[#e2e8f0]",children:B})]},B))}),o.jsxs("button",{onClick:_,className:"w-full h-12 text-base font-semibold rounded-xl mb-6 bg-gradient-to-r from-[#c9a84c] to-[#e8d48b] text-[#0f1419] hover:opacity-90 transition-opacity flex items-center justify-center gap-2",children:[o.jsx(fo,{className:"h-5 w-5"}),t.custom_cta_label||"Book a Call"]}),t.show_credentials&&t.review_snippet&&o.jsx("div",{className:"flex items-center justify-center gap-4 mb-6 text-sm",children:o.jsxs("div",{className:"text-center flex items-center gap-1",children:[o.jsx(Xc,{className:"h-4 w-4 text-[#c9a84c] fill-[#c9a84c]"}),o.jsx("span",{className:"font-bold text-white",children:"5.0"})]})}),t.review_snippet&&o.jsx("div",{className:"bg-[#1e2636] rounded-xl p-4 mb-6 border border-[#c9a84c]/10",children:o.jsxs("p",{className:"text-sm text-[#a0aec0] italic text-center font-serif",children:['"',t.review_snippet,'"']})}),t.show_bio&&t.bio&&o.jsxs("div",{className:"mb-6",children:[o.jsx("h2",{className:"text-sm font-semibold text-[#c9a84c] mb-2 tracking-wide uppercase",children:"About"}),o.jsx("p",{className:"text-sm text-[#a0aec0] leading-relaxed",children:t.bio})]}),o.jsx(WO,{card:t,variant:"luxury"}),o.jsx(YO,{cardId:t.id,variant:"luxury"}),o.jsxs("div",{className:"space-y-1 mb-6",children:[t.show_save_contact&&o.jsxs("button",{onClick:T,className:"w-full flex items-center gap-3 h-12 px-4 rounded-xl text-[#e2e8f0] hover:bg-[#1e2636] transition-colors text-sm",children:[o.jsx(Zl,{className:"h-4 w-4 text-[#c9a84c]"})," Save Contact"]}),t.show_leave_review&&t.review_source_url&&o.jsxs("button",{onClick:()=>{Qi(t.id,"button_click","review"),window.open(t.review_source_url,"_blank")},className:"w-full flex items-center gap-3 h-12 px-4 rounded-xl text-[#e2e8f0] hover:bg-[#1e2636] transition-colors text-sm",children:[o.jsx(Xc,{className:"h-4 w-4 text-[#c9a84c]"})," Leave a Review"]}),t.show_refer_friend&&o.jsxs("button",{onClick:C,className:"w-full flex items-center gap-3 h-12 px-4 rounded-xl text-[#e2e8f0] hover:bg-[#1e2636] transition-colors text-sm",children:[o.jsx(El,{className:"h-4 w-4 text-[#c9a84c]"})," Refer a Friend"]}),o.jsxs("button",{onClick:N,className:"w-full flex items-center gap-3 h-12 px-4 rounded-xl text-[#e2e8f0] hover:bg-[#1e2636] transition-colors text-sm",children:[o.jsx(HM,{className:"h-4 w-4 text-[#c9a84c]"})," Connect with Me"]}),o.jsxs("button",{onClick:E,className:"w-full flex items-center gap-3 h-12 px-4 rounded-xl text-[#e2e8f0] hover:bg-[#1e2636] transition-colors text-sm",children:[o.jsx(wC,{className:"h-4 w-4 text-[#c9a84c]"})," Share My Card"]})]}),t.show_social_links&&t.social_links&&t.social_links.length>0&&o.jsx("div",{className:"flex justify-center gap-4 mb-8",children:t.social_links.slice(0,3).map((D,B)=>o.jsx("a",{href:D.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(t.id,"button_click",`social_${D.platform}`),className:"h-10 w-10 rounded-full bg-[#1e2636] border border-[#c9a84c]/20 hover:border-[#c9a84c]/50 flex items-center justify-center text-lg transition-colors",children:L[D.platform.toLowerCase()]||"🔗"},B))}),o.jsx("div",{className:"text-center",children:o.jsx("p",{className:"text-xs text-[#4a5568]",children:"Powered by LevelUp"})})]}),o.jsx(KO,{open:e,onOpenChange:r,cardId:t.id,type:n,agentName:a})]})}function IYe({card:t}){var B,V,G,W;const[e,r]=P.useState(!1),[n,i]=P.useState("booking"),a=((B=t.profile)==null?void 0:B.name)||"Agent",c=a.split(" ").map(Z=>Z[0]).join("").toUpperCase().slice(0,2),s={accent:((V=t.bold_theme_colors)==null?void 0:V.accent)||"#ff5722",dark:((G=t.bold_theme_colors)==null?void 0:G.dark)||"#1a1a2e",button:((W=t.bold_theme_colors)==null?void 0:W.button)||"#ff5722"},f=(Z,Q)=>{const se=parseInt(Z.replace("#",""),16),ie=Math.max(0,(se>>16)-Q),ue=Math.max(0,(se>>8&255)-Q),be=Math.max(0,(se&255)-Q);return`#${(ie<<16|ue<<8|be).toString(16).padStart(6,"0")}`};f(s.accent,25),f(s.dark,-20),f(s.button,25);const m=(Z,Q)=>{Qi(t.id,"button_click",Z),Q()},x=()=>m("call",()=>{var Z;(Z=t.profile)!=null&&Z.phone?window.location.href=`tel:${t.profile.phone}`:Jt.error("Phone number not available")}),_=()=>m("text",()=>{var Z;(Z=t.profile)!=null&&Z.phone?window.location.href=`sms:${t.profile.phone}`:Jt.error("Phone number not available")}),T=()=>m("email",()=>{var Z;(Z=t.profile)!=null&&Z.email?window.location.href=`mailto:${t.profile.email}`:Jt.error("Email not available")}),E=()=>{t.booking_url?m("book",()=>window.open(t.booking_url,"_blank")):(i("booking"),r(!0),Qi(t.id,"button_click","book"))},C=()=>{var Z,Q;Qi(t.id,"contact_saved"),ZO({name:a,phone:(Z=t.profile)==null?void 0:Z.phone,email:(Q=t.profile)==null?void 0:Q.email,brokerage:t.brokerage_name,avatarUrl:t.avatar_url,cardUrl:window.location.href})},N=async()=>{Qi(t.id,"share_event");const Z=`https://cards.relevelup.com/${t.slug}`,Q="Here's my contact card — save it so we can stay in touch.";if(navigator.share)try{await navigator.share({title:`${a}`,text:Q,url:Z})}catch{}else await navigator.clipboard.writeText(Z),Jt.success("Link copied!")},L=()=>{i("referral"),r(!0),Qi(t.id,"button_click","refer")},M=()=>{i("connect"),r(!0),Qi(t.id,"button_click","connect")},D={instagram:"📸",facebook:"📘",linkedin:"💼",twitter:"🐦",youtube:"🎬",tiktok:"🎵"};return o.jsxs("div",{className:"min-h-screen",style:{backgroundColor:s.accent},children:[o.jsxs("div",{className:"px-5 pt-10 pb-14 text-center relative",style:{backgroundColor:s.dark},children:[t.show_photo&&o.jsxs(Zd,{className:"h-28 w-28 mx-auto mb-4 shadow-2xl",style:{boxShadow:`0 0 0 4px ${s.accent}`},children:[o.jsx(Xd,{src:t.avatar_url||void 0,alt:a}),o.jsx(Qd,{className:"text-2xl font-black text-white",style:{backgroundColor:s.accent},children:c})]}),o.jsx("h1",{className:"text-3xl font-black text-white tracking-tight mb-0.5",children:a}),t.title&&o.jsx("p",{className:"text-sm font-bold mb-1",style:{color:`${s.accent}cc`},children:t.title}),t.brokerage_name&&!t.brokerage_logo_url&&o.jsx("p",{className:"text-sm font-bold uppercase tracking-wider mb-1",style:{color:s.accent},children:t.brokerage_name}),t.team_name&&!t.team_logo_url&&o.jsx("p",{className:"text-xs font-bold text-white/60 uppercase tracking-wider",children:t.team_name})]}),o.jsxs("div",{className:"max-w-md mx-auto px-5 -mt-6",children:[o.jsxs("div",{className:"bg-white rounded-3xl shadow-2xl px-5 py-8",children:[t.positioning_statement&&o.jsx("p",{className:"text-center font-bold text-lg leading-snug mb-6 max-w-xs mx-auto",style:{color:s.dark},children:t.positioning_statement}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[{icon:Ui,label:"Call",handler:x},{icon:rp,label:"Text",handler:_},{icon:$i,label:"Email",handler:T}].map(({icon:Z,label:Q,handler:se})=>o.jsxs("button",{onClick:se,className:"flex flex-col items-center gap-1.5 py-4 text-white rounded-2xl transition-opacity font-bold hover:opacity-85",style:{backgroundColor:s.dark},children:[o.jsx(Z,{className:"h-5 w-5"}),o.jsx("span",{className:"text-xs",children:Q})]},Q))}),o.jsxs("button",{onClick:E,className:"w-full h-14 text-base font-black rounded-2xl mb-6 text-white transition-opacity hover:opacity-90 flex items-center justify-center gap-2 uppercase tracking-wide",style:{backgroundColor:s.button},children:[o.jsx(fo,{className:"h-5 w-5"}),t.custom_cta_label||"Book a Call"]}),t.show_credentials&&t.review_snippet&&o.jsx("div",{className:"flex items-center justify-center gap-5 mb-6",children:t.review_snippet&&o.jsxs("div",{className:"text-center flex items-center gap-1",children:[o.jsx(Xc,{className:"h-5 w-5",style:{color:s.accent,fill:s.accent}}),o.jsx("span",{className:"font-black text-2xl",style:{color:s.dark},children:"5.0"})]})}),t.review_snippet&&o.jsx("div",{className:"rounded-2xl p-4 mb-6",style:{backgroundColor:`${s.accent}15`},children:o.jsxs("p",{className:"text-sm font-medium text-center",style:{color:s.dark},children:['"',t.review_snippet,'"']})}),t.show_bio&&t.bio&&o.jsxs("div",{className:"mb-6",children:[o.jsx("h2",{className:"text-xs font-black mb-2 uppercase tracking-wider",style:{color:s.accent},children:"About Me"}),o.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:t.bio})]}),o.jsx(WO,{card:t,variant:"bold"}),o.jsx(YO,{cardId:t.id,variant:"bold"}),o.jsxs("div",{className:"space-y-1 mb-6",children:[t.show_save_contact&&o.jsxs("button",{onClick:C,className:"w-full flex items-center gap-3 h-12 px-4 rounded-2xl hover:bg-gray-100 transition-colors text-sm font-bold",style:{color:s.dark},children:[o.jsx(Zl,{className:"h-4 w-4",style:{color:s.accent}})," Save Contact"]}),t.show_leave_review&&t.review_source_url&&o.jsxs("button",{onClick:()=>{Qi(t.id,"button_click","review"),window.open(t.review_source_url,"_blank")},className:"w-full flex items-center gap-3 h-12 px-4 rounded-2xl hover:bg-gray-100 transition-colors text-sm font-bold",style:{color:s.dark},children:[o.jsx(Xc,{className:"h-4 w-4",style:{color:s.accent}})," Leave a Review"]}),t.show_refer_friend&&o.jsxs("button",{onClick:L,className:"w-full flex items-center gap-3 h-12 px-4 rounded-2xl hover:bg-gray-100 transition-colors text-sm font-bold",style:{color:s.dark},children:[o.jsx(El,{className:"h-4 w-4",style:{color:s.accent}})," Refer a Friend"]}),o.jsxs("button",{onClick:M,className:"w-full flex items-center gap-3 h-12 px-4 rounded-2xl hover:bg-gray-100 transition-colors text-sm font-bold",style:{color:s.dark},children:[o.jsx(HM,{className:"h-4 w-4",style:{color:s.accent}})," Connect with Me"]}),o.jsxs("button",{onClick:N,className:"w-full flex items-center gap-3 h-12 px-4 rounded-2xl hover:bg-gray-100 transition-colors text-sm font-bold",style:{color:s.dark},children:[o.jsx(wC,{className:"h-4 w-4",style:{color:s.accent}})," Share My Card"]})]}),t.show_social_links&&t.social_links&&t.social_links.length>0&&o.jsx("div",{className:"flex justify-center gap-4 mb-6",children:t.social_links.slice(0,3).map((Z,Q)=>o.jsx("a",{href:Z.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(t.id,"button_click",`social_${Z.platform}`),className:"h-10 w-10 rounded-full flex items-center justify-center text-lg transition-opacity hover:opacity-85",style:{backgroundColor:s.dark},children:D[Z.platform.toLowerCase()]||"🔗"},Q))})]}),o.jsx("div",{className:"text-center py-6",children:o.jsx("p",{className:"text-xs text-white/50",children:"Powered by LevelUp"})})]}),o.jsx(KO,{open:e,onOpenChange:r,cardId:t.id,type:n,agentName:a})]})}function jYe({card:t}){var M;const[e,r]=P.useState(!1),[n,i]=P.useState("booking"),a=((M=t.profile)==null?void 0:M.name)||"Agent",c=a.split(" ").map(D=>D[0]).join("").toUpperCase().slice(0,2),s=(D,B)=>{Qi(t.id,"button_click",D),B()},f=()=>s("call",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`tel:${t.profile.phone}`:Jt.error("Phone number not available")}),m=()=>s("text",()=>{var D;(D=t.profile)!=null&&D.phone?window.location.href=`sms:${t.profile.phone}`:Jt.error("Phone number not available")}),x=()=>s("email",()=>{var D;(D=t.profile)!=null&&D.email?window.location.href=`mailto:${t.profile.email}`:Jt.error("Email not available")}),_=()=>{t.booking_url?s("book",()=>window.open(t.booking_url,"_blank")):(i("booking"),r(!0),Qi(t.id,"button_click","book"))},T=()=>{var D,B;Qi(t.id,"contact_saved"),ZO({name:a,phone:(D=t.profile)==null?void 0:D.phone,email:(B=t.profile)==null?void 0:B.email,brokerage:t.brokerage_name,avatarUrl:t.avatar_url,cardUrl:window.location.href})},E=async()=>{Qi(t.id,"share_event");const D=`https://cards.relevelup.com/${t.slug}`,B="Here's my contact card — save it so we can stay in touch.";if(navigator.share)try{await navigator.share({title:`${a}`,text:B,url:D})}catch{}else await navigator.clipboard.writeText(D),Jt.success("Link copied!")},C=()=>{i("referral"),r(!0),Qi(t.id,"button_click","refer")},N=()=>{i("connect"),r(!0),Qi(t.id,"button_click","connect")},L={instagram:"📸",facebook:"📘",linkedin:"💼",twitter:"🐦",youtube:"🎬",tiktok:"🎵"};return o.jsxs("div",{className:"min-h-screen bg-[#f5f1eb]",children:[o.jsx("div",{className:"bg-[#1b3a4b] h-2"}),o.jsxs("div",{className:"max-w-md mx-auto px-5 py-10",children:[o.jsxs("div",{className:"text-center mb-8",children:[t.show_photo&&o.jsxs(Zd,{className:"h-28 w-28 mx-auto mb-4 ring-4 ring-white shadow-lg",children:[o.jsx(Xd,{src:t.avatar_url||void 0,alt:a}),o.jsx(Qd,{className:"text-2xl font-serif bg-[#1b3a4b] text-white",children:c})]}),o.jsx("h1",{className:"text-2xl font-serif font-bold text-[#1b3a4b] mb-0.5",children:a}),t.title&&o.jsx("p",{className:"text-sm font-medium text-[#5a7a6f] mb-1",children:t.title}),t.brokerage_name&&!t.brokerage_logo_url&&o.jsx("p",{className:"text-sm font-medium text-[#5a7a6f] mb-1",children:t.brokerage_name}),t.team_name&&!t.team_logo_url&&o.jsx("p",{className:"text-xs font-medium text-[#a0aec0] mb-3",children:t.team_name}),t.positioning_statement&&o.jsxs("p",{className:"text-base text-[#4a5568] italic leading-relaxed max-w-xs mx-auto font-serif",children:['"',t.positioning_statement,'"']})]}),o.jsx("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[{icon:Ui,label:"Call",handler:f},{icon:rp,label:"Text",handler:m},{icon:$i,label:"Email",handler:x}].map(({icon:D,label:B,handler:V})=>o.jsxs("button",{onClick:V,className:"flex flex-col items-center gap-1.5 py-4 bg-white hover:bg-[#e8e3db] border border-[#d4cfc5] rounded-lg transition-colors shadow-sm",children:[o.jsx(D,{className:"h-5 w-5 text-[#1b3a4b]"}),o.jsx("span",{className:"text-xs font-semibold text-[#1b3a4b]",children:B})]},B))}),o.jsxs("button",{onClick:_,className:"w-full h-12 text-base font-semibold rounded-lg mb-6 bg-[#1b3a4b] hover:bg-[#264d61] text-white transition-colors flex items-center justify-center gap-2 shadow-sm",children:[o.jsx(fo,{className:"h-5 w-5"}),t.custom_cta_label||"Book a Call"]}),t.show_credentials&&t.review_snippet&&o.jsx("div",{className:"bg-white rounded-lg border border-[#d4cfc5] p-4 mb-6 shadow-sm",children:o.jsx("div",{className:"flex items-center justify-center gap-6",children:o.jsxs("div",{className:"text-center flex items-center gap-1",children:[o.jsx(Xc,{className:"h-4 w-4 text-[#d4a843] fill-[#d4a843]"}),o.jsx("span",{className:"font-bold text-[#1b3a4b] font-serif",children:"5.0"})]})})}),t.review_snippet&&o.jsx("div",{className:"bg-white rounded-lg border border-[#d4cfc5] p-4 mb-6 shadow-sm",children:o.jsxs("p",{className:"text-sm text-[#4a5568] italic text-center font-serif",children:['"',t.review_snippet,'"']})}),t.show_bio&&t.bio&&o.jsxs("div",{className:"mb-6",children:[o.jsx("h2",{className:"text-sm font-semibold text-[#1b3a4b] mb-2 font-serif",children:"About"}),o.jsx("p",{className:"text-sm text-[#4a5568] leading-relaxed",children:t.bio})]}),o.jsx(WO,{card:t,variant:"classic"}),o.jsx(YO,{cardId:t.id,variant:"classic"}),o.jsxs("div",{className:"bg-white rounded-lg border border-[#d4cfc5] shadow-sm divide-y divide-[#e8e3db] mb-6",children:[t.show_save_contact&&o.jsxs("button",{onClick:T,className:"w-full flex items-center gap-3 h-12 px-4 text-[#1b3a4b] hover:bg-[#f5f1eb] transition-colors text-sm font-medium",children:[o.jsx(Zl,{className:"h-4 w-4 text-[#5a7a6f]"})," Save Contact"]}),t.show_leave_review&&t.review_source_url&&o.jsxs("button",{onClick:()=>{Qi(t.id,"button_click","review"),window.open(t.review_source_url,"_blank")},className:"w-full flex items-center gap-3 h-12 px-4 text-[#1b3a4b] hover:bg-[#f5f1eb] transition-colors text-sm font-medium",children:[o.jsx(Xc,{className:"h-4 w-4 text-[#d4a843]"})," Leave a Review"]}),t.show_refer_friend&&o.jsxs("button",{onClick:C,className:"w-full flex items-center gap-3 h-12 px-4 text-[#1b3a4b] hover:bg-[#f5f1eb] transition-colors text-sm font-medium",children:[o.jsx(El,{className:"h-4 w-4 text-[#5a7a6f]"})," Refer a Friend"]}),o.jsxs("button",{onClick:N,className:"w-full flex items-center gap-3 h-12 px-4 text-[#1b3a4b] hover:bg-[#f5f1eb] transition-colors text-sm font-medium",children:[o.jsx(HM,{className:"h-4 w-4 text-[#5a7a6f]"})," Connect with Me"]}),o.jsxs("button",{onClick:E,className:"w-full flex items-center gap-3 h-12 px-4 text-[#1b3a4b] hover:bg-[#f5f1eb] transition-colors text-sm font-medium",children:[o.jsx(wC,{className:"h-4 w-4 text-[#5a7a6f]"})," Share My Card"]})]}),t.show_social_links&&t.social_links&&t.social_links.length>0&&o.jsx("div",{className:"flex justify-center gap-4 mb-8",children:t.social_links.slice(0,3).map((D,B)=>o.jsx("a",{href:D.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>Qi(t.id,"button_click",`social_${D.platform}`),className:"h-10 w-10 rounded-full bg-white border border-[#d4cfc5] hover:bg-[#e8e3db] flex items-center justify-center text-lg transition-colors shadow-sm",children:L[D.platform.toLowerCase()]||"🔗"},B))}),o.jsx("div",{className:"text-center",children:o.jsx("p",{className:"text-xs text-[#a0aec0]",children:"Powered by LevelUp"})})]}),o.jsx(KO,{open:e,onOpenChange:r,cardId:t.id,type:n,agentName:a})]})}function PYe({card:t}){switch(t.theme){case"luxury":return o.jsx(CYe,{card:t});case"bold":return o.jsx(IYe,{card:t});case"classic":return o.jsx(jYe,{card:t});case"standard":default:return o.jsx(kYe,{card:t})}}function NYe(){const t=Ji();P.useEffect(()=>(document.body.classList.add("agent-card-page"),()=>{document.body.classList.remove("agent-card-page")}),[]);const e=t.pathname.slice(1);return!e||e===""?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Agent Cards"}),o.jsx("p",{className:"text-slate-500",children:"Visit a specific agent's card URL to view their digital business card."})]})}):o.jsx(RYe,{slug:e})}function RYe({slug:t}){return o.jsx(LYe,{slug:t})}function LYe({slug:t}){var a;const{data:e,isLoading:r,error:n}=lYe(t);if(P.useEffect(()=>{e!=null&&e.id&&Qi(e.id,"card_view")},[e==null?void 0:e.id]),r)return o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center",children:o.jsxs("div",{className:"w-full max-w-md mx-auto p-6 space-y-6",children:[o.jsxs("div",{className:"flex flex-col items-center gap-4",children:[o.jsx(al,{className:"h-28 w-28 rounded-full"}),o.jsx(al,{className:"h-6 w-48"}),o.jsx(al,{className:"h-4 w-36"})]}),o.jsx(al,{className:"h-12 w-full"}),o.jsx(al,{className:"h-12 w-full"})]})});if(n||!e)return o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Card Not Found"}),o.jsx("p",{className:"text-slate-500",children:"This agent card doesn't exist or isn't published yet."})]})});const i=((a=e.profile)==null?void 0:a.name)||"Agent";return o.jsxs(o.Fragment,{children:[o.jsxs(Il,{children:[o.jsxs("title",{children:[i," | Real Estate Agent"]}),o.jsx("meta",{name:"description",content:e.positioning_statement||`Connect with ${i}, your trusted real estate professional.`}),o.jsx("meta",{property:"og:title",content:`${i} | Real Estate Agent`}),o.jsx("meta",{property:"og:description",content:e.positioning_statement||`Connect with ${i}`}),e.avatar_url&&o.jsx("meta",{property:"og:image",content:e.avatar_url})]}),o.jsx(PYe,{card:e})]})}function DYe({presentationId:t,ctaLabel:e,agentName:r,prefillName:n,prefillEmail:i,prefillPhone:a}){const[c,s]=P.useState(n||""),[f,m]=P.useState(i||""),[x,_]=P.useState(a||""),[T,E]=P.useState(""),[C,N]=P.useState(""),[L,M]=P.useState(!1),[D,B]=P.useState(!1),V=async G=>{if(G.preventDefault(),!c.trim()){Jt.error("Please enter your name");return}M(!0);try{const{error:W}=await De.from("smart_presentation_leads").insert({presentation_id:t,name:c.trim(),email:f.trim()||null,phone:x.trim()||null,intent:T||null,message:C.trim()||null});if(W)throw W;try{await De.rpc("log_presentation_view",{p_presentation_id:t,p_section_index:null,p_cta_clicked:!0,p_ip_hash:null,p_user_agent:navigator.userAgent,p_referrer:null})}catch{}De.functions.invoke("presentation-lead-notify",{body:{presentationId:t,name:c.trim(),email:f.trim()||void 0,phone:x.trim()||void 0,intent:T||void 0,message:C.trim()||void 0}}).catch(Z=>console.error("Presentation lead notify failed:",Z)),B(!0)}catch{Jt.error("Something went wrong. Please try again.")}finally{M(!1)}};return D?o.jsxs("div",{className:"text-center py-8",children:[o.jsx("div",{className:"w-16 h-16 rounded-full bg-emerald-100 flex items-center justify-center mx-auto mb-4",children:o.jsx(Ao,{className:"h-8 w-8 text-emerald-600"})}),o.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Thank you!"}),o.jsx("p",{className:"text-gray-500",children:r?`${r} will be in touch soon.`:"We'll be in touch soon."})]}):o.jsxs("form",{onSubmit:V,className:"space-y-4 max-w-md mx-auto",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"pres-lead-name",children:"Name *"}),o.jsx(Hr,{id:"pres-lead-name",value:c,onChange:G=>s(G.target.value),placeholder:"Your name",required:!0})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"pres-lead-phone",children:"Phone"}),o.jsx(Hr,{id:"pres-lead-phone",type:"tel",value:x,onChange:G=>_(G.target.value),placeholder:"(555) 123-4567"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"pres-lead-email",children:"Email"}),o.jsx(Hr,{id:"pres-lead-email",type:"email",value:f,onChange:G=>m(G.target.value),placeholder:"you@example.com"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"pres-lead-intent",children:"I'm looking to..."}),o.jsxs(Fa,{value:T,onValueChange:E,children:[o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select one"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"buy",children:"Buy a home"}),o.jsx(xn,{value:"sell",children:"Sell my home"}),o.jsx(xn,{value:"both",children:"Buy & Sell"}),o.jsx(xn,{value:"other",children:"Something else"})]})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"pres-lead-message",children:"Message (optional)"}),o.jsx(Hr,{id:"pres-lead-message",value:C,onChange:G=>N(G.target.value),placeholder:"Anything you'd like us to know"})]}),o.jsx(Kt,{type:"submit",className:"w-full text-lg py-6 rounded-xl bg-blue-600 hover:bg-blue-700 text-white shadow-lg",disabled:L,children:L?"Sending...":e})]})}function MYe(){const t=Ji();P.useEffect(()=>(document.body.classList.add("presentation-page"),()=>{document.body.classList.remove("presentation-page")}),[]);const e=t.pathname.slice(1);return!e||e===""?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Smart Presentations"}),o.jsx("p",{className:"text-slate-500",children:"Visit a specific presentation URL to view it."})]})}):o.jsx(OYe,{shareToken:e})}function OYe({shareToken:t}){var C;const[e,r]=P.useState(null),[n,i]=P.useState(!0),[a,c]=P.useState(0),[s,f]=P.useState(!1);P.useEffect(()=>{m()},[t]);const m=async()=>{const{data:N,error:L}=await De.from("smart_presentations").select("*").eq("share_token",t).eq("status","published").single();if(L||!N){f(!0),i(!1);return}const{data:M}=await De.from("profiles").select("name, email, phone, avatar_url, title, brokerage_id").eq("id",N.owner_user_id).single();let D;if(M!=null&&M.brokerage_id){const{data:V}=await De.from("brokerages").select("name").eq("id",M.brokerage_id).single();D=(V==null?void 0:V.name)||void 0}let B=null;if(N.contact_id){const{data:V}=await De.from("innercircle_contacts").select("first_name, last_name, email, phone").eq("id",N.contact_id).single();B=V}r({...N,owner_name:M==null?void 0:M.name,owner_email:M==null?void 0:M.email,owner_phone:M==null?void 0:M.phone,owner_avatar:M==null?void 0:M.avatar_url,owner_title:(M==null?void 0:M.title)||void 0,brokerage_name:D,contact_name:B?[B.first_name,B.last_name].filter(Boolean).join(" "):void 0,contact_email:(B==null?void 0:B.email)||void 0,contact_phone:(B==null?void 0:B.phone)||void 0}),i(!1);try{await De.rpc("log_presentation_view",{p_presentation_id:N.id,p_section_index:0,p_cta_clicked:!1,p_ip_hash:null,p_user_agent:navigator.userAgent,p_referrer:document.referrer||null})}catch{}},x=async()=>{if(e){try{await De.rpc("log_presentation_view",{p_presentation_id:e.id,p_section_index:null,p_cta_clicked:!0,p_ip_hash:null,p_user_agent:navigator.userAgent,p_referrer:null})}catch{}e.cta_url&&window.open(e.cta_url,"_blank")}},_=N=>{const L=N.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]+)/);if(L)return`https://www.youtube.com/embed/${L[1]}?rel=0`;if(N.includes("iframe.mediadelivery.net/play/")){const B=N.replace("/play/","/embed/"),V=B.includes("?")?"&":"?";return`${B}${V}responsive=true`}if(N.includes("iframe.mediadelivery.net")){const B=N.includes("?")?"&":"?";return`${N}${B}responsive=true`}const M=N.match(/loom\.com\/share\/([a-zA-Z0-9]+)/);if(M)return`https://www.loom.com/embed/${M[1]}`;const D=N.match(/video\.bunnycdn\.com\/play\/(\d+)\/([a-f0-9-]+)/);return D?`https://iframe.mediadelivery.net/embed/${D[1]}/${D[2]}?responsive=true`:N};if(n)return o.jsx("div",{className:"min-h-screen bg-white flex items-center justify-center",children:o.jsxs("div",{className:"space-y-4 w-full max-w-2xl px-4",children:[o.jsx(al,{className:"h-12 w-3/4 mx-auto"}),o.jsx(al,{className:"h-64 w-full"}),o.jsx(al,{className:"h-8 w-1/2 mx-auto"})]})});if(s||!e)return o.jsx("div",{className:"min-h-screen bg-white flex items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"Presentation Not Found"}),o.jsx("p",{className:"text-gray-500",children:"This presentation may have been removed or is no longer available."})]})});const T=e.sections.filter(N=>N.is_visible!==!1),E=T[a];return o.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white",children:[o.jsx("header",{className:"bg-white border-b border-gray-100 sticky top-0 z-10",children:o.jsx("div",{className:"max-w-5xl mx-auto px-4 py-3 flex items-center justify-end",children:o.jsxs("div",{className:"flex items-center gap-3",children:[e.owner_avatar&&o.jsx("img",{src:e.owner_avatar,alt:e.owner_name||"Agent",className:"h-10 w-10 rounded-full object-cover border border-gray-200"}),o.jsxs("div",{className:"text-right text-sm",children:[o.jsx("p",{className:"font-semibold text-gray-900",children:e.owner_name}),e.owner_title&&o.jsx("p",{className:"text-gray-500 text-xs",children:e.owner_title}),e.brokerage_name&&!e.owner_title&&o.jsx("p",{className:"text-gray-500 text-xs",children:e.brokerage_name})]})]})})}),o.jsxs("main",{className:"max-w-5xl mx-auto px-4 py-8",children:[o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-2",children:e.heading||(e.client_name?`Welcome, ${e.client_name}!`:e.title)}),e.property_address&&o.jsxs("p",{className:"text-lg text-gray-600",children:["Here's the plan for your home at ",o.jsx("strong",{children:e.property_address}),"."]})]}),o.jsxs("div",{className:"grid md:grid-cols-5 gap-8",children:[o.jsxs("div",{className:"md:col-span-3",children:[E!=null&&E.video_url?o.jsx("div",{className:"relative w-full rounded-xl overflow-hidden shadow-lg bg-gray-900",style:{paddingTop:"56.25%"},children:o.jsx("iframe",{src:_(E.video_url),className:"absolute inset-0 w-full h-full border-0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy"})}):E!=null&&E.image_url?o.jsx("div",{className:"rounded-xl overflow-hidden shadow-lg",children:o.jsx("img",{src:E.image_url,alt:E.title,className:"w-full h-auto object-cover",loading:"lazy"})}):o.jsxs("div",{className:"aspect-video bg-gradient-to-br from-blue-50 to-slate-100 rounded-xl flex flex-col items-center justify-center shadow-lg",children:[o.jsx("span",{className:"text-5xl mb-3",children:E==null?void 0:E.icon}),o.jsx("h3",{className:"text-xl font-semibold text-gray-800",children:E==null?void 0:E.title}),o.jsx("p",{className:"text-gray-500 mt-1 text-sm",children:E==null?void 0:E.description})]}),(E==null?void 0:E.text)&&o.jsx("div",{className:"mt-4 p-4 bg-white rounded-lg border text-gray-700 text-sm leading-relaxed prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:E.text}})]}),o.jsx("div",{className:"md:col-span-2 space-y-3",children:T.map((N,L)=>o.jsx("button",{onClick:()=>c(L),className:ir("w-full text-left p-4 rounded-xl border transition-all",a===L?"border-blue-500 bg-blue-50 shadow-sm":"border-gray-200 bg-white hover:border-blue-200 hover:bg-blue-50/50"),children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsxs("span",{className:"text-blue-600 font-bold text-sm mt-0.5",children:[String(L+1).padStart(2,"0"),"."]}),o.jsxs("div",{children:[o.jsx("span",{className:"mr-2",children:N.icon}),o.jsx("span",{className:"font-semibold text-gray-900",children:N.title}),o.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:N.description})]})]})},L))})]}),o.jsxs("div",{className:"mt-12 max-w-md mx-auto bg-white rounded-2xl border border-gray-200 shadow-sm p-6 text-center",children:[e.owner_avatar&&o.jsx("img",{src:e.owner_avatar,alt:e.owner_name||"Agent",className:"h-20 w-20 rounded-full object-cover mx-auto mb-3 border-2 border-gray-100"}),o.jsx("h3",{className:"text-lg font-bold text-gray-900",children:e.owner_name}),e.owner_title&&o.jsx("p",{className:"text-sm text-gray-500",children:e.owner_title}),e.brokerage_name&&o.jsx("p",{className:"text-sm text-gray-500",children:e.brokerage_name}),o.jsxs("div",{className:"mt-3 flex flex-col items-center gap-1 text-sm text-gray-600",children:[e.owner_phone&&o.jsx("a",{href:`tel:${e.owner_phone}`,className:"hover:text-blue-600 transition-colors",children:e.owner_phone}),e.owner_email&&o.jsx("a",{href:`mailto:${e.owner_email}`,className:"hover:text-blue-600 transition-colors",children:e.owner_email})]})]}),e.cta_label&&o.jsxs("div",{className:"text-center mt-8 py-8",children:[o.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Ready to Get Started?"}),(C=e.cta_url)!=null&&C.trim()?o.jsxs(Kt,{size:"lg",onClick:x,className:"text-lg px-8 py-6 rounded-xl bg-blue-600 hover:bg-blue-700 text-white shadow-lg",children:[e.cta_label,o.jsx(sS,{className:"h-5 w-5 ml-2"})]}):o.jsx("div",{className:"max-w-md mx-auto bg-white rounded-2xl border border-gray-200 shadow-sm p-6",children:o.jsx(DYe,{presentationId:e.id,ctaLabel:e.cta_label,agentName:e.owner_name||void 0,prefillName:e.contact_name,prefillEmail:e.contact_email,prefillPhone:e.contact_phone})})]})]}),o.jsx("footer",{className:"border-t border-gray-100 bg-white mt-12 py-6 text-center text-xs text-gray-400",children:"Powered by LevelUp"})]})}function WUt(){const{user:t}=$n(),e=es(),{data:r}=_S();return br({queryKey:["open-houses",e,r==null?void 0:r.teamId,r==null?void 0:r.role],queryFn:async()=>{const{data:n,error:i}=await De.from("open_houses").select("*").eq("agent_id",e).order("event_date",{ascending:!1});if(i)throw i;let a=n||[];if((r==null?void 0:r.role)==="team_leader"&&r.teamId){const{data:c,error:s}=await De.rpc("get_team_open_houses",{_user_id:e});if(!s&&c){const f=[...new Set(c.map(_=>_.agent_id))],m={};if(f.length>0){const{data:_}=await De.from("profiles").select("id, name").in("id",f);_==null||_.forEach(T=>{T.name&&(m[T.id]=T.name)})}const x=c.map(_=>({..._,agent_name:m[_.agent_id]||void 0}));a=[...a,...x]}}return a.sort((c,s)=>s.event_date.localeCompare(c.event_date)),a},enabled:!!t&&!!e})}function KUt(t){const{user:e}=$n();return br({queryKey:["open-house",t],queryFn:async()=>{const{data:r,error:n}=await De.from("open_houses").select("*").eq("id",t).single();if(n)throw n;return r},enabled:!!e&&!!t})}function YUt(t){const{user:e}=$n(),r=Ir();return P.useEffect(()=>{if(!t)return;const n=`visitors-${t}-${Math.random().toString(36).slice(2,10)}`,i=De.channel(n).on("postgres_changes",{event:"*",schema:"public",table:"open_house_visitors",filter:`open_house_id=eq.${t}`},()=>{r.invalidateQueries({queryKey:["open-house-visitors",t]}),r.invalidateQueries({queryKey:["open-houses"]})}).subscribe();return()=>{De.removeChannel(i)}},[t,r]),br({queryKey:["open-house-visitors",t],queryFn:async()=>{const{data:n,error:i}=await De.from("open_house_visitors").select("*").eq("open_house_id",t).order("created_at",{ascending:!1});if(i)throw i;return n},enabled:!!e&&!!t})}function ZUt(){const t=Ir(),e=es();return kr({mutationFn:async r=>{const{data:n,error:i}=await De.from("open_houses").insert({...r,agent_id:e}).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["open-houses"]}),As({title:"Open house created!"})},onError:r=>{As({title:"Error",description:r.message,variant:"destructive"})}})}function XUt(){const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{error:n}=await De.from("open_houses").update(r).eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-houses"]}),t.invalidateQueries({queryKey:["open-house",r.id]})}})}function QUt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("open_houses").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["open-houses"]}),As({title:"Open house deleted"})}})}function p_e(t){return br({queryKey:["public-open-house",t],queryFn:async()=>{const{data:e,error:r}=await De.from("open_houses").select("*, profiles:agent_id(name, avatar_url, title, email, phone)").eq("slug",t).eq("is_active",!0).single();if(r)throw r;let n=null;if(e.agent_id){const{data:i}=await De.from("agent_cards").select("slug").eq("user_id",e.agent_id).eq("is_published",!0).maybeSingle();i&&(n=i.slug)}return{...e,agent_card_slug:n}},enabled:!!t})}function JUt(t){const{user:e}=$n();return br({queryKey:["survey-questions",t],queryFn:async()=>{const{data:r,error:n}=await De.from("open_house_survey_questions").select("*").eq("open_house_id",t).order("sort_order");if(n)throw n;return r},enabled:!!e&&!!t})}function FYe(t){return br({queryKey:["public-survey-questions",t],queryFn:async()=>{const{data:e,error:r}=await De.from("open_house_survey_questions").select("*").eq("open_house_id",t).eq("is_active",!0).order("sort_order");if(r)throw r;return e},enabled:!!t})}function BYe(){return kr({mutationFn:async t=>{const{error:e}=await De.from("open_house_survey_responses").insert(t);if(e)throw e}})}function e6t(t){const{user:e}=$n();return br({queryKey:["survey-responses",t],queryFn:async()=>{const{data:r,error:n}=await De.from("open_house_survey_questions").select("*").eq("open_house_id",t).order("sort_order");if(n)throw n;const i=(r||[]).map(s=>s.id);if(i.length===0)return{questions:[],responses:[]};const{data:a,error:c}=await De.from("open_house_survey_responses").select("*").in("question_id",i).order("created_at",{ascending:!1});if(c)throw c;return{questions:r,responses:a||[]}},enabled:!!e&&!!t})}function t6t(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("open_house_survey_questions").insert(e).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["survey-questions",r.open_house_id]})}})}function r6t(){const t=Ir();return kr({mutationFn:async({id:e,open_house_id:r,...n})=>{const{error:i}=await De.from("open_house_survey_questions").update(n).eq("id",e);if(i)throw i},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["survey-questions",r.open_house_id]})}})}function n6t(){const t=Ir();return kr({mutationFn:async({id:e,open_house_id:r})=>{const{error:n}=await De.from("open_house_survey_questions").delete().eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["survey-questions",r.open_house_id]})}})}function i6t(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.rpc("seed_default_survey_questions",{_open_house_id:e});if(r)throw r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["survey-questions",r]})}})}function zYe(){return kr({mutationFn:async t=>{const e=crypto.randomUUID(),{error:r}=await De.from("open_house_visitors").insert({...t,id:e});if(r)throw r;return{id:e}}})}function $Ye(){return kr({mutationFn:async({visitor_id:t,...e})=>{const{error:r}=await De.from("open_house_visitors").update(e).eq("id",t);if(r)throw r}})}function UYe(){return kr({mutationFn:async t=>{await De.rpc("increment_open_house_scan",{_slug:t})}})}async function m_e(t){const{data:e,error:r}=await De.from("open_house_rooms").select("*").eq("open_house_id",t).order("sort_order");if(r)throw r;const n=e||[];if(n.length===0)return[];const i=n.map(f=>f.id),{data:a,error:c}=await De.from("open_house_room_media").select("*").in("room_id",i).order("sort_order");if(c)throw c;const s={};return(a||[]).forEach(f=>{var x;const m=f;(s[x=m.room_id]||(s[x]=[])).push(m)}),n.map(f=>({...f,media:s[f.id]||[]}))}function s6t(t){const{user:e}=$n();return br({queryKey:["open-house-rooms",t],queryFn:()=>m_e(t),enabled:!!e&&!!t})}function VYe(t){return br({queryKey:["public-open-house-rooms",t],queryFn:()=>m_e(t),enabled:!!t})}function a6t(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("open_house_rooms").insert(e).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rooms",r.open_house_id]})}})}function o6t(){const t=Ir();return kr({mutationFn:async({id:e,open_house_id:r,...n})=>{const{error:i}=await De.from("open_house_rooms").update(n).eq("id",e);if(i)throw i},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rooms",r.open_house_id]})}})}function l6t(){const t=Ir();return kr({mutationFn:async({id:e,open_house_id:r})=>{const{error:n}=await De.from("open_house_rooms").delete().eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rooms",r.open_house_id]})}})}function c6t(){const t=Ir();return kr({mutationFn:async({open_house_id:e,...r})=>{const{data:n,error:i}=await De.from("open_house_room_media").insert(r).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rooms",r.open_house_id]})}})}function u6t(){const t=Ir();return kr({mutationFn:async({id:e,open_house_id:r})=>{const{error:n}=await De.from("open_house_room_media").delete().eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rooms",r.open_house_id]})}})}function d6t(){const t=Ir();return kr({mutationFn:async({open_house_id:e,orderedIds:r})=>{for(let n=0;n{const n=["open-house-rooms",e];await t.cancelQueries({queryKey:n});const i=t.getQueryData(n);if(i){const a=new Map(i.map(s=>[s.id,s])),c=r.map((s,f)=>({...a.get(s),sort_order:f})).filter(Boolean);t.setQueryData(n,c)}return{prev:i,key:n}},onError:(e,r,n)=>{n!=null&&n.prev&&t.setQueryData(n.key,n.prev)},onSettled:(e,r,n)=>{t.invalidateQueries({queryKey:["open-house-rooms",n.open_house_id]})}})}function h6t(){const t=Ir();return kr({mutationFn:async({open_house_id:e,room_id:r,orderedIds:n})=>{for(let i=0;i{const i=["open-house-rooms",e];await t.cancelQueries({queryKey:i});const a=t.getQueryData(i);return a&&t.setQueryData(i,a.map(c=>{if(c.id!==r)return c;const s=new Map(c.media.map(f=>[f.id,f]));return{...c,media:n.map((f,m)=>{const x=s.get(f);return x?{...x,sort_order:m}:null}).filter(Boolean)}})),{prev:a,key:i}},onError:(e,r,n)=>{n!=null&&n.prev&&t.setQueryData(n.key,n.prev)},onSettled:(e,r,n)=>{t.invalidateQueries({queryKey:["open-house-rooms",n.open_house_id]})}})}function f6t(t){const{user:e}=$n();return br({queryKey:["open-house-leads",t],queryFn:async()=>{const{data:r,error:n}=await De.from("open_house_leads").select("*").eq("open_house_id",t).order("created_at",{ascending:!1});if(n)throw n;return r||[]},enabled:!!e&&!!t})}function p6t(){const t=Ir();return kr({mutationFn:async({id:e,status:r,open_house_id:n})=>{const{error:i}=await De.from("open_house_leads").update({status:r}).eq("id",e);if(i)throw i;return{open_house_id:n}},onSuccess:e=>{t.invalidateQueries({queryKey:["open-house-leads",e.open_house_id]})}})}var XO="Switch",[qYe,m6t]=Go(XO),[GYe,HYe]=qYe(XO),g_e=P.forwardRef((t,e)=>{const{__scopeSwitch:r,name:n,checked:i,defaultChecked:a,required:c,disabled:s,value:f="on",onCheckedChange:m,form:x,..._}=t,[T,E]=P.useState(null),C=Gn(e,B=>E(B)),N=P.useRef(!1),L=T?x||!!T.closest("form"):!0,[M,D]=sd({prop:i,defaultProp:a??!1,onChange:m,caller:XO});return o.jsxs(GYe,{scope:r,checked:M,disabled:s,children:[o.jsx(rn.button,{type:"button",role:"switch","aria-checked":M,"aria-required":c,"data-state":v_e(M),"data-disabled":s?"":void 0,disabled:s,value:f,..._,ref:C,onClick:Or(t.onClick,B=>{D(V=>!V),L&&(N.current=B.isPropagationStopped(),N.current||B.stopPropagation())})}),L&&o.jsx(__e,{control:T,bubbles:!N.current,name:n,value:f,checked:M,required:c,disabled:s,form:x,style:{transform:"translateX(-100%)"}})]})});g_e.displayName=XO;var y_e="SwitchThumb",x_e=P.forwardRef((t,e)=>{const{__scopeSwitch:r,...n}=t,i=HYe(y_e,r);return o.jsx(rn.span,{"data-state":v_e(i.checked),"data-disabled":i.disabled?"":void 0,...n,ref:e})});x_e.displayName=y_e;var WYe="SwitchBubbleInput",__e=P.forwardRef(({__scopeSwitch:t,control:e,checked:r,bubbles:n=!0,...i},a)=>{const c=P.useRef(null),s=Gn(c,a),f=zC(r),m=jC(e);return P.useEffect(()=>{const x=c.current;if(!x)return;const _=window.HTMLInputElement.prototype,E=Object.getOwnPropertyDescriptor(_,"checked").set;if(f!==r&&E){const C=new Event("click",{bubbles:n});E.call(x,r),x.dispatchEvent(C)}},[f,r,n]),o.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...i,tabIndex:-1,ref:s,style:{...i.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});__e.displayName=WYe;function v_e(t){return t?"checked":"unchecked"}var b_e=g_e,KYe=x_e;const TS=P.forwardRef(({className:t,...e},r)=>o.jsx(b_e,{className:ir("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",t),...e,ref:r,children:o.jsx(KYe,{className:ir("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));TS.displayName=b_e.displayName;const YYe=["Excellent","Good","Neutral","Bad","Very Bad"],ZYe=[5,4,3,2,1];function XYe({questions:t,visitorId:e,onComplete:r,onSkip:n}){const i=BYe(),[a,c]=P.useState({}),s=t.filter(T=>T.question_type==="rating"),f=t.filter(T=>T.question_type!=="rating"),m=(T,E)=>{c(C=>({...C,[T]:{rating_value:E}}))},x=(T,E)=>{c(C=>({...C,[T]:{text_value:E}}))},_=async()=>{const T=Object.entries(a).filter(([,E])=>E.rating_value!=null||E.text_value&&E.text_value.trim()).map(([E,C])=>{var N;return{visitor_id:e,question_id:E,rating_value:C.rating_value??null,text_value:((N=C.text_value)==null?void 0:N.trim())||null}});if(T.length>0)try{await i.mutateAsync(T)}catch{}r()};return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsx("h2",{className:"text-lg font-bold text-slate-900",children:"Quick Feedback"}),o.jsx("button",{onClick:n,className:"text-sm text-slate-400 hover:text-slate-600 underline",children:"Skip"})]}),o.jsx("p",{className:"text-sm text-slate-500 -mt-2",children:"Your feedback helps the agent — totally optional!"}),s.length>0&&o.jsxs("div",{className:"space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("div",{className:"flex-1"}),YYe.map(T=>o.jsx("div",{className:"w-12 text-center",children:o.jsx("span",{className:"text-[10px] text-slate-400 leading-tight block",children:T})},T))]}),s.map(T=>o.jsxs("div",{className:"flex items-center gap-1 py-1.5 border-b border-slate-100 last:border-0",children:[o.jsx("span",{className:"flex-1 text-sm text-slate-700 pr-2",children:T.question_text}),ZYe.map(E=>{var C;return o.jsx("div",{className:"w-12 flex justify-center",children:o.jsx("button",{type:"button",onClick:()=>m(T.id,E),className:`w-6 h-6 rounded-full border-2 transition-all ${((C=a[T.id])==null?void 0:C.rating_value)===E?"bg-slate-900 border-slate-900":"border-slate-300 hover:border-slate-500"}`})},E)})]},T.id))]}),f.map(T=>{var E;return o.jsxs("div",{children:[o.jsx("label",{className:"text-sm font-medium text-slate-700 block mb-1",children:T.question_text}),o.jsx(ud,{value:((E=a[T.id])==null?void 0:E.text_value)||"",onChange:C=>x(T.id,C.target.value),placeholder:"Your thoughts...",className:"h-16 text-sm resize-none rounded-xl border-slate-200"})]},T.id)}),o.jsx(Kt,{onClick:_,disabled:i.isPending,className:"w-full h-12 text-base bg-slate-900 hover:bg-slate-800 text-white rounded-xl",children:i.isPending?o.jsx(ku,{className:"h-5 w-5 animate-spin"}):"Submit Feedback"})]})}function L6(t){return/iframe\.mediadelivery\.net\/embed\//.test(t)}function QYe({rooms:t}){var _;const[e,r]=P.useState(((_=t[0])==null?void 0:_.id)||""),[n,i]=P.useState(null),a=t.find(T=>T.id===e)||t[0],c=n!==null?a==null?void 0:a.media[n]:null,s=(a==null?void 0:a.media.length)??0,f=()=>i(null),m=()=>i(T=>T===null||s===0?T:(T-1+s)%s),x=()=>i(T=>T===null||s===0?T:(T+1)%s);return P.useEffect(()=>{if(n===null)return;const T=E=>{E.key==="Escape"?f():E.key==="ArrowLeft"?m():E.key==="ArrowRight"&&x()};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[n,s]),t.length?o.jsxs("div",{className:"hidden md:block",children:[o.jsx("div",{className:"sticky top-0 z-20 -mx-5 px-5 py-3 bg-slate-950/80 backdrop-blur-md border-b border-white/10 overflow-x-auto",children:o.jsx("div",{className:"flex gap-2 min-w-max",children:t.map(T=>o.jsxs("button",{onClick:()=>r(T.id),className:ir("px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition",e===T.id?"bg-white text-slate-900":"bg-white/5 text-white/70 hover:bg-white/10"),children:[T.name,o.jsx("span",{className:"ml-1.5 text-xs opacity-60",children:T.media.length})]},T.id))})}),a&&o.jsxs("div",{className:"mt-6",children:[o.jsx("h3",{className:"text-2xl font-bold",children:a.name}),a.description&&o.jsx("p",{className:"text-white/60 mt-1.5 text-sm max-w-2xl",children:a.description}),a.media.length===0?o.jsx("p",{className:"text-white/40 text-sm mt-6 italic",children:"No media yet for this room."}):o.jsx("div",{className:"mt-5 grid grid-cols-2 lg:grid-cols-3 gap-3",children:a.media.map((T,E)=>o.jsx("button",{onClick:()=>i(E),className:"relative aspect-[4/3] rounded-xl overflow-hidden bg-white/5 group",children:T.kind==="video"?o.jsxs(o.Fragment,{children:[L6(T.url)?o.jsx("div",{className:"absolute inset-0 bg-slate-900"}):o.jsx("video",{src:T.url,className:"w-full h-full object-cover"}),o.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30 group-hover:bg-black/50 transition",children:o.jsx("div",{className:"w-12 h-12 rounded-full bg-white/90 flex items-center justify-center",children:o.jsx(AL,{className:"h-5 w-5 text-slate-900"})})})]}):o.jsx("img",{src:T.url,alt:a.name,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"})},T.id))})]}),c&&a&&o.jsxs("div",{className:"fixed inset-0 z-50 bg-black/95 flex items-center justify-center p-6 cursor-zoom-out",onClick:f,children:[o.jsxs("div",{className:"absolute top-5 left-1/2 -translate-x-1/2 px-3 py-1.5 rounded-full bg-white/10 backdrop-blur-sm text-white/80 text-xs font-medium",children:[a.name," — ",(n??0)+1," / ",s]}),o.jsx("button",{onClick:T=>{T.stopPropagation(),f()},className:"absolute top-5 right-5 h-10 w-10 rounded-full bg-white/10 hover:bg-white/20 text-white text-xl flex items-center justify-center transition","aria-label":"Close",children:"×"}),s>1&&o.jsx("button",{onClick:T=>{T.stopPropagation(),m()},className:"absolute left-5 top-1/2 -translate-y-1/2 h-12 w-12 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition","aria-label":"Previous",children:o.jsx(Bm,{className:"h-6 w-6"})}),c.kind==="video"?L6(c.url)?o.jsx("iframe",{src:`${c.url}?autoplay=true`,allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"w-full max-w-5xl aspect-video rounded-lg",onClick:T=>T.stopPropagation()},c.url):o.jsx("video",{src:c.url,controls:!0,autoPlay:!0,className:"max-w-full max-h-full rounded-lg",onClick:T=>T.stopPropagation()},c.url):o.jsx("img",{src:c.url,alt:"",className:"max-w-full max-h-full rounded-lg cursor-default",onClick:T=>T.stopPropagation()}),s>1&&o.jsx("button",{onClick:T=>{T.stopPropagation(),x()},className:"absolute right-5 top-1/2 -translate-y-1/2 h-12 w-12 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition","aria-label":"Next",children:o.jsx(th,{className:"h-6 w-6"})})]})]}):null}function JYe({rooms:t}){var s;const e=[];t.forEach(f=>{e.push({type:"cover",roomId:f.id,roomName:f.name,description:f.description,mediaCount:f.media.length}),f.media.forEach((m,x)=>{e.push({type:"media",roomId:f.id,roomName:f.name,url:m.url,kind:m.kind,index:x,total:f.media.length})})});const r=P.useRef(null),[n,i]=P.useState(0);P.useEffect(()=>{const f=r.current;if(!f)return;let m=0;const x=()=>{cancelAnimationFrame(m),m=requestAnimationFrame(()=>{const _=Math.round(f.scrollLeft/f.clientWidth);i(_)})};return f.addEventListener("scroll",x,{passive:!0}),()=>{f.removeEventListener("scroll",x),cancelAnimationFrame(m)}},[]);const a=f=>{const m=r.current;m&&m.scrollTo({left:f*m.clientWidth,behavior:"smooth"})};if(!e.length)return null;const c=(s=e[n])==null?void 0:s.roomId;return o.jsxs("div",{className:"md:hidden -mx-5",children:[o.jsx("div",{className:"px-5 py-3 overflow-x-auto sticky top-0 z-20 bg-slate-950/80 backdrop-blur-md border-b border-white/10",children:o.jsx("div",{className:"flex gap-2 min-w-max",children:t.map(f=>{const m=e.findIndex(_=>_.roomId===f.id),x=c===f.id;return o.jsx("button",{onClick:()=>a(m),className:ir("px-3.5 py-1.5 rounded-full text-xs font-medium whitespace-nowrap transition",x?"bg-white text-slate-900":"bg-white/10 text-white/80"),children:f.name},f.id)})})}),o.jsx("div",{ref:r,className:"flex overflow-x-auto snap-x snap-mandatory scroll-smooth no-scrollbar",style:{scrollSnapType:"x mandatory"},children:e.map((f,m)=>o.jsx("div",{className:"shrink-0 w-screen snap-center",children:o.jsxs("div",{className:"w-full aspect-[9/16] max-h-[75vh] bg-slate-900 relative",children:[f.type==="cover"?o.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center p-8 text-center bg-gradient-to-br from-slate-800 to-slate-950",children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-white/40 mb-2",children:"Next room"}),o.jsx("h3",{className:"text-3xl font-bold",children:f.roomName}),f.description&&o.jsx("p",{className:"text-white/70 text-sm mt-3 max-w-xs",children:f.description}),o.jsxs("p",{className:"text-white/40 text-xs mt-5",children:[f.mediaCount," ",f.mediaCount===1?"item":"items"," — swipe to view →"]})]}):f.kind==="video"?L6(f.url)?o.jsx("iframe",{src:f.url,allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"w-full h-full"}):o.jsx("video",{src:f.url,controls:!0,playsInline:!0,className:"w-full h-full object-cover"}):o.jsx("img",{src:f.url,alt:f.roomName,className:"w-full h-full object-cover"}),f.type==="media"&&o.jsxs("div",{className:"absolute top-3 left-3 right-3 flex items-center justify-between pointer-events-none",children:[o.jsx("div",{className:"px-3 py-1 rounded-full bg-black/50 backdrop-blur-sm text-xs text-white font-medium",children:f.roomName}),o.jsxs("div",{className:"px-2.5 py-1 rounded-full bg-black/50 backdrop-blur-sm text-[10px] text-white/80",children:[f.index+1," / ",f.total]})]})]})},m))}),o.jsxs("div",{className:"flex items-center justify-between px-5 mt-3",children:[o.jsxs("button",{onClick:()=>a(Math.max(0,n-1)),disabled:n===0,className:"flex items-center gap-1 text-sm text-white/70 disabled:opacity-30",children:[o.jsx(Bm,{className:"h-4 w-4"})," Prev"]}),o.jsxs("span",{className:"text-xs text-white/50",children:[n+1," / ",e.length]}),o.jsxs("button",{onClick:()=>a(Math.min(e.length-1,n+1)),disabled:n===e.length-1,className:"flex items-center gap-1 text-sm text-white/70 disabled:opacity-30",children:["Next ",o.jsx(th,{className:"h-4 w-4"})]})]})]})}const $B={question:{label:"Ask a Question",title:"Ask the agent",placeholder:"What would you like to know about the home?",icon:rp},showing:{label:"Schedule a Showing",title:"Request a private showing",placeholder:"Anything specific to focus on during the showing? (optional)",icon:fo},disclosure:{label:"Request Disclosures",title:"Request seller disclosures",placeholder:"Any specific documents? (optional)",icon:Im},offer:{label:"I'm Interested — Let's Talk",title:"Express interest / make an offer",placeholder:"Tell the agent about your interest or any offer thoughts.",icon:gm}},eZe=["Seller's Property Disclosure","HOA Documents & Bylaws","Inspection Reports","Title / CC&Rs","Utility & Tax History"];function tZe(t){return t==null||t<=0?null:`$${t.toLocaleString("en-US")}`}function rZe({openHouse:t,visitorId:e,visitorName:r,visitorEmail:n,visitorPhone:i,previewMode:a=!1}){var er;const c=t.profiles,s=((er=c==null?void 0:c.name)==null?void 0:er.split(" ").map(vt=>vt[0]).join("").slice(0,2))||"?",f=t.brand_color_override||null,[m,x]=P.useState(null),[_,T]=P.useState(""),[E,C]=P.useState(n||""),[N,L]=P.useState(i||""),[M,D]=P.useState(!1),[B,V]=P.useState(null),[G,W]=P.useState(""),[Z,Q]=P.useState(""),[se,ie]=P.useState(""),[ue,be]=P.useState([]),[Te,we]=P.useState(""),[Oe,Ae]=P.useState(""),[Se,ge]=P.useState(""),[je,_e]=P.useState(""),xe=tZe(t.price),Pe=t.tour_mode==="rooms",{data:Ze=[]}=VYe(Pe?t.id:void 0),at=[t.enable_question&&"question",t.enable_showing&&"showing",t.enable_disclosures&&"disclosure",t.enable_offer&&"offer"].filter(Boolean),lt=vt=>{x(vt),T(""),W(""),Q(""),ie(""),be([]),we(""),Ae(""),ge(""),_e("")},xt=()=>{x(null)},St=vt=>{be(xr=>xr.includes(vt)?xr.filter(_r=>_r!==vt):[...xr,vt])},Xt=vt=>vt==="showing"?{preferred_date:G||null,preferred_time:Z||null,alternate_date:se||null}:vt==="disclosure"?{requested_documents:ue}:vt==="offer"?{offer_amount:Te||null,financing:Oe||null,timeline:Se||null,pre_approved:je||null}:{},_t=m?m==="showing"?!!G:m==="question"?_.trim().length>0:!0:!1,Rt=async()=>{if(m){if(a){As({title:"Preview mode",description:"Lead not sent — this is just a preview."}),V(m),setTimeout(()=>{x(null),V(null)},1500);return}D(!0);try{const vt=Xt(m),{error:xr}=await De.from("open_house_leads").insert({open_house_id:t.id,visitor_id:e,action_type:m,payload:{message:_.trim()||null,email:E.trim()||null,phone:N.trim()||null,visitor_name:r,...vt}});if(xr)throw xr;De.functions.invoke("send-virtual-open-house-lead",{body:{open_house_id:t.id,visitor_id:e,action_type:m,message:_.trim()||null,visitor_name:r,visitor_email:E.trim()||null,visitor_phone:N.trim()||null,extras:vt}}).catch(()=>{}),V(m),As({title:"Sent!",description:"The agent has been notified."}),setTimeout(()=>{xt(),V(null)},1400)}catch(vt){As({title:"Something went wrong",description:vt.message,variant:"destructive"})}finally{D(!1)}}};return o.jsxs("div",{className:"min-h-screen bg-slate-950 text-white",children:[o.jsxs("div",{className:"relative w-full aspect-video bg-slate-900 md:max-h-[70vh]",children:[t.hero_video_url?o.jsx("video",{src:t.hero_video_url,poster:t.hero_video_thumbnail_url||t.photo_url||void 0,controls:!0,playsInline:!0,className:"w-full h-full object-cover"}):t.photo_url?o.jsx("img",{src:t.photo_url,alt:t.property_address,className:"w-full h-full object-cover"}):o.jsx("div",{className:"w-full h-full flex items-center justify-center text-white/40",children:"No tour video yet"}),o.jsx("div",{className:"absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-slate-950 to-transparent pointer-events-none"})]}),o.jsxs("div",{className:"max-w-3xl mx-auto px-5 pb-32 -mt-10 relative z-10",children:[o.jsxs("div",{className:"bg-slate-900/80 backdrop-blur-md border border-white/10 rounded-2xl p-6 shadow-2xl",children:[o.jsx("h1",{className:"text-2xl font-bold leading-tight",children:t.property_address}),t.city&&o.jsxs("p",{className:"text-sm text-white/60 mt-1 flex items-center gap-1",children:[o.jsx(ga,{className:"h-3.5 w-3.5"}),t.city,t.state?`, ${t.state}`:""," ",t.zip]}),xe&&o.jsx("p",{className:"text-3xl font-bold text-white mt-3",children:xe}),o.jsxs("div",{className:"flex flex-wrap gap-4 mt-4 text-sm text-white/80",children:[t.beds!=null&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(_C,{className:"h-4 w-4"}),t.beds," bd"]}),t.baths!=null&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(iS,{className:"h-4 w-4"}),t.baths," ba"]}),t.sqft!=null&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(cG,{className:"h-4 w-4"}),t.sqft.toLocaleString()," sqft"]})]}),t.property_description?o.jsx("p",{className:"text-white/80 text-sm mt-5 whitespace-pre-wrap leading-relaxed",children:t.property_description}):t.agent_greeting&&o.jsxs("p",{className:"text-white/70 text-sm mt-5 border-l-2 border-white/20 pl-3 italic",children:['"',t.agent_greeting,'"']})]}),c&&o.jsxs("div",{className:"mt-5 flex items-center gap-3 bg-white/5 border border-white/10 rounded-xl p-4",children:[o.jsxs(Zd,{className:"h-12 w-12 ring-2 ring-white/20",style:f?{boxShadow:`0 0 0 2px ${f}`}:void 0,children:[o.jsx(Xd,{src:c.avatar_url||"",alt:c.name||""}),o.jsx(Qd,{className:"bg-white/10 text-white",children:s})]}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"font-semibold text-white truncate",children:c.name}),c.title&&o.jsx("p",{className:"text-xs text-white/60 truncate",children:c.title})]}),(c.phone||c.email)&&o.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[c.phone&&o.jsx("a",{href:`tel:${c.phone}`,"aria-label":`Call ${c.name}`,className:"h-10 w-10 rounded-full bg-white/10 hover:bg-white/20 transition-colors flex items-center justify-center text-white",style:f?{backgroundColor:`${f}33`,color:"white"}:void 0,children:o.jsx(Ui,{className:"h-4 w-4"})}),c.email&&o.jsx("a",{href:`mailto:${c.email}`,"aria-label":`Email ${c.name}`,className:"h-10 w-10 rounded-full bg-white/10 hover:bg-white/20 transition-colors flex items-center justify-center text-white",style:f?{backgroundColor:`${f}33`,color:"white"}:void 0,children:o.jsx($i,{className:"h-4 w-4"})})]})]}),Pe&&Ze.length>0&&o.jsxs("div",{className:"mt-8",children:[o.jsx(QYe,{rooms:Ze}),o.jsx(JYe,{rooms:Ze})]}),at.length>0&&o.jsx("div",{className:"mt-5 grid grid-cols-1 sm:grid-cols-2 gap-3",children:at.map(vt=>{const xr=$B[vt],_r=xr.icon;return o.jsxs("button",{onClick:()=>lt(vt),className:"flex items-center gap-3 p-4 rounded-xl bg-white text-slate-900 hover:bg-white/90 transition-colors text-left",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center shrink-0",style:f?{backgroundColor:`${f}1a`,color:f}:{backgroundColor:"#f1f5f9",color:"#334155"},children:o.jsx(_r,{className:"h-5 w-5"})}),o.jsx("span",{className:"font-medium text-sm",children:xr.label})]},vt)})}),o.jsx("p",{className:"text-center text-white/30 text-xs mt-8",children:"Powered by LevelUp Virtual Open House"})]}),o.jsx(Uge,{open:!!m,onOpenChange:vt=>!vt&&xt(),children:o.jsx(s9,{side:"bottom",className:"rounded-t-2xl max-h-[92vh] overflow-y-auto",children:m&&o.jsxs(o.Fragment,{children:[o.jsxs(qge,{className:"text-left",children:[o.jsx(Gge,{children:$B[m].title}),o.jsxs(Hge,{children:[(c==null?void 0:c.name)||"The agent"," will be notified by email."]})]}),B===m?o.jsxs("div",{className:"py-10 flex flex-col items-center gap-3",children:[o.jsx("div",{className:"w-14 h-14 rounded-full bg-green-100 flex items-center justify-center",children:o.jsx(gc,{className:"h-7 w-7 text-green-600"})}),o.jsx("p",{className:"font-medium",children:"Message sent!"})]}):o.jsxs("div",{className:"space-y-4 pt-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Email"}),o.jsx(Hr,{type:"email",value:E,onChange:vt=>C(vt.target.value),placeholder:"you@example.com",className:"mt-1"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Phone"}),o.jsx(Hr,{type:"tel",value:N,onChange:vt=>L(vt.target.value),placeholder:"(555) 123-4567",className:"mt-1"})]})]}),m==="showing"&&o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Preferred date *"}),o.jsx(Hr,{type:"date",value:G,onChange:vt=>W(vt.target.value),className:"mt-1"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Preferred time"}),o.jsx(Hr,{type:"time",value:Z,onChange:vt=>Q(vt.target.value),className:"mt-1"})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Alternate date (optional)"}),o.jsx(Hr,{type:"date",value:se,onChange:vt=>ie(vt.target.value),className:"mt-1"})]})]}),m==="disclosure"&&o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Which documents? (select all that apply)"}),o.jsx("div",{className:"mt-2 space-y-2",children:eZe.map(vt=>o.jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[o.jsx(qC,{checked:ue.includes(vt),onCheckedChange:()=>St(vt)}),o.jsx("span",{children:vt})]},vt))})]}),m==="offer"&&o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Estimated offer"}),o.jsx(Hr,{value:Te,onChange:vt=>we(vt.target.value),placeholder:"$",className:"mt-1"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Financing"}),o.jsxs(Fa,{value:Oe,onValueChange:Ae,children:[o.jsx(Ca,{className:"mt-1",children:o.jsx(Ba,{placeholder:"Select..."})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"Cash",children:"Cash"}),o.jsx(xn,{value:"Conventional",children:"Conventional"}),o.jsx(xn,{value:"FHA",children:"FHA"}),o.jsx(xn,{value:"VA",children:"VA"}),o.jsx(xn,{value:"Other",children:"Other"})]})]})]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Timeline"}),o.jsxs(Fa,{value:Se,onValueChange:ge,children:[o.jsx(Ca,{className:"mt-1",children:o.jsx(Ba,{placeholder:"Select..."})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"ASAP",children:"ASAP"}),o.jsx(xn,{value:"30 days",children:"30 days"}),o.jsx(xn,{value:"60 days",children:"60 days"}),o.jsx(xn,{value:"90+ days",children:"90+ days"})]})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Pre-approved?"}),o.jsxs(Fa,{value:je,onValueChange:_e,children:[o.jsx(Ca,{className:"mt-1",children:o.jsx(Ba,{placeholder:"Select..."})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"Yes",children:"Yes"}),o.jsx(xn,{value:"No",children:"No"}),o.jsx(xn,{value:"In progress",children:"In progress"})]})]})]})]})]}),o.jsxs("div",{children:[o.jsxs(Fr,{className:"text-xs",children:["Message",m==="question"?" *":" (optional)"]}),o.jsx(ud,{value:_,onChange:vt=>T(vt.target.value),placeholder:$B[m].placeholder,rows:4,className:"mt-1"})]}),o.jsx(Kt,{onClick:Rt,disabled:M||!_t,className:"w-full h-12 text-white hover:opacity-90",style:f?{backgroundColor:f}:void 0,children:M?o.jsx(ku,{className:"h-4 w-4 animate-spin"}):"Send to agent"})]})]})})})]})}const nZe=bS({first_name:co().trim().min(1,"First name is required").max(50),last_name:co().trim().max(50).optional(),email:co().trim().email("Please enter a valid email").max(255).optional().or(JL("")),phone:co().trim().max(20).optional().or(JL(""))}),iZe=[{value:"buying",label:"Looking to Buy",emoji:"🏠"},{value:"selling",label:"Thinking of Selling",emoji:"📋"},{value:"browsing",label:"Just Browsing",emoji:"👀"},{value:"neighbor",label:"I'm a Neighbor",emoji:"👋"}];function w_e({slug:t}={}){var jr;const e=hp(),r=t||e.slug,[n]=mS(),i=n.get("kiosk")==="1"||n.get("mode")==="kiosk",a=8,{data:c,isLoading:s,error:f}=p_e(r),m=zYe(),x=$Ye(),_=UYe(),T=P.useRef(!1),[E,C]=P.useState("welcome"),[N,L]=P.useState(null),[M,D]=P.useState({first_name:"",last_name:"",email:"",phone:"",visitor_address:""}),[B,V]=P.useState(""),[G,W]=P.useState(!1),[Z,Q]=P.useState(!1),[se,ie]=P.useState(""),[ue,be]=P.useState(""),[Te,we]=P.useState(a),Oe=P.useCallback(()=>{L(null),D({first_name:"",last_name:"",email:"",phone:"",visitor_address:""}),V(""),W(!1),Q(!1),ie(""),be(""),we(a),C(i?"info":"welcome")},[i]),Ae=P.useCallback((Qt,Je)=>{c!=null&&c.id&&De.functions.invoke("guestbook-lead-notify",{body:{open_house_id:c.id,visitor_id:Qt,first_name:Je.first_name??M.first_name,last_name:Je.last_name??M.last_name,email:Je.email??M.email,phone:Je.phone??M.phone,visitor_intent:Je.visitor_intent??B,message:Je.message,wants_market_updates:Je.wants_market_updates??G,has_agent:Je.has_agent??Z,working_with_agent_name:Je.working_with_agent_name??se,visitor_address:Je.visitor_address??M.visitor_address}}).catch(Tt=>console.error("Guest book lead notify failed:",Tt))},[c==null?void 0:c.id,M,B,G,Z,se]);P.useEffect(()=>{if(!i||E!=="done")return;we(a);const Qt=setInterval(()=>{we(Je=>Je<=1?(clearInterval(Qt),Oe(),0):Je-1)},1e3);return()=>clearInterval(Qt)},[i,E,Oe]),P.useEffect(()=>{if(!i)return;C(Je=>Je==="welcome"?"info":Je);let Qt=null;return(async()=>{var Je,Tt;try{Qt=await((Tt=(Je=navigator.wakeLock)==null?void 0:Je.request)==null?void 0:Tt.call(Je,"screen"))}catch{}})(),()=>{var Je;try{(Je=Qt==null?void 0:Qt.release)==null||Je.call(Qt)}catch{}}},[i]);const Se=P.useCallback(()=>{var Je;const Qt=document.documentElement;document.fullscreenElement||(Je=Qt.requestFullscreen||Qt.webkitRequestFullscreen)==null||Je.call(Qt).catch(()=>{})},[]),{data:ge,isLoading:je}=FYe(c==null?void 0:c.id),_e=!!(c!=null&&c.enable_survey),xe=(c==null?void 0:c.ask_visitor_intent)!==!1,Pe=(c==null?void 0:c.ask_visitor_address)===!0;P.useEffect(()=>{if(!r||!(c!=null&&c.id)||T.current)return;const Qt=`oh_scan_${c.id}`;if(sessionStorage.getItem(Qt)){T.current=!0;return}T.current=!0,sessionStorage.setItem(Qt,"1"),_.mutate(r)},[r,c==null?void 0:c.id]),P.useEffect(()=>{E==="pending_survey"&&(je||C(_e&&((ge==null?void 0:ge.length)??0)>0?"survey":"done"))},[E,je,_e,ge]);const Ze=Qt=>{if(!Qt)return"";const[Je,Tt]=Qt.split(":"),Dt=parseInt(Je),cr=Dt>=12?"PM":"AM";return`${Dt>12?Dt-12:Dt||12}:${Tt} ${cr}`},at=async()=>{be("");const Qt=nZe.safeParse(M);if(!Qt.success){be(Qt.error.issues[0].message);return}if(!M.email&&!M.phone){be("Please provide either an email or phone number");return}const Je=(c==null?void 0:c.kind)==="virtual";let Tt=null;if(!N&&(c!=null&&c.id))try{const Dt=await m.mutateAsync({open_house_id:c.id,first_name:M.first_name.trim(),last_name:M.last_name.trim()||void 0,email:M.email.trim()||void 0,phone:M.phone.trim()||void 0,visitor_address:Pe&&M.visitor_address.trim()?M.visitor_address.trim():void 0,wants_market_updates:G,has_agent:Z,working_with_agent_name:Z&&se.trim()?se.trim():void 0,partial_signin:Je?!1:xe});Tt=Dt.id,L(Dt.id)}catch{if(Je){be("We could not start the virtual tour. Please try again.");return}}if(Je){xe?C("intent"):(Tt&&Ae(Tt,{}),C("done"));return}if(!xe){Tt&&Ae(Tt,{}),_e?!je&&ge&&ge.length>0?C("survey"):C("pending_survey"):C("done");return}C("intent")},lt=async Qt=>{V(Qt);try{let Je=N;if(Je?await x.mutateAsync({visitor_id:Je,visitor_intent:Qt,wants_market_updates:G,has_agent:Z,working_with_agent_name:Z&&se.trim()?se.trim():null,partial_signin:!1}):(Je=(await m.mutateAsync({open_house_id:c.id,first_name:M.first_name.trim(),last_name:M.last_name.trim()||void 0,email:M.email.trim()||void 0,phone:M.phone.trim()||void 0,visitor_address:Pe&&M.visitor_address.trim()?M.visitor_address.trim():void 0,visitor_intent:Qt,wants_market_updates:G,has_agent:Z,working_with_agent_name:Z&&se.trim()?se.trim():void 0,partial_signin:!1})).id,L(Je)),Je&&Ae(Je,{visitor_intent:Qt,wants_market_updates:G,has_agent:Z,working_with_agent_name:Z&&se.trim()?se.trim():null}),(c==null?void 0:c.kind)==="virtual"){C("done");return}_e?!je&&ge&&ge.length>0?C("survey"):C("pending_survey"):C("done")}catch{be("Something went wrong. Please try again.")}};if(s)return o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 flex items-center justify-center",children:o.jsx("div",{className:"w-10 h-10 border-4 border-white/20 border-t-white rounded-full animate-spin"})});if(f||!c)return o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center text-white",children:[o.jsx(Ma,{className:"h-12 w-12 mx-auto mb-4 opacity-50"}),o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"Open House Not Found"}),o.jsx("p",{className:"text-white/60",children:"This sign-in page doesn't exist or is no longer active."})]})});const xt=c.profiles,St=((jr=xt==null?void 0:xt.name)==null?void 0:jr.split(" ").map(Qt=>Qt[0]).join("").slice(0,2))||"?",Xt=c.event_type==="community",_t=c.kind==="virtual",Rt=typeof window<"u"&&new URLSearchParams(window.location.search).get("preview")==="1";if(_t&&(Rt||E==="done"))return!Rt&&!N?o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 flex items-center justify-center",children:o.jsx("div",{className:"w-10 h-10 border-4 border-white/20 border-t-white rounded-full animate-spin"})}):o.jsxs(o.Fragment,{children:[o.jsxs(Il,{children:[o.jsxs("title",{children:["Virtual Tour | ",c.property_address]}),o.jsx("meta",{name:"description",content:`Take a virtual tour of ${c.property_address}`}),o.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),Rt&&o.jsx("div",{className:"fixed top-3 left-1/2 -translate-x-1/2 z-[100] bg-amber-500 text-white text-xs font-semibold px-3 py-1.5 rounded-full shadow-lg pointer-events-none",children:"Agent Preview Mode — visitors won't see this"}),o.jsx(rZe,{openHouse:c,visitorId:Rt?"preview":N,visitorName:Rt?"Preview Visitor":`${M.first_name} ${M.last_name}`.trim(),visitorEmail:Rt?"":M.email,visitorPhone:Rt?"":M.phone,previewMode:Rt})]});const vt=`${_t?"Virtual Open House":Xt?"Community Event":"Open House"} — ${c.property_address}`,_r=[[c.city,c.state].filter(Boolean).join(", "),c.event_date?Di(new Date(c.event_date+"T00:00:00"),"EEE, MMM d"):null,xt!=null&&xt.name?`Hosted by ${xt.name}`:null].filter(Boolean).join(" · "),tn=c.photo_url||"",or=tn&&tn.includes("/storage/v1/object/public/")?tn.replace("/object/public/","/render/image/public/")+"?width=1200&height=630&resize=cover":tn||"https://dashboard.relevelup.com/og-image.png",Sr=typeof window<"u"?window.location.href:`https://guestbook.relevelup.com/${r}`;return o.jsxs(o.Fragment,{children:[o.jsxs(Il,{children:[o.jsx("title",{children:vt}),o.jsx("meta",{name:"description",content:_r||`Sign in to ${c.property_address}`}),o.jsx("meta",{property:"og:type",content:"website"}),o.jsx("meta",{property:"og:title",content:vt}),o.jsx("meta",{property:"og:description",content:_r||`Sign in to ${c.property_address}`}),o.jsx("meta",{property:"og:image",content:or}),o.jsx("meta",{property:"og:image:width",content:"1200"}),o.jsx("meta",{property:"og:image:height",content:"630"}),o.jsx("meta",{property:"og:url",content:Sr}),o.jsx("meta",{property:"og:site_name",content:"ReLevel Up"}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),o.jsx("meta",{name:"twitter:title",content:vt}),o.jsx("meta",{name:"twitter:description",content:_r||`Sign in to ${c.property_address}`}),o.jsx("meta",{name:"twitter:image",content:or}),o.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 flex items-center justify-center p-4",children:o.jsxs("div",{className:"w-full max-w-md",children:[o.jsxs("div",{className:"text-center mb-6",children:[o.jsxs(Zd,{className:"h-16 w-16 mx-auto mb-3 ring-2 ring-white/20",children:[o.jsx(Xd,{src:(xt==null?void 0:xt.avatar_url)||"",alt:(xt==null?void 0:xt.name)||""}),o.jsx(Qd,{className:"bg-white/10 text-white text-lg",children:St})]}),o.jsx("p",{className:"text-white/60 text-sm",children:xt==null?void 0:xt.name}),(xt==null?void 0:xt.title)&&o.jsx("p",{className:"text-white/40 text-xs",children:xt.title})]}),o.jsxs("div",{className:"bg-white rounded-2xl shadow-2xl overflow-hidden",children:[c.photo_url&&o.jsxs("div",{className:"relative h-44 sm:h-52 overflow-hidden",children:[o.jsx("img",{src:c.photo_url,alt:c.property_address,className:"w-full h-full object-cover"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-slate-900/80 via-slate-900/20 to-transparent"}),o.jsxs("div",{className:"absolute bottom-0 left-0 right-0 px-6 pb-4",children:[o.jsx("h1",{className:"text-white font-bold text-lg leading-tight drop-shadow-md",children:c.property_address}),o.jsxs("div",{className:"flex flex-wrap gap-3 mt-1.5 text-white/70 text-xs",children:[c.city&&o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ga,{className:"h-3 w-3"}),c.city,c.state?`, ${c.state}`:""," ",c.zip]}),!_t&&o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(fo,{className:"h-3 w-3"}),Di(new Date(c.event_date+"T00:00:00"),"MMM d, yyyy")]}),c.start_time&&o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(pc,{className:"h-3 w-3"}),Ze(c.start_time),c.end_time?` – ${Ze(c.end_time)}`:""]})]})]})]})]}),!c.photo_url&&o.jsx("div",{className:"bg-gradient-to-r from-slate-800 to-slate-700 px-6 py-5",children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx("div",{className:"w-10 h-10 rounded-xl bg-white/10 flex items-center justify-center shrink-0 mt-0.5",children:Xt?o.jsx(Eo,{className:"h-5 w-5 text-white"}):o.jsx(Ma,{className:"h-5 w-5 text-white"})}),o.jsxs("div",{children:[o.jsx("h1",{className:"text-white font-bold text-lg leading-tight",children:c.property_address}),o.jsxs("div",{className:"flex flex-wrap gap-3 mt-2 text-white/60 text-xs",children:[c.city&&o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(ga,{className:"h-3 w-3"}),c.city,c.state?`, ${c.state}`:""," ",c.zip]}),!_t&&o.jsxs(o.Fragment,{children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(fo,{className:"h-3 w-3"}),Di(new Date(c.event_date+"T00:00:00"),"MMM d, yyyy")]}),c.start_time&&o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(pc,{className:"h-3 w-3"}),Ze(c.start_time),c.end_time?` – ${Ze(c.end_time)}`:""]})]})]})]})]})}),o.jsxs("div",{className:"p-6",children:[E==="welcome"&&o.jsxs("div",{className:"text-center space-y-6",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-bold text-slate-900 mb-2",children:"Welcome!"}),o.jsx("p",{className:"text-slate-500 text-sm",children:c.agent_greeting||"Please sign in below."})]}),o.jsxs(Kt,{onClick:()=>C("info"),className:"w-full h-14 text-base bg-slate-900 hover:bg-slate-800 text-white rounded-xl",children:["Sign In ",o.jsx(Uc,{className:"h-5 w-5 ml-2"})]}),o.jsx("p",{className:"text-xs text-slate-400",children:"Quick & easy — takes 30 seconds"})]}),E==="info"&&o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("button",{onClick:()=>C("welcome"),className:"text-slate-400 hover:text-slate-600",children:o.jsx(Oy,{className:"h-4 w-4"})}),o.jsx("h2",{className:"text-lg font-bold text-slate-900",children:"Your Info"})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-slate-600 text-xs",children:"First Name *"}),o.jsx(Hr,{value:M.first_name,onChange:Qt=>D(Je=>({...Je,first_name:Qt.target.value})),placeholder:"First",className:"mt-1 h-12 rounded-xl border-slate-200 text-base",autoFocus:!0})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-slate-600 text-xs",children:"Last Name"}),o.jsx(Hr,{value:M.last_name,onChange:Qt=>D(Je=>({...Je,last_name:Qt.target.value})),placeholder:"Last",className:"mt-1 h-12 rounded-xl border-slate-200 text-base"})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-slate-600 text-xs",children:"Email"}),o.jsx(Hr,{type:"email",value:M.email,onChange:Qt=>D(Je=>({...Je,email:Qt.target.value})),placeholder:"your@email.com",className:"mt-1 h-12 rounded-xl border-slate-200 text-base"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-slate-600 text-xs",children:"Phone"}),o.jsx(Hr,{type:"tel",value:M.phone,onChange:Qt=>D(Je=>({...Je,phone:Qt.target.value})),placeholder:"(555) 123-4567",className:"mt-1 h-12 rounded-xl border-slate-200 text-base"})]}),Pe&&o.jsxs("div",{children:[o.jsx(Fr,{className:"text-slate-600 text-xs",children:"Your Home Address"}),o.jsx(Hr,{value:M.visitor_address,onChange:Qt=>D(Je=>({...Je,visitor_address:Qt.target.value})),placeholder:"Street, City, State ZIP",className:"mt-1 h-12 rounded-xl border-slate-200 text-base",autoComplete:"street-address"})]}),o.jsxs("label",{className:"flex items-center gap-2 cursor-pointer pt-1",children:[o.jsx("input",{type:"checkbox",checked:G,onChange:Qt=>W(Qt.target.checked),className:"rounded border-slate-300 text-slate-900 focus:ring-slate-500"}),o.jsx("span",{className:"text-sm text-slate-600",children:"Send me market updates for this area"})]}),o.jsxs("div",{className:"space-y-2 pt-1",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"text-sm text-slate-600",children:"Already working with an agent?"}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-xs font-medium text-slate-400",children:Z?"Yes":"No"}),o.jsx(TS,{checked:Z,onCheckedChange:Q})]})]}),Z&&o.jsx(Hr,{value:se,onChange:Qt=>ie(Qt.target.value),placeholder:"Agent's name",className:"mt-1 h-10 rounded-xl border-slate-200 text-sm"})]}),ue&&o.jsx("p",{className:"text-destructive text-sm",children:ue}),o.jsxs(Kt,{onClick:at,className:"w-full h-14 text-base bg-slate-900 hover:bg-slate-800 text-white rounded-xl",children:["Continue ",o.jsx(Uc,{className:"h-5 w-5 ml-2"})]})]}),E==="intent"&&o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("button",{onClick:()=>C("info"),className:"text-slate-400 hover:text-slate-600",children:o.jsx(Oy,{className:"h-4 w-4"})}),o.jsx("h2",{className:"text-lg font-bold text-slate-900",children:"What brings you here?"})]}),o.jsx("div",{className:"grid grid-cols-2 gap-3",children:iZe.map(Qt=>o.jsxs("button",{onClick:()=>lt(Qt.value),disabled:m.isPending,className:"flex flex-col items-center gap-2 p-5 rounded-xl border-2 border-slate-200 hover:border-slate-900 hover:bg-slate-50 transition-all text-center group",children:[o.jsx("span",{className:"text-2xl",children:Qt.emoji}),o.jsx("span",{className:"text-sm font-medium text-slate-700 group-hover:text-slate-900",children:Qt.label})]},Qt.value))}),ue&&o.jsx("p",{className:"text-destructive text-sm text-center",children:ue})]}),E==="pending_survey"&&o.jsxs("div",{className:"flex flex-col items-center justify-center py-8 gap-3",children:[o.jsx("div",{className:"w-8 h-8 border-[3px] border-slate-200 border-t-slate-900 rounded-full animate-spin"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading survey..."})]}),E==="survey"&&N&&ge&&o.jsx(XYe,{questions:ge,visitorId:N,onComplete:()=>C("done"),onSkip:()=>C("done")}),E==="done"&&o.jsxs("div",{className:"text-center space-y-4 py-4",children:[o.jsx("div",{className:"w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mx-auto",children:o.jsx(gc,{className:"h-8 w-8 text-green-600"})}),o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-bold text-slate-900",children:"You're all set!"}),o.jsxs("p",{className:"text-slate-500 text-sm mt-1",children:["Thanks for signing in, ",M.first_name,". ",Xt?"Enjoy the event!":"Enjoy the open house!"]})]}),(c==null?void 0:c.disclosure_pdf_url)&&o.jsxs("a",{href:`https://docs.google.com/gview?url=${encodeURIComponent(c.disclosure_pdf_url)}&embedded=true`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-5 py-3 rounded-xl bg-slate-100 hover:bg-slate-200 text-slate-800 font-medium text-sm transition-colors",children:[o.jsx(Im,{className:"h-4 w-4"}),"View Seller's Disclosures"]}),(xt==null?void 0:xt.name)&&o.jsxs("p",{className:"text-sm text-slate-400",children:["Your host today: ",o.jsx("strong",{className:"text-slate-600",children:xt.name})]}),i&&o.jsxs("div",{className:"pt-4 space-y-3",children:[o.jsx(Kt,{onClick:Oe,className:"w-full h-14 text-base font-semibold rounded-xl",children:"Sign in next visitor"}),o.jsxs("p",{className:"text-xs text-slate-400",children:["Ready for the next visitor in ",Te,"s…"]})]})]})]})]}),o.jsx("p",{className:"text-center text-white/30 text-xs mt-6",children:"Powered by LevelUp Guest Book"}),i&&o.jsxs("div",{className:"fixed top-3 right-3 flex items-center gap-2 z-50",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-white/10 backdrop-blur-sm text-white/80 text-[11px] px-2.5 py-1 border border-white/10",children:[o.jsx(aLe,{className:"h-3 w-3"})," Tablet Mode"]}),o.jsx("button",{onClick:Se,className:"inline-flex items-center gap-1 rounded-full bg-white/10 backdrop-blur-sm text-white/80 text-[11px] px-2.5 py-1 border border-white/10 hover:bg-white/20",title:"Enter full screen",children:o.jsx(URe,{className:"h-3 w-3"})})]})]})})]})}const sZe=Object.freeze(Object.defineProperty({__proto__:null,default:w_e},Symbol.toStringTag,{value:"Module"}));function g6t(t){return br({queryKey:["open-house-rsvps",t],queryFn:async()=>{const{data:e,error:r}=await De.from("open_house_rsvps").select("*").eq("open_house_id",t).order("created_at",{ascending:!1});if(r)throw r;return e||[]},enabled:!!t})}function aZe(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("open_house_rsvps").insert({open_house_id:e.open_house_id,first_name:e.first_name,last_name:e.last_name||null,email:e.email||null,phone:e.phone||null,has_agent:e.has_agent??!1,working_with_agent_name:e.working_with_agent_name||null,message:e.message||null});if(r)throw r;return null},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["open-house-rsvps",r.open_house_id]})}})}function y6t(t){const e=Ir();return kr({mutationFn:async r=>{const{error:n}=await De.from("open_house_rsvps").delete().eq("id",r);if(n)throw n},onSuccess:()=>e.invalidateQueries({queryKey:["open-house-rsvps",t]})})}function x6t(t){const e=Ir();return kr({mutationFn:async({id:r,checkedIn:n})=>{const{error:i}=await De.from("open_house_rsvps").update({checked_in_at:n?new Date().toISOString():null}).eq("id",r);if(i)throw i},onSuccess:()=>e.invalidateQueries({queryKey:["open-house-rsvps",t]})})}const oZe=bS({first_name:co().trim().min(1,"First name is required").max(50),last_name:co().trim().max(50).optional(),email:co().trim().email("Please enter a valid email").max(255),phone:co().trim().max(20).optional().or(JL("")),message:co().trim().max(500).optional().or(JL(""))}),UB=t=>{if(!t)return"";const[e,r]=t.split(":"),n=parseInt(e,10),i=n>=12?"PM":"AM";return`${n>12?n-12:n||12}:${r} ${i}`},lZe=t=>{if(!t)return null;const[e,r,n]=t.split(/[-/T]/).map(Number);return!e||!r||!n?null:new Date(e,r-1,n)};function S_e({slug:t}={}){const e=hp(),r=t||e.slug,{data:n,isLoading:i,error:a}=p_e(r),c=aZe(),[s,f]=P.useState({first_name:"",last_name:"",email:"",phone:"",message:""}),[m,x]=P.useState(!1),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(!1),M=P.useMemo(()=>lZe(n==null?void 0:n.event_date),[n==null?void 0:n.event_date]),D=P.useMemo(()=>{const Q=n==null?void 0:n.photo_url;return Q?Q.includes("/storage/v1/object/public/")?Q.replace("/object/public/","/render/image/public/")+"?width=1600&quality=80":Q:""},[n]),B=n==null?void 0:n.profiles,V=[n==null?void 0:n.city,n==null?void 0:n.state].filter(Boolean).join(", "),G=async()=>{C("");const Q=oZe.safeParse(s);if(!Q.success){C(Q.error.issues[0].message);return}try{await c.mutateAsync({open_house_id:n.id,first_name:s.first_name.trim(),last_name:s.last_name.trim()||void 0,email:s.email.trim(),phone:s.phone.trim()||void 0,has_agent:m,working_with_agent_name:m&&_.trim()?_.trim():void 0,message:s.message.trim()||void 0}),L(!0)}catch(se){C((se==null?void 0:se.message)||"Something went wrong. Please try again.")}},W=P.useMemo(()=>{if(!n||!M)return"";const Q=we=>String(we).padStart(2,"0"),se=`${M.getFullYear()}${Q(M.getMonth()+1)}${Q(M.getDate())}`,ie=(n.start_time||"12:00").slice(0,5).replace(":","")+"00",ue=(n.end_time||"14:00").slice(0,5).replace(":","")+"00",be=encodeURIComponent(`Open House — ${n.property_address}`),Te=encodeURIComponent([n.property_address,V,n.zip].filter(Boolean).join(", "));return`https://calendar.google.com/calendar/render?action=TEMPLATE&text=${be}&dates=${se}T${ie}/${se}T${ue}&location=${Te}`},[n,M,V]);if(i)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[#0f1c22]",children:o.jsx("div",{className:"h-10 w-10 rounded-full border-2 border-white/20 border-t-white animate-spin"})});if(a||!n)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[#0f1c22] p-6 text-center",children:o.jsxs("div",{className:"text-white/80",children:[o.jsx(Ma,{className:"h-8 w-8 mx-auto mb-3 opacity-50"}),o.jsx("h1",{className:"text-xl font-semibold mb-1",children:"Open house not found"}),o.jsx("p",{className:"text-sm text-white/50",children:"This RSVP link may have expired."})]})});const Z=`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent([n.property_address,V,n.zip].filter(Boolean).join(", "))}`;return o.jsxs("div",{className:"min-h-screen bg-[#f6f2ee]",children:[o.jsxs(Il,{children:[o.jsx("title",{children:`RSVP — Open House at ${n.property_address}`}),o.jsx("meta",{name:"description",content:`Reserve your spot for the open house at ${n.property_address}${M?` on ${Di(M,"EEEE, MMMM d")}`:""}.`})]}),o.jsxs("header",{className:"relative",children:[o.jsxs("div",{className:"relative h-[46vh] min-h-[320px] w-full overflow-hidden bg-[#1b3a4b]",children:[D&&o.jsx("img",{src:D,alt:n.property_address,className:"absolute inset-0 h-full w-full object-cover"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-[#0f1c22] via-[#0f1c22]/55 to-[#0f1c22]/25"}),o.jsx("div",{className:"absolute inset-x-0 bottom-0 p-6 sm:p-10",children:o.jsxs("div",{className:"mx-auto max-w-3xl",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.35em] text-[#d4b978] mb-3",children:"Open House"}),o.jsx("h1",{className:"font-serif text-3xl sm:text-4xl font-bold text-white leading-tight",children:n.property_address}),V&&o.jsxs("p",{className:"mt-1 text-white/70",children:[V," ",n.zip||""]}),o.jsxs("div",{className:"mt-4 flex flex-wrap gap-x-5 gap-y-2 text-sm text-white/85",children:[M&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(fo,{className:"h-4 w-4 text-[#d4b978]"}),Di(M,"EEEE, MMMM d, yyyy")]}),n.start_time&&o.jsxs("span",{className:"flex items-center gap-1.5",children:[o.jsx(pc,{className:"h-4 w-4 text-[#d4b978]"}),UB(n.start_time),n.end_time?` – ${UB(n.end_time)}`:""]})]})]})})]}),o.jsx("div",{className:"h-1 bg-gradient-to-r from-[#b8975a] via-[#d4b978] to-[#b8975a]"})]}),o.jsxs("main",{className:"mx-auto max-w-3xl px-5 py-8 sm:py-12 space-y-8",children:[(n.price||n.beds||n.baths||n.sqft)&&o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[n.price?o.jsx(pN,{icon:o.jsx(Ma,{className:"h-4 w-4"}),label:"Price",value:`$${Number(n.price).toLocaleString()}`}):null,n.beds?o.jsx(pN,{icon:o.jsx(TRe,{className:"h-4 w-4"}),label:"Beds",value:String(n.beds)}):null,n.baths?o.jsx(pN,{icon:o.jsx(iS,{className:"h-4 w-4"}),label:"Baths",value:String(n.baths)}):null,n.sqft?o.jsx(pN,{icon:o.jsx(GM,{className:"h-4 w-4"}),label:"Sq Ft",value:Number(n.sqft).toLocaleString()}):null]}),n.property_description&&o.jsx("p",{className:"text-[15px] leading-relaxed text-[#3a4a51] whitespace-pre-line",children:n.property_description}),o.jsx("section",{id:"rsvp",className:"rounded-2xl bg-white shadow-[0_10px_40px_rgba(15,28,34,0.08)] overflow-hidden",children:N?o.jsxs("div",{className:"p-8 sm:p-12 text-center",children:[o.jsx("div",{className:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-emerald-500/10",children:o.jsx(gc,{className:"h-7 w-7 text-emerald-600"})}),o.jsx("h2",{className:"font-serif text-2xl font-semibold text-[#1b3a4b]",children:"You're on the list!"}),o.jsxs("p",{className:"mt-2 text-[#5b6b72]",children:["We'll see you ",M?Di(M,"EEEE, MMMM d"):"soon",n.start_time?` at ${UB(n.start_time)}`:"",". A confirmation reminder will land in your inbox before the event."]}),o.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-3",children:[W&&o.jsx(Kt,{asChild:!0,className:"bg-[#1b3a4b] hover:bg-[#25505f]",children:o.jsxs("a",{href:W,target:"_blank",rel:"noreferrer",children:[o.jsx(jhe,{className:"mr-2 h-4 w-4"}),"Add to calendar"]})}),o.jsx(Kt,{asChild:!0,variant:"outline",children:o.jsxs("a",{href:Z,target:"_blank",rel:"noreferrer",children:[o.jsx(ga,{className:"mr-2 h-4 w-4"}),"Get directions"]})})]})]}):o.jsxs("div",{className:"p-6 sm:p-8",children:[o.jsx("h2",{className:"font-serif text-2xl font-semibold text-[#1b3a4b]",children:"Reserve your spot"}),o.jsx("p",{className:"mt-1 text-sm text-[#5b6b72]",children:"Let us know you're coming and we'll save you a spot and send a reminder."}),o.jsxs("div",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"rsvp-first",children:"First name *"}),o.jsx(Hr,{id:"rsvp-first",value:s.first_name,onChange:Q=>f(se=>({...se,first_name:Q.target.value})),className:"h-11"})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"rsvp-last",children:"Last name"}),o.jsx(Hr,{id:"rsvp-last",value:s.last_name,onChange:Q=>f(se=>({...se,last_name:Q.target.value})),className:"h-11"})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"rsvp-email",children:"Email *"}),o.jsx(Hr,{id:"rsvp-email",type:"email",value:s.email,onChange:Q=>f(se=>({...se,email:Q.target.value})),className:"h-11"})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{htmlFor:"rsvp-phone",children:"Phone"}),o.jsx(Hr,{id:"rsvp-phone",type:"tel",value:s.phone,onChange:Q=>f(se=>({...se,phone:Q.target.value})),className:"h-11"})]})]}),o.jsxs("div",{className:"mt-4 rounded-xl border border-[#e4dcd3] bg-[#faf7f4] p-4",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium text-[#1b3a4b]",children:"Are you working with an agent?"}),o.jsx("p",{className:"text-xs text-[#7a888e]",children:"So we can respect your existing representation."})]}),o.jsx(TS,{checked:m,onCheckedChange:x})]}),m&&o.jsx(Hr,{value:_,onChange:Q=>T(Q.target.value),placeholder:"Your agent's name (optional)",className:"mt-3 h-10 bg-white"})]}),o.jsxs("div",{className:"mt-4 space-y-1.5",children:[o.jsx(Fr,{htmlFor:"rsvp-msg",children:"Anything you'd like us to know?"}),o.jsx(ud,{id:"rsvp-msg",rows:3,value:s.message,onChange:Q=>f(se=>({...se,message:Q.target.value})),className:"resize-y"})]}),E&&o.jsx("p",{className:"mt-3 text-sm text-destructive",children:E}),o.jsx(Kt,{onClick:G,disabled:c.isPending,className:"mt-6 h-12 w-full bg-gradient-to-r from-[#1b3a4b] to-[#406E71] text-base hover:opacity-95",children:c.isPending?"Reserving…":o.jsxs(o.Fragment,{children:["RSVP for this open house",o.jsx(Uc,{className:"ml-2 h-4 w-4"})]})}),o.jsx("p",{className:"mt-3 text-center text-xs text-[#8b979c]",children:"We'll only use your info to follow up about this property."})]})}),(B==null?void 0:B.name)&&o.jsxs("section",{className:"rounded-2xl bg-white/70 border border-[#e4dcd3] p-5 flex items-center gap-4",children:[o.jsxs(Zd,{className:"h-14 w-14",children:[o.jsx(Xd,{src:B.avatar_url||void 0,alt:B.name}),o.jsx(Qd,{children:B.name.slice(0,1)})]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"text-[11px] uppercase tracking-[0.25em] text-[#a08a5f]",children:"Hosted by"}),o.jsx("p",{className:"font-semibold text-[#1b3a4b]",children:B.name}),B.title&&o.jsx("p",{className:"text-sm text-[#5b6b72]",children:B.title}),o.jsxs("div",{className:"mt-1 flex flex-wrap gap-x-4 text-sm text-[#406E71]",children:[B.phone&&o.jsx("a",{href:`tel:${B.phone}`,children:B.phone}),B.email&&o.jsx("a",{href:`mailto:${B.email}`,className:"truncate",children:B.email})]})]})]}),o.jsx("div",{className:"text-center",children:o.jsxs("a",{href:Z,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-[#406E71] hover:underline",children:[o.jsx(ga,{className:"h-4 w-4"}),"Get directions to ",n.property_address]})})]})]})}function pN({icon:t,label:e,value:r}){return o.jsxs("div",{className:"rounded-xl bg-white border border-[#e9e2da] px-4 py-3",children:[o.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] uppercase tracking-wider text-[#9aa5aa]",children:[t,e]}),o.jsx("div",{className:"mt-1 text-lg font-semibold text-[#1b3a4b]",children:r})]})}const cZe=Object.freeze(Object.defineProperty({__proto__:null,default:S_e},Symbol.toStringTag,{value:"Module"}));function _6t(t){const{user:e}=$n();return br({queryKey:["cohost-tokens",t],queryFn:async()=>{const{data:r,error:n}=await De.from("open_house_cohost_tokens").select("*").eq("open_house_id",t).order("created_at",{ascending:!1});if(n)throw n;return r},enabled:!!e&&!!t})}function v6t(){const t=Ir(),{user:e}=$n();return kr({mutationFn:async({openHouseId:r,label:n})=>{const{data:i,error:a}=await De.from("open_house_cohost_tokens").insert({open_house_id:r,label:n||null,created_by:e.id,expires_at:new Date(Date.now()+864e5).toISOString()}).select().single();if(a)throw a;return i},onSuccess:(r,n)=>{t.invalidateQueries({queryKey:["cohost-tokens",n.openHouseId]})}})}function b6t(){const t=Ir();return kr({mutationFn:async({id:e,openHouseId:r})=>{const{error:n}=await De.from("open_house_cohost_tokens").update({is_active:!1}).eq("id",e);if(n)throw n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["cohost-tokens",r.openHouseId]})}})}function uZe(t){return br({queryKey:["cohost-validate",t],queryFn:async()=>{const{data:e,error:r}=await De.from("open_house_cohost_tokens").select("*, open_houses(*)").eq("token",t).eq("is_active",!0).single();if(r)throw r;if(e.expires_at&&new Date(e.expires_at)-1&&t.splice(r,1)}const ap=(t,e,r)=>r>e?e:r{},w1=()=>{};const Hy={},E_e=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function A_e(t){return typeof t=="object"&&t!==null}const k_e=t=>/^0[^.\s]+$/u.test(t);function C_e(t){let e;return()=>(e===void 0&&(e=t()),e)}const Gd=t=>t,hZe=(t,e)=>r=>e(t(r)),HC=(...t)=>t.reduce(hZe),mk=(t,e,r)=>{const n=e-t;return n===0?1:(r-t)/n};class i7{constructor(){this.subscriptions=[]}add(e){return n7(this.subscriptions,e),()=>nD(this.subscriptions,e)}notify(e,r,n){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](e,r,n);else for(let a=0;at*1e3,zd=t=>t/1e3;function I_e(t,e){return e?t*(1e3/e):0}const j_e=(t,e,r)=>(((1-3*r+3*e)*t+(3*r-6*e))*t+3*e)*t,fZe=1e-7,pZe=12;function mZe(t,e,r,n,i){let a,c,s=0;do c=e+(r-e)/2,a=j_e(c,n,i)-t,a>0?r=c:e=c;while(Math.abs(a)>fZe&&++smZe(a,0,1,t,r);return a=>a===0||a===1?a:j_e(i(a),e,n)}const P_e=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,N_e=t=>e=>1-t(1-e),R_e=WC(.33,1.53,.69,.99),s7=N_e(R_e),L_e=P_e(s7),D_e=t=>t>=1?1:(t*=2)<1?.5*s7(t):.5*(2-Math.pow(2,-10*(t-1))),a7=t=>1-Math.sin(Math.acos(t)),M_e=N_e(a7),O_e=P_e(a7),gZe=WC(.42,0,1,1),yZe=WC(0,0,.58,1),F_e=WC(.42,0,.58,1),xZe=t=>Array.isArray(t)&&typeof t[0]!="number",B_e=t=>Array.isArray(t)&&typeof t[0]=="number",Ute={linear:Gd,easeIn:gZe,easeInOut:F_e,easeOut:yZe,circIn:a7,circInOut:O_e,circOut:M_e,backIn:s7,backInOut:L_e,backOut:R_e,anticipate:D_e},_Ze=t=>typeof t=="string",Vte=t=>{if(B_e(t)){w1(t.length===4,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");const[e,r,n,i]=t;return WC(e,r,n,i)}else if(_Ze(t))return w1(Ute[t]!==void 0,`Invalid easing type '${t}'`,"invalid-easing-type"),Ute[t];return t},mN=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"],qte={value:null,addProjectionMetrics:null};function vZe(t,e){let r=new Set,n=new Set,i=!1,a=!1;const c=new WeakSet;let s={delta:0,timestamp:0,isProcessing:!1},f=0;function m(_){c.has(_)&&(x.schedule(_),t()),f++,_(s)}const x={schedule:(_,T=!1,E=!1)=>{const N=E&&i?r:n;return T&&c.add(_),N.add(_),_},cancel:_=>{n.delete(_),c.delete(_)},process:_=>{if(s=_,i){a=!0;return}i=!0;const T=r;r=n,n=T,r.forEach(m),e&&qte.value&&qte.value.frameloop[e].push(f),f=0,r.clear(),i=!1,a&&(a=!1,x.process(_))}};return x}const bZe=40;function z_e(t,e){let r=!1,n=!0;const i={delta:0,timestamp:0,isProcessing:!1},a=()=>r=!0,c=mN.reduce((B,V)=>(B[V]=vZe(a,e?V:void 0),B),{}),{setup:s,read:f,resolveKeyframes:m,preUpdate:x,update:_,preRender:T,render:E,postRender:C}=c,N=()=>{const B=Hy.useManualTiming,V=B?i.timestamp:performance.now();r=!1,B||(i.delta=n?1e3/60:Math.max(Math.min(V-i.timestamp,bZe),1)),i.timestamp=V,i.isProcessing=!0,s.process(i),f.process(i),m.process(i),x.process(i),_.process(i),T.process(i),E.process(i),C.process(i),i.isProcessing=!1,r&&e&&(n=!1,t(N))},L=()=>{r=!0,n=!0,i.isProcessing||t(N)};return{schedule:mN.reduce((B,V)=>{const G=c[V];return B[V]=(W,Z=!1,Q=!1)=>(r||L(),G.schedule(W,Z,Q)),B},{}),cancel:B=>{for(let V=0;V(CR===void 0&&Vc.set(Fl.isProcessing||Hy.useManualTiming?Fl.timestamp:performance.now()),CR),set:t=>{CR=t,queueMicrotask(wZe)}},$_e=t=>e=>typeof e=="string"&&e.startsWith(t),U_e=$_e("--"),SZe=$_e("var(--"),o7=t=>SZe(t)?TZe.test(t.split("/*")[0].trim()):!1,TZe=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Gte(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const ES={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},gk={...ES,transform:t=>ap(0,1,t)},gN={...ES,default:1},pA=t=>Math.round(t*1e5)/1e5,l7=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function EZe(t){return t==null}const AZe=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,c7=(t,e)=>r=>!!(typeof r=="string"&&AZe.test(r)&&r.startsWith(t)||e&&!EZe(r)&&Object.prototype.hasOwnProperty.call(r,e)),V_e=(t,e,r)=>n=>{if(typeof n!="string")return n;const[i,a,c,s]=n.match(l7);return{[t]:parseFloat(i),[e]:parseFloat(a),[r]:parseFloat(c),alpha:s!==void 0?parseFloat(s):1}},kZe=t=>ap(0,255,t),qB={...ES,transform:t=>Math.round(kZe(t))},q0={test:c7("rgb","red"),parse:V_e("red","green","blue"),transform:({red:t,green:e,blue:r,alpha:n=1})=>"rgba("+qB.transform(t)+", "+qB.transform(e)+", "+qB.transform(r)+", "+pA(gk.transform(n))+")"};function CZe(t){let e="",r="",n="",i="";return t.length>5?(e=t.substring(1,3),r=t.substring(3,5),n=t.substring(5,7),i=t.substring(7,9)):(e=t.substring(1,2),r=t.substring(2,3),n=t.substring(3,4),i=t.substring(4,5),e+=e,r+=r,n+=n,i+=i),{red:parseInt(e,16),green:parseInt(r,16),blue:parseInt(n,16),alpha:i?parseInt(i,16)/255:1}}const D6={test:c7("#"),parse:CZe,transform:q0.transform},KC=t=>({test:e=>typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),qg=KC("deg"),Qf=KC("%"),kn=KC("px"),IZe=KC("vh"),jZe=KC("vw"),Hte={...Qf,parse:t=>Qf.parse(t)/100,transform:t=>Qf.transform(t*100)},dw={test:c7("hsl","hue"),parse:V_e("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:r,alpha:n=1})=>"hsla("+Math.round(t)+", "+Qf.transform(pA(e))+", "+Qf.transform(pA(r))+", "+pA(gk.transform(n))+")"},$o={test:t=>q0.test(t)||D6.test(t)||dw.test(t),parse:t=>q0.test(t)?q0.parse(t):dw.test(t)?dw.parse(t):D6.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?q0.transform(t):dw.transform(t),getAnimatableNone:t=>{const e=$o.parse(t);return e.alpha=0,$o.transform(e)}},PZe=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function NZe(t){var e,r;return isNaN(t)&&typeof t=="string"&&(((e=t.match(l7))==null?void 0:e.length)||0)+(((r=t.match(PZe))==null?void 0:r.length)||0)>0}const q_e="number",G_e="color",RZe="var",LZe="var(",Wte="${}",DZe=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function S1(t){const e=t.toString(),r=[],n={color:[],number:[],var:[]},i=[];let a=0;const s=e.replace(DZe,f=>($o.test(f)?(n.color.push(a),i.push(G_e),r.push($o.parse(f))):f.startsWith(LZe)?(n.var.push(a),i.push(RZe),r.push(f)):(n.number.push(a),i.push(q_e),r.push(parseFloat(f))),++a,Wte)).split(Wte);return{values:r,split:s,indexes:n,types:i}}function MZe(t){return S1(t).values}function H_e({split:t,types:e}){const r=t.length;return n=>{let i="";for(let a=0;atypeof t=="number"?0:$o.test(t)?$o.getAnimatableNone(t):t,BZe=(t,e)=>typeof t=="number"?e!=null&&e.trim().endsWith("/")?t:0:FZe(t);function zZe(t){const e=S1(t);return H_e(e)(e.values.map((n,i)=>BZe(n,e.split[i])))}const Zh={test:NZe,parse:MZe,createTransformer:OZe,getAnimatableNone:zZe};function GB(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+(e-t)*6*r:r<1/2?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function $Ze({hue:t,saturation:e,lightness:r,alpha:n}){t/=360,e/=100,r/=100;let i=0,a=0,c=0;if(!e)i=a=c=r;else{const s=r<.5?r*(1+e):r+e-r*e,f=2*r-s;i=GB(f,s,t+1/3),a=GB(f,s,t),c=GB(f,s,t-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(c*255),alpha:n}}function iD(t,e){return r=>r>0?e:t}const Aa=(t,e,r)=>t+(e-t)*r,HB=(t,e,r)=>{const n=t*t,i=r*(e*e-n)+n;return i<0?0:Math.sqrt(i)},UZe=[D6,q0,dw],VZe=t=>UZe.find(e=>e.test(t));function Kte(t){const e=VZe(t);if(JO(!!e,`'${t}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!e)return!1;let r=e.parse(t);return e===dw&&(r=$Ze(r)),r}const Yte=(t,e)=>{const r=Kte(t),n=Kte(e);if(!r||!n)return iD(t,e);const i={...r};return a=>(i.red=HB(r.red,n.red,a),i.green=HB(r.green,n.green,a),i.blue=HB(r.blue,n.blue,a),i.alpha=Aa(r.alpha,n.alpha,a),q0.transform(i))},M6=new Set(["none","hidden"]);function qZe(t,e){return M6.has(t)?r=>r<=0?t:e:r=>r>=1?e:t}function GZe(t,e){return r=>Aa(t,e,r)}function u7(t){return typeof t=="number"?GZe:typeof t=="string"?o7(t)?iD:$o.test(t)?Yte:KZe:Array.isArray(t)?W_e:typeof t=="object"?$o.test(t)?Yte:HZe:iD}function W_e(t,e){const r=[...t],n=r.length,i=t.map((a,c)=>u7(a)(a,e[c]));return a=>{for(let c=0;c{for(const a in n)r[a]=n[a](i);return r}}function WZe(t,e){const r=[],n={color:0,var:0,number:0};for(let i=0;i{const r=Zh.createTransformer(e),n=S1(t),i=S1(e);return n.indexes.var.length===i.indexes.var.length&&n.indexes.color.length===i.indexes.color.length&&n.indexes.number.length>=i.indexes.number.length?M6.has(t)&&!i.values.length||M6.has(e)&&!n.values.length?qZe(t,e):HC(W_e(WZe(n,i),i.values),r):(JO(!0,`Complex values '${t}' and '${e}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),iD(t,e))};function K_e(t,e,r){return typeof t=="number"&&typeof e=="number"&&typeof r=="number"?Aa(t,e,r):u7(t)(t,e)}const YZe=t=>{const e=({timestamp:r})=>t(r);return{start:(r=!0)=>ra.update(e,r),stop:()=>Wy(e),now:()=>Fl.isProcessing?Fl.timestamp:Vc.now()}},Y_e=(t,e,r=10)=>{let n="";const i=Math.max(Math.round(e/r),2);for(let a=0;a=sD?1/0:e}function ZZe(t,e=100,r){const n=r({...t,keyframes:[0,e]}),i=Math.min(d7(n),sD);return{type:"keyframes",ease:a=>n.next(i*a).value/e,duration:zd(i)}}const Ya={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function O6(t,e){return t*Math.sqrt(1-e*e)}const XZe=12;function QZe(t,e,r){let n=r;for(let i=1;i{const x=m*c,_=x*t,T=x-r,E=O6(m,c),C=Math.exp(-_);return WB-T/E*C},a=m=>{const _=m*c*t,T=_*r+r,E=Math.pow(c,2)*Math.pow(m,2)*t,C=Math.exp(-_),N=O6(Math.pow(m,2),c);return(-i(m)+WB>0?-1:1)*((T-E)*C)/N}):(i=m=>{const x=Math.exp(-m*t),_=(m-r)*t+1;return-WB+x*_},a=m=>{const x=Math.exp(-m*t),_=(r-m)*(t*t);return x*_});const s=5/t,f=QZe(i,a,s);if(t=Au(t),isNaN(f))return{stiffness:Ya.stiffness,damping:Ya.damping,duration:t};{const m=Math.pow(f,2)*n;return{stiffness:m,damping:c*2*Math.sqrt(n*m),duration:t}}}const eXe=["duration","bounce"],tXe=["stiffness","damping","mass"];function Zte(t,e){return e.some(r=>t[r]!==void 0)}function rXe(t){let e={velocity:Ya.velocity,stiffness:Ya.stiffness,damping:Ya.damping,mass:Ya.mass,isResolvedFromDuration:!1,...t};if(!Zte(t,tXe)&&Zte(t,eXe))if(e.velocity=0,t.visualDuration){const r=t.visualDuration,n=2*Math.PI/(r*1.2),i=n*n,a=2*ap(.05,1,1-(t.bounce||0))*Math.sqrt(i);e={...e,mass:Ya.mass,stiffness:i,damping:a}}else{const r=JZe({...t,velocity:0});e={...e,...r,mass:Ya.mass},e.isResolvedFromDuration=!0}return e}function aD(t=Ya.visualDuration,e=Ya.bounce){const r=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:n,restDelta:i}=r;const a=r.keyframes[0],c=r.keyframes[r.keyframes.length-1],s={done:!1,value:a},{stiffness:f,damping:m,mass:x,duration:_,velocity:T,isResolvedFromDuration:E}=rXe({...r,velocity:-zd(r.velocity||0)}),C=T||0,N=m/(2*Math.sqrt(f*x)),L=c-a,M=zd(Math.sqrt(f/x)),D=Math.abs(L)<5;n||(n=D?Ya.restSpeed.granular:Ya.restSpeed.default),i||(i=D?Ya.restDelta.granular:Ya.restDelta.default);let B,V,G,W,Z,Q;if(N<1)G=O6(M,N),W=(C+N*M*L)/G,B=ie=>{const ue=Math.exp(-N*M*ie);return c-ue*(W*Math.sin(G*ie)+L*Math.cos(G*ie))},Z=N*M*W+L*G,Q=N*M*L-W*G,V=ie=>Math.exp(-N*M*ie)*(Z*Math.sin(G*ie)+Q*Math.cos(G*ie));else if(N===1){B=ue=>c-Math.exp(-M*ue)*(L+(C+M*L)*ue);const ie=C+M*L;V=ue=>Math.exp(-M*ue)*(M*ie*ue-C)}else{const ie=M*Math.sqrt(N*N-1);B=we=>{const Oe=Math.exp(-N*M*we),Ae=Math.min(ie*we,300);return c-Oe*((C+N*M*L)*Math.sinh(Ae)+ie*L*Math.cosh(Ae))/ie};const ue=(C+N*M*L)/ie,be=N*M*ue-L*ie,Te=N*M*L-ue*ie;V=we=>{const Oe=Math.exp(-N*M*we),Ae=Math.min(ie*we,300);return Oe*(be*Math.sinh(Ae)+Te*Math.cosh(Ae))}}const se={calculatedDuration:E&&_||null,velocity:ie=>Au(V(ie)),next:ie=>{if(!E&&N<1){const be=Math.exp(-N*M*ie),Te=Math.sin(G*ie),we=Math.cos(G*ie),Oe=c-be*(W*Te+L*we),Ae=Au(be*(Z*Te+Q*we));return s.done=Math.abs(Ae)<=n&&Math.abs(c-Oe)<=i,s.value=s.done?c:Oe,s}const ue=B(ie);if(E)s.done=ie>=_;else{const be=Au(V(ie));s.done=Math.abs(be)<=n&&Math.abs(c-ue)<=i}return s.value=s.done?c:ue,s},toString:()=>{const ie=Math.min(d7(se),sD),ue=Y_e(be=>se.next(ie*be).value,ie,30);return ie+"ms "+ue},toTransition:()=>{}};return se}aD.applyToOptions=t=>{const e=ZZe(t,100,aD);return t.ease=e.ease,t.duration=Au(e.duration),t.type="keyframes",t};const nXe=5;function Z_e(t,e,r){const n=Math.max(e-nXe,0);return I_e(r-t(n),e-n)}function F6({keyframes:t,velocity:e=0,power:r=.8,timeConstant:n=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:c,min:s,max:f,restDelta:m=.5,restSpeed:x}){const _=t[0],T={done:!1,value:_},E=Q=>s!==void 0&&Qf,C=Q=>s===void 0?f:f===void 0||Math.abs(s-Q)-N*Math.exp(-Q/n),B=Q=>M+D(Q),V=Q=>{const se=D(Q),ie=B(Q);T.done=Math.abs(se)<=m,T.value=T.done?M:ie};let G,W;const Z=Q=>{E(T.value)&&(G=Q,W=aD({keyframes:[T.value,C(T.value)],velocity:Z_e(B,Q,T.value),damping:i,stiffness:a,restDelta:m,restSpeed:x}))};return Z(0),{calculatedDuration:null,next:Q=>{let se=!1;return!W&&G===void 0&&(se=!0,V(Q),Z(Q)),G!==void 0&&Q>=G?W.next(Q-G):(!se&&V(Q),T)}}}function iXe(t,e,r){const n=[],i=r||Hy.mix||K_e,a=t.length-1;for(let c=0;ce[0];if(a===2&&e[0]===e[1])return()=>e[1];const c=t[0]===t[1];t[0]>t[a-1]&&(t=[...t].reverse(),e=[...e].reverse());const s=iXe(e,n,i),f=s.length,m=x=>{if(c&&x1)for(;_m(ap(t[0],t[a-1],x)):m}function aXe(t,e){const r=t[t.length-1];for(let n=1;n<=e;n++){const i=mk(0,e,n);t.push(Aa(r,1,i))}}function oXe(t){const e=[0];return aXe(e,t.length-1),e}function lXe(t,e){return t.map(r=>r*e)}function cXe(t,e){return t.map(()=>e||F_e).splice(0,t.length-1)}function mA({duration:t=300,keyframes:e,times:r,ease:n="easeInOut"}){const i=xZe(n)?n.map(Vte):Vte(n),a={done:!1,value:e[0]},c=lXe(r&&r.length===e.length?r:oXe(e),t),s=sXe(c,e,{ease:Array.isArray(i)?i:cXe(e,i)});return{calculatedDuration:t,next:f=>(a.value=s(f),a.done=f>=t,a)}}const uXe=t=>t!==null;function eF(t,{repeat:e,repeatType:r="loop"},n,i=1){const a=t.filter(uXe),s=i<0||e&&r!=="loop"&&e%2===1?0:a.length-1;return!s||n===void 0?a[s]:n}const dXe={decay:F6,inertia:F6,tween:mA,keyframes:mA,spring:aD};function X_e(t){typeof t.type=="string"&&(t.type=dXe[t.type])}class h7{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,r){return this.finished.then(e,r)}}const hXe=t=>t/100;class oD extends h7{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{var n,i;const{motionValue:r}=this.options;r&&r.updatedAt!==Vc.now()&&this.tick(Vc.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(i=(n=this.options).onStop)==null||i.call(n))},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;X_e(e);const{type:r=mA,repeat:n=0,repeatDelay:i=0,repeatType:a,velocity:c=0}=e;let{keyframes:s}=e;const f=r||mA;f!==mA&&typeof s[0]!="number"&&(this.mixKeyframes=HC(hXe,K_e(s[0],s[1])),s=[0,100]);const m=f({...e,keyframes:s});a==="mirror"&&(this.mirroredGenerator=f({...e,keyframes:[...s].reverse(),velocity:-c})),m.calculatedDuration===null&&(m.calculatedDuration=d7(m));const{calculatedDuration:x}=m;this.calculatedDuration=x,this.resolvedDuration=x+i,this.totalDuration=this.resolvedDuration*(n+1)-i,this.generator=m}updateTime(e){const r=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=r}tick(e,r=!1){const{generator:n,totalDuration:i,mixKeyframes:a,mirroredGenerator:c,resolvedDuration:s,calculatedDuration:f}=this;if(this.startTime===null)return n.next(0);const{delay:m=0,keyframes:x,repeat:_,repeatType:T,repeatDelay:E,type:C,onUpdate:N,finalKeyframe:L}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-i/this.speed,this.startTime)),r?this.currentTime=e:this.updateTime(e);const M=this.currentTime-m*(this.playbackSpeed>=0?1:-1),D=this.playbackSpeed>=0?M<0:M>i;this.currentTime=Math.max(M,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let B=this.currentTime,V=n;if(_){const Q=Math.min(this.currentTime,i)/s;let se=Math.floor(Q),ie=Q%1;!ie&&Q>=1&&(ie=1),ie===1&&se--,se=Math.min(se,_+1),!!(se%2)&&(T==="reverse"?(ie=1-ie,E&&(ie-=E/s)):T==="mirror"&&(V=c)),B=ap(0,1,ie)*s}let G;D?(this.delayState.value=x[0],G=this.delayState):G=V.next(B),a&&!D&&(G.value=a(G.value));let{done:W}=G;!D&&f!==null&&(W=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const Z=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&W);return Z&&C!==F6&&(G.value=eF(x,this.options,L,this.speed)),N&&N(G.value),Z&&this.finish(),G}then(e,r){return this.finished.then(e,r)}get duration(){return zd(this.calculatedDuration)}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+zd(e)}get time(){return zd(this.currentTime)}set time(e){e=Au(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){const e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);const r=this.generator.next(e).value;return Z_e(n=>this.generator.next(n).value,e,r)}get speed(){return this.playbackSpeed}set speed(e){const r=this.playbackSpeed!==e;r&&this.driver&&this.updateTime(Vc.now()),this.playbackSpeed=e,r&&this.driver&&(this.time=zd(this.currentTime))}play(){var i,a;if(this.isStopped)return;const{driver:e=YZe,startTime:r}=this.options;this.driver||(this.driver=e(c=>this.tick(c))),(a=(i=this.options).onPlay)==null||a.call(i);const n=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=n):this.holdTime!==null?this.startTime=n-this.holdTime:this.startTime||(this.startTime=r??n),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Vc.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var e,r;this.notifyFinished(),this.teardown(),this.state="finished",(r=(e=this.options).onComplete)==null||r.call(e)}cancel(){var e,r;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(r=(e=this.options).onCancel)==null||r.call(e)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){var r;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(r=this.driver)==null||r.stop(),e.observe(this)}}function fXe(t){for(let e=1;et*180/Math.PI,B6=t=>{const e=G0(Math.atan2(t[1],t[0]));return z6(e)},pXe={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:B6,rotateZ:B6,skewX:t=>G0(Math.atan(t[1])),skewY:t=>G0(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},z6=t=>(t=t%360,t<0&&(t+=360),t),Xte=B6,Qte=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),Jte=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),mXe={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Qte,scaleY:Jte,scale:t=>(Qte(t)+Jte(t))/2,rotateX:t=>z6(G0(Math.atan2(t[6],t[5]))),rotateY:t=>z6(G0(Math.atan2(-t[2],t[0]))),rotateZ:Xte,rotate:Xte,skewX:t=>G0(Math.atan(t[4])),skewY:t=>G0(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function $6(t){return t.includes("scale")?1:0}function U6(t,e){if(!t||t==="none")return $6(e);const r=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let n,i;if(r)n=mXe,i=r;else{const s=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);n=pXe,i=s}if(!i)return $6(e);const a=n[e],c=i[1].split(",").map(yXe);return typeof a=="function"?a(c):c[a]}const gXe=(t,e)=>{const{transform:r="none"}=getComputedStyle(t);return U6(r,e)};function yXe(t){return parseFloat(t.trim())}const AS=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],kS=new Set(AS),ere=t=>t===ES||t===kn,xXe=new Set(["x","y","z"]),_Xe=AS.filter(t=>!xXe.has(t));function vXe(t){const e=[];return _Xe.forEach(r=>{const n=t.getValue(r);n!==void 0&&(e.push([r,n.get()]),n.set(r.startsWith("scale")?1:0))}),e}const yy={width:({x:t},{paddingLeft:e="0",paddingRight:r="0",boxSizing:n})=>{const i=t.max-t.min;return n==="border-box"?i:i-parseFloat(e)-parseFloat(r)},height:({y:t},{paddingTop:e="0",paddingBottom:r="0",boxSizing:n})=>{const i=t.max-t.min;return n==="border-box"?i:i-parseFloat(e)-parseFloat(r)},top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>U6(e,"x"),y:(t,{transform:e})=>U6(e,"y")};yy.translateX=yy.x;yy.translateY=yy.y;const l_=new Set;let V6=!1,q6=!1,G6=!1;function Q_e(){if(q6){const t=Array.from(l_).filter(n=>n.needsMeasurement),e=new Set(t.map(n=>n.element)),r=new Map;e.forEach(n=>{const i=vXe(n);i.length&&(r.set(n,i),n.render())}),t.forEach(n=>n.measureInitialState()),e.forEach(n=>{n.render();const i=r.get(n);i&&i.forEach(([a,c])=>{var s;(s=n.getValue(a))==null||s.set(c)})}),t.forEach(n=>n.measureEndState()),t.forEach(n=>{n.suspendedScrollY!==void 0&&window.scrollTo(0,n.suspendedScrollY)})}q6=!1,V6=!1,l_.forEach(t=>t.complete(G6)),l_.clear()}function J_e(){l_.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(q6=!0)})}function bXe(){G6=!0,J_e(),Q_e(),G6=!1}class f7{constructor(e,r,n,i,a,c=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=r,this.name=n,this.motionValue=i,this.element=a,this.isAsync=c}scheduleResolve(){this.state="scheduled",this.isAsync?(l_.add(this),V6||(V6=!0,ra.read(J_e),ra.resolveKeyframes(Q_e))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:r,element:n,motionValue:i}=this;if(e[0]===null){const a=i==null?void 0:i.get(),c=e[e.length-1];if(a!==void 0)e[0]=a;else if(n&&r){const s=n.readValue(r,c);s!=null&&(e[0]=s)}e[0]===void 0&&(e[0]=c),i&&a===void 0&&i.set(e[0])}fXe(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),l_.delete(this)}cancel(){this.state==="scheduled"&&(l_.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const wXe=t=>t.startsWith("--");function eve(t,e,r){wXe(e)?t.style.setProperty(e,r):t.style[e]=r}const SXe={};function tve(t,e){const r=C_e(t);return()=>SXe[e]??r()}const TXe=tve(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),rve=tve(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),H2=([t,e,r,n])=>`cubic-bezier(${t}, ${e}, ${r}, ${n})`,tre={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:H2([0,.65,.55,1]),circOut:H2([.55,0,1,.45]),backIn:H2([.31,.01,.66,-.59]),backOut:H2([.33,1.53,.69,.99])};function nve(t,e){if(t)return typeof t=="function"?rve()?Y_e(t,e):"ease-out":B_e(t)?H2(t):Array.isArray(t)?t.map(r=>nve(r,e)||tre.easeOut):tre[t]}function EXe(t,e,r,{delay:n=0,duration:i=300,repeat:a=0,repeatType:c="loop",ease:s="easeOut",times:f}={},m=void 0){const x={[e]:r};f&&(x.offset=f);const _=nve(s,i);Array.isArray(_)&&(x.easing=_);const T={delay:n,duration:i,easing:Array.isArray(_)?"linear":_,fill:"both",iterations:a+1,direction:c==="reverse"?"alternate":"normal"};return m&&(T.pseudoElement=m),t.animate(x,T)}function ive(t){return typeof t=="function"&&"applyToOptions"in t}function AXe({type:t,...e}){return ive(t)&&rve()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class sve extends h7{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:r,name:n,keyframes:i,pseudoElement:a,allowFlatten:c=!1,finalKeyframe:s,onComplete:f}=e;this.isPseudoElement=!!a,this.allowFlatten=c,this.options=e,w1(typeof e.type!="string",`Mini animate() doesn't support "type" as a string.`,"mini-spring");const m=AXe(e);this.animation=EXe(r,n,i,m,a),m.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!a){const x=eF(i,this.options,s,this.speed);this.updateMotionValue&&this.updateMotionValue(x),eve(r,n,x),this.animation.cancel()}f==null||f(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var e,r;(r=(e=this.animation).finish)==null||r.call(e)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var r,n,i;const e=(r=this.options)==null?void 0:r.element;!this.isPseudoElement&&(e!=null&&e.isConnected)&&((i=(n=this.animation).commitStyles)==null||i.call(n))}get duration(){var r,n;const e=((n=(r=this.animation.effect)==null?void 0:r.getComputedTiming)==null?void 0:n.call(r).duration)||0;return zd(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+zd(e)}get time(){return zd(Number(this.animation.currentTime)||0)}set time(e){const r=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Au(e),r&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:r,rangeEnd:n,observe:i}){var a;return this.allowFlatten&&((a=this.animation.effect)==null||a.updateTiming({easing:"linear"})),this.animation.onfinish=null,e&&TXe()?(this.animation.timeline=e,r&&(this.animation.rangeStart=r),n&&(this.animation.rangeEnd=n),Gd):i(this)}}const ave={anticipate:D_e,backInOut:L_e,circInOut:O_e};function kXe(t){return t in ave}function CXe(t){typeof t.ease=="string"&&kXe(t.ease)&&(t.ease=ave[t.ease])}const KB=10;class IXe extends sve{constructor(e){CXe(e),X_e(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:r,onUpdate:n,onComplete:i,element:a,...c}=this.options;if(!r)return;if(e!==void 0){r.set(e);return}const s=new oD({...c,autoplay:!1}),f=Math.max(KB,Vc.now()-this.startTime),m=ap(0,KB,f-KB),x=s.sample(f).value,{name:_}=this.options;a&&_&&eve(a,_,x),r.setWithVelocity(s.sample(Math.max(0,f-m)).value,x,m),s.stop()}}const rre=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Zh.test(t)||t==="0")&&!t.startsWith("url("));function jXe(t){const e=t[0];if(t.length===1)return!0;for(let r=0;rObject.hasOwnProperty.call(Element.prototype,"animate"));function MXe(t){var _;const{motionValue:e,name:r,repeatDelay:n,repeatType:i,damping:a,type:c,keyframes:s}=t;if(!(((_=e==null?void 0:e.owner)==null?void 0:_.current)instanceof HTMLElement))return!1;const{onUpdate:m,transformTemplate:x}=e.owner.getProps();return DXe()&&r&&(ove.has(r)||LXe.has(r)&&RXe(s))&&(r!=="transform"||!x)&&!m&&!n&&i!=="mirror"&&a!==0&&c!=="inertia"}const OXe=40;class FXe extends h7{constructor({autoplay:e=!0,delay:r=0,type:n="keyframes",repeat:i=0,repeatDelay:a=0,repeatType:c="loop",keyframes:s,name:f,motionValue:m,element:x,..._}){var C;super(),this.stop=()=>{var N,L;this._animation&&(this._animation.stop(),(N=this.stopTimeline)==null||N.call(this)),(L=this.keyframeResolver)==null||L.cancel()},this.createdAt=Vc.now();const T={autoplay:e,delay:r,type:n,repeat:i,repeatDelay:a,repeatType:c,name:f,motionValue:m,element:x,..._},E=(x==null?void 0:x.KeyframeResolver)||f7;this.keyframeResolver=new E(s,(N,L,M)=>this.onKeyframesResolved(N,L,T,!M),f,m,x),(C=this.keyframeResolver)==null||C.scheduleResolve()}onKeyframesResolved(e,r,n,i){var M,D;this.keyframeResolver=void 0;const{name:a,type:c,velocity:s,delay:f,isHandoff:m,onUpdate:x}=n;this.resolvedAt=Vc.now();let _=!0;PXe(e,a,c,s)||(_=!1,(Hy.instantAnimations||!f)&&(x==null||x(eF(e,n,r))),e[0]=e[e.length-1],H6(n),n.repeat=0);const E={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>OXe?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:r,...n,keyframes:e},C=_&&!m&&MXe(E),N=(D=(M=E.motionValue)==null?void 0:M.owner)==null?void 0:D.current;let L;if(C)try{L=new IXe({...E,element:N})}catch{L=new oD(E)}else L=new oD(E);L.finished.then(()=>{this.notifyFinished()}).catch(Gd),this.pendingTimeline&&(this.stopTimeline=L.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=L}get finished(){return this._animation?this.animation.finished:this._finished}then(e,r){return this.finished.finally(e).then(()=>{})}get animation(){var e;return this._animation||((e=this.keyframeResolver)==null||e.resume(),bXe()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var e;this._animation&&this.animation.cancel(),(e=this.keyframeResolver)==null||e.cancel()}}function lve(t,e,r,n=0,i=1){const a=Array.from(t).sort((m,x)=>m.sortNodePosition(x)).indexOf(e),c=t.size,s=(c-1)*n;return typeof r=="function"?r(a,c):i===1?a*n:s-a*n}const BXe=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function zXe(t){const e=BXe.exec(t);if(!e)return[,];const[,r,n,i]=e;return[`--${r??n}`,i]}const $Xe=4;function cve(t,e,r=1){w1(r<=$Xe,`Max CSS variable fallback depth detected in property "${t}". This may indicate a circular fallback dependency.`,"max-css-var-depth");const[n,i]=zXe(t);if(!n)return;const a=window.getComputedStyle(e).getPropertyValue(n);if(a){const c=a.trim();return E_e(c)?parseFloat(c):c}return o7(i)?cve(i,e,r+1):i}const UXe={type:"spring",stiffness:500,damping:25,restSpeed:10},VXe=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),qXe={type:"keyframes",duration:.8},GXe={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},HXe=(t,{keyframes:e})=>e.length>2?qXe:kS.has(t)?t.startsWith("scale")?VXe(e[1]):UXe:GXe;function uve(t,e){if(t!=null&&t.inherit&&e){const{inherit:r,...n}=t;return{...e,...n}}return t}function p7(t,e){const r=(t==null?void 0:t[e])??(t==null?void 0:t.default)??t;return r!==t?uve(r,t):r}const WXe=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function KXe(t){for(const e in t)if(!WXe.has(e))return!0;return!1}const m7=(t,e,r,n={},i,a)=>c=>{const s=p7(n,t)||{},f=s.delay||n.delay||0;let{elapsed:m=0}=n;m=m-Au(f);const x={keyframes:Array.isArray(r)?r:[null,r],ease:"easeOut",velocity:e.getVelocity(),...s,delay:-m,onUpdate:T=>{e.set(T),s.onUpdate&&s.onUpdate(T)},onComplete:()=>{c(),s.onComplete&&s.onComplete()},name:t,motionValue:e,element:a?void 0:i};KXe(s)||Object.assign(x,HXe(t,x)),x.duration&&(x.duration=Au(x.duration)),x.repeatDelay&&(x.repeatDelay=Au(x.repeatDelay)),x.from!==void 0&&(x.keyframes[0]=x.from);let _=!1;if((x.type===!1||x.duration===0&&!x.repeatDelay)&&(H6(x),x.delay===0&&(_=!0)),(Hy.instantAnimations||Hy.skipAnimations||i!=null&&i.shouldSkipAnimations)&&(_=!0,H6(x),x.delay=0),x.allowFlatten=!s.type&&!s.ease,_&&!a&&e.get()!==void 0){const T=eF(x.keyframes,s);if(T!==void 0){ra.update(()=>{x.onUpdate(T),x.onComplete()});return}}return s.isSync?new oD(x):new FXe(x)};function nre(t){const e=[{},{}];return t==null||t.values.forEach((r,n)=>{e[0][n]=r.get(),e[1][n]=r.getVelocity()}),e}function g7(t,e,r,n){if(typeof e=="function"){const[i,a]=nre(n);e=e(r!==void 0?r:t.custom,i,a)}if(typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"){const[i,a]=nre(n);e=e(r!==void 0?r:t.custom,i,a)}return e}function c_(t,e,r){const n=t.getProps();return g7(n,e,r!==void 0?r:n.custom,t)}const dve=new Set(["width","height","top","left","right","bottom",...AS]),ire=30,YXe=t=>!isNaN(parseFloat(t));class ZXe{constructor(e,r={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=n=>{var a;const i=Vc.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(n),this.current!==this.prev&&((a=this.events.change)==null||a.notify(this.current),this.dependents))for(const c of this.dependents)c.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=r.owner}setCurrent(e){this.current=e,this.updatedAt=Vc.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=YXe(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,r){this.events[e]||(this.events[e]=new i7);const n=this.events[e].add(r);return e==="change"?()=>{n(),ra.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,r){this.passiveEffect=e,this.stopPassiveEffect=r}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,r,n){this.set(r),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,r=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,r&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var e;(e=this.events.change)==null||e.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=Vc.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>ire)return 0;const r=Math.min(this.updatedAt-this.prevUpdatedAt,ire);return I_e(parseFloat(this.current)-parseFloat(this.prevFrameValue),r)}start(e){return this.stop(),new Promise(r=>{this.hasAnimated=!0,this.animation=e(r),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){var e,r;(e=this.dependents)==null||e.clear(),(r=this.events.destroy)==null||r.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function T1(t,e){return new ZXe(t,e)}const W6=t=>Array.isArray(t);function XXe(t,e,r){t.hasValue(e)?t.getValue(e).set(r):t.addValue(e,T1(r))}function QXe(t){return W6(t)?t[t.length-1]||0:t}function JXe(t,e){const r=c_(t,e);let{transitionEnd:n={},transition:i={},...a}=r||{};a={...a,...n};for(const c in a){const s=QXe(a[c]);XXe(t,c,s)}}const Kl=t=>!!(t&&t.getVelocity);function eQe(t){return!!(Kl(t)&&t.add)}function K6(t,e){const r=t.getValue("willChange");if(eQe(r))return r.add(e);if(!r&&Hy.WillChange){const n=new Hy.WillChange("auto");t.addValue("willChange",n),n.add(e)}}function y7(t){return t.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}const tQe="framerAppearId",hve="data-"+y7(tQe);function fve(t){return t.props[hve]}function rQe({protectedKeys:t,needsAnimating:e},r){const n=t.hasOwnProperty(r)&&e[r]!==!0;return e[r]=!1,n}function pve(t,e,{delay:r=0,transitionOverride:n,type:i}={}){let{transition:a,transitionEnd:c,...s}=e;const f=t.getDefaultTransition();a=a?uve(a,f):f;const m=a==null?void 0:a.reduceMotion;n&&(a=n);const x=[],_=i&&t.animationState&&t.animationState.getState()[i];for(const T in s){const E=t.getValue(T,t.latestValues[T]??null),C=s[T];if(C===void 0||_&&rQe(_,T))continue;const N={delay:r,...p7(a||{},T)},L=E.get();if(L!==void 0&&!E.isAnimating()&&!Array.isArray(C)&&C===L&&!N.velocity){ra.update(()=>E.set(C));continue}let M=!1;if(window.MotionHandoffAnimation){const V=fve(t);if(V){const G=window.MotionHandoffAnimation(V,T,ra);G!==null&&(N.startTime=G,M=!0)}}K6(t,T);const D=m??t.shouldReduceMotion;E.start(m7(T,E,C,D&&dve.has(T)?{type:!1}:N,t,M));const B=E.animation;B&&x.push(B)}if(c){const T=()=>ra.update(()=>{c&&JXe(t,c)});x.length?Promise.all(x).then(T):T()}return x}function Y6(t,e,r={}){var f;const n=c_(t,e,r.type==="exit"?(f=t.presenceContext)==null?void 0:f.custom:void 0);let{transition:i=t.getDefaultTransition()||{}}=n||{};r.transitionOverride&&(i=r.transitionOverride);const a=n?()=>Promise.all(pve(t,n,r)):()=>Promise.resolve(),c=t.variantChildren&&t.variantChildren.size?(m=0)=>{const{delayChildren:x=0,staggerChildren:_,staggerDirection:T}=i;return nQe(t,e,m,x,_,T,r)}:()=>Promise.resolve(),{when:s}=i;if(s){const[m,x]=s==="beforeChildren"?[a,c]:[c,a];return m().then(()=>x())}else return Promise.all([a(),c(r.delay)])}function nQe(t,e,r=0,n=0,i=0,a=1,c){const s=[];for(const f of t.variantChildren)f.notify("AnimationStart",e),s.push(Y6(f,e,{...c,delay:r+(typeof n=="function"?0:n)+lve(t.variantChildren,f,n,i,a)}).then(()=>f.notify("AnimationComplete",e)));return Promise.all(s)}function iQe(t,e,r={}){t.notify("AnimationStart",e);let n;if(Array.isArray(e)){const i=e.map(a=>Y6(t,a,r));n=Promise.all(i)}else if(typeof e=="string")n=Y6(t,e,r);else{const i=typeof e=="function"?c_(t,e,r.custom):e;n=Promise.all(pve(t,i,r))}return n.then(()=>{t.notify("AnimationComplete",e)})}const sQe={test:t=>t==="auto",parse:t=>t},mve=t=>e=>e.test(t),gve=[ES,kn,Qf,qg,jZe,IZe,sQe],sre=t=>gve.find(mve(t));function aQe(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||k_e(t):!0}const oQe=new Set(["brightness","contrast","saturate","opacity"]);function lQe(t){const[e,r]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[n]=r.match(l7)||[];if(!n)return t;const i=r.replace(n,"");let a=oQe.has(e)?1:0;return n!==r&&(a*=100),e+"("+a+i+")"}const cQe=/\b([a-z-]*)\(.*?\)/gu,Z6={...Zh,getAnimatableNone:t=>{const e=t.match(cQe);return e?e.map(lQe).join(" "):t}},X6={...Zh,getAnimatableNone:t=>{const e=Zh.parse(t);return Zh.createTransformer(t)(e.map(n=>typeof n=="number"?0:typeof n=="object"?{...n,alpha:1}:n))}},are={...ES,transform:Math.round},uQe={rotate:qg,rotateX:qg,rotateY:qg,rotateZ:qg,scale:gN,scaleX:gN,scaleY:gN,scaleZ:gN,skew:qg,skewX:qg,skewY:qg,distance:kn,translateX:kn,translateY:kn,translateZ:kn,x:kn,y:kn,z:kn,perspective:kn,transformPerspective:kn,opacity:gk,originX:Hte,originY:Hte,originZ:kn},x7={borderWidth:kn,borderTopWidth:kn,borderRightWidth:kn,borderBottomWidth:kn,borderLeftWidth:kn,borderRadius:kn,borderTopLeftRadius:kn,borderTopRightRadius:kn,borderBottomRightRadius:kn,borderBottomLeftRadius:kn,width:kn,maxWidth:kn,height:kn,maxHeight:kn,top:kn,right:kn,bottom:kn,left:kn,inset:kn,insetBlock:kn,insetBlockStart:kn,insetBlockEnd:kn,insetInline:kn,insetInlineStart:kn,insetInlineEnd:kn,padding:kn,paddingTop:kn,paddingRight:kn,paddingBottom:kn,paddingLeft:kn,paddingBlock:kn,paddingBlockStart:kn,paddingBlockEnd:kn,paddingInline:kn,paddingInlineStart:kn,paddingInlineEnd:kn,margin:kn,marginTop:kn,marginRight:kn,marginBottom:kn,marginLeft:kn,marginBlock:kn,marginBlockStart:kn,marginBlockEnd:kn,marginInline:kn,marginInlineStart:kn,marginInlineEnd:kn,fontSize:kn,backgroundPositionX:kn,backgroundPositionY:kn,...uQe,zIndex:are,fillOpacity:gk,strokeOpacity:gk,numOctaves:are},dQe={...x7,color:$o,backgroundColor:$o,outlineColor:$o,fill:$o,stroke:$o,borderColor:$o,borderTopColor:$o,borderRightColor:$o,borderBottomColor:$o,borderLeftColor:$o,filter:Z6,WebkitFilter:Z6,mask:X6,WebkitMask:X6},yve=t=>dQe[t],hQe=new Set([Z6,X6]);function xve(t,e){let r=yve(t);return hQe.has(r)||(r=Zh),r.getAnimatableNone?r.getAnimatableNone(e):void 0}const fQe=new Set(["auto","none","0"]);function pQe(t,e,r){let n=0,i;for(;n{e.getValue(f).set(m)}),this.resolveNoneKeyframes()}}function _ve(t,e,r){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){const i=document.querySelectorAll(t);return i?Array.from(i):[]}return Array.from(t).filter(n=>n!=null)}const vve=(t,e)=>e&&typeof t=="number"?e.transform(t):t;function IR(t){return A_e(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)}const{schedule:_7,cancel:w6t}=z_e(queueMicrotask,!1),jh={x:!1,y:!1};function bve(){return jh.x||jh.y}function gQe(t){return t==="x"||t==="y"?jh[t]?null:(jh[t]=!0,()=>{jh[t]=!1}):jh.x||jh.y?null:(jh.x=jh.y=!0,()=>{jh.x=jh.y=!1})}function wve(t,e){const r=_ve(t),n=new AbortController,i={passive:!0,...e,signal:n.signal};return[r,i,()=>n.abort()]}function yQe(t){return!(t.pointerType==="touch"||bve())}function xQe(t,e,r={}){const[n,i,a]=wve(t,r);return n.forEach(c=>{let s=!1,f=!1,m;const x=()=>{c.removeEventListener("pointerleave",C)},_=L=>{m&&(m(L),m=void 0),x()},T=L=>{s=!1,window.removeEventListener("pointerup",T),window.removeEventListener("pointercancel",T),f&&(f=!1,_(L))},E=()=>{s=!0,window.addEventListener("pointerup",T,i),window.addEventListener("pointercancel",T,i)},C=L=>{if(L.pointerType!=="touch"){if(s){f=!0;return}_(L)}},N=L=>{if(!yQe(L))return;f=!1;const M=e(c,L);typeof M=="function"&&(m=M,c.addEventListener("pointerleave",C,i))};c.addEventListener("pointerenter",N,i),c.addEventListener("pointerdown",E,i)}),a}const Sve=(t,e)=>e?t===e?!0:Sve(t,e.parentElement):!1,v7=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,_Qe=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function vQe(t){return _Qe.has(t.tagName)||t.isContentEditable===!0}const bQe=new Set(["INPUT","SELECT","TEXTAREA"]);function wQe(t){return bQe.has(t.tagName)||t.isContentEditable===!0}const jR=new WeakSet;function ore(t){return e=>{e.key==="Enter"&&t(e)}}function YB(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const SQe=(t,e)=>{const r=t.currentTarget;if(!r)return;const n=ore(()=>{if(jR.has(r))return;YB(r,"down");const i=ore(()=>{YB(r,"up")}),a=()=>YB(r,"cancel");r.addEventListener("keyup",i,e),r.addEventListener("blur",a,e)});r.addEventListener("keydown",n,e),r.addEventListener("blur",()=>r.removeEventListener("keydown",n),e)};function lre(t){return v7(t)&&!bve()}const cre=new WeakSet;function TQe(t,e,r={}){const[n,i,a]=wve(t,r),c=s=>{const f=s.currentTarget;if(!lre(s)||cre.has(s))return;jR.add(f),r.stopPropagation&&cre.add(s);const m=e(f,s),x=(E,C)=>{window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",T),jR.has(f)&&jR.delete(f),lre(E)&&typeof m=="function"&&m(E,{success:C})},_=E=>{x(E,f===window||f===document||r.useGlobalTarget||Sve(f,E.target))},T=E=>{x(E,!1)};window.addEventListener("pointerup",_,i),window.addEventListener("pointercancel",T,i)};return n.forEach(s=>{(r.useGlobalTarget?window:s).addEventListener("pointerdown",c,i),IR(s)&&(s.addEventListener("focus",m=>SQe(m,i)),!vQe(s)&&!s.hasAttribute("tabindex")&&(s.tabIndex=0))}),a}function b7(t){return A_e(t)&&"ownerSVGElement"in t}const PR=new WeakMap;let Gg;const Tve=(t,e,r)=>(n,i)=>i&&i[0]?i[0][t+"Size"]:b7(n)&&"getBBox"in n?n.getBBox()[e]:n[r],EQe=Tve("inline","width","offsetWidth"),AQe=Tve("block","height","offsetHeight");function kQe({target:t,borderBoxSize:e}){var r;(r=PR.get(t))==null||r.forEach(n=>{n(t,{get width(){return EQe(t,e)},get height(){return AQe(t,e)}})})}function CQe(t){t.forEach(kQe)}function IQe(){typeof ResizeObserver>"u"||(Gg=new ResizeObserver(CQe))}function jQe(t,e){Gg||IQe();const r=_ve(t);return r.forEach(n=>{let i=PR.get(n);i||(i=new Set,PR.set(n,i)),i.add(e),Gg==null||Gg.observe(n)}),()=>{r.forEach(n=>{const i=PR.get(n);i==null||i.delete(e),i!=null&&i.size||Gg==null||Gg.unobserve(n)})}}const NR=new Set;let hw;function PQe(){hw=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};NR.forEach(e=>e(t))},window.addEventListener("resize",hw)}function NQe(t){return NR.add(t),hw||PQe(),()=>{NR.delete(t),!NR.size&&typeof hw=="function"&&(window.removeEventListener("resize",hw),hw=void 0)}}function ure(t,e){return typeof t=="function"?NQe(t):jQe(t,e)}function RQe(t){return b7(t)&&t.tagName==="svg"}const LQe=[...gve,$o,Zh],DQe=t=>LQe.find(mve(t)),dre=()=>({translate:0,scale:1,origin:0,originPoint:0}),fw=()=>({x:dre(),y:dre()}),hre=()=>({min:0,max:0}),el=()=>({x:hre(),y:hre()}),MQe=new WeakMap;function tF(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function yk(t){return typeof t=="string"||Array.isArray(t)}const w7=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],S7=["initial",...w7];function rF(t){return tF(t.animate)||S7.some(e=>yk(t[e]))}function Eve(t){return!!(rF(t)||t.variants)}function OQe(t,e,r){for(const n in e){const i=e[n],a=r[n];if(Kl(i))t.addValue(n,i);else if(Kl(a))t.addValue(n,T1(i,{owner:t}));else if(a!==i)if(t.hasValue(n)){const c=t.getValue(n);c.liveStyle===!0?c.jump(i):c.hasAnimated||c.set(i)}else{const c=t.getStaticValue(n);t.addValue(n,T1(c!==void 0?c:i,{owner:t}))}}for(const n in r)e[n]===void 0&&t.removeValue(n);return e}const Q6={current:null},Ave={current:!1},FQe=typeof window<"u";function BQe(){if(Ave.current=!0,!!FQe)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>Q6.current=t.matches;t.addEventListener("change",e),e()}else Q6.current=!1}const fre=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let lD={};function kve(t){lD=t}function zQe(){return lD}class $Qe{scrapeMotionValuesFromProps(e,r,n){return{}}constructor({parent:e,props:r,presenceContext:n,reducedMotionConfig:i,skipAnimations:a,blockInitialAnimation:c,visualState:s},f={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=f7,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const E=Vc.now();this.renderScheduledAtthis.bindToMotionValue(a,i)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Ave.current||BQe(),this.shouldReduceMotion=Q6.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,(n=this.parent)==null||n.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){var e;this.projection&&this.projection.unmount(),Wy(this.notifyUpdate),Wy(this.render),this.valueSubscriptions.forEach(r=>r()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(e=this.parent)==null||e.removeChild(this);for(const r in this.events)this.events[r].clear();for(const r in this.features){const n=this.features[r];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,r){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),r.accelerate&&ove.has(e)&&this.current instanceof HTMLElement){const{factory:c,keyframes:s,times:f,ease:m,duration:x}=r.accelerate,_=new sve({element:this.current,name:e,keyframes:s,times:f,ease:m,duration:Au(x)}),T=c(_);this.valueSubscriptions.set(e,()=>{T(),_.cancel()});return}const n=kS.has(e);n&&this.onBindTransform&&this.onBindTransform();const i=r.on("change",c=>{this.latestValues[e]=c,this.props.onUpdate&&ra.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let a;typeof window<"u"&&window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,e,r)),this.valueSubscriptions.set(e,()=>{i(),a&&a(),r.owner&&r.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in lD){const r=lD[e];if(!r)continue;const{isEnabled:n,Feature:i}=r;if(!this.features[e]&&i&&n(this.props)&&(this.features[e]=new i(this)),this.features[e]){const a=this.features[e];a.isMounted?a.update():(a.mount(),a.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):el()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,r){this.latestValues[e]=r}update(e,r){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=r;for(let n=0;nr.variantChildren.delete(e)}addValue(e,r){const n=this.values.get(e);r!==n&&(n&&this.removeValue(e),this.bindToMotionValue(e,r),this.values.set(e,r),this.latestValues[e]=r.get())}removeValue(e){this.values.delete(e);const r=this.valueSubscriptions.get(e);r&&(r(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,r){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&r!==void 0&&(n=T1(r===null?void 0:r,{owner:this}),this.addValue(e,n)),n}readValue(e,r){let n=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return n!=null&&(typeof n=="string"&&(E_e(n)||k_e(n))?n=parseFloat(n):!DQe(n)&&Zh.test(r)&&(n=xve(e,r)),this.setBaseTarget(e,Kl(n)?n.get():n)),Kl(n)?n.get():n}setBaseTarget(e,r){this.baseTarget[e]=r}getBaseTarget(e){var a;const{initial:r}=this.props;let n;if(typeof r=="string"||typeof r=="object"){const c=g7(this.props,r,(a=this.presenceContext)==null?void 0:a.custom);c&&(n=c[e])}if(r&&n!==void 0)return n;const i=this.getBaseTargetFromProps(this.props,e);return i!==void 0&&!Kl(i)?i:this.initialValues[e]!==void 0&&n===void 0?void 0:this.baseTarget[e]}on(e,r){return this.events[e]||(this.events[e]=new i7),this.events[e].add(r)}notify(e,...r){this.events[e]&&this.events[e].notify(...r)}scheduleRenderMicrotask(){_7.render(this.render)}}class Cve extends $Qe{constructor(){super(...arguments),this.KeyframeResolver=mQe}sortInstanceNodePosition(e,r){return e.compareDocumentPosition(r)&2?1:-1}getBaseTargetFromProps(e,r){const n=e.style;return n?n[r]:void 0}removeValueFromRenderState(e,{vars:r,style:n}){delete r[e],delete n[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;Kl(e)&&(this.childSubscription=e.on("change",r=>{this.current&&(this.current.textContent=`${r}`)}))}}class ox{constructor(e){this.isMounted=!1,this.node=e}update(){}}function Ive({top:t,left:e,right:r,bottom:n}){return{x:{min:e,max:r},y:{min:t,max:n}}}function UQe({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function VQe(t,e){if(!e)return t;const r=e({x:t.left,y:t.top}),n=e({x:t.right,y:t.bottom});return{top:r.y,left:r.x,bottom:n.y,right:n.x}}function ZB(t){return t===void 0||t===1}function J6({scale:t,scaleX:e,scaleY:r}){return!ZB(t)||!ZB(e)||!ZB(r)}function R0(t){return J6(t)||jve(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function jve(t){return pre(t.x)||pre(t.y)}function pre(t){return t&&t!=="0%"}function cD(t,e,r){const n=t-r,i=e*n;return r+i}function mre(t,e,r,n,i){return i!==void 0&&(t=cD(t,i,n)),cD(t,r,n)+e}function eV(t,e=0,r=1,n,i){t.min=mre(t.min,e,r,n,i),t.max=mre(t.max,e,r,n,i)}function Pve(t,{x:e,y:r}){eV(t.x,e.translate,e.scale,e.originPoint),eV(t.y,r.translate,r.scale,r.originPoint)}const gre=.999999999999,yre=1.0000000000001;function qQe(t,e,r,n=!1){var s;const i=r.length;if(!i)return;e.x=e.y=1;let a,c;for(let f=0;fgre&&(e.x=1),e.ygre&&(e.y=1)}function Ff(t,e){t.min+=e,t.max+=e}function xre(t,e,r,n,i=.5){const a=Aa(t.min,t.max,i);eV(t,e,r,a,n)}function _re(t,e){return typeof t=="string"?parseFloat(t)/100*(e.max-e.min):t}function RR(t,e,r){const n=r??t;xre(t.x,_re(e.x,n.x),e.scaleX,e.scale,e.originX),xre(t.y,_re(e.y,n.y),e.scaleY,e.scale,e.originY)}function Nve(t,e){return Ive(VQe(t.getBoundingClientRect(),e))}function GQe(t,e,r){const n=Nve(t,r),{scroll:i}=e;return i&&(Ff(n.x,i.offset.x),Ff(n.y,i.offset.y)),n}const HQe={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},WQe=AS.length;function KQe(t,e,r){let n="",i=!0;for(let a=0;a{if(!e.target)return t;if(typeof t=="string")if(kn.test(t))t=parseFloat(t);else return t;const r=vre(t,e.target.x),n=vre(t,e.target.y);return`${r}% ${n}%`}},YQe={correct:(t,{treeScale:e,projectionDelta:r})=>{const n=t,i=Zh.parse(t);if(i.length>5)return n;const a=Zh.createTransformer(t),c=typeof i[0]!="number"?1:0,s=r.x.scale*e.x,f=r.y.scale*e.y;i[0+c]/=s,i[1+c]/=f;const m=Aa(s,f,.5);return typeof i[2+c]=="number"&&(i[2+c]/=m),typeof i[3+c]=="number"&&(i[3+c]/=m),a(i)}},tV={borderRadius:{..._2,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:_2,borderTopRightRadius:_2,borderBottomLeftRadius:_2,borderBottomRightRadius:_2,boxShadow:YQe};function Lve(t,{layout:e,layoutId:r}){return kS.has(t)||t.startsWith("origin")||(e||r!==void 0)&&(!!tV[t]||t==="opacity")}function E7(t,e,r){var c;const n=t.style,i=e==null?void 0:e.style,a={};if(!n)return a;for(const s in n)(Kl(n[s])||i&&Kl(i[s])||Lve(s,t)||((c=r==null?void 0:r.getValue(s))==null?void 0:c.liveStyle)!==void 0)&&(a[s]=n[s]);return a}function ZQe(t){return window.getComputedStyle(t)}class XQe extends Cve{constructor(){super(...arguments),this.type="html",this.renderInstance=Rve}readValueFromInstance(e,r){var n;if(kS.has(r))return(n=this.projection)!=null&&n.isProjecting?$6(r):gXe(e,r);{const i=ZQe(e),a=(U_e(r)?i.getPropertyValue(r):i[r])||0;return typeof a=="string"?a.trim():a}}measureInstanceViewportBox(e,{transformPagePoint:r}){return Nve(e,r)}build(e,r,n){T7(e,r,n.transformTemplate)}scrapeMotionValuesFromProps(e,r,n){return E7(e,r,n)}}const QQe={offset:"stroke-dashoffset",array:"stroke-dasharray"},JQe={offset:"strokeDashoffset",array:"strokeDasharray"};function eJe(t,e,r=1,n=0,i=!0){t.pathLength=1;const a=i?QQe:JQe;t[a.offset]=`${-n}`,t[a.array]=`${e} ${r}`}const tJe=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function Dve(t,{attrX:e,attrY:r,attrScale:n,pathLength:i,pathSpacing:a=1,pathOffset:c=0,...s},f,m,x){if(T7(t,s,m),f){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:_,style:T}=t;_.transform&&(T.transform=_.transform,delete _.transform),(T.transform||_.transformOrigin)&&(T.transformOrigin=_.transformOrigin??"50% 50%",delete _.transformOrigin),T.transform&&(T.transformBox=(x==null?void 0:x.transformBox)??"fill-box",delete _.transformBox);for(const E of tJe)_[E]!==void 0&&(T[E]=_[E],delete _[E]);e!==void 0&&(_.x=e),r!==void 0&&(_.y=r),n!==void 0&&(_.scale=n),i!==void 0&&eJe(_,i,a,c,!1)}const Mve=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),Ove=t=>typeof t=="string"&&t.toLowerCase()==="svg";function rJe(t,e,r,n){Rve(t,e,void 0,n);for(const i in e.attrs)t.setAttribute(Mve.has(i)?i:y7(i),e.attrs[i])}function Fve(t,e,r){const n=E7(t,e,r);for(const i in t)if(Kl(t[i])||Kl(e[i])){const a=AS.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;n[a]=t[i]}return n}class nJe extends Cve{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=el}getBaseTargetFromProps(e,r){return e[r]}readValueFromInstance(e,r){if(kS.has(r)){const n=yve(r);return n&&n.default||0}return r=Mve.has(r)?r:y7(r),e.getAttribute(r)}scrapeMotionValuesFromProps(e,r,n){return Fve(e,r,n)}build(e,r,n){Dve(e,r,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(e,r,n,i){rJe(e,r,n,i)}mount(e){this.isSVGTag=Ove(e.tagName),super.mount(e)}}const iJe=S7.length;function Bve(t){if(!t)return;if(!t.isControllingVariants){const r=t.parent?Bve(t.parent)||{}:{};return t.props.initial!==void 0&&(r.initial=t.props.initial),r}const e={};for(let r=0;rPromise.all(e.map(({animation:r,options:n})=>iQe(t,r,n)))}function lJe(t){let e=oJe(t),r=bre(),n=!0,i=!1;const a=m=>(x,_)=>{var E;const T=c_(t,_,m==="exit"?(E=t.presenceContext)==null?void 0:E.custom:void 0);if(T){const{transition:C,transitionEnd:N,...L}=T;x={...x,...L,...N}}return x};function c(m){e=m(t)}function s(m){const{props:x}=t,_=Bve(t.parent)||{},T=[],E=new Set;let C={},N=1/0;for(let M=0;MN&&G,ie=!1;const ue=Array.isArray(V)?V:[V];let be=ue.reduce(a(D),{});W===!1&&(be={});const{prevResolvedValues:Te={}}=B,we={...Te,...be},Oe=ge=>{se=!0,E.has(ge)&&(ie=!0,E.delete(ge)),B.needsAnimating[ge]=!0;const je=t.getValue(ge);je&&(je.liveStyle=!1)};for(const ge in we){const je=be[ge],_e=Te[ge];if(C.hasOwnProperty(ge))continue;let xe=!1;W6(je)&&W6(_e)?xe=!zve(je,_e):xe=je!==_e,xe?je!=null?Oe(ge):E.add(ge):je!==void 0&&E.has(ge)?Oe(ge):B.protectedKeys[ge]=!0}B.prevProp=V,B.prevResolvedValues=be,B.isActive&&(C={...C,...be}),(n||i)&&t.blockInitialAnimation&&(se=!1);const Ae=Z&&Q;se&&(!Ae||ie)&&T.push(...ue.map(ge=>{const je={type:D};if(typeof ge=="string"&&(n||i)&&!Ae&&t.manuallyAnimateOnMount&&t.parent){const{parent:_e}=t,xe=c_(_e,ge);if(_e.enteringChildren&&xe){const{delayChildren:Pe}=xe.transition||{};je.delay=lve(_e.enteringChildren,t,Pe)}}return{animation:ge,options:je}}))}if(E.size){const M={};if(typeof x.initial!="boolean"){const D=c_(t,Array.isArray(x.initial)?x.initial[0]:x.initial);D&&D.transition&&(M.transition=D.transition)}E.forEach(D=>{const B=t.getBaseTarget(D),V=t.getValue(D);V&&(V.liveStyle=!0),M[D]=B??null}),T.push({animation:M})}let L=!!T.length;return n&&(x.initial===!1||x.initial===x.animate)&&!t.manuallyAnimateOnMount&&(L=!1),n=!1,i=!1,L?e(T):Promise.resolve()}function f(m,x){var T;if(r[m].isActive===x)return Promise.resolve();(T=t.variantChildren)==null||T.forEach(E=>{var C;return(C=E.animationState)==null?void 0:C.setActive(m,x)}),r[m].isActive=x;const _=s(m);for(const E in r)r[E].protectedKeys={};return _}return{animateChanges:s,setActive:f,setAnimateFunction:c,getState:()=>r,reset:()=>{r=bre(),i=!0}}}function cJe(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!zve(e,t):!1}function S0(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function bre(){return{animate:S0(!0),whileInView:S0(),whileHover:S0(),whileTap:S0(),whileDrag:S0(),whileFocus:S0(),exit:S0()}}function rV(t,e){t.min=e.min,t.max=e.max}function Ah(t,e){rV(t.x,e.x),rV(t.y,e.y)}function wre(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const $ve=1e-4,uJe=1-$ve,dJe=1+$ve,Uve=.01,hJe=0-Uve,fJe=0+Uve;function qc(t){return t.max-t.min}function pJe(t,e,r){return Math.abs(t-e)<=r}function Sre(t,e,r,n=.5){t.origin=n,t.originPoint=Aa(e.min,e.max,t.origin),t.scale=qc(r)/qc(e),t.translate=Aa(r.min,r.max,t.origin)-t.originPoint,(t.scale>=uJe&&t.scale<=dJe||isNaN(t.scale))&&(t.scale=1),(t.translate>=hJe&&t.translate<=fJe||isNaN(t.translate))&&(t.translate=0)}function gA(t,e,r,n){Sre(t.x,e.x,r.x,n?n.originX:void 0),Sre(t.y,e.y,r.y,n?n.originY:void 0)}function Tre(t,e,r,n=0){const i=n?Aa(r.min,r.max,n):r.min;t.min=i+e.min,t.max=t.min+qc(e)}function mJe(t,e,r,n){Tre(t.x,e.x,r.x,n==null?void 0:n.x),Tre(t.y,e.y,r.y,n==null?void 0:n.y)}function Ere(t,e,r,n=0){const i=n?Aa(r.min,r.max,n):r.min;t.min=e.min-i,t.max=t.min+qc(e)}function uD(t,e,r,n){Ere(t.x,e.x,r.x,n==null?void 0:n.x),Ere(t.y,e.y,r.y,n==null?void 0:n.y)}function Are(t,e,r,n,i){return t-=e,t=cD(t,1/r,n),i!==void 0&&(t=cD(t,1/i,n)),t}function gJe(t,e=0,r=1,n=.5,i,a=t,c=t){if(Qf.test(e)&&(e=parseFloat(e),e=Aa(c.min,c.max,e/100)-c.min),typeof e!="number")return;let s=Aa(a.min,a.max,n);t===a&&(s-=e),t.min=Are(t.min,e,r,s,i),t.max=Are(t.max,e,r,s,i)}function kre(t,e,[r,n,i],a,c){gJe(t,e[r],e[n],e[i],e.scale,a,c)}const yJe=["x","scaleX","originX"],xJe=["y","scaleY","originY"];function Cre(t,e,r,n){kre(t.x,e,yJe,r?r.x:void 0,n?n.x:void 0),kre(t.y,e,xJe,r?r.y:void 0,n?n.y:void 0)}function Ire(t){return t.translate===0&&t.scale===1}function Vve(t){return Ire(t.x)&&Ire(t.y)}function jre(t,e){return t.min===e.min&&t.max===e.max}function _Je(t,e){return jre(t.x,e.x)&&jre(t.y,e.y)}function Pre(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function qve(t,e){return Pre(t.x,e.x)&&Pre(t.y,e.y)}function Nre(t){return qc(t.x)/qc(t.y)}function Rre(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function Rf(t){return[t("x"),t("y")]}function vJe(t,e,r){let n="";const i=t.x.translate/e.x,a=t.y.translate/e.y,c=(r==null?void 0:r.z)||0;if((i||a||c)&&(n=`translate3d(${i}px, ${a}px, ${c}px) `),(e.x!==1||e.y!==1)&&(n+=`scale(${1/e.x}, ${1/e.y}) `),r){const{transformPerspective:m,rotate:x,rotateX:_,rotateY:T,skewX:E,skewY:C}=r;m&&(n=`perspective(${m}px) ${n}`),x&&(n+=`rotate(${x}deg) `),_&&(n+=`rotateX(${_}deg) `),T&&(n+=`rotateY(${T}deg) `),E&&(n+=`skewX(${E}deg) `),C&&(n+=`skewY(${C}deg) `)}const s=t.x.scale*e.x,f=t.y.scale*e.y;return(s!==1||f!==1)&&(n+=`scale(${s}, ${f})`),n||"none"}const Gve=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],bJe=Gve.length,Lre=t=>typeof t=="string"?parseFloat(t):t,Dre=t=>typeof t=="number"||kn.test(t);function wJe(t,e,r,n,i,a){i?(t.opacity=Aa(0,r.opacity??1,SJe(n)),t.opacityExit=Aa(e.opacity??1,0,TJe(n))):a&&(t.opacity=Aa(e.opacity??1,r.opacity??1,n));for(let c=0;cne?1:r(mk(t,e,n))}function EJe(t,e,r){const n=Kl(t)?t:T1(t);return n.start(m7("",n,e,r)),n.animation}function xk(t,e,r,n={passive:!0}){return t.addEventListener(e,r,n),()=>t.removeEventListener(e,r)}const AJe=(t,e)=>t.depth-e.depth;class kJe{constructor(){this.children=[],this.isDirty=!1}add(e){n7(this.children,e),this.isDirty=!0}remove(e){nD(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(AJe),this.isDirty=!1,this.children.forEach(e)}}function CJe(t,e){const r=Vc.now(),n=({timestamp:i})=>{const a=i-r;a>=e&&(Wy(n),t(a-e))};return ra.setup(n,!0),()=>Wy(n)}function LR(t){return Kl(t)?t.get():t}class IJe{constructor(){this.members=[]}add(e){n7(this.members,e);for(let r=this.members.length-1;r>=0;r--){const n=this.members[r];if(n===e||n===this.lead||n===this.prevLead)continue;const i=n.instance;(!i||i.isConnected===!1)&&!n.snapshot&&(nD(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(nD(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const r=this.members[this.members.length-1];r&&this.promote(r)}}relegate(e){var r;for(let n=this.members.indexOf(e)-1;n>=0;n--){const i=this.members[n];if(i.isPresent!==!1&&((r=i.instance)==null?void 0:r.isConnected)!==!1)return this.promote(i),!0}return!1}promote(e,r){var i;const n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();const{layoutDependency:a}=n.options,{layoutDependency:c}=e.options;(a===void 0||a!==c)&&(e.resumeFrom=n,r&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),(i=e.root)!=null&&i.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{var r,n,i,a,c;(n=(r=e.options).onExitComplete)==null||n.call(r),(c=(i=e.resumingFrom)==null?void 0:(a=i.options).onExitComplete)==null||c.call(a)})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){var e;(e=this.lead)!=null&&e.snapshot&&(this.lead.snapshot=void 0)}}const DR={hasAnimatedSinceResize:!0,hasEverUpdated:!1},XB=["","X","Y","Z"],jJe=1e3;let PJe=0;function QB(t,e,r,n){const{latestValues:i}=e;i[t]&&(r[t]=i[t],e.setStaticValue(t,0),n&&(n[t]=0))}function Wve(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const r=fve(e);if(window.MotionHasOptimisedAnimation(r,"transform")){const{layout:i,layoutId:a}=t.options;window.MotionCancelOptimisedAnimation(r,"transform",ra,!(i||a))}const{parent:n}=t;n&&!n.hasCheckedOptimisedAppear&&Wve(n)}function Kve({attachResizeListener:t,defaultParent:e,measureScroll:r,checkIsScrollRoot:n,resetTransform:i}){return class{constructor(c={},s=e==null?void 0:e()){this.id=PJe++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(LJe),this.nodes.forEach(zJe),this.nodes.forEach($Je),this.nodes.forEach(DJe)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=c,this.root=s?s.root||s:this,this.path=s?[...s.path,s]:[],this.parent=s,this.depth=s?s.depth+1:0;for(let f=0;fthis.root.updateBlockedByResize=!1;ra.read(()=>{_=window.innerWidth}),t(c,()=>{const E=window.innerWidth;E!==_&&(_=E,this.root.updateBlockedByResize=!0,x&&x(),x=CJe(T,250),DR.hasAnimatedSinceResize&&(DR.hasAnimatedSinceResize=!1,this.nodes.forEach(Bre)))})}s&&this.root.registerSharedNode(s,this),this.options.animate!==!1&&m&&(s||f)&&this.addEventListener("didUpdate",({delta:x,hasLayoutChanged:_,hasRelativeLayoutChanged:T,layout:E})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const C=this.options.transition||m.getDefaultTransition()||HJe,{onLayoutAnimationStart:N,onLayoutAnimationComplete:L}=m.getProps(),M=!this.targetLayout||!qve(this.targetLayout,E),D=!_&&T;if(this.options.layoutRoot||this.resumeFrom||D||_&&(M||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const B={...p7(C,"layout"),onPlay:N,onComplete:L};(m.shouldReduceMotion||this.options.layoutRoot)&&(B.delay=0,B.type=!1),this.startAnimation(B),this.setAnimationOrigin(x,D)}else _||Bre(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=E})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const c=this.getStack();c&&c.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Wy(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(UJe),this.animationId++)}getTransformTemplate(){const{visualElement:c}=this.options;return c&&c.getProps().transformTemplate}willUpdate(c=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Wve(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let x=0;x{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!qc(this.snapshot.measuredBox.x)&&!qc(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let f=0;f{const G=V/1e3;zre(_.x,c.x,G),zre(_.y,c.y,G),this.setTargetDelta(_),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(uD(T,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),qJe(this.relativeTarget,this.relativeTargetOrigin,T,G),B&&_Je(this.relativeTarget,B)&&(this.isProjectionDirty=!1),B||(B=el()),Ah(B,this.relativeTarget)),N&&(this.animationValues=x,wJe(x,m,this.latestValues,G,D,M)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=G},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(c){var s,f,m;this.notifyListeners("animationStart"),(s=this.currentAnimation)==null||s.stop(),(m=(f=this.resumingFrom)==null?void 0:f.currentAnimation)==null||m.stop(),this.pendingAnimation&&(Wy(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ra.update(()=>{DR.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=T1(0)),this.motionValue.jump(0,!1),this.currentAnimation=EJe(this.motionValue,[0,1e3],{...c,velocity:0,isSync:!0,onUpdate:x=>{this.mixTargetDelta(x),c.onUpdate&&c.onUpdate(x)},onStop:()=>{},onComplete:()=>{c.onComplete&&c.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const c=this.getStack();c&&c.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(jJe),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const c=this.getLead();let{targetWithTransforms:s,target:f,layout:m,latestValues:x}=c;if(!(!s||!f||!m)){if(this!==c&&this.layout&&m&&Yve(this.options.animationType,this.layout.layoutBox,m.layoutBox)){f=this.target||el();const _=qc(this.layout.layoutBox.x);f.x.min=c.target.x.min,f.x.max=f.x.min+_;const T=qc(this.layout.layoutBox.y);f.y.min=c.target.y.min,f.y.max=f.y.min+T}Ah(s,f),RR(s,x),gA(this.projectionDeltaWithTransform,this.layoutCorrected,s,x)}}registerSharedNode(c,s){this.sharedNodes.has(c)||this.sharedNodes.set(c,new IJe),this.sharedNodes.get(c).add(s);const m=s.options.initialPromotionConfig;s.promote({transition:m?m.transition:void 0,preserveFollowOpacity:m&&m.shouldPreserveFollowOpacity?m.shouldPreserveFollowOpacity(s):void 0})}isLead(){const c=this.getStack();return c?c.lead===this:!0}getLead(){var s;const{layoutId:c}=this.options;return c?((s=this.getStack())==null?void 0:s.lead)||this:this}getPrevLead(){var s;const{layoutId:c}=this.options;return c?(s=this.getStack())==null?void 0:s.prevLead:void 0}getStack(){const{layoutId:c}=this.options;if(c)return this.root.sharedNodes.get(c)}promote({needsReset:c,transition:s,preserveFollowOpacity:f}={}){const m=this.getStack();m&&m.promote(this,f),c&&(this.projectionDelta=void 0,this.needsReset=!0),s&&this.setOptions({transition:s})}relegate(){const c=this.getStack();return c?c.relegate(this):!1}resetSkewAndRotation(){const{visualElement:c}=this.options;if(!c)return;let s=!1;const{latestValues:f}=c;if((f.z||f.rotate||f.rotateX||f.rotateY||f.rotateZ||f.skewX||f.skewY)&&(s=!0),!s)return;const m={};f.z&&QB("z",c,m,this.animationValues);for(let x=0;x{var s;return(s=c.currentAnimation)==null?void 0:s.stop()}),this.root.nodes.forEach(Ore),this.root.sharedNodes.clear()}}}function NJe(t){t.updateLayout()}function RJe(t){var r;const e=((r=t.resumeFrom)==null?void 0:r.snapshot)||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:i}=t.layout,{animationType:a}=t.options,c=e.source!==t.layout.source;if(a==="size")Rf(_=>{const T=c?e.measuredBox[_]:e.layoutBox[_],E=qc(T);T.min=n[_].min,T.max=T.min+E});else if(a==="x"||a==="y"){const _=a==="x"?"y":"x";rV(c?e.measuredBox[_]:e.layoutBox[_],n[_])}else Yve(a,e.layoutBox,n)&&Rf(_=>{const T=c?e.measuredBox[_]:e.layoutBox[_],E=qc(n[_]);T.max=T.min+E,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[_].max=t.relativeTarget[_].min+E)});const s=fw();gA(s,n,e.layoutBox);const f=fw();c?gA(f,t.applyTransform(i,!0),e.measuredBox):gA(f,n,e.layoutBox);const m=!Vve(s);let x=!1;if(!t.resumeFrom){const _=t.getClosestProjectingParent();if(_&&!_.resumeFrom){const{snapshot:T,layout:E}=_;if(T&&E){const C=t.options.layoutAnchor||void 0,N=el();uD(N,e.layoutBox,T.layoutBox,C);const L=el();uD(L,n,E.layoutBox,C),qve(N,L)||(x=!0),_.options.layoutRoot&&(t.relativeTarget=L,t.relativeTargetOrigin=N,t.relativeParent=_)}}}t.notifyListeners("didUpdate",{layout:n,snapshot:e,delta:f,layoutDelta:s,hasLayoutChanged:m,hasRelativeLayoutChanged:x})}else if(t.isLead()){const{onExitComplete:n}=t.options;n&&n()}t.options.transition=void 0}function LJe(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function DJe(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function MJe(t){t.clearSnapshot()}function Ore(t){t.clearMeasurements()}function OJe(t){t.isLayoutDirty=!0,t.updateLayout()}function Fre(t){t.isLayoutDirty=!1}function FJe(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function BJe(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function Bre(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function zJe(t){t.resolveTargetDelta()}function $Je(t){t.calcProjection()}function UJe(t){t.resetSkewAndRotation()}function VJe(t){t.removeLeadSnapshot()}function zre(t,e,r){t.translate=Aa(e.translate,0,r),t.scale=Aa(e.scale,1,r),t.origin=e.origin,t.originPoint=e.originPoint}function $re(t,e,r,n){t.min=Aa(e.min,r.min,n),t.max=Aa(e.max,r.max,n)}function qJe(t,e,r,n){$re(t.x,e.x,r.x,n),$re(t.y,e.y,r.y,n)}function GJe(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const HJe={duration:.45,ease:[.4,0,.1,1]},Ure=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),Vre=Ure("applewebkit/")&&!Ure("chrome/")?Math.round:Gd;function qre(t){t.min=Vre(t.min),t.max=Vre(t.max)}function WJe(t){qre(t.x),qre(t.y)}function Yve(t,e,r){return t==="position"||t==="preserve-aspect"&&!pJe(Nre(e),Nre(r),.2)}function KJe(t){var e;return t!==t.root&&((e=t.scroll)==null?void 0:e.wasRoot)}const YJe=Kve({attachResizeListener:(t,e)=>xk(t,"resize",e),measureScroll:()=>{var t,e;return{x:document.documentElement.scrollLeft||((t=document.body)==null?void 0:t.scrollLeft)||0,y:document.documentElement.scrollTop||((e=document.body)==null?void 0:e.scrollTop)||0}},checkIsScrollRoot:()=>!0}),JB={current:void 0},Zve=Kve({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!JB.current){const t=new YJe({});t.mount(window),t.setOptions({layoutScroll:!0}),JB.current=t}return JB.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),A7=P.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function Gre(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function ZJe(...t){return e=>{let r=!1;const n=t.map(i=>{const a=Gre(i,e);return!r&&typeof a=="function"&&(r=!0),a});if(r)return()=>{for(let i=0;i{const{width:E,height:C,top:N,left:L,right:M,bottom:D}=f.current;if(e||a===!1||!s.current||!E||!C)return;const B=r==="left"?`left: ${L}`:`right: ${M}`,V=n==="bottom"?`bottom: ${D}`:`top: ${N}`;s.current.dataset.motionPopId=c;const G=document.createElement("style");m&&(G.nonce=m);const W=i??document.head;return W.appendChild(G),G.sheet&&G.sheet.insertRule(` [data-motion-pop-id="${c}"] { position: absolute !important; width: ${E}px !important; height: ${C}px !important; ${B}px !important; ${V}px !important; } `),()=>{var Z;(Z=s.current)==null||Z.removeAttribute("data-motion-pop-id"),W.contains(G)&&W.removeChild(G)}},[e]),o.jsx(QJe,{isPresent:e,childRef:s,sizeRef:f,pop:a,children:a===!1?t:P.cloneElement(t,{ref:_})})}const eet=({children:t,initial:e,isPresent:r,onExitComplete:n,custom:i,presenceAffectsLayout:a,mode:c,anchorX:s,anchorY:f,root:m})=>{const x=r7(tet),_=P.useId();let T=!0,E=P.useMemo(()=>(T=!1,{id:_,initial:e,isPresent:r,custom:i,onExitComplete:C=>{x.set(C,!0);for(const N of x.values())if(!N)return;n&&n()},register:C=>(x.set(C,!1),()=>x.delete(C))}),[r,x,n]);return a&&T&&(E={...E}),P.useMemo(()=>{x.forEach((C,N)=>x.set(N,!1))},[r]),P.useEffect(()=>{!r&&!x.size&&n&&n()},[r]),t=o.jsx(JJe,{pop:c==="popLayout",isPresent:r,anchorX:s,anchorY:f,root:m,children:t}),o.jsx(QO.Provider,{value:E,children:t})};function tet(){return new Map}function Xve(t=!0){const e=P.useContext(QO);if(e===null)return[!0,null];const{isPresent:r,onExitComplete:n,register:i}=e,a=P.useId();P.useEffect(()=>{if(t)return i(a)},[t]);const c=P.useCallback(()=>t&&n&&n(a),[a,n,t]);return!r&&n?[!1,c]:[!0]}const yN=t=>t.key||"";function Hre(t){const e=[];return P.Children.forEach(t,r=>{P.isValidElement(r)&&e.push(r)}),e}const Qve=({children:t,custom:e,initial:r=!0,onExitComplete:n,presenceAffectsLayout:i=!0,mode:a="sync",propagate:c=!1,anchorX:s="left",anchorY:f="top",root:m})=>{const[x,_]=Xve(c),T=P.useMemo(()=>Hre(t),[t]),E=c&&!x?[]:T.map(yN),C=P.useRef(!0),N=P.useRef(T),L=r7(()=>new Map),M=P.useRef(new Set),[D,B]=P.useState(T),[V,G]=P.useState(T);T_e(()=>{C.current=!1,N.current=T;for(let Q=0;Q{const se=yN(Q),ie=c&&!x?!1:T===V||E.includes(se),ue=()=>{if(M.current.has(se))return;if(L.has(se))M.current.add(se),L.set(se,!0);else return;let be=!0;L.forEach(Te=>{Te||(be=!1)}),be&&(Z==null||Z(),G(N.current),c&&(_==null||_()),n&&n())};return o.jsx(eet,{isPresent:ie,initial:!C.current||r?void 0:!1,custom:e,presenceAffectsLayout:i,mode:a,root:m,onExitComplete:ie?void 0:ue,anchorX:s,anchorY:f,children:Q},se)})})},Jve=P.createContext({strict:!1}),Wre={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Kre=!1;function ret(){if(Kre)return;const t={};for(const e in Wre)t[e]={isEnabled:r=>Wre[e].some(n=>!!r[n])};kve(t),Kre=!0}function ebe(){return ret(),zQe()}function net(t){const e=ebe();for(const r in t)e[r]={...e[r],...t[r]};kve(e)}const iet=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function dD(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||iet.has(t)}let tbe=t=>!dD(t);function set(t){typeof t=="function"&&(tbe=e=>e.startsWith("on")?!dD(e):t(e))}try{set(require("@emotion/is-prop-valid").default)}catch{}function aet(t,e,r){const n={};for(const i in t)i==="values"&&typeof t.values=="object"||Kl(t[i])||(tbe(i)||r===!0&&dD(i)||!e&&!dD(i)||t.draggable&&i.startsWith("onDrag"))&&(n[i]=t[i]);return n}const nF=P.createContext({});function oet(t,e){if(rF(t)){const{initial:r,animate:n}=t;return{initial:r===!1||yk(r)?r:void 0,animate:yk(n)?n:void 0}}return t.inherit!==!1?e:{}}function cet(t){const{initial:e,animate:r}=oet(t,P.useContext(nF));return P.useMemo(()=>({initial:e,animate:r}),[Yre(e),Yre(r)])}function Yre(t){return Array.isArray(t)?t.join(" "):t}const k7=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function rbe(t,e,r){for(const n in e)!Kl(e[n])&&!Lve(n,r)&&(t[n]=e[n])}function uet({transformTemplate:t},e){return P.useMemo(()=>{const r=k7();return T7(r,e,t),Object.assign({},r.vars,r.style)},[e])}function det(t,e){const r=t.style||{},n={};return rbe(n,r,t),Object.assign(n,uet(t,e)),n}function het(t,e){const r={},n=det(t,e);return t.drag&&t.dragListener!==!1&&(r.draggable=!1,n.userSelect=n.WebkitUserSelect=n.WebkitTouchCallout="none",n.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(r.tabIndex=0),r.style=n,r}const nbe=()=>({...k7(),attrs:{}});function fet(t,e,r,n){const i=P.useMemo(()=>{const a=nbe();return Dve(a,e,Ove(n),t.transformTemplate,t.style),{...a.attrs,style:{...a.style}}},[e]);if(t.style){const a={};rbe(a,t.style,t),i.style={...a,...i.style}}return i}const pet=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function C7(t){return typeof t!="string"||t.includes("-")?!1:!!(pet.indexOf(t)>-1||/[A-Z]/u.test(t))}function met(t,e,r,{latestValues:n},i,a=!1,c){const f=(c??C7(t)?fet:het)(e,n,i,t),m=aet(e,typeof t=="string",a),x=t!==P.Fragment?{...m,...f,ref:r}:{},{children:_}=e,T=P.useMemo(()=>Kl(_)?_.get():_,[_]);return P.createElement(t,{...x,children:T})}function get({scrapeMotionValuesFromProps:t,createRenderState:e},r,n,i){return{latestValues:yet(r,n,i,t),renderState:e()}}function yet(t,e,r,n){const i={},a=n(t,{});for(const T in a)i[T]=LR(a[T]);let{initial:c,animate:s}=t;const f=rF(t),m=Eve(t);e&&m&&!f&&t.inherit!==!1&&(c===void 0&&(c=e.initial),s===void 0&&(s=e.animate));let x=r?r.initial===!1:!1;x=x||c===!1;const _=x?s:c;if(_&&typeof _!="boolean"&&!tF(_)){const T=Array.isArray(_)?_:[_];for(let E=0;E(e,r)=>{const n=P.useContext(nF),i=P.useContext(QO),a=()=>get(t,e,n,i);return r?a():r7(a)},xet=ibe({scrapeMotionValuesFromProps:E7,createRenderState:k7}),_et=ibe({scrapeMotionValuesFromProps:Fve,createRenderState:nbe}),vet=Symbol.for("motionComponentSymbol");function bet(t,e,r){const n=P.useRef(r);P.useInsertionEffect(()=>{n.current=r});const i=P.useRef(null);return P.useCallback(a=>{var s;a&&((s=t.onMount)==null||s.call(t,a));const c=n.current;if(typeof c=="function")if(a){const f=c(a);typeof f=="function"&&(i.current=f)}else i.current?(i.current(),i.current=null):c(a);else c&&(c.current=a);e&&(a?e.mount(a):e.unmount())},[e])}const sbe=P.createContext({});function Zb(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function wet(t,e,r,n,i,a){var B,V;const{visualElement:c}=P.useContext(nF),s=P.useContext(Jve),f=P.useContext(QO),m=P.useContext(A7),x=m.reducedMotion,_=m.skipAnimations,T=P.useRef(null),E=P.useRef(!1);n=n||s.renderer,!T.current&&n&&(T.current=n(t,{visualState:e,parent:c,props:r,presenceContext:f,blockInitialAnimation:f?f.initial===!1:!1,reducedMotionConfig:x,skipAnimations:_,isSVG:a}),E.current&&T.current&&(T.current.manuallyAnimateOnMount=!0));const C=T.current,N=P.useContext(sbe);C&&!C.projection&&i&&(C.type==="html"||C.type==="svg")&&Tet(T.current,r,i,N);const L=P.useRef(!1);P.useInsertionEffect(()=>{C&&L.current&&C.update(r,f)});const M=r[hve],D=P.useRef(!!M&&typeof window<"u"&&!((B=window.MotionHandoffIsComplete)!=null&&B.call(window,M))&&((V=window.MotionHasOptimisedAnimation)==null?void 0:V.call(window,M)));return T_e(()=>{E.current=!0,C&&(L.current=!0,window.MotionIsMounted=!0,C.updateFeatures(),C.scheduleRenderMicrotask(),D.current&&C.animationState&&C.animationState.animateChanges())}),P.useEffect(()=>{C&&(!D.current&&C.animationState&&C.animationState.animateChanges(),D.current&&(queueMicrotask(()=>{var G;(G=window.MotionHandoffMarkAsComplete)==null||G.call(window,M)}),D.current=!1),C.enteringChildren=void 0)}),C}function Tet(t,e,r,n){const{layoutId:i,layout:a,drag:c,dragConstraints:s,layoutScroll:f,layoutRoot:m,layoutAnchor:x,layoutCrossfade:_}=e;t.projection=new r(t.latestValues,e["data-framer-portal-id"]?void 0:abe(t.parent)),t.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!c||s&&Zb(s),visualElement:t,animationType:typeof a=="string"?a:"both",initialPromotionConfig:n,crossfade:_,layoutScroll:f,layoutRoot:m,layoutAnchor:x})}function abe(t){if(t)return t.options.allowProjection!==!1?t.projection:abe(t.parent)}function ez(t,{forwardMotionProps:e=!1,type:r}={},n,i){n&&net(n);const a=r?r==="svg":C7(t),c=a?_et:xet;function s(m,x){let _;const T={...P.useContext(A7),...m,layoutId:Eet(m)},{isStatic:E}=T,C=cet(m),N=c(m,E);if(!E&&typeof window<"u"){Aet();const L=ket(T);_=L.MeasureLayout,C.visualElement=wet(t,N,T,i,L.ProjectionNode,a)}return o.jsxs(nF.Provider,{value:C,children:[_&&C.visualElement?o.jsx(_,{visualElement:C.visualElement,...T}):null,met(t,m,bet(N,C.visualElement,x),N,E,e,a)]})}s.displayName=`motion.${typeof t=="string"?t:`create(${t.displayName??t.name??""})`}`;const f=P.forwardRef(s);return f[vet]=t,f}function Eet({layoutId:t}){const e=P.useContext(t7).id;return e&&t!==void 0?e+"-"+t:t}function Aet(t,e){P.useContext(Jve).strict}function ket(t){const e=ebe(),{drag:r,layout:n}=e;if(!r&&!n)return{};const i={...r,...n};return{MeasureLayout:r!=null&&r.isEnabled(t)||n!=null&&n.isEnabled(t)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function Cet(t,e){if(typeof Proxy>"u")return ez;const r=new Map,n=(a,c)=>ez(a,c,t,e),i=(a,c)=>n(a,c);return new Proxy(i,{get:(a,c)=>c==="create"?n:(r.has(c)||r.set(c,ez(c,void 0,t,e)),r.get(c))})}const Iet=(t,e)=>e.isSVG??C7(t)?new nJe(e):new XQe(e,{allowProjection:t!==P.Fragment});class jet extends ox{constructor(e){super(e),e.animationState||(e.animationState=lJe(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();tF(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:r}=this.node.prevProps||{};e!==r&&this.updateAnimationControlsSubscription()}unmount(){var e;this.node.animationState.reset(),(e=this.unmountControls)==null||e.call(this)}}let Pet=0;class Net extends ox{constructor(){super(...arguments),this.id=Pet++,this.isExitComplete=!1}update(){var a;if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:r}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===n)return;if(e&&n===!1){if(this.isExitComplete){const{initial:c,custom:s}=this.node.getProps();if(typeof c=="string"){const f=c_(this.node,c,s);if(f){const{transition:m,transitionEnd:x,..._}=f;for(const T in _)(a=this.node.getValue(T))==null||a.jump(_[T])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const i=this.node.animationState.setActive("exit",!e);r&&!e&&i.then(()=>{this.isExitComplete=!0,r(this.id)})}mount(){const{register:e,onExitComplete:r}=this.node.presenceContext||{};r&&r(this.id),e&&(this.unmount=e(this.id))}unmount(){}}const Ret={animation:{Feature:jet},exit:{Feature:Net}};function YC(t){return{point:{x:t.pageX,y:t.pageY}}}const Let=t=>e=>v7(e)&&t(e,YC(e));function yA(t,e,r,n){return xk(t,e,Let(r),n)}const obe=({current:t})=>t?t.ownerDocument.defaultView:null,Zre=(t,e)=>Math.abs(t-e);function Det(t,e){const r=Zre(t.x,e.x),n=Zre(t.y,e.y);return Math.sqrt(r**2+n**2)}const Xre=new Set(["auto","scroll"]);class lbe{constructor(e,r,{transformPagePoint:n,contextWindow:i=window,dragSnapToOrigin:a=!1,distanceThreshold:c=3,element:s}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=E=>{this.handleScroll(E.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=xN(this.lastRawMoveEventInfo,this.transformPagePoint));const E=tz(this.lastMoveEventInfo,this.history),C=this.startEvent!==null,N=Det(E.offset,{x:0,y:0})>=this.distanceThreshold;if(!C&&!N)return;const{point:L}=E,{timestamp:M}=Fl;this.history.push({...L,timestamp:M});const{onStart:D,onMove:B}=this.handlers;C||(D&&D(this.lastMoveEvent,E),this.startEvent=this.lastMoveEvent),B&&B(this.lastMoveEvent,E)},this.handlePointerMove=(E,C)=>{this.lastMoveEvent=E,this.lastRawMoveEventInfo=C,this.lastMoveEventInfo=xN(C,this.transformPagePoint),ra.update(this.updatePoint,!0)},this.handlePointerUp=(E,C)=>{this.end();const{onEnd:N,onSessionEnd:L,resumeAnimation:M}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&M&&M(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const D=tz(E.type==="pointercancel"?this.lastMoveEventInfo:xN(C,this.transformPagePoint),this.history);this.startEvent&&N&&N(E,D),L&&L(E,D)},!v7(e))return;this.dragSnapToOrigin=a,this.handlers=r,this.transformPagePoint=n,this.distanceThreshold=c,this.contextWindow=i||window;const f=YC(e),m=xN(f,this.transformPagePoint),{point:x}=m,{timestamp:_}=Fl;this.history=[{...x,timestamp:_}];const{onSessionStart:T}=r;T&&T(e,tz(m,this.history)),this.removeListeners=HC(yA(this.contextWindow,"pointermove",this.handlePointerMove),yA(this.contextWindow,"pointerup",this.handlePointerUp),yA(this.contextWindow,"pointercancel",this.handlePointerUp)),s&&this.startScrollTracking(s)}startScrollTracking(e){let r=e.parentElement;for(;r;){const n=getComputedStyle(r);(Xre.has(n.overflowX)||Xre.has(n.overflowY))&&this.scrollPositions.set(r,{x:r.scrollLeft,y:r.scrollTop}),r=r.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(e){const r=this.scrollPositions.get(e);if(!r)return;const n=e===window,i=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},a={x:i.x-r.x,y:i.y-r.y};a.x===0&&a.y===0||(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=a.x,this.lastMoveEventInfo.point.y+=a.y):this.history.length>0&&(this.history[0].x-=a.x,this.history[0].y-=a.y),this.scrollPositions.set(e,i),ra.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Wy(this.updatePoint)}}function xN(t,e){return e?{point:e(t.point)}:t}function Qre(t,e){return{x:t.x-e.x,y:t.y-e.y}}function tz({point:t},e){return{point:t,delta:Qre(t,cbe(e)),offset:Qre(t,Met(e)),velocity:Oet(e,.1)}}function Met(t){return t[0]}function cbe(t){return t[t.length-1]}function Oet(t,e){if(t.length<2)return{x:0,y:0};let r=t.length-1,n=null;const i=cbe(t);for(;r>=0&&(n=t[r],!(i.timestamp-n.timestamp>Au(e)));)r--;if(!n)return{x:0,y:0};n===t[0]&&t.length>2&&i.timestamp-n.timestamp>Au(e)*2&&(n=t[1]);const a=zd(i.timestamp-n.timestamp);if(a===0)return{x:0,y:0};const c={x:(i.x-n.x)/a,y:(i.y-n.y)/a};return c.x===1/0&&(c.x=0),c.y===1/0&&(c.y=0),c}function Fet(t,{min:e,max:r},n){return e!==void 0&&tr&&(t=n?Aa(r,t,n.max):Math.min(t,r)),t}function Jre(t,e,r){return{min:e!==void 0?t.min+e:void 0,max:r!==void 0?t.max+r-(t.max-t.min):void 0}}function Bet(t,{top:e,left:r,bottom:n,right:i}){return{x:Jre(t.x,r,i),y:Jre(t.y,e,n)}}function ene(t,e){let r=e.min-t.min,n=e.max-t.max;return e.max-e.minn?r=mk(e.min,e.max-n,t.min):n>i&&(r=mk(t.min,t.max-i,e.min)),ap(0,1,r)}function Uet(t,e){const r={};return e.min!==void 0&&(r.min=e.min-t.min),e.max!==void 0&&(r.max=e.max-t.min),r}const nV=.35;function Vet(t=nV){return t===!1?t=0:t===!0&&(t=nV),{x:tne(t,"left","right"),y:tne(t,"top","bottom")}}function tne(t,e,r){return{min:rne(t,e),max:rne(t,r)}}function rne(t,e){return typeof t=="number"?t:t[e]||0}const qet=new WeakMap;class Get{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=el(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:r=!1,distanceThreshold:n}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const a=_=>{r&&this.snapToCursor(YC(_).point),this.stopAnimation()},c=(_,T)=>{const{drag:E,dragPropagation:C,onDragStart:N}=this.getProps();if(E&&!C&&(this.openDragLock&&this.openDragLock(),this.openDragLock=gQe(E),!this.openDragLock))return;this.latestPointerEvent=_,this.latestPanInfo=T,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Rf(M=>{let D=this.getAxisMotionValue(M).get()||0;if(Qf.test(D)){const{projection:B}=this.visualElement;if(B&&B.layout){const V=B.layout.layoutBox[M];V&&(D=qc(V)*(parseFloat(D)/100))}}this.originPoint[M]=D}),N&&ra.update(()=>N(_,T),!1,!0),K6(this.visualElement,"transform");const{animationState:L}=this.visualElement;L&&L.setActive("whileDrag",!0)},s=(_,T)=>{this.latestPointerEvent=_,this.latestPanInfo=T;const{dragPropagation:E,dragDirectionLock:C,onDirectionLock:N,onDrag:L}=this.getProps();if(!E&&!this.openDragLock)return;const{offset:M}=T;if(C&&this.currentDirection===null){this.currentDirection=Wet(M),this.currentDirection!==null&&N&&N(this.currentDirection);return}this.updateAxis("x",T.point,M),this.updateAxis("y",T.point,M),this.visualElement.render(),L&&ra.update(()=>L(_,T),!1,!0)},f=(_,T)=>{this.latestPointerEvent=_,this.latestPanInfo=T,this.stop(_,T),this.latestPointerEvent=null,this.latestPanInfo=null},m=()=>{const{dragSnapToOrigin:_}=this.getProps();(_||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:x}=this.getProps();this.panSession=new lbe(e,{onSessionStart:a,onStart:c,onMove:s,onSessionEnd:f,resumeAnimation:m},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:x,distanceThreshold:n,contextWindow:obe(this.visualElement),element:this.visualElement.current})}stop(e,r){const n=e||this.latestPointerEvent,i=r||this.latestPanInfo,a=this.isDragging;if(this.cancel(),!a||!i||!n)return;const{velocity:c}=i;this.startAnimation(c);const{onDragEnd:s}=this.getProps();s&&ra.postRender(()=>s(n,i))}cancel(){this.isDragging=!1;const{projection:e,animationState:r}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),r&&r.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,r,n){const{drag:i}=this.getProps();if(!n||!_N(e,i,this.currentDirection))return;const a=this.getAxisMotionValue(e);let c=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(c=Fet(c,this.constraints[e],this.elastic[e])),a.set(c)}resolveConstraints(){var a;const{dragConstraints:e,dragElastic:r}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(a=this.visualElement.projection)==null?void 0:a.layout,i=this.constraints;e&&Zb(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&n?this.constraints=Bet(n.layoutBox,e):this.constraints=!1,this.elastic=Vet(r),i!==this.constraints&&!Zb(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&Rf(c=>{this.constraints!==!1&&this.getAxisMotionValue(c)&&(this.constraints[c]=Uet(n.layoutBox[c],this.constraints[c]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:r}=this.getProps();if(!e||!Zb(e))return!1;const n=e.current;w1(n!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");const{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const a=GQe(n,i.root,this.visualElement.getTransformPagePoint());let c=zet(i.layout.layoutBox,a);if(r){const s=r(UQe(c));this.hasMutatedConstraints=!!s,s&&(c=Ive(s))}return c}startAnimation(e){const{drag:r,dragMomentum:n,dragElastic:i,dragTransition:a,dragSnapToOrigin:c,onDragTransitionEnd:s}=this.getProps(),f=this.constraints||{},m=Rf(x=>{if(!_N(x,r,this.currentDirection))return;let _=f&&f[x]||{};(c===!0||c===x)&&(_={min:0,max:0});const T=i?200:1e6,E=i?40:1e7,C={type:"inertia",velocity:n?e[x]:0,bounceStiffness:T,bounceDamping:E,timeConstant:750,restDelta:1,restSpeed:10,...a,..._};return this.startAxisValueAnimation(x,C)});return Promise.all(m).then(s)}startAxisValueAnimation(e,r){const n=this.getAxisMotionValue(e);return K6(this.visualElement,e),n.start(m7(e,n,0,r,this.visualElement,!1))}stopAnimation(){Rf(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){const r=`_drag${e.toUpperCase()}`,n=this.visualElement.getProps(),i=n[r];return i||this.visualElement.getValue(e,(n.initial?n.initial[e]:void 0)||0)}snapToCursor(e){Rf(r=>{const{drag:n}=this.getProps();if(!_N(r,n,this.currentDirection))return;const{projection:i}=this.visualElement,a=this.getAxisMotionValue(r);if(i&&i.layout){const{min:c,max:s}=i.layout.layoutBox[r],f=a.get()||0;a.set(e[r]-Aa(c,s,.5)+f)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:r}=this.getProps(),{projection:n}=this.visualElement;if(!Zb(r)||!n||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Rf(c=>{const s=this.getAxisMotionValue(c);if(s&&this.constraints!==!1){const f=s.get();i[c]=$et({min:f,max:f},this.constraints[c])}});const{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},""):"none",n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),Rf(c=>{if(!_N(c,e,null))return;const s=this.getAxisMotionValue(c),{min:f,max:m}=this.constraints[c];s.set(Aa(f,m,i[c]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;qet.set(this.visualElement,this);const e=this.visualElement.current,r=yA(e,"pointerdown",m=>{const{drag:x,dragListener:_=!0}=this.getProps(),T=m.target,E=T!==e&&wQe(T);x&&_&&!E&&this.start(m)});let n;const i=()=>{const{dragConstraints:m}=this.getProps();Zb(m)&&m.current&&(this.constraints=this.resolveRefConstraints(),n||(n=Het(e,m.current,()=>this.scalePositionWithinConstraints())))},{projection:a}=this.visualElement,c=a.addEventListener("measure",i);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),ra.read(i);const s=xk(window,"resize",()=>this.scalePositionWithinConstraints()),f=a.addEventListener("didUpdate",({delta:m,hasLayoutChanged:x})=>{this.isDragging&&x&&(Rf(_=>{const T=this.getAxisMotionValue(_);T&&(this.originPoint[_]+=m[_].translate,T.set(T.get()+m[_].translate))}),this.visualElement.render())});return()=>{s(),r(),c(),f&&f(),n&&n()}}getProps(){const e=this.visualElement.getProps(),{drag:r=!1,dragDirectionLock:n=!1,dragPropagation:i=!1,dragConstraints:a=!1,dragElastic:c=nV,dragMomentum:s=!0}=e;return{...e,drag:r,dragDirectionLock:n,dragPropagation:i,dragConstraints:a,dragElastic:c,dragMomentum:s}}}function nne(t){let e=!0;return()=>{if(e){e=!1;return}t()}}function Het(t,e,r){const n=ure(t,nne(r)),i=ure(e,nne(r));return()=>{n(),i()}}function _N(t,e,r){return(e===!0||e===t)&&(r===null||r===t)}function Wet(t,e=10){let r=null;return Math.abs(t.y)>e?r="y":Math.abs(t.x)>e&&(r="x"),r}class Ket extends ox{constructor(e){super(e),this.removeGroupControls=Gd,this.removeListeners=Gd,this.controls=new Get(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Gd}update(){const{dragControls:e}=this.node.getProps(),{dragControls:r}=this.node.prevProps||{};e!==r&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const rz=t=>(e,r)=>{t&&ra.update(()=>t(e,r),!1,!0)};class Yet extends ox{constructor(){super(...arguments),this.removePointerDownListener=Gd}onPointerDown(e){this.session=new lbe(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:obe(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:r,onPan:n,onPanEnd:i}=this.node.getProps();return{onSessionStart:rz(e),onStart:rz(r),onMove:rz(n),onEnd:(a,c)=>{delete this.session,i&&ra.postRender(()=>i(a,c))}}}mount(){this.removePointerDownListener=yA(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let nz=!1;class Zet extends P.Component{componentDidMount(){const{visualElement:e,layoutGroup:r,switchLayoutGroup:n,layoutId:i}=this.props,{projection:a}=e;a&&(r.group&&r.group.add(a),n&&n.register&&i&&n.register(a),nz&&a.root.didUpdate(),a.addEventListener("animationComplete",()=>{this.safeToRemove()}),a.setOptions({...a.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),DR.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:r,visualElement:n,drag:i,isPresent:a}=this.props,{projection:c}=n;return c&&(c.isPresent=a,e.layoutDependency!==r&&c.setOptions({...c.options,layoutDependency:r}),nz=!0,i||e.layoutDependency!==r||r===void 0||e.isPresent!==a?c.willUpdate():this.safeToRemove(),e.isPresent!==a&&(a?c.promote():c.relegate()||ra.postRender(()=>{const s=c.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:e,layoutAnchor:r}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=r,n.root.didUpdate(),_7.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:e,layoutGroup:r,switchLayoutGroup:n}=this.props,{projection:i}=e;nz=!0,i&&(i.scheduleCheckAfterUnmount(),r&&r.group&&r.group.remove(i),n&&n.deregister&&n.deregister(i))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function ube(t){const[e,r]=Xve(),n=P.useContext(t7);return o.jsx(Zet,{...t,layoutGroup:n,switchLayoutGroup:P.useContext(sbe),isPresent:e,safeToRemove:r})}const Xet={pan:{Feature:Yet},drag:{Feature:Ket,ProjectionNode:Zve,MeasureLayout:ube}};function ine(t,e,r){const{props:n}=t;t.animationState&&n.whileHover&&t.animationState.setActive("whileHover",r==="Start");const i="onHover"+r,a=n[i];a&&ra.postRender(()=>a(e,YC(e)))}class Qet extends ox{mount(){const{current:e}=this.node;e&&(this.unmount=xQe(e,(r,n)=>(ine(this.node,n,"Start"),i=>ine(this.node,i,"End"))))}unmount(){}}class Jet extends ox{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=HC(xk(this.node.current,"focus",()=>this.onFocus()),xk(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function sne(t,e,r){const{props:n}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&n.whileTap&&t.animationState.setActive("whileTap",r==="Start");const i="onTap"+(r==="End"?"":r),a=n[i];a&&ra.postRender(()=>a(e,YC(e)))}class ett extends ox{mount(){const{current:e}=this.node;if(!e)return;const{globalTapTarget:r,propagate:n}=this.node.props;this.unmount=TQe(e,(i,a)=>(sne(this.node,a,"Start"),(c,{success:s})=>sne(this.node,c,s?"End":"Cancel")),{useGlobalTarget:r,stopPropagation:(n==null?void 0:n.tap)===!1})}unmount(){}}const iV=new WeakMap,iz=new WeakMap,ttt=t=>{const e=iV.get(t.target);e&&e(t)},rtt=t=>{t.forEach(ttt)};function ntt({root:t,...e}){const r=t||document;iz.has(r)||iz.set(r,{});const n=iz.get(r),i=JSON.stringify(e);return n[i]||(n[i]=new IntersectionObserver(rtt,{root:t,...e})),n[i]}function itt(t,e,r){const n=ntt(e);return iV.set(t,r),n.observe(t),()=>{iV.delete(t),n.unobserve(t)}}const stt={some:0,all:1};class att extends ox{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var f;(f=this.stopObserver)==null||f.call(this);const{viewport:e={}}=this.node.getProps(),{root:r,margin:n,amount:i="some",once:a}=e,c={root:r?r.current:void 0,rootMargin:n,threshold:typeof i=="number"?i:stt[i]},s=m=>{const{isIntersecting:x}=m;if(this.isInView===x||(this.isInView=x,a&&!x&&this.hasEnteredView))return;x&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",x);const{onViewportEnter:_,onViewportLeave:T}=this.node.getProps(),E=x?_:T;E&&E(m)};this.stopObserver=itt(this.node.current,c,s)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:e,prevProps:r}=this.node;["amount","margin","root"].some(ott(e,r))&&this.startObserver()}unmount(){var e;(e=this.stopObserver)==null||e.call(this),this.hasEnteredView=!1,this.isInView=!1}}function ott({viewport:t={}},{viewport:e={}}={}){return r=>t[r]!==e[r]}const ltt={inView:{Feature:att},tap:{Feature:ett},focus:{Feature:Jet},hover:{Feature:Qet}},ctt={layout:{ProjectionNode:Zve,MeasureLayout:ube}},utt={...Ret,...ltt,...Xet,...ctt},hr=Cet(utt,Iet);function dtt(t){switch(t){case"buying":return{label:"Buying",emoji:"🏠",color:"bg-emerald-500/15 text-emerald-400 border-emerald-500/30"};case"selling":return{label:"Selling",emoji:"📋",color:"bg-blue-500/15 text-blue-400 border-blue-500/30"};case"neighbor":return{label:"Neighbor",emoji:"👋",color:"bg-amber-500/15 text-amber-400 border-amber-500/30"};case"browsing":return{label:"Browsing",emoji:"👀",color:"bg-slate-500/15 text-slate-300 border-slate-500/30"};default:return{label:"Visitor",emoji:"🙂",color:"bg-slate-500/15 text-slate-300 border-slate-500/30"}}}function ane(t){return t.visitor_intent==="buying"&&!t.has_agent}function htt({token:t}={}){var E;const e=hp(),r=t||e.token,{data:n,isLoading:i,isError:a}=uZe(r);Ir();const c=(E=n==null?void 0:n.open_houses)==null?void 0:E.id,{data:s}=br({queryKey:["cohost-visitors",r,c],queryFn:async()=>{const{data:C,error:N}=await De.rpc("get_cohost_visitors",{_token:r});if(N)throw N;return C||[]},enabled:!!r&&!!c,refetchInterval:15e3});if(i)return o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center",children:o.jsx("div",{className:"animate-pulse text-white/40",children:"Validating access..."})});if(a||!n)return o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center text-white",children:[o.jsx("h1",{className:"text-xl font-bold mb-2",children:"Link Expired or Invalid"}),o.jsx("p",{className:"text-white/40 text-sm",children:"This co-host link is no longer active. Ask the host for a new one."})]})});const f=n.open_houses,m=(s==null?void 0:s.length)||0,x=(s==null?void 0:s.filter(C=>C.visitor_intent==="buying").length)||0,_=(s==null?void 0:s.filter(ane).length)||0,T=C=>{if(!C)return"";const[N,L]=C.split(":"),M=parseInt(N);return`${M>12?M-12:M||12}:${L} ${M>=12?"PM":"AM"}`};return o.jsxs("div",{className:"fixed inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950 flex flex-col",children:[o.jsxs("div",{className:"border-b border-white/10 px-4 sm:px-6 py-3 flex items-center justify-between bg-black/30 backdrop-blur-xl",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-emerald-400 animate-pulse"}),o.jsx("span",{className:"text-xs font-medium text-emerald-400 uppercase tracking-wider",children:"Live · Co-Host View"})]}),o.jsx("h1",{className:"text-white font-bold text-sm sm:text-base truncate",children:f.property_address})]}),o.jsxs("div",{className:"flex items-center gap-4 sm:gap-6 text-white/70",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(El,{className:"h-4 w-4"}),o.jsx("span",{className:"font-bold text-white",children:m})]}),o.jsxs("div",{className:"flex items-center gap-1.5 text-orange-400",children:[o.jsx(Rhe,{className:"h-4 w-4"}),o.jsx("span",{className:"font-bold text-white",children:_})]}),o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(Ma,{className:"h-4 w-4"}),o.jsx("span",{className:"font-bold text-white",children:x})]})]})]}),o.jsxs("div",{className:"px-4 sm:px-6 py-2 flex items-center gap-4 text-xs text-white/40 border-b border-white/5",children:[o.jsx("span",{children:Di(new Date(f.event_date+"T00:00:00"),"EEEE, MMMM d, yyyy")}),f.start_time&&o.jsxs("span",{children:[T(f.start_time),f.end_time?` – ${T(f.end_time)}`:""]})]}),o.jsx(pp,{className:"flex-1 p-4 sm:p-6",children:s!=null&&s.length?o.jsx("div",{className:"space-y-2 max-w-3xl mx-auto",children:o.jsx(Qve,{children:s.map((C,N)=>{var D;const L=dtt(C.visitor_intent),M=ane(C);return o.jsxs(hr.div,{initial:{opacity:0,x:-40,scale:.95},animate:{opacity:1,x:0,scale:1},transition:{duration:.4,delay:N*.05},className:`flex items-center gap-4 p-4 rounded-xl border ${M?"bg-orange-500/10 border-orange-500/30":"bg-white/5 border-white/10"}`,children:[o.jsx("div",{className:`w-11 h-11 rounded-full flex items-center justify-center text-lg font-bold shrink-0 ${M?"bg-gradient-to-br from-orange-500 to-amber-500 text-white":"bg-white/10 text-white/80"}`,children:(D=C.first_name[0])==null?void 0:D.toUpperCase()}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[o.jsxs("span",{className:"font-semibold text-white truncate",children:[C.first_name," ",C.last_name||""]}),M&&o.jsx(hs,{className:"bg-orange-500/20 text-orange-300 border-orange-500/40 text-[10px] px-1.5 py-0",children:"🔥 HOT"}),C.has_agent&&o.jsx(hs,{variant:"outline",className:"text-[10px] px-1.5 py-0 border-yellow-500/40 text-yellow-400",children:"⚠️ Has Agent"})]}),o.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[o.jsxs(hs,{variant:"outline",className:`text-[10px] px-1.5 py-0 ${L.color}`,children:[L.emoji," ",L.label]}),o.jsx("span",{className:"text-white/30 text-xs",children:Di(new Date(C.created_at),"h:mm a")})]})]})]},C.id)})})}):o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center py-20",children:[o.jsx("div",{className:"w-20 h-20 rounded-full bg-white/5 flex items-center justify-center mb-4",children:o.jsx(JRe,{className:"h-10 w-10 text-white/20"})}),o.jsx("h2",{className:"text-xl font-bold text-white/60 mb-1",children:"Waiting for visitors..."}),o.jsx("p",{className:"text-white/30 text-sm",children:"New sign-ins will appear here in real-time"})]})})]})}function ftt(){const e=Ji().pathname.slice(1);if(P.useEffect(()=>(document.body.classList.add("guestbook-page"),()=>{document.body.classList.remove("guestbook-page")}),[]),e.startsWith("live/")){const r=e.slice(5);if(r)return o.jsx(htt,{token:r})}if(e.startsWith("rsvp/")){const r=e.slice(5);if(r)return o.jsx(S_e,{slug:r})}return!e||e===""?o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center text-white",children:[o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"Guest Book"}),o.jsx("p",{className:"text-white/60",children:"The modern open house sign-in experience."}),o.jsx("p",{className:"text-white/40 text-sm mt-2",children:"Visit a specific open house link to sign in."})]})}):o.jsx(w_e,{slug:e})}function ptt({dealData:t,agentProfile:e,welcomeMessage:r,isWon:n,branding:i}){var m;const a=t!=null&&t.property_address?`${t.property_address}, ${t.city||""}, ${t.state||""}`.replace(/,\s*,/g,",").replace(/,\s*$/,""):null,c=(i==null?void 0:i.logo_url)||null,s=(i==null?void 0:i.cover_photo_url)||null,f=(i==null?void 0:i.tagline)||"Your Real Estate Concierge";return o.jsxs("div",{className:"relative overflow-hidden",children:[o.jsxs("div",{className:"relative px-4 pt-10 pb-20",children:[s&&o.jsx("div",{className:"absolute inset-0",style:{backgroundImage:`url(${s})`,backgroundSize:"cover",backgroundPosition:"center",filter:"var(--portal-hero-filter-mobile)"}}),o.jsx("div",{className:"absolute inset-0",style:{background:s?"var(--portal-hero-scrim-mobile)":"radial-gradient(ellipse 100% 70% at 50% 0%, hsl(var(--portal-gold) / 0.12), transparent 60%), linear-gradient(180deg, hsl(0 0% 7%), hsl(0 0% 4%))"}}),o.jsx("div",{className:"absolute inset-0 opacity-[0.05]",style:{backgroundImage:"radial-gradient(circle at 25% 25%, hsl(var(--portal-gold)) 1px, transparent 1px)",backgroundSize:"32px 32px"}}),o.jsxs("div",{className:"relative text-center max-w-lg mx-auto",children:[c&&o.jsx(hr.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},transition:{duration:.5},className:"mb-6 flex justify-center",children:o.jsx("div",{className:"rounded-xl px-4 py-2.5",style:{background:"hsl(0 0% 100% / 0.06)",backdropFilter:"blur(8px)",border:"1px solid hsl(var(--portal-gold) / 0.2)"},children:o.jsx("img",{src:c,alt:"Brand",className:"h-9 max-w-[160px] object-contain"})})}),e&&o.jsxs(hr.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.5,delay:.05},className:"mb-6",children:[e.avatar_url?o.jsx("div",{className:"w-20 h-20 mx-auto mb-3 relative",children:o.jsx("div",{className:"absolute inset-0 rounded-full",style:{background:"var(--portal-gradient-gold)",padding:"2px"},children:o.jsx("img",{src:e.avatar_url,alt:e.name,className:"w-full h-full rounded-full object-cover",style:{background:"hsl(var(--portal-surface))"}})})}):o.jsx("div",{className:"w-20 h-20 mx-auto mb-3 rounded-full flex items-center justify-center portal-serif text-3xl",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.3)",color:"var(--portal-hero-accent)"},children:((m=e.name)==null?void 0:m.charAt(0))||"?"}),o.jsx("p",{className:"portal-serif text-lg",style:{color:"var(--portal-hero-ink)"},children:e.name}),o.jsx("p",{className:"text-[10px] mt-1 tracking-[0.22em] uppercase",style:{color:"var(--portal-hero-ink-dim)"},children:f})]}),o.jsxs(hr.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.6,delay:.1},children:[o.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-[10px] tracking-[0.2em] uppercase mb-4",style:{background:"hsl(var(--portal-gold) / 0.08)",border:"1px solid hsl(var(--portal-gold) / 0.25)",color:"var(--portal-hero-accent)"},children:[o.jsx(Ma,{className:"w-3 h-3"}),(t==null?void 0:t.deal_type)==="listing"?"Sale":(t==null?void 0:t.deal_type)==="buy-side"?"Purchase":"Transaction",n&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"opacity-50",children:"·"}),"Complete"]})]}),o.jsx("h1",{className:"portal-serif text-[2.5rem] leading-[1.05] mb-3",style:{color:"var(--portal-hero-ink)"},children:(t==null?void 0:t.deal_name)||"Your Transaction"}),o.jsx("div",{className:"portal-hairline w-24 mx-auto mb-4"}),a&&o.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-sm",style:{color:"var(--portal-hero-ink-muted)"},children:[o.jsx(ga,{className:"w-3.5 h-3.5",style:{color:"var(--portal-hero-accent)"}}),o.jsx("span",{children:a})]}),r&&o.jsxs("p",{className:"mt-6 text-sm leading-relaxed max-w-md mx-auto italic portal-serif",style:{color:"var(--portal-hero-ink-muted)",fontSize:"1.05rem"},children:["“",r,"”"]})]})]})]}),e&&o.jsx("div",{className:"max-w-lg mx-auto px-4 -mt-10 relative z-10",children:o.jsx("div",{className:"rounded-2xl p-3",style:{background:"hsl(var(--portal-surface))",border:"1px solid hsl(var(--portal-gold) / 0.2)",boxShadow:"var(--portal-shadow-tile)"},children:o.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.phone&&o.jsxs("a",{href:`tel:${e.phone}`,className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-xl transition-colors",style:{background:"hsl(var(--portal-gold) / 0.06)",color:"var(--portal-hero-accent)",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:[o.jsx(Ui,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm font-medium",children:"Call"})]}),e.email&&o.jsxs("a",{href:`mailto:${e.email}`,className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-xl transition-colors",style:{background:"hsl(var(--portal-gold) / 0.06)",color:"var(--portal-hero-accent)",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:[o.jsx($i,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm font-medium",children:"Email"})]}),e.phone&&o.jsxs("a",{href:`sms:${e.phone}`,className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-xl transition-colors",style:{background:"hsl(var(--portal-gold) / 0.06)",color:"var(--portal-hero-accent)",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:[o.jsx(u1,{className:"w-4 h-4"}),o.jsx("span",{className:"text-sm font-medium",children:"Text"})]})]})})})]})}function dbe({targetCloseDate:t,actualCloseDate:e,clientName:r}){if(e||!t)return null;const n=t.split(/[-/T]/),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),c=h9e(i,new Date);if(_1(i)&&!qd(i))return null;const s=qd(i),f=s?"0":String(Math.max(0,c)),m=Math.max(4,Math.min(100,(60-Math.min(60,c))/60*100));return o.jsxs("div",{className:"portal-tile p-8 text-center",children:[o.jsx("p",{className:"portal-eyebrow mb-4",children:s?"The Moment Has Arrived":"Countdown to Closing"}),s?o.jsxs(o.Fragment,{children:[o.jsx("h3",{className:"portal-serif text-5xl mb-2",style:{color:"hsl(var(--portal-gold))"},children:"Closing Day"}),o.jsxs("p",{className:"text-sm mt-3",style:{color:"hsl(var(--portal-ink-muted))"},children:["Congratulations",r?`, ${r.split(" ")[0]}`:"","."]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex items-baseline justify-center gap-3",children:[o.jsx(hr.span,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.6},className:"portal-serif tabular-nums leading-none",style:{fontSize:"5.5rem",color:"hsl(var(--portal-gold))",textShadow:"0 0 40px hsl(var(--portal-gold) / 0.4)"},children:f}),o.jsx("span",{className:"portal-serif",style:{fontSize:"1.5rem",color:"hsl(var(--portal-ink-muted))"},children:c===1?"day":"days"})]}),o.jsx("div",{className:"portal-hairline w-16 mx-auto my-4"}),o.jsx("p",{className:"text-xs tracking-[0.2em] uppercase",style:{color:"hsl(var(--portal-ink-muted))"},children:"Until you hold the keys"}),o.jsx("div",{className:"mt-6 mx-auto max-w-[260px]",children:o.jsx("div",{className:"h-[2px] rounded-full overflow-hidden",style:{background:"hsl(var(--portal-gold) / 0.15)"},children:o.jsx(hr.div,{initial:{width:0},animate:{width:`${m}%`},transition:{duration:1.2,ease:"easeOut"},className:"h-full rounded-full",style:{background:"var(--portal-gradient-gold)",boxShadow:"0 0 12px hsl(var(--portal-gold) / 0.6)"}})})})]})]})}function hbe({journeyStages:t,currentIndex:e}){return t.length===0?null:o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"The Journey"}),o.jsx("h2",{className:"portal-serif text-2xl mb-6",style:{color:"hsl(var(--portal-ink))"},children:"Your path to the keys"}),o.jsx("div",{className:"relative",children:t.map((r,n)=>{const i=ne;return o.jsxs(hr.div,{initial:{opacity:0,x:-6},animate:{opacity:1,x:0},transition:{duration:.35,delay:n*.05},className:"flex items-start gap-4 relative",children:[n{var c,s;if(a.includes("youtube.com/watch")){const f=new URL(a).searchParams.get("v");return f?`https://www.youtube.com/embed/${f}`:null}if(a.includes("youtu.be/")){const f=(c=a.split("youtu.be/")[1])==null?void 0:c.split("?")[0];return f?`https://www.youtube.com/embed/${f}`:null}if(a.includes("loom.com/share/")){const f=(s=a.split("loom.com/share/")[1])==null?void 0:s.split("?")[0];return f?`https://www.loom.com/embed/${f}`:null}return a};return o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Right Now"}),o.jsx("h4",{className:"portal-serif text-3xl mb-2 portal-gold-underline",style:{color:"hsl(var(--portal-ink))"},children:t.label}),o.jsx("p",{className:"text-sm leading-relaxed mt-4",style:{color:"hsl(var(--portal-ink-muted))"},children:t.description}),e&&o.jsxs("div",{className:"mt-5 rounded-xl p-4",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Note From Your Agent"}),o.jsxs("p",{className:"text-sm leading-relaxed portal-serif italic",style:{color:"hsl(var(--portal-ink))",fontSize:"1rem"},children:["“",e,"”"]})]}),r&&o.jsxs("div",{className:"mt-5 rounded-xl p-4",style:{background:"linear-gradient(135deg, hsl(var(--portal-gold) / 0.08), hsl(var(--portal-gold) / 0.02))",border:"1px solid hsl(var(--portal-gold) / 0.25)"},children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"What’s Next"}),o.jsx("p",{className:"text-sm leading-relaxed",style:{color:"hsl(var(--portal-ink))"},children:r})]}),n&&o.jsx("div",{className:"mt-5 rounded-xl overflow-hidden aspect-video relative group",style:{background:"hsl(var(--portal-bg))",border:"1px solid hsl(var(--portal-gold) / 0.2)"},children:o.jsx("iframe",{src:i(n)||n,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:"Next step video"})})]})}function E1(t){const e=t.split(/[-/T]/);if(e.length>=3){const r=Number(e[0]);return r>99?new Date(r,Number(e[1])-1,Number(e[2])):new Date(Number(e[2]),Number(e[0])-1,Number(e[1]))}return new Date(`${t}T12:00:00`)}function T6t(t){const e=t.trim();if(!e)return;const r=e.split(/[-/]/).filter(Boolean);if(r.length<3)return;const n=r.map(f=>Number(f));if(n.some(f=>Number.isNaN(f)))return;n[0];let i,a,c;if(r[0].length===4)[c,i,a]=n,i=i-1;else if([i,a,c]=n,i=i-1,r[2].length===2)c=c<=49?2e3+c:1900+c;else if(r[2].length!==4)return;const s=new Date(c,i,a);if(!(s.getFullYear()!==c||s.getMonth()!==i||s.getDate()!==a))return s}const mtt=[{key:"contract_date",label:"Contract Accepted",icon:xU},{key:"earnest_money_due_date",label:"Earnest Money",icon:gm},{key:"inspection_date",label:"Inspection",icon:x_},{key:"inspection_contingency_date",label:"Inspection Deadline",icon:Im},{key:"appraisal_date",label:"Appraisal",icon:Ma},{key:"loan_approval_date",label:"Loan Approval",icon:Mhe},{key:"title_docs_due_date",label:"Title & Disclosures",icon:Im},{key:"final_walkthrough_date",label:"Final Walkthrough",icon:MRe},{key:"target_close_date",label:"Target Close",icon:fo}];function gtt(t,e){const r=Di(e,"yyyyMMdd");return`https://calendar.google.com/calendar/render?${new URLSearchParams({action:"TEMPLATE",text:t,dates:`${r}/${r}`,details:"Added from your Client Portal"}).toString()}`}function ytt(t,e){const r=Di(e,"yyyyMMdd");return`data:text/calendar;charset=utf-8,${encodeURIComponent(`BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT DTSTART;VALUE=DATE:${r} DTEND;VALUE=DATE:${r} SUMMARY:${t} DESCRIPTION:Added from your Client Portal END:VEVENT END:VCALENDAR`)}`}function pbe({deal:t,portal:e,targetCloseDate:r,contractDate:n,inspectionDate:i,appraisalDate:a,actualCloseDate:c}){const s={...t||{},contract_date:(t==null?void 0:t.contract_date)??n??null,inspection_date:(t==null?void 0:t.inspection_date)??(e==null?void 0:e.inspection_date)??i??null,appraisal_date:(t==null?void 0:t.appraisal_date)??(e==null?void 0:e.appraisal_date)??a??null,target_close_date:(t==null?void 0:t.target_close_date)??r??null},f=(t==null?void 0:t.actual_close_date)??c??null,m=Array.isArray(t==null?void 0:t.completed_key_dates)?t.completed_key_dates:[],x=mtt.map(E=>E.key==="target_close_date"&&f?{...E,label:"Closed",date:f,done:!0}:{...E,date:s[E.key],done:m.includes(E.key)}).filter(E=>!!E.date);if(x.length===0)return null;const _=(E,C,N)=>{const L=E1(C);if(N==="google")window.open(gtt(E,L),"_blank");else{const M=ytt(E,L),D=document.createElement("a");D.href=M,D.download=`${E.replace(/\s+/g,"-").toLowerCase()}.ics`,D.click()}},T=x.filter(E=>E.done).length;return o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Milestones"}),o.jsxs("div",{className:"flex items-baseline justify-between gap-3 mb-5 flex-wrap",children:[o.jsx("h2",{className:"portal-serif text-2xl",style:{color:"hsl(var(--portal-ink))"},children:"Key dates"}),o.jsxs("span",{className:"text-[11px] tracking-[0.18em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:[T," of ",x.length," complete"]})]}),o.jsxs("div",{className:"space-y-4 relative",children:[o.jsx("div",{className:"absolute left-[10px] top-2 bottom-2 w-[1px]",style:{background:"hsl(var(--portal-gold) / 0.18)"}}),x.map(({label:E,date:C,done:N,icon:L})=>{const M=E1(C),D=_1(M)&&!qd(M),B=qd(M),V=!D&&!B,G=N?"Completed":B?"Today":D?"In progress":"Upcoming";return o.jsxs("div",{className:"flex items-start gap-3 relative",children:[o.jsx("div",{className:"w-[21px] h-[21px] rounded-full mt-0.5 flex-shrink-0 relative z-10 flex items-center justify-center",style:{background:N?"hsl(var(--portal-gold))":B?"hsl(var(--portal-gold) / 0.25)":"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.7)",boxShadow:B?"0 0 12px hsl(var(--portal-gold) / 0.5)":"none"},children:N?o.jsx(Ao,{className:"w-3 h-3",style:{color:"hsl(var(--portal-surface))"}}):o.jsx(L,{className:"w-3 h-3",style:{color:"hsl(var(--portal-gold))"}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-[10px] tracking-[0.22em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:E}),o.jsx("p",{className:"portal-serif mt-0.5",style:{fontSize:"1.15rem",color:N?"hsl(var(--portal-ink-muted))":"hsl(var(--portal-ink))"},children:Di(M,"MMM d, yyyy")}),o.jsx("span",{className:"inline-block mt-1 text-[9px] tracking-[0.2em] uppercase px-2 py-0.5 rounded-full",style:{color:N||B?"hsl(var(--portal-gold))":"hsl(var(--portal-ink-dim))",border:`1px solid hsl(var(--portal-gold) / ${N||B?.5:.18})`},children:G})]}),V&&o.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[o.jsx("button",{onClick:()=>_(E,C,"google"),className:"p-1.5 rounded transition-colors",style:{color:"hsl(var(--portal-ink-dim))"},onMouseEnter:W=>{W.currentTarget.style.color="hsl(var(--portal-gold))"},onMouseLeave:W=>{W.currentTarget.style.color="hsl(var(--portal-ink-dim))"},title:"Add to Google Calendar",children:o.jsx(jhe,{className:"w-3.5 h-3.5"})}),o.jsx("button",{onClick:()=>_(E,C,"apple"),className:"text-[9px] tracking-widest px-1.5 py-1 rounded",style:{color:"hsl(var(--portal-ink-dim))"},title:"Download .ics",children:".ICS"})]})]},E)})]})]})}function mbe({documents:t}){const e=n=>n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(0)} KB`:`${(n/1048576).toFixed(1)} MB`,r=async n=>{const{data:i}=await De.storage.from("deal-files").createSignedUrl(n.storage_path,300);i!=null&&i.signedUrl&&window.open(i.signedUrl,"_blank")};return o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Paperwork"}),o.jsx("h2",{className:"portal-serif text-2xl mb-5",style:{color:"hsl(var(--portal-ink))"},children:"Documents"}),o.jsx("div",{className:"space-y-2",children:t.map(n=>o.jsxs("button",{onClick:()=>r(n),className:"w-full flex items-center gap-3 p-3 rounded-xl transition-all text-left group",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.08)"},onMouseEnter:i=>{i.currentTarget.style.borderColor="hsl(var(--portal-gold) / 0.35)"},onMouseLeave:i=>{i.currentTarget.style.borderColor="hsl(var(--portal-gold) / 0.08)"},children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"hsl(var(--portal-gold) / 0.08)",border:"1px solid hsl(var(--portal-gold) / 0.2)"},children:o.jsx(Im,{className:"w-4 h-4",style:{color:"hsl(var(--portal-gold))"}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm portal-serif truncate",style:{color:"hsl(var(--portal-ink))",fontSize:"1rem"},children:n.file_name}),o.jsx("p",{className:"text-[10px] tracking-widest uppercase mt-0.5",style:{color:"hsl(var(--portal-ink-dim))"},children:e(n.file_size)})]}),o.jsx(Zl,{className:"w-4 h-4 flex-shrink-0",style:{color:"hsl(var(--portal-gold) / 0.5)"}})]},n.id))})]})}function gbe({slug:t,wrapper:e}){const r=$a(),[n,i]=P.useState(null),{data:a=[]}=br({queryKey:["portal-signature-requests",t],enabled:!!t,queryFn:async()=>{const{data:x,error:_}=await De.functions.invoke("forms-portal-public",{body:{action:"list",slug:t}});return _?[]:(x==null?void 0:x.envelopes)||[]}}),c=a.filter(x=>x.my_turn),s=a.filter(x=>!x.my_turn&&x.status!=="completed");if(!c.length&&!s.length)return null;const f=async x=>{i(x);try{const{data:_,error:T}=await De.functions.invoke("forms-portal-public",{body:{action:"sign_link",slug:t,envelope_id:x}});if(T||_!=null&&_.error)throw new Error((_==null?void 0:_.error)||"Could not open the document");r(_.path)}catch(_){Jt.error((_==null?void 0:_.message)||"Could not open the document")}finally{i(null)}},m=o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Needs you"}),o.jsx("h2",{className:"portal-serif text-2xl mb-5",style:{color:"hsl(var(--portal-ink))"},children:"Documents to sign"}),o.jsxs("div",{className:"space-y-2",children:[c.map(x=>o.jsxs("button",{onClick:()=>f(x.id),disabled:n===x.id,className:"w-full flex items-center gap-3 p-3 rounded-xl transition-all text-left",style:{background:"hsl(var(--portal-gold) / 0.1)",border:"1px solid hsl(var(--portal-gold) / 0.4)"},children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"hsl(var(--portal-gold) / 0.14)",border:"1px solid hsl(var(--portal-gold) / 0.3)"},children:n===x.id?o.jsx(ku,{className:"w-4 h-4 animate-spin",style:{color:"hsl(var(--portal-gold))"}}):o.jsx(GRe,{className:"w-4 h-4",style:{color:"hsl(var(--portal-gold))"}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm portal-serif truncate",style:{color:"hsl(var(--portal-ink))",fontSize:"1rem"},children:x.title}),o.jsx("p",{className:"text-[10px] tracking-widest uppercase mt-0.5",style:{color:"hsl(var(--portal-gold))"},children:"Tap to review & sign"})]})]},x.id)),s.map(x=>o.jsxs("div",{className:"w-full flex items-center gap-3 p-3 rounded-xl",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.08)"},children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"hsl(var(--portal-gold) / 0.06)"},children:x.my_status==="signed"?o.jsx(gc,{className:"w-4 h-4",style:{color:"hsl(var(--portal-ink-muted))"}}):o.jsx(pc,{className:"w-4 h-4",style:{color:"hsl(var(--portal-ink-muted))"}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm portal-serif truncate",style:{color:"hsl(var(--portal-ink-muted))",fontSize:"1rem"},children:x.title}),o.jsx("p",{className:"text-[10px] tracking-widest uppercase mt-0.5",style:{color:"hsl(var(--portal-ink-dim))"},children:x.my_status==="signed"?"You signed — waiting on others":"Waiting on another signer"})]})]},x.id))]})]});return e?e(m):m}function ybe({updates:t}){const e=r=>{var n,i;if(r.includes("youtube.com/watch")){const a=new URL(r).searchParams.get("v");return a?`https://www.youtube.com/embed/${a}`:null}if(r.includes("youtu.be/")){const a=(n=r.split("youtu.be/")[1])==null?void 0:n.split("?")[0];return a?`https://www.youtube.com/embed/${a}`:null}if(r.includes("loom.com/share/")){const a=(i=r.split("loom.com/share/")[1])==null?void 0:i.split("?")[0];return a?`https://www.loom.com/embed/${a}`:null}return r};return o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow mb-2",children:"Dispatch"}),o.jsx("h2",{className:"portal-serif text-2xl mb-5",style:{color:"hsl(var(--portal-ink))"},children:"Updates from your agent"}),o.jsx("div",{className:"space-y-6",children:t.map((r,n)=>o.jsx("div",{className:n>0?"pt-6":"",style:n>0?{borderTop:"1px solid hsl(var(--portal-gold) / 0.1)"}:void 0,children:o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5",style:{background:r.is_stage_change?"hsl(var(--portal-gold) / 0.15)":"hsl(var(--portal-surface-3))",border:"1px solid hsl(var(--portal-gold) / 0.25)"},children:r.is_stage_change?o.jsx(SRe,{className:"w-3.5 h-3.5",style:{color:"hsl(var(--portal-gold))"}}):o.jsx(vC,{className:"w-3.5 h-3.5",style:{color:"hsl(var(--portal-gold))"}})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[o.jsx("h3",{className:"portal-serif",style:{fontSize:n===0?"1.4rem":"1.15rem",color:"hsl(var(--portal-ink))"},children:r.title}),o.jsx("span",{className:"text-[10px] tracking-[0.2em] uppercase flex-shrink-0",style:{color:"hsl(var(--portal-ink-dim))"},children:Di(new Date(r.created_at),"MMM d")})]}),r.content&&o.jsx("p",{className:`text-sm mt-2 leading-relaxed ${n===0?"italic portal-serif":""}`,style:{color:"hsl(var(--portal-ink-muted))",fontSize:n===0?"1rem":"0.875rem"},children:n===0?`“${r.content}”`:r.content}),r.video_url&&o.jsx("div",{className:"mt-3 rounded-xl overflow-hidden aspect-video",style:{background:"hsl(var(--portal-bg))",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:o.jsx("iframe",{src:e(r.video_url)||r.video_url,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:r.title})})]})]})},r.id))})]})}const xtt=[{value:"lender",label:"Lender"},{value:"inspector",label:"Inspector"},{value:"title_escrow",label:"Title / Escrow"},{value:"insurance",label:"Insurance"},{value:"home_warranty",label:"Home Warranty"},{value:"movers",label:"Movers"},{value:"cleaners",label:"Cleaners"},{value:"handyman",label:"Handyman"},{value:"painter",label:"Painter"},{value:"landscaper",label:"Landscaper"},{value:"photographer",label:"Photographer"},{value:"stager",label:"Stager"},{value:"contractor",label:"Contractor"},{value:"electrician",label:"Electrician"},{value:"plumber",label:"Plumber"},{value:"hvac",label:"HVAC"},{value:"roofer",label:"Roofer"},{value:"pest_control",label:"Pest Control"},{value:"attorney",label:"Attorney"},{value:"accountant",label:"Accountant"},{value:"other",label:"Other"}],E6t=[{value:"book",label:"Book Now (link)"},{value:"quote",label:"Request Quote (email)"},{value:"call",label:"Call"},{value:"email",label:"Email"},{value:"website",label:"Visit Website"}];function A6t(t){return br({queryKey:["vendors","brokerage",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("vendors").select("*").eq("owner_type","brokerage").eq("owner_brokerage_id",t).order("sort_order",{ascending:!0}).order("name",{ascending:!0});if(r)throw r;return e||[]},enabled:!!t})}function k6t(){const t=es(),{brokerageId:e}=$n();return br({queryKey:["vendors","library",t,e],queryFn:async()=>{if(!t)return{vendors:[],selections:[]};let r=De.from("vendors").select("*");e?r=r.or(`and(owner_type.eq.agent,owner_user_id.eq.${t}),and(owner_type.eq.brokerage,owner_brokerage_id.eq.${e})`):r=r.eq("owner_type","agent").eq("owner_user_id",t);const[{data:n,error:i},{data:a,error:c}]=await Promise.all([r.order("sort_order",{ascending:!0}).order("name",{ascending:!0}),De.from("agent_vendor_selections").select("*").eq("agent_user_id",t)]);if(i)throw i;if(c)throw c;return{vendors:n||[],selections:a||[]}},enabled:!!t})}function C6t(){const t=Ir();return kr({mutationFn:async e=>{if(e.id){const{id:r,created_at:n,...i}=e,{data:a,error:c}=await De.from("vendors").update(i).eq("id",r).select().single();if(c)throw c;return a}else{const{data:r,error:n}=await De.from("vendors").insert(e).select().single();if(n)throw n;return r}},onSuccess:()=>t.invalidateQueries({queryKey:["vendors"]})})}function I6t(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("vendors").delete().eq("id",e);if(r)throw r},onSuccess:()=>t.invalidateQueries({queryKey:["vendors"]})})}function j6t(){const t=es(),e=Ir();return kr({mutationFn:async({vendorId:r,isVisible:n})=>{if(!t)throw new Error("No user");const{data:i}=await De.from("agent_vendor_selections").select("id").eq("agent_user_id",t).eq("vendor_id",r).maybeSingle();if(i){const{error:a}=await De.from("agent_vendor_selections").update({is_visible:n}).eq("id",i.id);if(a)throw a}else{const{error:a}=await De.from("agent_vendor_selections").insert({agent_user_id:t,vendor_id:r,is_visible:n});if(a)throw a}},onSuccess:()=>e.invalidateQueries({queryKey:["vendors"]})})}function xbe(t){return br({queryKey:["portal-vendors",t==null?void 0:t.id,t==null?void 0:t.owner_user_id],queryFn:async()=>{if(!(t!=null&&t.id)||!(t!=null&&t.owner_user_id))return[];const e=t.owner_user_id,{data:r}=await De.from("profiles").select("brokerage_id").eq("id",e).maybeSingle(),n=r==null?void 0:r.brokerage_id,i=De.from("vendors").select("*").eq("is_active",!0),a=n?i.or(`and(owner_type.eq.agent,owner_user_id.eq.${e}),and(owner_type.eq.brokerage,owner_brokerage_id.eq.${n})`):i.eq("owner_type","agent").eq("owner_user_id",e),[{data:c,error:s},{data:f},{data:m}]=await Promise.all([a.order("sort_order",{ascending:!0}).order("name",{ascending:!0}),De.from("agent_vendor_selections").select("vendor_id, display_order, is_visible").eq("agent_user_id",e),De.from("portal_vendor_overrides").select("vendor_id, is_visible").eq("portal_id",t.id)]);if(s)throw s;const x=new Map;(f||[]).forEach(E=>x.set(E.vendor_id,{display_order:E.display_order,is_visible:E.is_visible}));const _=new Map;return(m||[]).forEach(E=>_.set(E.vendor_id,E.is_visible)),(c||[]).filter(E=>{if(_.get(E.id)===!1)return!1;const C=x.get(E.id);return!(C&&C.is_visible===!1&&!E.is_required)}).map(E=>{var C;return{...E,display_order:((C=x.get(E.id))==null?void 0:C.display_order)??E.sort_order??0}}).sort((E,C)=>(E.display_order||0)-(C.display_order||0))},enabled:!!(t!=null&&t.id)&&!!(t!=null&&t.owner_user_id)})}async function one(t){try{await De.from("vendor_clicks").insert({vendor_id:t.vendorId,portal_id:t.portalId||null,agent_user_id:t.agentUserId||null,action_taken:t.actionTaken||null,user_agent:typeof navigator<"u"?navigator.userAgent.slice(0,500):null})}catch(e){console.warn("vendor click track failed",e)}}function P6t(t,e){return br({queryKey:["vendor-clicks",t,e],queryFn:async()=>{if(!e)return{};const{data:r}=await De.from("vendors").select("id").eq(t==="agent"?"owner_user_id":"owner_brokerage_id",e).eq("owner_type",t),n=(r||[]).map(c=>c.id);if(n.length===0)return{};const{data:i}=await De.from("vendor_clicks").select("vendor_id").in("vendor_id",n),a={};return(i||[]).forEach(c=>{a[c.vendor_id]=(a[c.vendor_id]||0)+1}),a},enabled:!!e})}function _be({portalId:t,ownerUserId:e,currentStage:r,brandingColor:n,layout:i="list"}){const{data:a=[],isLoading:c}=xbe({id:t,owner_user_id:e});if(c||a.length===0)return null;const s=a.filter(D=>!D.stage_filter||D.stage_filter.length===0||!r?!0:D.stage_filter.includes(r));if(s.length===0)return null;const f=n||"#406E71",m=(D,B)=>{switch(B){case"book":return D.booking_url;case"website":return D.website;case"call":return D.phone?`tel:${D.phone.replace(/[^\d+]/g,"")}`:null;case"email":case"quote":return D.email?`mailto:${D.email}`:null}},x=D=>{const B=m(D,D.action_type);one({vendorId:D.id,portalId:t,agentUserId:e,actionTaken:D.action_type}),B&&window.open(B,D.action_type==="call"||D.action_type==="email"||D.action_type==="quote"?"_self":"_blank")},_=D=>{const B=m(D,D.action_type);return[{action:"website",label:"Website",icon:o.jsx(c1,{className:"w-3.5 h-3.5"})},{action:"email",label:"Email",icon:o.jsx($i,{className:"w-3.5 h-3.5"})},{action:"call",label:"Call",icon:o.jsx(Ui,{className:"w-3.5 h-3.5"})},{action:"book",label:"Book",icon:o.jsx(fo,{className:"w-3.5 h-3.5"})}].filter(G=>G.action!==D.action_type).map(G=>{const W=m(D,G.action);return!W||W===B?null:o.jsxs("button",{onClick:()=>{one({vendorId:D.id,portalId:t,agentUserId:e,actionTaken:G.action}),window.open(W,G.action==="call"||G.action==="email"?"_self":"_blank")},className:"inline-flex items-center gap-1 text-slate-500 hover:text-slate-700 hover:underline",title:G.label,children:[G.icon,o.jsx("span",{className:"text-xs",children:G.label})]},G.action)}).filter(Boolean)},T=D=>{switch(D.action_type){case"book":return"Book Now";case"quote":return"Request Quote";case"call":return"Call";case"email":return"Email";case"website":return"Visit Site"}},E=D=>{switch(D.action_type){case"book":return o.jsx(fo,{className:"w-3.5 h-3.5"});case"call":return o.jsx(Ui,{className:"w-3.5 h-3.5"});case"email":case"quote":return o.jsx($i,{className:"w-3.5 h-3.5"});case"website":return o.jsx(c1,{className:"w-3.5 h-3.5"})}},C=D=>{var B;return((B=xtt.find(V=>V.value===D))==null?void 0:B.label)||D},N=o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center",style:{backgroundColor:`${f}15`,color:f},children:o.jsx(Es,{className:"w-4 h-4"})}),o.jsxs("div",{children:[o.jsx("h2",{className:"font-semibold text-slate-800",children:"Trusted Partners"}),o.jsx("p",{className:"text-xs text-slate-500",children:"My personally-vetted recommendations for you"})]})]}),L=s.some(D=>D.disclosure_text)&&o.jsx("div",{className:"mt-4 pt-3 border-t border-slate-100 space-y-1",children:s.filter(D=>D.disclosure_text).map(D=>o.jsxs("p",{className:"text-[10px] text-slate-400",children:[o.jsxs("span",{className:"font-medium",children:[D.company||D.name,":"]})," ",D.disclosure_text]},D.id))});if(i==="grid")return o.jsxs(qn,{className:"p-5 sm:p-6 rounded-2xl border-slate-200/80 shadow-sm bg-white/70 backdrop-blur",children:[N,o.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:s.map(D=>o.jsxs("div",{className:"group flex flex-col p-4 rounded-xl border border-slate-200/70 bg-white hover:shadow-md hover:-translate-y-0.5 transition-all",children:[o.jsxs("div",{className:"flex items-start gap-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-lg bg-slate-50 border border-slate-200 flex items-center justify-center overflow-hidden shrink-0",children:D.logo_url?o.jsx("img",{src:D.logo_url,alt:D.name,className:"w-full h-full object-cover"}):o.jsx("span",{className:"text-base font-semibold text-slate-500",children:(D.company||D.name).charAt(0)})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:"font-semibold text-sm text-slate-800 truncate",children:D.company||D.name}),D.company&&D.name&&o.jsx("p",{className:"text-xs text-slate-500 truncate",children:D.name}),o.jsx("span",{className:"inline-block mt-1 text-[10px] font-medium px-1.5 py-0.5 rounded",style:{backgroundColor:`${f}12`,color:f},children:C(D.category)})]})]}),D.description&&o.jsx("p",{className:"text-xs text-slate-500 mt-3 line-clamp-2",children:D.description}),o.jsxs("div",{className:"mt-auto pt-4 flex flex-col gap-2",children:[o.jsxs(Kt,{size:"sm",onClick:()=>x(D),style:{backgroundColor:f},className:"text-white hover:opacity-90 w-full",children:[E(D),o.jsx("span",{className:"ml-1.5 text-xs",children:T(D)})]}),_(D).length>0&&o.jsx("div",{className:"flex flex-wrap items-center justify-center gap-3",children:_(D)})]})]},D.id))}),L]});const M=s.reduce((D,B)=>((D[B.category]=D[B.category]||[]).push(B),D),{});return o.jsxs(qn,{className:"p-5 rounded-2xl border-slate-200/80 shadow-sm",children:[N,o.jsx("div",{className:"space-y-4",children:Object.entries(M).map(([D,B])=>o.jsxs("div",{children:[o.jsx("p",{className:"text-[11px] uppercase tracking-wide text-slate-400 font-medium mb-2",children:C(D)}),o.jsx("div",{className:"space-y-2",children:B.map(V=>o.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-xl bg-slate-50 hover:bg-slate-100 transition-colors",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg bg-white border border-slate-200 flex items-center justify-center overflow-hidden shrink-0",children:V.logo_url?o.jsx("img",{src:V.logo_url,alt:V.name,className:"w-full h-full object-cover"}):o.jsx("span",{className:"text-sm font-semibold text-slate-500",children:V.name.charAt(0)})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"font-medium text-sm text-slate-800 truncate",children:V.company||V.name}),V.company&&V.name&&o.jsx("p",{className:"text-xs text-slate-500 truncate",children:V.name}),V.description&&o.jsx("p",{className:"text-xs text-slate-500 truncate mt-0.5",children:V.description})]}),o.jsxs(Kt,{size:"sm",onClick:()=>x(V),style:{backgroundColor:f},className:"text-white hover:opacity-90 shrink-0",children:[E(V),o.jsx("span",{className:"ml-1.5 text-xs",children:T(V)})]})]},V.id))})]},D))}),L]})}function _tt(t){const e=window.location.hostname;return e==="localhost"||e.includes("lovable.app")?`${window.location.origin}/portal/${t}/refer`:`https://clients.relevelup.com/${t}/refer`}function vtt(t){if(!t)return null;const e=t.match(/(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)([\w-]+)/);if(e)return`https://www.youtube.com/embed/${e[1]}`;const r=t.match(/loom\.com\/share\/([\w-]+)/);return r?`https://www.loom.com/embed/${r[1]}`:(t.match(/\.(mp4|webm|mov)(\?|$)/i),t)}function vbe({portalId:t,portalSlug:e,ownerUserId:r,rewardText:n,ctaHeadline:i,agentName:a,clientName:c,reviewUrl:s,hubVideoUrl:f}){const[m,x]=P.useState(!1),_=P.useRef(!1),T=_tt(e);P.useEffect(()=>{_.current||(_.current=!0,De.from("portal_referral_clicks").insert({portal_id:t,owner_user_id:r,click_type:"card_view",user_agent:navigator.userAgent.slice(0,500)}).then(()=>{}))},[t,r]);const E=async W=>{await De.from("portal_referral_clicks").insert({portal_id:t,owner_user_id:r,click_type:W,user_agent:navigator.userAgent.slice(0,500)})},C=()=>`${c?`Hey, it's ${c}!`:"Hey!"} I just had an amazing experience working with ${a||"my real estate agent"} on my home. If you or someone you know is thinking about buying or selling, here's their referral link: ${T}`,N=async()=>{await navigator.clipboard.writeText(T),x(!0),E("copy_link"),setTimeout(()=>x(!1),2e3)},L=()=>{E("share_sms");const W=encodeURIComponent(C());window.location.href=`sms:?&body=${W}`},M=()=>{E("share_email");const W=encodeURIComponent("A referral you'll thank me for"),Z=encodeURIComponent(C());window.location.href=`mailto:?subject=${W}&body=${Z}`},D=()=>{E("open_form"),window.open(T,"_blank")},B=i||"Know someone buying or selling?",V=f?vtt(f):null,G=V==null?void 0:V.match(/\.(mp4|webm|mov)(\?|$)/i);return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"bg-gradient-to-br from-emerald-50 via-teal-50 to-cyan-50 rounded-2xl p-6 border border-emerald-100 text-center",children:[o.jsx("div",{className:"text-5xl mb-2",children:"🎉"}),o.jsxs("h3",{className:"text-xl font-bold text-emerald-900 mb-1 font-serif",children:["Welcome Home",c?`, ${c.split(" ")[0]}`:"","!"]}),o.jsx("p",{className:"text-sm text-emerald-700/80",children:"Your transaction is complete. We're so proud to have been part of your journey."})]}),V&&o.jsxs("div",{className:"bg-white rounded-2xl border border-slate-100 shadow-sm overflow-hidden",children:[o.jsx("div",{className:"px-4 pt-4 pb-2",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Es,{className:"w-4 h-4 text-[#406E71]"}),o.jsxs("p",{className:"text-sm font-medium text-slate-700",children:["A message from ",a||"your agent"]})]})}),o.jsx("div",{className:"aspect-video bg-slate-900",children:G?o.jsx("video",{src:V,controls:!0,className:"w-full h-full",playsInline:!0}):o.jsx("iframe",{src:V,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})]}),o.jsxs("div",{className:"relative overflow-hidden rounded-2xl bg-gradient-to-br from-[#2a4c64] via-[#345e7a] to-[#406E71] text-white shadow-xl",children:[o.jsx("div",{className:"absolute inset-0 opacity-[0.07]",style:{backgroundImage:"radial-gradient(circle at 25% 25%, white 1px, transparent 1px)",backgroundSize:"20px 20px"}}),o.jsxs("div",{className:"relative p-6",children:[o.jsxs("div",{className:"inline-flex items-center gap-1.5 bg-white/15 backdrop-blur-sm rounded-full px-3 py-1 text-xs font-medium mb-3",children:[o.jsx(Yh,{className:"w-3 h-3"}),"Referral Program"]}),o.jsx("h3",{className:"text-xl font-bold leading-tight mb-2 font-serif",children:B}),n&&o.jsxs("p",{className:"text-sm text-white/85 mb-1",children:[o.jsx("span",{className:"font-semibold text-white",children:"Your reward:"})," ",n]}),o.jsxs("p",{className:"text-sm text-white/70 mb-5 leading-relaxed",children:["The biggest compliment you can give ",a||"us"," is sending a friend or family member."]}),o.jsxs("button",{onClick:D,className:"w-full bg-white text-[#2a4c64] font-semibold rounded-xl py-3.5 px-4 flex items-center justify-center gap-2 shadow-md hover:bg-white/95 active:scale-[0.99] transition-all",children:["Refer a Friend",o.jsx(Uc,{className:"w-4 h-4"})]}),o.jsxs("div",{className:"mt-4 grid grid-cols-3 gap-2",children:[o.jsxs("button",{onClick:L,className:"flex items-center justify-center gap-1.5 bg-white/10 hover:bg-white/20 backdrop-blur-sm rounded-lg py-2.5 text-xs font-medium transition-colors",children:[o.jsx(u1,{className:"w-3.5 h-3.5"}),"Text"]}),o.jsxs("button",{onClick:M,className:"flex items-center justify-center gap-1.5 bg-white/10 hover:bg-white/20 backdrop-blur-sm rounded-lg py-2.5 text-xs font-medium transition-colors",children:[o.jsx($i,{className:"w-3.5 h-3.5"}),"Email"]}),o.jsxs("button",{onClick:N,className:"flex items-center justify-center gap-1.5 bg-white/10 hover:bg-white/20 backdrop-blur-sm rounded-lg py-2.5 text-xs font-medium transition-colors",children:[m?o.jsx(Ao,{className:"w-3.5 h-3.5"}):o.jsx(_U,{className:"w-3.5 h-3.5"}),m?"Copied":"Copy"]})]})]})]}),s&&o.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",onClick:()=>E("review_click"),className:"block bg-white border border-slate-200 hover:border-amber-300 hover:bg-amber-50/30 rounded-2xl p-4 transition-colors",children:o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"text-2xl",children:"⭐"}),o.jsxs("div",{className:"flex-1",children:[o.jsx("p",{className:"text-sm font-semibold text-slate-800",children:"Loved working together?"}),o.jsx("p",{className:"text-xs text-slate-500",children:"Leave a quick review — it means the world."})]}),o.jsx(Uc,{className:"w-4 h-4 text-slate-400"})]})})]})}function btt(t){return br({queryKey:["portal-messages",t],queryFn:async()=>{const{data:e,error:r}=await De.from("portal_messages").select("*").eq("portal_id",t).order("created_at",{ascending:!0});if(r)throw r;return e||[]},enabled:!!t,refetchInterval:3e4})}function wtt(){const t=Ir();return kr({mutationFn:async({portalId:e,senderType:r,senderName:n,body:i,deviceFingerprint:a,portalUrl:c})=>{const{data:s,error:f}=await De.from("portal_messages").insert({portal_id:e,sender_type:r,sender_name:n||null,body:i.trim(),device_fingerprint:a||null,...r==="agent"?{read_at:new Date().toISOString()}:{}}).select().single();if(f)throw f;try{await De.functions.invoke("portal-message-notify",{body:{message_id:s.id,portal_url:c}})}catch(m){console.error("portal-message-notify failed",m)}return s},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["portal-messages",r.portalId]}),t.invalidateQueries({queryKey:["portal-unread-messages"]}),t.invalidateQueries({queryKey:["portal-conversations"]})}})}function N6t(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("portal_messages").update({read_at:new Date().toISOString()}).eq("portal_id",e).eq("sender_type","client").is("read_at",null);if(r)throw r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["portal-messages",r]}),t.invalidateQueries({queryKey:["portal-unread-messages"]}),t.invalidateQueries({queryKey:["portal-conversations"]})}})}function R6t(){const t=es();return br({queryKey:["portal-conversations",t],queryFn:async()=>{const{data:e,error:r}=await De.from("client_portals").select("id, slug, client_name, client_email, archived_at").eq("owner_user_id",t).is("archived_at",null);if(r)throw r;if(!e||e.length===0)return[];const n=e.map(f=>f.id),i=[],a=100,c=1e3;for(let f=0;f{const m=s.get(f.id)||[];return{portalId:f.id,slug:f.slug,clientName:f.client_name,clientEmail:f.client_email,lastMessage:m.length?m[m.length-1]:null,unreadCount:m.filter(x=>x.sender_type==="client"&&!x.read_at).length,messageCount:m.length}}).sort((f,m)=>{var T,E;const x=((T=f.lastMessage)==null?void 0:T.created_at)||"",_=((E=m.lastMessage)==null?void 0:E.created_at)||"";return x===_?(f.clientName||"").localeCompare(m.clientName||""):_.localeCompare(x)})},enabled:!!t,refetchInterval:3e4})}function bbe({portalId:t,clientName:e,agentName:r,agentAvatar:n,deviceFingerprint:i}){const{data:a,isLoading:c}=btt(t),s=wtt(),[f,m]=P.useState(""),x=`portal_msg_name_${t}`,[_,T]=P.useState(()=>localStorage.getItem(x)||e||""),E=P.useRef(null);P.useEffect(()=>{var L;(L=E.current)==null||L.scrollIntoView({block:"nearest"})},[a==null?void 0:a.length]);const C=async()=>{const L=f.trim();if(!L)return;const M=(_||e||"").trim();if(!M){Jt.error("Please add your name first");return}try{localStorage.setItem(x,M),await s.mutateAsync({portalId:t,senderType:"client",senderName:M,body:L,deviceFingerprint:i,portalUrl:window.location.href}),m(""),Jt.success("Message sent")}catch(D){Jt.error((D==null?void 0:D.message)||"Could not send your message")}},N="hsl(var(--portal-gold))";return o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(rp,{className:"w-4 h-4",style:{color:N}}),o.jsx("h2",{className:"portal-serif",style:{fontSize:"1.35rem",color:"hsl(var(--portal-ink))"},children:"Messages"})]}),o.jsx("div",{className:"portal-hairline mb-4"}),o.jsxs("div",{className:"space-y-3 max-h-[340px] overflow-y-auto pr-1",children:[c&&o.jsx("div",{className:"flex justify-center py-6",children:o.jsx(ku,{className:"w-4 h-4 animate-spin",style:{color:N}})}),!c&&(!a||a.length===0)&&o.jsxs("p",{className:"text-sm",style:{color:"hsl(var(--portal-ink-muted))"},children:["Have a question for ",r||"your agent","? Send a message below — they'll be notified right away."]}),a==null?void 0:a.map(L=>{const M=L.sender_type==="agent";return o.jsx("div",{className:`flex ${M?"justify-start":"justify-end"}`,children:o.jsxs("div",{className:"max-w-[85%] rounded-2xl px-4 py-3",style:{background:M?"hsl(var(--portal-surface-2))":"hsl(var(--portal-gold) / 0.12)",border:`1px solid ${M?"hsl(var(--portal-gold) / 0.12)":"hsl(var(--portal-gold) / 0.28)"}`},children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[M&&n&&o.jsx("img",{src:n,alt:r||"Agent",className:"w-5 h-5 rounded-full object-cover"}),o.jsxs("span",{className:"text-[11px] uppercase tracking-[0.14em]",style:{color:"hsl(var(--portal-ink-dim))"},children:[M?r||"Your agent":L.sender_name||"You"," ·"," ",Di(new Date(L.created_at),"MMM d, h:mm a")]})]}),o.jsx("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",style:{color:"hsl(var(--portal-ink))"},children:L.body})]})},L.id)}),o.jsx("div",{ref:E})]}),o.jsxs("div",{className:"mt-4 space-y-2",children:[!e&&o.jsx("input",{value:_,onChange:L=>T(L.target.value),placeholder:"Your name",className:"w-full rounded-xl px-3 py-2 text-sm outline-none",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.18)",color:"hsl(var(--portal-ink))"}}),o.jsx("textarea",{value:f,onChange:L=>m(L.target.value),rows:3,placeholder:`Write a message to ${r||"your agent"}...`,className:"w-full rounded-xl px-3 py-2 text-sm outline-none resize-none",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.18)",color:"hsl(var(--portal-ink))"}}),o.jsxs("button",{onClick:C,disabled:s.isPending||!f.trim(),className:"w-full flex items-center justify-center gap-2 rounded-xl py-2.5 text-sm font-medium transition-opacity disabled:opacity-50",style:{background:"hsl(var(--portal-gold) / 0.16)",border:"1px solid hsl(var(--portal-gold) / 0.35)",color:N},children:[s.isPending?o.jsx(ku,{className:"w-4 h-4 animate-spin"}):o.jsx(SL,{className:"w-4 h-4"}),"Send message"]})]})]})}function Stt(t){return t==="buy-side"?"Home Search in Progress":t==="listing"?"Your Home Is On The Market":"Active Phase"}function Ttt(t){return t==="buy-side"?"We're actively searching for homes that match your criteria.":t==="listing"?"Your property is now being marketed to potential buyers.":"Your transaction is actively moving forward."}const Ett={Lead:{label:"Getting Started",description:"We're beginning your home journey and preparing the next steps."},Consultation:{label:"Planning Your Move",description:"We're discussing your goals and building a plan for buying or selling."},"Agreement Signed":{label:"Officially Working Together",description:"We've signed the agreement and are moving forward together."},"Under Contract":{label:"Under Contract",description:"Your offer has been accepted and we are now moving through inspections and due diligence."},Closing:{label:"Final Steps to Closing",description:"We're finalizing documents and preparing for closing day."},"Closed Won":{label:"Closing Day",description:"Congratulations! Your transaction is complete. 🎉"}},wbe=["Lead","Consultation","Agreement Signed","Active","Under Contract","Closing","Closed Won"];function Sbe(t){return wbe.map(e=>{if(e==="Active")return{key:"Active",label:Stt(t),description:Ttt(t)};const r=Ett[e];return{key:e,label:r.label,description:r.description}})}function hD(t){if(!t)return 0;const e=wbe.indexOf(t);return e>=0?e:0}function Att({portal:t,linkedPortal:e,activePortal:r,activeTab:n,onTabChange:i,agentProfile:a,branding:c,updates:s,documents:f}){var Oe,Ae,Se;const m=(c==null?void 0:c.cover_photo_url)||null,x=(c==null?void 0:c.logo_url)||null,_=(c==null?void 0:c.tagline)||"Your Real Estate Concierge",T=r==null?void 0:r.deal_pipeline,E=T==null?void 0:T.deal_pipeline_stages,C=E==null?void 0:E.is_won_stage,N=T==null?void 0:T.deal_type,L=r==null?void 0:r.stage_mapping;let M=Sbe(N);L&&L.length>0&&(M=L.map((ge,je)=>{var _e,xe;return{key:`custom-${je}`,label:ge.label||((_e=M[je])==null?void 0:_e.label)||`Stage ${je+1}`,description:ge.description||((xe=M[je])==null?void 0:xe.description)||"",video_url:ge.video_url||void 0}}));const D=L&&L.length>0?Math.min(hD(E==null?void 0:E.name),M.length-1):hD(E==null?void 0:E.name),B=M[D],V=B==null?void 0:B.video_url,G=C&&r.show_post_close_tips!==!1&&r.referral_enabled!==!1,W=T!=null&&T.property_address?`${T.property_address}, ${T.city||""}, ${T.state||""}`.replace(/,\s*,/g,",").replace(/,\s*$/,""):null,Z=!!e,Q=(Oe=t==null?void 0:t.deal_pipeline)==null?void 0:Oe.deal_type,se=(Ae=e==null?void 0:e.deal_pipeline)==null?void 0:Ae.deal_type,ie=ge=>ge==="listing"?"Your Sale":ge==="buy-side"?"Your Purchase":"Transaction",ue=M.length>1?Math.round((D+1)/M.length*100):0,{data:be=[]}=xbe({id:r==null?void 0:r.id,owner_user_id:r==null?void 0:r.owner_user_id}),Te=be.some(ge=>!ge.stage_filter||ge.stage_filter.length===0||!(E!=null&&E.name)?!0:ge.stage_filter.includes(E.name)),we=()=>{var ge;(ge=document.getElementById("trusted-vendors"))==null||ge.scrollIntoView({behavior:"smooth",block:"start"})};return o.jsxs("div",{className:"min-h-screen relative",style:{background:"var(--portal-gradient-noir)"},children:[o.jsx("div",{className:"pointer-events-none absolute inset-x-0 top-0 h-[600px] opacity-70",style:{background:"radial-gradient(ellipse 70% 100% at 50% 0%, hsl(var(--portal-gold) / 0.08), transparent 60%)"}}),o.jsxs("div",{className:"relative max-w-[1400px] mx-auto px-8 py-8",children:[o.jsxs(hr.div,{initial:{opacity:0,y:-6},animate:{opacity:1,y:0},transition:{duration:.4},className:"flex items-center justify-between mb-8",children:[o.jsxs("div",{className:"flex items-center gap-4",children:[x?o.jsx("div",{className:"rounded-lg px-3 py-1.5",style:{background:"hsl(0 0% 100% / 0.04)",border:"1px solid hsl(var(--portal-gold) / 0.2)"},children:o.jsx("img",{src:x,alt:"Brand",className:"h-8 max-w-[140px] object-contain"})}):o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center portal-serif text-xl",style:{background:"var(--portal-gradient-gold)",color:"hsl(var(--portal-bg))"},children:"✦"}),o.jsxs("div",{children:[o.jsx("p",{className:"portal-eyebrow",children:"Private Client Portal"}),o.jsx("p",{className:"portal-serif mt-0.5",style:{fontSize:"1.1rem",color:"hsl(var(--portal-ink))"},children:r!=null&&r.client_name?`Welcome, ${r.client_name.split(" ")[0]}`:"Your transaction"})]})]}),o.jsxs("div",{className:"flex items-center gap-2 text-[10px] tracking-[0.22em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:[o.jsx(WA,{className:"w-3 h-3",style:{color:"hsl(var(--portal-gold))"}}),"Secure & Encrypted"]})]}),o.jsxs(hr.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.6,ease:"easeOut"},className:"relative overflow-hidden rounded-3xl mb-8",style:{minHeight:380,border:"1px solid hsl(var(--portal-gold) / 0.25)",boxShadow:"var(--portal-shadow-luxe)"},children:[m?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"absolute inset-0",style:{backgroundImage:`url(${m})`,backgroundSize:"cover",backgroundPosition:"center",filter:"var(--portal-hero-filter)"}}),o.jsx("div",{className:"absolute inset-0",style:{background:"var(--portal-hero-scrim)"}})]}):o.jsx("div",{className:"absolute inset-0",style:{background:"var(--portal-hero-fallback)"}}),o.jsx("div",{className:"absolute top-0 left-0 right-0 h-[1px]",style:{background:"linear-gradient(90deg, transparent, hsl(var(--portal-gold) / 0.6), transparent)"}}),o.jsxs("div",{className:"relative grid grid-cols-3 gap-8 p-12",children:[o.jsxs("div",{className:"col-span-2 flex flex-col justify-end",children:[o.jsxs("div",{className:"inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-[10px] tracking-[0.22em] uppercase mb-6 self-start",style:{background:"hsl(0 0% 0% / 0.28)",backdropFilter:"blur(6px)",border:"1px solid var(--portal-hero-accent)",color:"var(--portal-hero-accent)"},children:[o.jsx(Ma,{className:"w-3 h-3"}),N==="listing"?"Sale":N==="buy-side"?"Purchase":"Transaction",C&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"opacity-50 mx-1",children:"·"}),"Complete"]})]}),o.jsx("h1",{className:"portal-serif leading-[0.95] mb-4",style:{fontSize:"4.5rem",color:"var(--portal-hero-ink)",textShadow:"var(--portal-hero-text-shadow)"},children:(T==null?void 0:T.deal_name)||"Your Transaction"}),o.jsx("div",{className:"portal-hairline w-32 mb-5"}),W&&o.jsxs("div",{className:"flex items-center gap-2",style:{color:"var(--portal-hero-ink-muted)",textShadow:"var(--portal-hero-text-shadow)"},children:[o.jsx(ga,{className:"w-4 h-4",style:{color:"var(--portal-hero-accent)"}}),o.jsx("span",{className:"text-base",children:W})]}),(r==null?void 0:r.welcome_message)&&o.jsxs("p",{className:"mt-6 portal-serif italic leading-relaxed max-w-2xl",style:{color:"var(--portal-hero-ink-muted)",fontSize:"1.15rem",textShadow:"var(--portal-hero-text-shadow)"},children:["“",r.welcome_message,"”"]})]}),o.jsxs("div",{className:"flex flex-col items-center justify-center",children:[o.jsx(ktt,{pct:ue}),o.jsx("p",{className:"portal-eyebrow mt-4",style:{color:"var(--portal-hero-accent)"},children:"Journey Progress"}),o.jsxs("p",{className:"portal-serif mt-1",style:{fontSize:"1.1rem",color:"var(--portal-hero-ink)",textShadow:"var(--portal-hero-text-shadow)"},children:["Stage ",D+1," of ",M.length]})]})]}),o.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[1px]",style:{background:"linear-gradient(90deg, transparent, hsl(var(--portal-gold) / 0.4), transparent)"}})]}),Z&&o.jsx("div",{className:"inline-flex gap-1 rounded-xl p-1 mb-8",style:{background:"hsl(var(--portal-surface))",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:["primary","linked"].map(ge=>{const je=ge==="primary"?Q:se,_e=n===ge;return o.jsx("button",{onClick:()=>i(ge),className:"portal-serif px-5 py-2 rounded-lg transition-all",style:{fontSize:"1rem",background:_e?"hsl(var(--portal-surface-3))":"transparent",color:_e?"hsl(var(--portal-gold))":"hsl(var(--portal-ink-muted))",borderBottom:_e?"1px solid hsl(var(--portal-gold))":"1px solid transparent"},children:ie(je)},ge)})}),o.jsxs(hr.div,{initial:"hidden",animate:"show",variants:{hidden:{},show:{transition:{staggerChildren:.06}}},className:"grid grid-cols-12 gap-5",children:[o.jsx("aside",{className:"col-span-3 space-y-5",children:o.jsxs("div",{className:"sticky top-6 space-y-5",children:[o.jsxs(kf,{children:[o.jsxs("div",{className:"text-center pt-2 pb-1",children:[a!=null&&a.avatar_url?o.jsx("div",{className:"w-24 h-24 mx-auto relative",children:o.jsx("div",{className:"absolute inset-0 rounded-full",style:{background:"var(--portal-gradient-gold)",padding:"2px"},children:o.jsx("img",{src:a.avatar_url,alt:a.name,className:"w-full h-full rounded-full object-cover",style:{background:"hsl(var(--portal-surface))"}})})}):o.jsx("div",{className:"w-24 h-24 rounded-full mx-auto flex items-center justify-center portal-serif text-3xl",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.4)",color:"hsl(var(--portal-gold))"},children:((Se=a==null?void 0:a.name)==null?void 0:Se.charAt(0))||"?"}),o.jsx("h3",{className:"mt-4 portal-serif",style:{fontSize:"1.5rem",color:"hsl(var(--portal-ink))"},children:a==null?void 0:a.name}),o.jsx("div",{className:"portal-hairline w-12 mx-auto my-2"}),o.jsx("p",{className:"text-[10px] tracking-[0.22em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:_})]}),o.jsxs("div",{className:"mt-5 space-y-2",children:[(a==null?void 0:a.phone)&&o.jsx(sz,{href:`tel:${a.phone}`,icon:Ui,label:"Call",sub:a.phone}),(a==null?void 0:a.phone)&&o.jsx(sz,{href:`sms:${a.phone}`,icon:u1,label:"Text message"}),(a==null?void 0:a.email)&&o.jsx(sz,{href:`mailto:${a.email}`,icon:$i,label:"Email",sub:a.email})]})]}),o.jsxs(kf,{children:[o.jsx("p",{className:"portal-eyebrow mb-4",children:"At a Glance"}),o.jsxs("div",{className:"space-y-4",children:[(T==null?void 0:T.target_close_date)&&o.jsx(az,{icon:fo,label:"Target close",value:lne(T.target_close_date)}),(T==null?void 0:T.contract_date)&&o.jsx(az,{icon:pc,label:"Under contract",value:lne(T.contract_date)}),o.jsx(az,{icon:Yd,label:"Progress",value:`${ue}%`})]})]})]})}),o.jsxs("main",{className:"col-span-6 space-y-5",children:[G&&o.jsx(vbe,{portalId:r.id,portalSlug:r.slug,ownerUserId:r.owner_user_id,rewardText:r.referral_reward_text,ctaHeadline:r.referral_cta_headline,agentName:a==null?void 0:a.name,clientName:r.client_name,reviewUrl:r.review_url,hubVideoUrl:r.homeowner_hub_video_url}),o.jsx(dbe,{targetCloseDate:T==null?void 0:T.target_close_date,actualCloseDate:T==null?void 0:T.actual_close_date,clientName:r.client_name}),B&&o.jsx(kf,{children:o.jsx(fbe,{currentStage:B,nextStepText:r.next_step_text,nextStepVideoUrl:V||r.next_step_video_url})}),o.jsx(kf,{children:o.jsx(hbe,{journeyStages:M,currentIndex:D})}),s&&s.length>0&&o.jsx(kf,{children:o.jsx(ybe,{updates:s})}),(r==null?void 0:r.id)&&o.jsx(kf,{children:o.jsx(bbe,{portalId:r.id,clientName:r.client_name,agentName:a==null?void 0:a.name,agentAvatar:a==null?void 0:a.avatar_url})})]}),o.jsxs("aside",{className:"col-span-3 space-y-5",children:[o.jsx(kf,{children:o.jsx(pbe,{deal:T,portal:r})}),(r==null?void 0:r.slug)&&o.jsx(gbe,{slug:r.slug,wrapper:ge=>o.jsx(kf,{children:ge})}),f&&f.length>0&&o.jsx(kf,{children:o.jsx(mbe,{documents:f})}),Te&&o.jsx(kf,{children:o.jsxs("button",{onClick:we,className:"w-full flex items-center gap-3 rounded-xl px-3 py-3 transition-all text-left group",style:{background:"hsl(var(--portal-gold) / 0.06)",border:"1px solid hsl(var(--portal-gold) / 0.2)"},onMouseEnter:ge=>{ge.currentTarget.style.background="hsl(var(--portal-gold) / 0.12)"},onMouseLeave:ge=>{ge.currentTarget.style.background="hsl(var(--portal-gold) / 0.06)"},children:[o.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center shrink-0",style:{background:"hsl(var(--portal-gold) / 0.15)",color:"hsl(var(--portal-gold))"},children:o.jsx(Vhe,{className:"w-4 h-4"})}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:"portal-serif",style:{fontSize:"1.05rem",color:"hsl(var(--portal-ink))"},children:"Trusted Vendors"}),o.jsx("p",{className:"text-[10px] tracking-[0.2em] uppercase mt-0.5",style:{color:"hsl(var(--portal-ink-dim))"},children:"My hand-picked network"})]}),o.jsx(Yd,{className:"w-4 h-4",style:{color:"hsl(var(--portal-gold))"}})]})}),o.jsxs("div",{className:"text-center pt-2 space-y-2",children:[o.jsx("div",{className:"portal-hairline w-12 mx-auto"}),o.jsx("p",{className:"text-[10px] tracking-[0.25em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:"Powered by ReLevelUp"})]})]})]}),(r==null?void 0:r.id)&&(r==null?void 0:r.owner_user_id)&&o.jsx("div",{id:"trusted-vendors",className:"mt-8 scroll-mt-10",children:o.jsx(_be,{portalId:r.id,ownerUserId:r.owner_user_id,currentStage:E==null?void 0:E.name,brandingColor:"hsl(var(--portal-gold))",layout:"grid"})})]})]})}function kf({children:t}){return o.jsx(hr.div,{variants:{hidden:{opacity:0,y:10},show:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},className:"portal-tile p-6",children:t})}function sz({href:t,icon:e,label:r,sub:n}){return o.jsxs("a",{href:t,className:"flex items-center gap-3 rounded-xl px-3 py-2.5 transition-all",style:{background:"hsl(var(--portal-gold) / 0.05)",border:"1px solid hsl(var(--portal-gold) / 0.12)"},onMouseEnter:i=>{i.currentTarget.style.background="hsl(var(--portal-gold) / 0.1)",i.currentTarget.style.borderColor="hsl(var(--portal-gold) / 0.3)"},onMouseLeave:i=>{i.currentTarget.style.background="hsl(var(--portal-gold) / 0.05)",i.currentTarget.style.borderColor="hsl(var(--portal-gold) / 0.12)"},children:[o.jsx("div",{className:"w-9 h-9 rounded-lg flex items-center justify-center shrink-0",style:{background:"hsl(var(--portal-gold) / 0.15)",color:"hsl(var(--portal-gold))"},children:o.jsx(e,{className:"w-4 h-4"})}),o.jsxs("div",{className:"min-w-0 text-left",children:[o.jsx("p",{className:"text-sm portal-serif",style:{color:"hsl(var(--portal-ink))",fontSize:"1rem"},children:r}),n&&o.jsx("p",{className:"text-[10px] tracking-[0.15em] uppercase truncate mt-0.5",style:{color:"hsl(var(--portal-ink-dim))"},children:n})]})]})}function az({icon:t,label:e,value:r}){return o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center shrink-0",style:{background:"hsl(var(--portal-gold) / 0.1)",color:"hsl(var(--portal-gold))"},children:o.jsx(t,{className:"w-4 h-4"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-[10px] tracking-[0.2em] uppercase",style:{color:"hsl(var(--portal-ink-dim))"},children:e}),o.jsx("p",{className:"portal-serif truncate",style:{fontSize:"1.05rem",color:"hsl(var(--portal-ink))"},children:r})]})]})}function ktt({pct:t}){const i=2*Math.PI*78,a=i-t/100*i;return o.jsxs("div",{className:"relative",style:{width:170,height:170},children:[o.jsxs("svg",{width:170,height:170,className:"-rotate-90",children:[o.jsx("defs",{children:o.jsxs("linearGradient",{id:"portal-progress-gold",x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[o.jsx("stop",{offset:"0%",stopColor:"var(--portal-hero-accent)"}),o.jsx("stop",{offset:"100%",stopColor:"var(--portal-hero-ink)"})]})}),o.jsx("circle",{cx:170/2,cy:170/2,r:78,stroke:"hsl(0 0% 100% / 0.22)",strokeWidth:2,fill:"none"}),o.jsx(hr.circle,{cx:170/2,cy:170/2,r:78,stroke:"url(#portal-progress-gold)",strokeWidth:3,strokeLinecap:"round",fill:"none",initial:{strokeDashoffset:i},animate:{strokeDashoffset:a},transition:{duration:1.4,ease:"easeOut"},strokeDasharray:i,style:{filter:"drop-shadow(0 0 6px hsl(0 0% 0% / 0.45))"}})]}),o.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:[o.jsx("span",{className:"portal-serif tabular-nums leading-none",style:{fontSize:"3rem",color:"var(--portal-hero-ink)",textShadow:"var(--portal-hero-text-shadow)"},children:t}),o.jsx("span",{className:"text-[10px] tracking-[0.25em] uppercase mt-1",style:{color:"var(--portal-hero-ink-dim)",textShadow:"var(--portal-hero-text-shadow)"},children:"percent"})]})]})}function lne(t){const e=t.split(/[-/T]/),r=new Date(Number(e[0]),Number(e[1])-1,Number(e[2]));return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:"America/New_York"}).format(r)}function Ctt({portal:t,dealData:e,agentProfile:r,customQuestions:n,deviceFingerprint:i,onComplete:a}){var L,M;const[c,s]=P.useState({first_name:((L=t.client_name)==null?void 0:L.split(" ")[0])||"",last_name:((M=t.client_name)==null?void 0:M.split(" ").slice(1).join(" "))||"",email:t.client_email||"",phone:t.client_phone||"",preferred_contact_method:"email",client_role:"buyer",notes:"",spouse_first_name:"",spouse_last_name:"",spouse_email:"",spouse_phone:""}),[f,m]=P.useState({}),[x,_]=P.useState(!1),T=kr({mutationFn:async()=>{const{error:D}=await De.from("portal_onboarding_submissions").insert({portal_id:t.id,first_name:c.first_name,last_name:c.last_name||null,email:c.email||null,phone:c.phone||null,preferred_contact_method:c.preferred_contact_method,client_role:c.client_role,notes:c.notes||null,device_fingerprint:i,custom_answers:Object.keys(f).length>0?f:null,spouse_first_name:x&&c.spouse_first_name||null,spouse_last_name:x&&c.spouse_last_name||null,spouse_email:x&&c.spouse_email||null,spouse_phone:x&&c.spouse_phone||null});if(D)throw D},onSuccess:a,onError:D=>{console.error("[PortalOnboarding] Submit failed:",D),Jt.error("Something went wrong. Please try again.")}}),E=e!=null&&e.property_address?`${e.property_address}, ${e.city||""}, ${e.state||""}`:null,C="mt-1 rounded-xl bg-white text-slate-900 placeholder:text-slate-400 border-slate-200 focus-visible:ring-slate-400",N="mt-1 w-full rounded-xl border border-slate-200 bg-white text-slate-900 placeholder:text-slate-400 px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-400";return o.jsx("div",{className:"max-w-md mx-auto px-4 py-10",children:o.jsxs("div",{className:"bg-white rounded-2xl shadow-xl ring-1 ring-slate-200 p-6 sm:p-8",children:[o.jsxs("div",{className:"text-center mb-8",children:[(r==null?void 0:r.avatar_url)&&o.jsx("img",{src:r.avatar_url,alt:r.name,className:"w-16 h-16 rounded-full border-2 border-slate-200 mx-auto mb-3 object-cover"}),o.jsx("h1",{className:"text-2xl font-bold text-slate-900",children:"Welcome to Your Portal"}),E&&o.jsxs("div",{className:"flex items-center justify-center gap-1 text-slate-500 text-sm mt-1",children:[o.jsx(ga,{className:"w-3.5 h-3.5"}),o.jsx("span",{children:E.replace(/,\s*,/g,",").replace(/,\s*$/,"")})]}),o.jsx("p",{className:"text-sm text-slate-600 mt-2",children:"Please fill in your details to access your transaction portal."})]}),o.jsxs("form",{onSubmit:D=>{D.preventDefault(),T.mutate()},className:"space-y-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"First Name *"}),o.jsx(Hr,{required:!0,value:c.first_name,onChange:D=>s(B=>({...B,first_name:D.target.value})),className:C,placeholder:"John"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Last Name"}),o.jsx(Hr,{value:c.last_name,onChange:D=>s(B=>({...B,last_name:D.target.value})),className:C,placeholder:"Doe"})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Email"}),o.jsx(Hr,{type:"email",value:c.email,onChange:D=>s(B=>({...B,email:D.target.value})),className:C,placeholder:"john@example.com"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Phone"}),o.jsx(Hr,{type:"tel",value:c.phone,onChange:D=>s(B=>({...B,phone:D.target.value})),className:C,placeholder:"(555) 123-4567"})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Preferred Contact Method"}),o.jsx("div",{className:"flex gap-2 mt-1.5",children:[{value:"email",label:"Email"},{value:"call",label:"Phone"},{value:"text",label:"Text"}].map(D=>o.jsx("button",{type:"button",onClick:()=>s(B=>({...B,preferred_contact_method:D.value})),className:`px-3.5 py-1.5 rounded-full text-xs font-medium border transition-colors ${c.preferred_contact_method===D.value?"bg-slate-800 text-white border-slate-800":"bg-white text-slate-600 border-slate-200 hover:border-slate-300"}`,children:D.label},D.value))})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Your Role"}),o.jsx("div",{className:"flex gap-2 mt-1.5",children:["buyer","seller","both"].map(D=>o.jsx("button",{type:"button",onClick:()=>s(B=>({...B,client_role:D})),className:`px-3.5 py-1.5 rounded-full text-xs font-medium border transition-colors ${c.client_role===D?"bg-slate-800 text-white border-slate-800":"bg-white text-slate-600 border-slate-200 hover:border-slate-300"}`,children:D.charAt(0).toUpperCase()+D.slice(1)},D))})]}),n.map(D=>o.jsxs("div",{children:[o.jsxs(Fr,{className:"text-xs font-medium text-slate-700",children:[D.question_text," ",D.is_required&&"*"]}),D.field_type==="text"&&o.jsx(Hr,{required:D.is_required,value:f[D.id]||"",onChange:B=>m(V=>({...V,[D.id]:B.target.value})),className:C}),D.field_type==="textarea"&&o.jsx("textarea",{required:D.is_required,value:f[D.id]||"",onChange:B=>m(V=>({...V,[D.id]:B.target.value})),className:`${N} min-h-[80px]`}),D.field_type==="dropdown"&&o.jsxs("select",{required:D.is_required,value:f[D.id]||"",onChange:B=>m(V=>({...V,[D.id]:B.target.value})),className:`${N} h-10`,children:[o.jsx("option",{value:"",children:"Select..."}),(D.options||[]).map(B=>o.jsx("option",{value:B,children:B},B))]}),D.field_type==="toggle"&&o.jsx("div",{className:"mt-1.5 flex gap-2",children:["Yes","No"].map(B=>o.jsx("button",{type:"button",onClick:()=>m(V=>({...V,[D.id]:B})),className:`px-3.5 py-1.5 rounded-full text-xs font-medium border transition-colors ${f[D.id]===B?"bg-slate-800 text-white border-slate-800":"bg-white text-slate-600 border-slate-200"}`,children:B},B))})]},D.id)),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Notes for your agent"}),o.jsx("textarea",{value:c.notes,onChange:D=>s(B=>({...B,notes:D.target.value})),className:`${N} min-h-[60px]`,placeholder:"Anything you'd like your agent to know..."})]}),t.allow_spouse&&o.jsxs("div",{children:[o.jsx("button",{type:"button",onClick:()=>_(!x),className:"text-sm text-blue-600 hover:text-blue-700 font-medium",children:x?"− Remove spouse/partner":"+ Add spouse/partner"}),x&&o.jsxs("div",{className:"mt-3 p-4 bg-slate-50 rounded-xl border border-slate-200 space-y-3",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"First Name"}),o.jsx(Hr,{value:c.spouse_first_name,onChange:D=>s(B=>({...B,spouse_first_name:D.target.value})),className:C})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Last Name"}),o.jsx(Hr,{value:c.spouse_last_name,onChange:D=>s(B=>({...B,spouse_last_name:D.target.value})),className:C})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Email"}),o.jsx(Hr,{type:"email",value:c.spouse_email,onChange:D=>s(B=>({...B,spouse_email:D.target.value})),className:C})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs font-medium text-slate-700",children:"Phone"}),o.jsx(Hr,{type:"tel",value:c.spouse_phone,onChange:D=>s(B=>({...B,spouse_phone:D.target.value})),className:C})]})]})]}),o.jsx(Kt,{type:"submit",disabled:T.isPending||!c.first_name,className:"w-full h-12 rounded-full text-sm font-semibold bg-slate-900 hover:bg-slate-800",children:T.isPending?"Submitting...":"Access My Portal"})]})]})})}function Itt(t,e){const r=(n,i)=>i!=null&&i!==""?i:n!=null&&n!==""?n:null;return{logo_url:r(t==null?void 0:t.logo_url,e==null?void 0:e.logo_url),cover_photo_url:r(t==null?void 0:t.cover_photo_url,e==null?void 0:e.cover_photo_url),brand_color:r(t==null?void 0:t.brand_color,e==null?void 0:e.brand_color),accent_color:r(t==null?void 0:t.accent_color,e==null?void 0:e.accent_color),tagline:r(t==null?void 0:t.tagline,e==null?void 0:e.tagline),welcome_message:r(t==null?void 0:t.welcome_message,e==null?void 0:e.welcome_message),portal_theme:r(t==null?void 0:t.portal_theme,e==null?void 0:e.portal_theme)||"noir"}}function L6t(){const t=es();return br({queryKey:["agent-portal-branding",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("agent_portal_branding").select("*").eq("user_id",t).maybeSingle();if(r)throw r;return e},enabled:!!t})}function jtt(t){return br({queryKey:["agent-portal-branding-public",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("agent_portal_branding").select("logo_url, cover_photo_url, brand_color, accent_color, tagline, welcome_message, portal_theme").eq("user_id",t).maybeSingle();if(r)throw r;return e},enabled:!!t})}function D6t(){const t=es(),e=Ir();return kr({mutationFn:async r=>{if(!t)throw new Error("Not authenticated");const{data:n,error:i}=await De.from("agent_portal_branding").upsert({user_id:t,...r},{onConflict:"user_id"}).select().single();if(i)throw i;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["agent-portal-branding",t]}),e.invalidateQueries({queryKey:["agent-portal-branding-public",t]})}})}async function M6t(t,e,r){var s;const n=((s=e.name.split(".").pop())==null?void 0:s.toLowerCase())||"png",i=`${t}/${r}-${Date.now()}.${n}`,{error:a}=await De.storage.from("portal-branding").upload(i,e,{upsert:!0,cacheControl:"3600"});if(a)throw a;const{data:c}=De.storage.from("portal-branding").getPublicUrl(i);return c.publicUrl}function Ptt(t,e){return br({queryKey:["client-portal-public",t],queryFn:async()=>{if(!t)return null;const{data:r,error:n}=await De.from("client_portals").select(` *, deal_pipeline ( id, deal_name, property_address, city, state, deal_type, target_close_date, contract_date, expected_price, actual_close_date, earnest_money_due_date, inspection_date, inspection_contingency_date, appraisal_date, loan_approval_date, title_docs_due_date, final_walkthrough_date, completed_key_dates, stage_id, owner_user_id, deal_pipeline_stages (id, name, color, icon, sort_order, is_won_stage, is_lost_stage) ) `).eq("slug",t).eq("is_enabled",!0).maybeSingle();if(n)throw n;return r},enabled:e})}function Ntt(t){return br({queryKey:["client-portal-by-id",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("client_portals").select(` *, deal_pipeline ( id, deal_name, property_address, city, state, deal_type, target_close_date, contract_date, expected_price, actual_close_date, earnest_money_due_date, inspection_date, inspection_contingency_date, appraisal_date, loan_approval_date, title_docs_due_date, final_walkthrough_date, completed_key_dates, stage_id, owner_user_id, deal_pipeline_stages (id, name, color, icon, sort_order, is_won_stage, is_lost_stage) ) `).eq("id",t).eq("is_enabled",!0).maybeSingle();if(r)throw r;return e},enabled:!!t})}function Rtt({slug:t}){var ge,je,_e,xe,Pe,Ze;const[e,r]=P.useState(!1),[n,i]=P.useState("primary"),[a]=P.useState(()=>{const at=`portal_fp_${t}`;let lt=localStorage.getItem(at);return lt||(lt=localStorage.getItem("portal_fp"),lt?localStorage.setItem(at,lt):(lt=crypto.randomUUID(),localStorage.setItem(at,lt),localStorage.setItem("portal_fp",lt))),lt});P.useEffect(()=>(document.body.classList.add("client-portal-page"),()=>document.body.classList.remove("client-portal-page")),[]);const{data:c,isLoading:s,error:f}=Ptt(t,!0),m=c==null?void 0:c.linked_portal_id,{data:x}=Ntt(m),_=(ge=c==null?void 0:c.deal_pipeline)==null?void 0:ge.owner_user_id;br({queryKey:["portal-stages",_],queryFn:async()=>{const{data:at,error:lt}=await De.from("deal_pipeline_stages").select("*").eq("owner_user_id",_).order("sort_order",{ascending:!0});if(lt)throw lt;return at},enabled:!!_});const{data:T}=br({queryKey:["portal-agent",_],queryFn:async()=>{const{data:at,error:lt}=await De.from("profiles").select("id, name, avatar_url, phone, email").eq("id",_).single();if(lt)throw lt;return at},enabled:!!_}),{data:E}=jtt(_),C=n==="linked"&&x?x:c,N=C==null?void 0:C.id,L=Itt(E,C==null?void 0:C.branding_override),M=L.portal_theme==="azure"?"azure":"noir";P.useEffect(()=>{const at=`portal-theme-${M}`;return document.body.classList.add(at),()=>document.body.classList.remove(at)},[M]);const{data:D}=br({queryKey:["portal-updates-public",N],queryFn:async()=>{const{data:at,error:lt}=await De.from("portal_updates").select("*").eq("portal_id",N).order("created_at",{ascending:!1});if(lt)throw lt;return at},enabled:!!N}),B=(je=C==null?void 0:C.deal_pipeline)==null?void 0:je.id,{data:V}=br({queryKey:["portal-documents",B],queryFn:async()=>{const{data:at,error:lt}=await De.from("deal_files").select("*").eq("deal_id",B).eq("visible_on_portal",!0).order("created_at",{ascending:!1});if(lt)throw lt;return at},enabled:!!B}),G=c==null?void 0:c.id,W=G?`portal_onboarded_${G}_${a}`:null,Z=W?localStorage.getItem(W)==="1":!1,{data:Q,isLoading:se}=br({queryKey:["portal-onboarding-check",G,a],queryFn:async()=>{const{data:at,error:lt}=await De.from("portal_onboarding_submissions").select("id").eq("portal_id",G).eq("device_fingerprint",a).maybeSingle();if(lt)throw lt;return at&&W&&localStorage.setItem(W,"1"),at},enabled:!!G&&!!(c!=null&&c.require_onboarding)&&!Z,staleTime:5*60*1e3}),ie=!!(c!=null&&c.require_onboarding)&&!Z&&!Q&&!e,{data:ue}=br({queryKey:["portal-custom-questions-public",_],queryFn:async()=>{const{data:at,error:lt}=await De.from("portal_custom_questions").select("*").eq("owner_user_id",_).eq("is_active",!0).order("sort_order",{ascending:!0});if(lt)throw lt;return at},enabled:!!_&&ie}),be=Z||!!Q||e||!(c!=null&&c.require_onboarding);if(s||c!=null&&c.require_onboarding&&!Z&&se)return o.jsx("div",{className:"min-h-screen flex items-center justify-center",style:{background:"hsl(var(--portal-bg))"},children:o.jsx(ku,{className:"w-6 h-6 animate-spin",style:{color:"hsl(var(--portal-gold))"}})});if(f||!c)return o.jsx("div",{className:"min-h-screen flex items-center justify-center p-6",style:{background:"var(--portal-gradient-noir)"},children:o.jsxs("div",{className:"text-center max-w-md",children:[o.jsx("div",{className:"w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-6",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.3)"},children:o.jsx(WA,{className:"w-6 h-6",style:{color:"hsl(var(--portal-gold))"}})}),o.jsx("h1",{className:"portal-serif text-4xl mb-3",style:{color:"hsl(var(--portal-ink))"},children:"Portal Not Available"}),o.jsx("div",{className:"portal-hairline mx-auto w-24 mb-4"}),o.jsx("p",{className:"text-sm",style:{color:"hsl(var(--portal-ink-muted))"},children:"This portal is no longer active or doesn't exist."})]})});if(!be){const at=c==null?void 0:c.deal_pipeline;return o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-slate-100",children:o.jsx(Ctt,{portal:c,dealData:at,agentProfile:T,customQuestions:ue||[],deviceFingerprint:a,onComplete:()=>{W&&localStorage.setItem(W,"1"),r(!0)}})})}const Te=(_e=c==null?void 0:c.deal_pipeline)==null?void 0:_e.deal_type,we=(xe=x==null?void 0:x.deal_pipeline)==null?void 0:xe.deal_type,Oe=!!x,Ae=at=>at==="listing"?"Your Sale":at==="buy-side"?"Your Purchase":"Transaction",Se=at=>at==="listing"?o.jsx(Ma,{className:"w-3.5 h-3.5"}):o.jsx(Dhe,{className:"w-3.5 h-3.5"});return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden lg:block",children:o.jsx(Att,{portal:c,linkedPortal:x,activePortal:C,activeTab:n,onTabChange:i,agentProfile:T,branding:L,updates:D,documents:V})}),o.jsxs("div",{className:"lg:hidden min-h-screen pb-16",style:{background:"var(--portal-gradient-noir)"},children:[o.jsx(ptt,{dealData:C==null?void 0:C.deal_pipeline,agentProfile:T,welcomeMessage:(C==null?void 0:C.welcome_message)||L.welcome_message,isWon:(Ze=(Pe=C==null?void 0:C.deal_pipeline)==null?void 0:Pe.deal_pipeline_stages)==null?void 0:Ze.is_won_stage,branding:L}),o.jsxs("div",{className:"max-w-lg mx-auto px-4 space-y-5 mt-8",children:[Oe&&o.jsx("div",{className:"flex gap-1 rounded-xl p-1",style:{background:"hsl(var(--portal-surface-2))",border:"1px solid hsl(var(--portal-gold) / 0.15)"},children:["primary","linked"].map(at=>{const lt=n===at,xt=at==="primary"?Te:we;return o.jsxs("button",{onClick:()=>i(at),className:"flex-1 flex items-center justify-center gap-1.5 rounded-lg py-2.5 text-sm font-medium transition-all portal-serif",style:{background:lt?"hsl(var(--portal-surface-3))":"transparent",color:lt?"hsl(var(--portal-gold))":"hsl(var(--portal-ink-muted))",boxShadow:lt?"0 1px 0 hsl(var(--portal-gold) / 0.3) inset":"none"},children:[Se(xt),o.jsx("span",{style:{fontSize:"1rem"},children:Ae(xt)})]},at)})}),o.jsx(Ltt,{portal:C,updates:D,documents:V,agentProfile:T}),N&&o.jsx("div",{className:"rounded-2xl p-5",style:{background:"hsl(var(--portal-surface))",border:"1px solid hsl(var(--portal-gold) / 0.14)"},children:o.jsx(bbe,{portalId:N,clientName:C==null?void 0:C.client_name,agentName:T==null?void 0:T.name,agentAvatar:T==null?void 0:T.avatar_url,deviceFingerprint:a})}),o.jsxs("div",{className:"text-center pt-8 pb-2 space-y-3",children:[o.jsx("div",{className:"portal-hairline w-16 mx-auto"}),o.jsxs("div",{className:"flex items-center justify-center gap-1.5",style:{color:"hsl(var(--portal-ink-dim))"},children:[o.jsx(WA,{className:"w-3 h-3"}),o.jsx("span",{className:"text-[10px] tracking-[0.2em] uppercase",children:"Secure Client Portal"})]}),T&&o.jsxs("p",{className:"text-xs",style:{color:"hsl(var(--portal-ink-muted))"},children:["Curated by ",o.jsx("span",{className:"portal-serif",style:{color:"hsl(var(--portal-gold))",fontSize:"0.95rem"},children:T.name})]})]})]})]})]})}function Ltt({portal:t,updates:e,documents:r,agentProfile:n}){const i=t,a=i==null?void 0:i.deal_pipeline,c=a==null?void 0:a.deal_pipeline_stages,s=c==null?void 0:c.is_won_stage,f=a==null?void 0:a.deal_type,m=t.stage_mapping;let x=Sbe(f);m&&m.length>0&&(x=m.map((N,L)=>{var M,D;return{key:`custom-${L}`,label:N.label||((M=x[L])==null?void 0:M.label)||`Stage ${L+1}`,description:N.description||((D=x[L])==null?void 0:D.description)||"",video_url:N.video_url||void 0}}));const _=m&&m.length>0?Math.min(hD(c==null?void 0:c.name),x.length-1):hD(c==null?void 0:c.name),T=x[_],E=T==null?void 0:T.video_url,C=s&&t.show_post_close_tips!==!1&&t.referral_enabled!==!1;return o.jsxs(o.Fragment,{children:[C&&o.jsx(vbe,{portalId:t.id,portalSlug:t.slug,ownerUserId:t.owner_user_id,rewardText:t.referral_reward_text,ctaHeadline:t.referral_cta_headline,agentName:n==null?void 0:n.name,clientName:t.client_name,reviewUrl:t.review_url,hubVideoUrl:t.homeowner_hub_video_url}),o.jsx(dbe,{targetCloseDate:a==null?void 0:a.target_close_date,actualCloseDate:a==null?void 0:a.actual_close_date,clientName:t.client_name}),o.jsx(hbe,{journeyStages:x,currentIndex:_}),T&&o.jsx(fbe,{currentStage:T,nextStepText:t.next_step_text,nextStepVideoUrl:E||t.next_step_video_url}),o.jsx(pbe,{deal:a,portal:t}),(t==null?void 0:t.slug)&&o.jsx(gbe,{slug:t.slug}),r&&r.length>0&&o.jsx(mbe,{documents:r}),(t==null?void 0:t.id)&&(t==null?void 0:t.owner_user_id)&&o.jsx(_be,{portalId:t.id,ownerUserId:t.owner_user_id,currentStage:c==null?void 0:c.name}),e&&e.length>0&&o.jsx(ybe,{updates:e})]})}function Tbe({slug:t}){const e=hp(),r=t||e.slug,[n,i]=P.useState(!1),[a,c]=P.useState(!1),[s,f]=P.useState(""),[m,x]=P.useState(""),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(""),[M,D]=P.useState("buying"),[B,V]=P.useState("");P.useEffect(()=>(document.body.classList.add("client-portal-page"),()=>document.body.classList.remove("client-portal-page")),[]);const{data:G,isLoading:W,error:Z}=br({queryKey:["portal-referral-target",r],queryFn:async()=>{if(!r)return null;const{data:ie,error:ue}=await De.from("client_portals").select(` id, slug, owner_user_id, client_name, referral_enabled, referral_reward_text, referral_cta_headline, is_enabled `).eq("slug",r).eq("is_enabled",!0).maybeSingle();if(ue)throw ue;return ie},enabled:!!r}),{data:Q}=br({queryKey:["portal-referral-agent",G==null?void 0:G.owner_user_id],queryFn:async()=>{const{data:ie}=await De.from("profiles").select("id, name, avatar_url").eq("id",G.owner_user_id).single();return ie},enabled:!!(G!=null&&G.owner_user_id)}),se=async ie=>{if(ie.preventDefault(),!G||!_.trim()){Jt.error("Please enter your friend's name");return}if(!E.trim()&&!N.trim()){Jt.error("Please add at least an email or phone for your friend");return}i(!0);try{const{error:ue}=await De.from("portal_referrals").insert({portal_id:G.id,owner_user_id:G.owner_user_id,referrer_name:s.trim()||G.client_name||null,referrer_email:m.trim()||null,friend_name:_.trim(),friend_email:E.trim()||null,friend_phone:N.trim()||null,friend_interest:M,friend_message:B.trim()||null});if(ue)throw ue;c(!0)}catch(ue){Jt.error(ue.message||"Could not submit referral")}finally{i(!1)}};return W?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center",children:o.jsx(al,{className:"h-96 w-full max-w-lg rounded-2xl mx-4"})}):Z||!G||!G.referral_enabled?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"w-16 h-16 bg-slate-100 rounded-full flex items-center justify-center mx-auto mb-4",children:o.jsx("span",{className:"text-2xl",children:"🔒"})}),o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Referral Page Unavailable"}),o.jsx("p",{className:"text-slate-500",children:"This referral link is no longer active."})]})}):a?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-emerald-50 via-teal-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"max-w-md w-full bg-white rounded-2xl shadow-xl p-8 text-center",children:[o.jsx("div",{className:"w-16 h-16 bg-emerald-100 rounded-full flex items-center justify-center mx-auto mb-4",children:o.jsx(Ao,{className:"w-8 h-8 text-emerald-600"})}),o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2 font-serif",children:"Thank you! 🙏"}),o.jsxs("p",{className:"text-sm text-slate-600 leading-relaxed mb-6",children:["Your referral has been sent to ",(Q==null?void 0:Q.name)||"your agent",". They'll reach out to"," ",o.jsx("span",{className:"font-semibold text-slate-800",children:_})," personally and treat them like family."]}),o.jsxs("button",{onClick:()=>window.history.back(),className:"inline-flex items-center gap-2 text-sm text-[#406E71] hover:text-[#2a4c64] font-medium",children:[o.jsx(Oy,{className:"w-4 h-4"}),"Back to your portal"]})]})}):o.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white pb-12",children:[o.jsxs("div",{className:"relative bg-gradient-to-br from-[#2a4c64] via-[#345e7a] to-[#406E71] text-white px-4 pt-10 pb-12 overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 opacity-[0.05]",style:{backgroundImage:"radial-gradient(circle at 25% 25%, white 1px, transparent 1px)",backgroundSize:"24px 24px"}}),o.jsxs("div",{className:"relative max-w-lg mx-auto text-center",children:[Q!=null&&Q.avatar_url?o.jsx("img",{src:Q.avatar_url,alt:Q.name||"Agent",className:"w-16 h-16 rounded-full border-[3px] border-white/30 shadow-xl mx-auto mb-3 object-cover"}):o.jsx("div",{className:"w-16 h-16 rounded-full border-[3px] border-white/30 shadow-xl mx-auto mb-3 bg-white/10 flex items-center justify-center",children:o.jsx(Yh,{className:"w-7 h-7 text-white/70"})}),o.jsxs("div",{className:"inline-flex items-center gap-1.5 bg-white/10 backdrop-blur-sm rounded-full px-3 py-1 text-xs font-medium text-white/90 mb-2",children:[o.jsx(Yh,{className:"w-3 h-3"})," Referral"]}),o.jsx("h1",{className:"text-2xl font-bold tracking-tight mb-1 font-serif",children:G.referral_cta_headline||"Refer a Friend"}),o.jsxs("p",{className:"text-sm text-white/70",children:["Send ",(Q==null?void 0:Q.name)||"your agent"," someone you trust."]}),G.referral_reward_text&&o.jsxs("p",{className:"text-xs text-white/60 mt-2",children:["You'll get: ",o.jsx("span",{className:"text-white font-medium",children:G.referral_reward_text})," when they close."]})]})]}),o.jsx("div",{className:"max-w-lg mx-auto px-4 -mt-6 relative z-10",children:o.jsxs("form",{onSubmit:se,className:"bg-white rounded-2xl shadow-lg border border-slate-100 p-5 space-y-5",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 mb-3",children:"Tell us about your friend"}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{children:[o.jsxs(Fr,{htmlFor:"friend_name",className:"text-sm",children:["Their name ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsx(Hr,{id:"friend_name",value:_,onChange:ie=>T(ie.target.value),placeholder:"Jane Smith",required:!0,className:"mt-1"})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"friend_email",className:"text-sm",children:"Email"}),o.jsx(Hr,{id:"friend_email",type:"email",value:E,onChange:ie=>C(ie.target.value),placeholder:"jane@email.com",className:"mt-1"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"friend_phone",className:"text-sm",children:"Phone"}),o.jsx(Hr,{id:"friend_phone",type:"tel",value:N,onChange:ie=>L(ie.target.value),placeholder:"(555) 123-4567",className:"mt-1"})]})]}),o.jsx("p",{className:"text-[11px] text-slate-400",children:"Add at least an email or phone so we can reach them."}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-sm",children:"They're interested in..."}),o.jsx("div",{className:"mt-2 grid grid-cols-2 gap-2",children:[{v:"buying",l:"Buying"},{v:"selling",l:"Selling"},{v:"both",l:"Both"},{v:"unsure",l:"Not sure"}].map(ie=>o.jsx("button",{type:"button",onClick:()=>D(ie.v),className:`rounded-lg border px-3 py-2 text-sm font-medium transition-colors ${M===ie.v?"bg-[#406E71] text-white border-[#406E71]":"bg-white text-slate-600 border-slate-200 hover:border-slate-300"}`,children:ie.l},ie.v))})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"friend_message",className:"text-sm",children:"A note (optional)"}),o.jsx("textarea",{id:"friend_message",value:B,onChange:ie=>V(ie.target.value),placeholder:"They're moving from Boston in the spring...",rows:3,className:"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"})]})]})]}),o.jsxs("div",{className:"border-t pt-4",children:[o.jsx("p",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 mb-3",children:"Your info"}),o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"referrer_name",className:"text-sm",children:"Your name"}),o.jsx(Hr,{id:"referrer_name",value:s,onChange:ie=>f(ie.target.value),placeholder:G.client_name||"Your name",className:"mt-1"})]}),o.jsxs("div",{children:[o.jsx(Fr,{htmlFor:"referrer_email",className:"text-sm",children:"Your email"}),o.jsx(Hr,{id:"referrer_email",type:"email",value:m,onChange:ie=>x(ie.target.value),placeholder:"So we can thank you!",className:"mt-1"})]})]})]}),o.jsxs("button",{type:"submit",disabled:n,className:"w-full bg-[#406E71] hover:bg-[#345e7a] disabled:opacity-60 text-white font-semibold rounded-xl py-3.5 px-4 flex items-center justify-center gap-2 transition-colors",children:[n?o.jsx(ku,{className:"w-4 h-4 animate-spin"}):o.jsx(Yh,{className:"w-4 h-4"}),n?"Sending...":"Send Referral"]}),o.jsx("p",{className:"text-[11px] text-center text-slate-400",children:"By submitting, you confirm your friend has agreed to be contacted."})]})})]})}const Dtt=Object.freeze(Object.defineProperty({__proto__:null,default:Tbe},Symbol.toStringTag,{value:"Module"}));function Mtt(){const e=Ji().pathname.slice(1).replace(/\/$/,"");if(P.useEffect(()=>(document.body.classList.add("client-portal-page"),()=>{document.body.classList.remove("client-portal-page")}),[]),!e)return o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Client Portal"}),o.jsx("p",{className:"text-slate-500",children:"Visit your personalized portal link to view your transaction details."})]})});const r=e.match(/^([^/]+)\/refer$/);return r?o.jsx(Tbe,{slug:r[1]}):e.includes("/")?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Page Not Found"}),o.jsx("p",{className:"text-slate-500",children:"This portal link doesn't look right."})]})}):o.jsx(Rtt,{slug:e})}function Ott(t){const e=[],r=n=>{n&&!e.includes(n)&&e.push(n)};for(const n of t.filter(Boolean)){r(n);try{const i=new URL(n),a=i.searchParams.get("u");a&&/\/functions\/v1\/trestle-media/i.test(i.pathname)&&r(a)}catch{}}return e}function sV({photos:t,alt:e="",className:r="w-full h-full",imgClassName:n="w-full h-full object-cover",iconClassName:i="w-8 h-8"}){const a=P.useMemo(()=>Ott(Array.isArray(t)?t:[]),[t]),[c,s]=P.useState(0);return P.useEffect(()=>{s(0)},[a.join("|")]),!a.length||c>=a.length?o.jsx("div",{className:`${r} bg-muted flex items-center justify-center text-muted-foreground`,children:o.jsx(Ma,{className:`${i} opacity-40`})}):o.jsx("div",{className:`${r} overflow-hidden bg-muted`,children:o.jsx("img",{src:a[c],alt:e,className:n,onError:()=>s(f=>f+1)})})}function Ftt({comp:t,open:e,onClose:r}){var m;const[n,i]=P.useState(0);if(!t)return null;const a=Array.isArray(t.photos)?t.photos.filter(Boolean):[],c=t.soldPrice||t.price,s=t.sqft&&c?Math.round(c/t.sqft):null,f=x=>{if(!x)return null;const[_,T,E]=x.split(/[-/T]/);return _?`${T}/${E}/${_}`:null};return o.jsx(ro,{open:e,onOpenChange:x=>{x||r()},children:o.jsxs(za,{className:"max-w-4xl max-h-[90vh] overflow-y-auto p-0",children:[o.jsxs(cl,{className:"px-6 pt-6 pb-2",children:[o.jsx(qo,{className:"text-xl",children:t.address}),o.jsxs("div",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[o.jsx(ga,{className:"w-3.5 h-3.5"}),t.city,", ",t.state," ",t.zip]})]}),a.length>0?o.jsxs("div",{className:"px-6",children:[o.jsx(sV,{photos:a.slice(n),className:"rounded-lg aspect-[16/10]"}),a.length>1&&o.jsx("div",{className:"flex gap-2 mt-2 overflow-x-auto pb-2",children:a.slice(0,24).map((x,_)=>o.jsx("button",{onClick:()=>i(_),className:`flex-none w-20 h-16 rounded overflow-hidden border-2 transition ${_===n?"border-primary":"border-transparent opacity-70 hover:opacity-100"}`,children:o.jsx(sV,{photos:[x],iconClassName:"w-5 h-5"})},_))})]}):o.jsx("div",{className:"px-6",children:o.jsx("div",{className:"rounded-lg bg-muted aspect-[16/10] flex items-center justify-center text-muted-foreground",children:o.jsx(Ma,{className:"w-12 h-12 opacity-40"})})}),o.jsxs("div",{className:"px-6 pt-4 flex items-center justify-between flex-wrap gap-2",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"text-3xl font-bold flex items-center gap-1",children:[o.jsx(gm,{className:"w-6 h-6 text-muted-foreground"}),(c||0).toLocaleString()]}),s&&o.jsxs("div",{className:"text-xs text-muted-foreground",children:["$",s,"/sqft"]})]}),o.jsxs("div",{className:"flex flex-col items-end gap-1",children:[o.jsx(hs,{variant:"outline",children:t.status}),t.daysOnMarket!=null&&o.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.daysOnMarket," DOM"]})]})]}),(t.listDate||t.statusChangeDate||t.soldDate)&&o.jsxs("div",{className:"px-6 pt-4",children:[o.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2",children:"Timeline"}),o.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[o.jsx(oz,{label:"Active",date:f(t.listDate),active:!0}),o.jsx(oz,{label:"Pending",date:/Pending|Contingent|Under Contract|Backup/i.test(String(t.status||""))?f(t.statusChangeDate):null,active:/Pending|Contingent|Under Contract|Backup/i.test(String(t.status||""))}),o.jsx(oz,{label:"Closed",date:f(t.soldDate)||(/Closed|Sold/i.test(String(t.status||""))?f(t.statusChangeDate):null),active:/Closed|Sold/i.test(String(t.status||""))})]})]}),o.jsxs("div",{className:"px-6 pt-4 grid grid-cols-2 md:grid-cols-4 gap-3",children:[o.jsx(vN,{icon:o.jsx(_C,{className:"w-4 h-4"}),label:"Beds",value:t.bedrooms??"—"}),o.jsx(vN,{icon:o.jsx(iS,{className:"w-4 h-4"}),label:"Baths",value:t.bathrooms??"—"}),o.jsx(vN,{icon:o.jsx(GM,{className:"w-4 h-4"}),label:"SqFt",value:((m=t.sqft)==null?void 0:m.toLocaleString())??"—"}),o.jsx(vN,{icon:o.jsx(fo,{className:"w-4 h-4"}),label:"Year Built",value:t.yearBuilt??"—"})]}),o.jsxs("div",{className:"px-6 pt-4 grid sm:grid-cols-2 gap-x-6 gap-y-2 text-sm",children:[o.jsx(Rc,{label:"MLS #",value:t.mlsNumber}),o.jsx(Rc,{label:"Property Type",value:t.propertySubType||t.propertyType}),o.jsx(Rc,{label:"Lot Size",value:t.lotSize}),o.jsx(Rc,{label:"Garage",value:t.garageSpaces}),o.jsx(Rc,{label:"Stories",value:t.stories}),o.jsx(Rc,{label:"HOA",value:t.hoaFee?`$${t.hoaFee}/${(t.hoaFrequency||"mo").toLowerCase()}`:null}),o.jsx(Rc,{label:"Tax (annual)",value:t.taxAmount?`$${t.taxAmount.toLocaleString()}`:null}),o.jsx(Rc,{label:"Heating",value:t.heating}),o.jsx(Rc,{label:"Cooling",value:t.cooling}),o.jsx(Rc,{label:"Parking",value:t.parking}),o.jsx(Rc,{label:"Elementary",value:t.elementarySchool}),o.jsx(Rc,{label:"Middle",value:t.middleSchool}),o.jsx(Rc,{label:"High",value:t.highSchool}),o.jsx(Rc,{label:"Listed By",value:t.listAgentFullName}),o.jsx(Rc,{label:"Office",value:t.listOfficeName})]}),t.description&&o.jsxs("div",{className:"px-6 pt-4",children:[o.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-1",children:"Description"}),o.jsx("p",{className:"text-sm leading-relaxed whitespace-pre-wrap",children:t.description})]}),o.jsx("div",{className:"px-6 py-4"})]})})}function vN({icon:t,label:e,value:r}){return o.jsxs("div",{className:"rounded-lg border bg-card p-3",children:[o.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[t,e]}),o.jsx("div",{className:"text-lg font-semibold mt-0.5",children:r})]})}function Rc({label:t,value:e}){return e==null||e===""||e===0?null:o.jsxs("div",{className:"flex justify-between border-b border-dashed py-1",children:[o.jsx("span",{className:"text-muted-foreground",children:t}),o.jsx("span",{className:"font-medium text-right ml-3 truncate",children:String(e)})]})}function oz({label:t,date:e,active:r}){return o.jsxs("div",{className:`rounded-lg border p-2 text-center ${r?"bg-primary/5 border-primary/30":"bg-muted/30"}`,children:[o.jsx("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:t}),o.jsx("div",{className:`text-sm font-medium mt-0.5 ${e?"":"text-muted-foreground/60"}`,children:e||"—"})]})}function bN({to:t,durationMs:e=1400,prefix:r="",suffix:n="",className:i,delayMs:a=0}){const[c,s]=P.useState(0),f=P.useRef(null);return P.useEffect(()=>{if(!Number.isFinite(t))return;let m=0;const x=0,_=E=>1-Math.pow(1-E,3),T=setTimeout(()=>{const E=C=>{m||(m=C);const N=C-m,L=Math.min(1,N/e);s(Math.round(x+(t-x)*_(L))),L<1&&(f.current=requestAnimationFrame(E))};f.current=requestAnimationFrame(E)},a);return()=>{clearTimeout(T),f.current&&cancelAnimationFrame(f.current)}},[t,e,a]),o.jsxs("span",{className:i,children:[r,c.toLocaleString(),n]})}function Btt({low:t,likely:e,high:r,defaultMortgage:n=0,defaultCommissionPct:i=6,defaultClosingPct:a=1}){const[c,s]=P.useState(e),[f,m]=P.useState(n),[x,_]=P.useState(i),[T,E]=P.useState(a),{commission:C,closing:N,net:L}=P.useMemo(()=>{const B=Math.round(c*x/100),V=Math.round(c*T/100);return{commission:B,closing:V,net:Math.max(0,c-B-V-(f||0))}},[c,x,T,f]),M=B=>`$${B.toLocaleString()}`,D=r>t?(c-t)/(r-t)*100:50;return o.jsxs(qn,{className:"overflow-hidden border-primary/20",children:[o.jsxs("div",{className:"bg-gradient-to-br from-primary/5 to-primary/10 px-6 pt-6 pb-4 border-b border-primary/10",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[o.jsx(aS,{className:"w-4 h-4 text-primary"}),o.jsx("span",{className:"text-xs uppercase tracking-widest font-semibold text-primary",children:"Your Price Story"})]}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold",children:"What if you priced it at…"}),o.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Drag the price. Watch your estimated walk-away update in real-time."})]}),o.jsxs(ri,{className:"p-6 space-y-6",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-end justify-between mb-3",children:[o.jsx("span",{className:"text-xs text-muted-foreground",children:"List price"}),o.jsx("span",{className:"text-3xl font-bold tabular-nums",children:M(c)})]}),o.jsxs("div",{className:"relative",children:[o.jsx(fA,{value:[c],min:t,max:r,step:1e3,onValueChange:([B])=>s(B)}),o.jsxs("div",{className:"flex justify-between text-[10px] text-muted-foreground mt-2",children:[o.jsx("span",{children:M(t)}),o.jsxs("span",{children:["Suggested ",M(e)]}),o.jsx("span",{children:M(r)})]})]}),o.jsx("div",{className:"mt-2 h-1.5 rounded-full bg-muted overflow-hidden",children:o.jsx("div",{className:"h-full bg-gradient-to-r from-emerald-500 via-primary to-amber-500 transition-all",style:{width:`${Math.min(100,Math.max(0,D))}%`}})})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Mortgage payoff"}),o.jsx(Hr,{type:"number",inputMode:"numeric",value:f||"",placeholder:"$0",onChange:B=>m(Number(B.target.value)||0)})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Commission %"}),o.jsx(Hr,{type:"number",step:"0.25",value:x,onChange:B=>_(Number(B.target.value)||0)})]}),o.jsxs("div",{children:[o.jsx(Fr,{className:"text-xs",children:"Closing costs %"}),o.jsx(Hr,{type:"number",step:"0.25",value:T,onChange:B=>E(Number(B.target.value)||0)})]})]}),o.jsxs("div",{className:"rounded-xl border bg-card overflow-hidden",children:[o.jsxs("div",{className:"px-5 py-4 grid grid-cols-2 gap-y-2 text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Sale price"}),o.jsx("span",{className:"text-right tabular-nums font-medium",children:M(c)}),o.jsxs("span",{className:"text-muted-foreground",children:["Commission (",x,"%)"]}),o.jsxs("span",{className:"text-right tabular-nums text-rose-600",children:["−",M(C)]}),o.jsxs("span",{className:"text-muted-foreground",children:["Closing (",T,"%)"]}),o.jsxs("span",{className:"text-right tabular-nums text-rose-600",children:["−",M(N)]}),f>0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground",children:"Mortgage payoff"}),o.jsxs("span",{className:"text-right tabular-nums text-rose-600",children:["−",M(f)]})]})]}),o.jsxs("div",{className:"bg-gradient-to-r from-emerald-500/10 to-primary/10 px-5 py-4 border-t flex items-center justify-between",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(dG,{className:"w-5 h-5 text-emerald-600"}),o.jsx("span",{className:"font-semibold",children:"Your estimated walk-away"})]}),o.jsx("span",{className:"text-2xl font-bold tabular-nums text-emerald-700",children:M(L)})]})]}),o.jsx("p",{className:"text-[11px] text-muted-foreground leading-relaxed",children:"This is a rough estimate to help you think through pricing. Actual proceeds depend on title fees, prorations, repairs, and other items your agent will walk through in detail."})]})]})}function Ebe({tokenOverride:t}={}){var Rt,er,vt,xr,_r,tn,or,Sr,jr,Qt,Je,Tt;const e=hp(),r=t??e.token,[n,i]=P.useState(null),[a,c]=P.useState(null),[s,f]=P.useState([]),[m,x]=P.useState(!0),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(""),[M,D]=P.useState(!1),[B,V]=P.useState(!1),[G,W]=P.useState(null),[Z,Q]=P.useState(null),[se,ie]=P.useState(!1),{toast:ue}=Qde();P.useEffect(()=>{r&&(async()=>{const{data:Dt}=await De.from("cmas").select("*").eq("share_token",r).eq("status","shared").maybeSingle();if(!Dt){x(!1);return}i(Dt);const[{data:cr},{data:lr}]=await Promise.all([De.from("cma_comps").select("*").eq("cma_id",Dt.id).order("position"),De.from("profiles").select("id,name,email,phone,avatar_url,brokerage_name,website_url,title,bio").eq("id",Dt.agent_id).maybeSingle()]);f((cr||[]).filter(Rr=>Rr.selected)),c(lr);const ur=localStorage.getItem("cma_visitor_token")||crypto.randomUUID();localStorage.setItem("cma_visitor_token",ur),await De.from("cma_views").insert({cma_id:Dt.id,visitor_token:ur,user_agent:navigator.userAgent}),x(!1)})()},[r]);const be=async Dt=>{if(!n)return;const cr=localStorage.getItem("cma_visitor_token")||"";await De.from("cma_views").insert({cma_id:n.id,visitor_token:cr,reactions:{[Dt]:!0}}),De.functions.invoke("cma-reply-notify",{body:{shareToken:r,reaction:Dt,visitorToken:cr}}).catch(()=>{}),ue({title:"Thanks — your agent just got notified ✨"})},Te=!(n!=null&&n.contact_id),we=async()=>{if(!n||!_.trim())return;if(Te&&(!E.trim()||!N.trim())){ue({title:"Please add your name and email",variant:"destructive"});return}D(!0);const Dt=localStorage.getItem("cma_visitor_token")||"",{data:cr,error:lr}=await De.functions.invoke("cma-reply-notify",{body:{shareToken:r,message:_,visitorToken:Dt,viewerName:E.trim()||void 0,viewerEmail:N.trim()||void 0}});if(D(!1),lr||!(cr!=null&&cr.success)){ue({title:"Could not send",description:(lr==null?void 0:lr.message)||(cr==null?void 0:cr.error),variant:"destructive"});return}T(""),V(!0),ue({title:"Message sent to your agent"})},Oe=P.useMemo(()=>{const Dt=s.map(cr=>{const lr=cr.snapshot,ur=(lr==null?void 0:lr.soldPrice)||(lr==null?void 0:lr.price);return ur&&(lr!=null&&lr.sqft)?ur/lr.sqft:null}).filter(cr=>!!cr).sort((cr,lr)=>cr-lr);return Dt.length?Math.round(Dt[Math.floor(Dt.length/2)]):null},[s]);if(m)return o.jsx("div",{className:"min-h-screen flex items-center justify-center",children:o.jsx(ku,{className:"w-8 h-8 animate-spin"})});if(!n)return o.jsx("div",{className:"min-h-screen flex items-center justify-center text-center p-6",children:o.jsxs("div",{children:[o.jsx(Ma,{className:"w-12 h-12 mx-auto text-muted-foreground mb-4"}),o.jsx("h1",{className:"text-xl font-semibold",children:"CMA not found"}),o.jsx("p",{className:"text-muted-foreground",children:"This report may have been removed or unpublished."})]})});const Ae=n.subject||{},Se=(Rt=n.settings)==null?void 0:Rt.personalVideo,ge=(er=Ae.photos)==null?void 0:er[0],je=n.contact_first_name?n.contact_first_name:null,_e=((a==null?void 0:a.name)||"A").split(" ").map(Dt=>Dt[0]).slice(0,2).join("").toUpperCase(),xe=a!=null&&a.phone?`tel:${String(a.phone).replace(/[^\d+]/g,"")}`:null,Pe=a!=null&&a.email?`mailto:${a.email}`:null,Ze=a!=null&&a.phone?`sms:${String(a.phone).replace(/[^\d+]/g,"")}`:null,at=n.price_low??null,lt=n.price_likely??null,xt=n.price_high??null,St=at&<&&xt,Xt=lt&&Ae.sqft?Math.round(lt/Ae.sqft):null,_t=Xt&&Oe?Math.round((Xt-Oe)/Oe*100):null;return o.jsxs("div",{className:"min-h-screen bg-background pb-28 md:pb-0",children:[a&&o.jsx("div",{className:"border-b bg-card sticky top-0 z-40 backdrop-blur supports-[backdrop-filter]:bg-card/80",children:o.jsxs("div",{className:"container mx-auto max-w-6xl px-4 md:px-6 py-3 flex items-center gap-3",children:[a.avatar_url?o.jsx("img",{src:a.avatar_url,alt:a.name,className:"w-10 h-10 rounded-full object-cover ring-2 ring-primary/20"}):o.jsx("div",{className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center font-semibold text-primary text-sm",children:_e}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"font-semibold leading-tight truncate text-sm",children:a.name}),(a.title||a.brokerage_name)&&o.jsxs("div",{className:"text-[11px] text-muted-foreground flex items-center gap-1 truncate",children:[a.brokerage_name&&o.jsx(Eo,{className:"w-3 h-3 shrink-0"}),o.jsx("span",{className:"truncate",children:[a.title,a.brokerage_name].filter(Boolean).join(" · ")})]})]}),o.jsxs("div",{className:"hidden md:flex items-center gap-2",children:[xe&&o.jsx(Kt,{variant:"outline",size:"sm",asChild:!0,children:o.jsxs("a",{href:xe,children:[o.jsx(Ui,{className:"w-4 h-4 mr-1"}),"Call"]})}),Pe&&o.jsx(Kt,{variant:"outline",size:"sm",asChild:!0,children:o.jsxs("a",{href:Pe,children:[o.jsx($i,{className:"w-4 h-4 mr-1"}),"Email"]})})]})]})}),o.jsxs("div",{className:"relative overflow-hidden",children:[ge?o.jsxs("div",{className:"absolute inset-0",children:[o.jsx("img",{src:ge,alt:Ae.address,className:"w-full h-full object-cover scale-110 animate-[kenburns_18s_ease-out_infinite_alternate]",style:{animation:"kenburns 22s ease-in-out infinite alternate"}}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-950/85 via-slate-900/75 to-primary/60"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-background via-background/20 to-transparent"})]}):o.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/30 via-primary/10 to-background"}),o.jsx("style",{children:` @keyframes kenburns { 0% { transform: scale(1.08) translate(0, 0); } 100% { transform: scale(1.18) translate(-1.5%, -1%); } } `}),o.jsx("div",{className:"relative container mx-auto max-w-6xl px-4 md:px-8 pt-12 md:pt-20 pb-16 md:pb-24",children:o.jsxs("div",{className:"grid md:grid-cols-5 gap-8 items-center",children:[o.jsxs("div",{className:`${Se!=null&&Se.url?"md:col-span-3":"md:col-span-5"} text-white animate-fade-in`,children:[o.jsxs(hs,{className:"mb-4 bg-white/15 text-white border-white/20 backdrop-blur-sm hover:bg-white/20",children:[o.jsx(Es,{className:"w-3 h-3 mr-1"}),je?`Prepared for ${je}`:n.buyer_mode?"Your Buyer Analysis":"Your Market Analysis"]}),o.jsx("h1",{className:"text-3xl md:text-5xl lg:text-6xl font-bold leading-[1.05] tracking-tight",children:Ae.address}),o.jsxs("p",{className:"text-white/70 mt-2 text-base md:text-lg flex items-center gap-2",children:[o.jsx(ga,{className:"w-4 h-4"}),Ae.city,", ",Ae.state," ",Ae.zip]}),St&&o.jsxs("div",{className:"mt-8 md:mt-10",children:[o.jsx("p",{className:"text-xs uppercase tracking-[0.2em] text-white/60 mb-2",children:"Estimated Value"}),o.jsx("div",{className:"flex items-baseline gap-4 flex-wrap",children:o.jsx("div",{className:"text-5xl md:text-7xl font-bold tabular-nums",children:o.jsx(bN,{to:lt,prefix:"$",durationMs:1600,delayMs:250})})}),o.jsxs("div",{className:"mt-4 flex items-center gap-3 md:gap-6 text-sm text-white/80",children:[o.jsxs("div",{children:[o.jsx("span",{className:"block text-[11px] uppercase tracking-wider text-white/50",children:"Low"}),o.jsx("span",{className:"tabular-nums font-medium",children:o.jsx(bN,{to:at,prefix:"$",delayMs:500})})]}),o.jsx("div",{className:"h-8 w-px bg-white/20"}),o.jsxs("div",{children:[o.jsx("span",{className:"block text-[11px] uppercase tracking-wider text-white/50",children:"Likely"}),o.jsx("span",{className:"tabular-nums font-medium",children:o.jsx(bN,{to:lt,prefix:"$",delayMs:650})})]}),o.jsx("div",{className:"h-8 w-px bg-white/20"}),o.jsxs("div",{children:[o.jsx("span",{className:"block text-[11px] uppercase tracking-wider text-white/50",children:"High"}),o.jsx("span",{className:"tabular-nums font-medium",children:o.jsx(bN,{to:xt,prefix:"$",delayMs:800})})]})]})]})]}),(Se==null?void 0:Se.url)&&o.jsx("div",{className:"md:col-span-2 animate-scale-in",children:o.jsxs("button",{onClick:()=>ie(!0),className:"group relative w-full aspect-[4/5] md:aspect-[4/5] rounded-2xl overflow-hidden shadow-2xl ring-1 ring-white/20 bg-black",children:[Se.thumb?o.jsx("img",{src:Se.thumb,alt:"",className:"w-full h-full object-cover"}):o.jsx("video",{src:Se.url,className:"w-full h-full object-cover",muted:!0,playsInline:!0,preload:"metadata"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/60 to-black/10 group-hover:from-black/40 transition-colors"}),o.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center text-white",children:[o.jsx("div",{className:"w-16 h-16 md:w-20 md:h-20 rounded-full bg-white/95 text-primary flex items-center justify-center shadow-2xl group-hover:scale-110 transition-transform",children:o.jsx(YRe,{className:"w-7 h-7 md:w-8 md:h-8 ml-1",fill:"currentColor"})}),o.jsxs("p",{className:"mt-4 text-sm font-medium tracking-wide",children:["A message from ",((vt=a==null?void 0:a.name)==null?void 0:vt.split(" ")[0])||"your agent"]})]})]})})]})})]}),se&&(Se==null?void 0:Se.url)&&o.jsx("div",{className:"fixed inset-0 z-50 bg-black/90 flex items-center justify-center p-4 animate-fade-in",onClick:()=>ie(!1),children:o.jsxs("div",{className:"relative w-full max-w-4xl",onClick:Dt=>Dt.stopPropagation(),children:[o.jsx("video",{src:Se.url,controls:!0,autoPlay:!0,className:"w-full rounded-xl"}),o.jsx(Kt,{variant:"ghost",className:"absolute -top-12 right-0 text-white hover:bg-white/10",onClick:()=>ie(!1),children:"Close"})]})}),o.jsxs("div",{className:"container mx-auto max-w-6xl px-4 md:px-8 py-10 md:py-16 space-y-10 md:space-y-14",children:[o.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 md:gap-4 -mt-20 md:-mt-24 relative z-10",children:[{label:"Beds",value:Ae.bedrooms??"—"},{label:"Baths",value:Ae.bathrooms??"—"},{label:"Sq Ft",value:((xr=Ae.sqft)==null?void 0:xr.toLocaleString())??"—"},{label:"Year Built",value:Ae.yearBuilt??"—"}].map((Dt,cr)=>o.jsx(qn,{className:"shadow-lg animate-fade-in",style:{animationDelay:`${cr*80}ms`},children:o.jsxs(ri,{className:"p-4 md:p-6 text-center",children:[o.jsx("div",{className:"text-2xl md:text-3xl font-bold",children:Dt.value}),o.jsx("div",{className:"text-xs text-muted-foreground mt-1 uppercase tracking-wider",children:Dt.label})]})},cr))}),((tn=(_r=n.settings)==null?void 0:_r.priceOverride)==null?void 0:tn.enabled)&&((Sr=(or=n.settings)==null?void 0:or.priceOverride)==null?void 0:Sr.note)&&o.jsx(qn,{className:"border-primary/30 bg-gradient-to-br from-primary/5 to-transparent",children:o.jsxs(ri,{className:"p-6 md:p-8",children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-primary font-semibold mb-2",children:"A note from your agent"}),o.jsx("p",{className:"text-base md:text-lg leading-relaxed whitespace-pre-wrap text-foreground/90",children:n.settings.priceOverride.note})]})}),St&&o.jsx(Btt,{low:at,likely:lt,high:xt}),Oe&&Xt&&o.jsxs("div",{className:"grid md:grid-cols-3 gap-4",children:[o.jsx(qn,{className:"md:col-span-2",children:o.jsxs(ri,{className:"p-6 md:p-8",children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-primary font-semibold mb-2",children:"Why this price"}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"The market is talking."}),o.jsxs("p",{className:"text-muted-foreground leading-relaxed",children:["Based on ",o.jsxs("strong",{className:"text-foreground",children:[s.length," comparable ",s.length===1?"home":"homes"]})," in ",Ae.city,", the median sale rate is ",o.jsxs("strong",{className:"text-foreground",children:["$",Oe,"/sqft"]}),". Applied to your home's ",(jr=Ae.sqft)==null?void 0:jr.toLocaleString()," sqft, the comps support a value near ",o.jsxs("strong",{className:"text-foreground",children:["$",(Oe*(Ae.sqft||0)).toLocaleString()]}),". Your agent's suggested price reflects local nuance and condition."]})]})}),o.jsx(qn,{className:"bg-gradient-to-br from-primary/10 to-primary/5 border-primary/20",children:o.jsxs(ri,{className:"p-6 md:p-8 h-full flex flex-col justify-center",children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-muted-foreground mb-1",children:"Your home"}),o.jsxs("div",{className:"text-3xl font-bold tabular-nums",children:["$",Xt,o.jsx("span",{className:"text-base font-normal text-muted-foreground",children:"/sqft"})]}),o.jsxs("p",{className:"text-xs text-muted-foreground mt-3",children:["Neighborhood avg: ",o.jsxs("span",{className:"font-medium text-foreground",children:["$",Oe,"/sqft"]})]}),_t!==null&&_t!==0&&o.jsxs("p",{className:`text-sm font-medium mt-1 ${_t>0?"text-emerald-600":"text-rose-600"}`,children:[_t>0?"▲":"▼"," ",Math.abs(_t),"% ",_t>0?"above":"below"," the median"]})]})})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-baseline justify-between mb-4",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-primary font-semibold",children:"Homes like yours"}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold",children:"The Comparables"})]}),o.jsxs(hs,{variant:"outline",className:"text-xs",children:[s.length," comps"]})]}),o.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map((Dt,cr)=>{var Rr;const lr=Dt.snapshot,ur=lr.soldPrice||lr.price;return o.jsxs(qn,{className:`overflow-hidden cursor-pointer transition-all duration-300 hover:shadow-xl hover:-translate-y-1 animate-fade-in ${Z===cr?"ring-2 ring-primary":""}`,style:{animationDelay:`${cr*60}ms`},onClick:()=>W(cr),onMouseEnter:()=>Q(cr),onMouseLeave:()=>Q(null),children:[o.jsxs("div",{className:"relative",children:[o.jsx(sV,{photos:lr.photos,className:"w-full h-44"}),o.jsxs(hs,{className:"absolute top-2 left-2 bg-black/70 text-white border-0 backdrop-blur-sm",children:["#",cr+1]}),o.jsx(hs,{variant:"outline",className:"absolute top-2 right-2 bg-white/95 border-0",children:lr.status})]}),o.jsxs(ri,{className:"p-4",children:[o.jsx("div",{className:"font-semibold leading-tight truncate",children:lr.address}),o.jsxs("div",{className:"text-xs text-muted-foreground",children:[lr.city,", ",lr.state]}),o.jsx("div",{className:"flex justify-between items-center mt-3 text-sm",children:o.jsxs("span",{className:"text-muted-foreground",children:[lr.bedrooms??"?","bd · ",lr.bathrooms??"?","ba · ",((Rr=lr.sqft)==null?void 0:Rr.toLocaleString())??"?"," sqft"]})}),o.jsxs("div",{className:"flex justify-between items-center mt-3 pt-3 border-t",children:[o.jsxs("span",{className:"text-xl font-bold tabular-nums",children:["$",ur==null?void 0:ur.toLocaleString()]}),lr.sqft&&ur?o.jsxs("span",{className:"text-xs text-muted-foreground tabular-nums",children:["$",Math.round(ur/lr.sqft),"/sqft"]}):null]})]})]},cr)})})]}),o.jsx(Ftt,{comp:G!==null?(Qt=s[G])==null?void 0:Qt.snapshot:null,open:G!==null,onClose:()=>W(null)}),o.jsx(qn,{className:"border-primary/20 bg-gradient-to-br from-primary/5 via-background to-background overflow-hidden",children:o.jsxs(ri,{className:"p-6 md:p-8 space-y-5",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-primary font-semibold mb-1",children:"Your turn"}),o.jsxs("h2",{className:"text-2xl md:text-3xl font-bold",children:["What do you think",je?`, ${je}`:"","?"]}),o.jsxs("p",{className:"text-sm text-muted-foreground mt-1",children:["One tap. ",((Je=a==null?void 0:a.name)==null?void 0:Je.split(" ")[0])||"Your agent"," hears you instantly."]})]}),o.jsx("div",{className:"flex flex-wrap gap-2",children:[{kind:"love",icon:tp,label:"I love this price"},{kind:"fair",icon:oLe,label:"Seems fair"},{kind:"lower",icon:Ghe,label:"I'd price lower"},{kind:"higher",icon:aS,label:"I'd price higher"},{kind:"ready_to_list",icon:vU,label:"Ready to list"},{kind:"want_walkthrough",icon:aG,label:"Want a walkthrough"},{kind:"need_time",icon:fo,label:"Need more time"},{kind:"have_questions",icon:CRe,label:"I have questions"}].map(({kind:Dt,icon:cr,label:lr})=>o.jsxs(Kt,{variant:"outline",className:"bg-card hover:bg-primary hover:text-primary-foreground hover:scale-105 transition-all",onClick:()=>be(Dt),children:[o.jsx(cr,{className:"w-4 h-4 mr-2"}),lr]},Dt))}),o.jsxs("div",{className:"pt-4 border-t",children:[o.jsxs("p",{className:"text-sm font-medium mb-2 flex items-center gap-1",children:[o.jsx(u1,{className:"w-4 h-4"}),"Ask your agent a question"]}),B?o.jsxs("div",{className:"rounded-md bg-emerald-50 border border-emerald-200 p-4 text-sm text-emerald-800 animate-fade-in",children:["✓ Sent! ",((Tt=a==null?void 0:a.name)==null?void 0:Tt.split(" ")[0])||"Your agent"," was notified and will get back to you shortly."]}):o.jsxs(o.Fragment,{children:[Te&&o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2 mb-2",children:[o.jsx("input",{className:"border rounded-md p-2 text-sm bg-background",placeholder:"Your name",value:E,onChange:Dt=>C(Dt.target.value)}),o.jsx("input",{type:"email",className:"border rounded-md p-2 text-sm bg-background",placeholder:"Your email",value:N,onChange:Dt=>L(Dt.target.value)})]}),o.jsx("textarea",{className:"w-full border rounded-md p-3 text-sm min-h-[100px] bg-background",placeholder:"What questions do you have about this analysis?",value:_,onChange:Dt=>T(Dt.target.value)}),o.jsx(Kt,{onClick:we,disabled:!_.trim()||M,className:"mt-2",children:M?"Sending…":"Send to agent"})]})]})]})}),a&&o.jsx(qn,{className:"overflow-hidden border-primary/20",children:o.jsx("div",{className:"bg-gradient-to-br from-primary/10 to-primary/5 p-6 md:p-10",children:o.jsxs("div",{className:"flex flex-col md:flex-row gap-6 items-start",children:[a.avatar_url?o.jsx("img",{src:a.avatar_url,alt:a.name,className:"w-24 h-24 md:w-32 md:h-32 rounded-2xl object-cover ring-4 ring-background shadow-lg"}):o.jsx("div",{className:"w-24 h-24 md:w-32 md:h-32 rounded-2xl bg-primary/20 flex items-center justify-center text-3xl font-bold text-primary ring-4 ring-background shadow-lg",children:_e}),o.jsxs("div",{className:"flex-1",children:[o.jsx("p",{className:"text-xs uppercase tracking-widest text-muted-foreground",children:"Prepared by"}),o.jsx("h2",{className:"text-2xl md:text-3xl font-bold mt-1",children:a.name}),(a.title||a.brokerage_name)&&o.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:[a.title,a.brokerage_name].filter(Boolean).join(" · ")}),a.bio&&o.jsx("p",{className:"text-sm text-muted-foreground mt-3 leading-relaxed",children:a.bio}),o.jsxs("div",{className:"flex flex-wrap gap-2 mt-4",children:[xe&&o.jsx(Kt,{asChild:!0,children:o.jsxs("a",{href:xe,children:[o.jsx(Ui,{className:"w-4 h-4 mr-2"}),a.phone]})}),Pe&&o.jsx(Kt,{variant:"outline",asChild:!0,children:o.jsxs("a",{href:Pe,children:[o.jsx($i,{className:"w-4 h-4 mr-2"}),"Email"]})}),a.website_url&&o.jsx(Kt,{variant:"outline",asChild:!0,children:o.jsxs("a",{href:a.website_url,target:"_blank",rel:"noreferrer",children:[o.jsx(c1,{className:"w-4 h-4 mr-2"}),"Website"]})})]})]})]})})})]}),a&&(xe||Ze||Pe)&&o.jsxs("div",{className:"md:hidden fixed bottom-0 left-0 right-0 bg-card/95 backdrop-blur border-t shadow-2xl z-50 px-3 py-3 flex gap-2",style:{paddingBottom:"calc(0.75rem + env(safe-area-inset-bottom))"},children:[xe&&o.jsx(Kt,{className:"flex-1",asChild:!0,children:o.jsxs("a",{href:xe,children:[o.jsx(Ui,{className:"w-4 h-4 mr-1.5"}),"Call"]})}),Ze&&o.jsx(Kt,{variant:"outline",className:"flex-1",asChild:!0,children:o.jsxs("a",{href:Ze,children:[o.jsx(u1,{className:"w-4 h-4 mr-1.5"}),"Text"]})}),Pe&&o.jsx(Kt,{variant:"outline",className:"flex-1",asChild:!0,children:o.jsxs("a",{href:Pe,children:[o.jsx($i,{className:"w-4 h-4 mr-1.5"}),"Email"]})})]})]})}const ztt=Object.freeze(Object.defineProperty({__proto__:null,default:Ebe},Symbol.toStringTag,{value:"Module"}));function $tt(){const e=Ji().pathname.slice(1).replace(/\/$/,"");return!e||e.includes("/")?o.jsx("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 to-white flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"CMA Portal"}),o.jsx("p",{className:"text-slate-500",children:"Open your CMA link to view your personalized market analysis."})]})}):o.jsx(Ebe,{tokenOverride:e})}const aV="levelup_affiliate_ref",Utt=30,Vtt=()=>{const[t]=mS();P.useEffect(()=>{const e=t.get("ref");if(e){const r={code:e.toUpperCase(),timestamp:Date.now()};localStorage.setItem(aV,JSON.stringify(r)),console.log("[Affiliate] Stored referral code:",e)}},[t])},qtt=()=>{try{const t=localStorage.getItem(aV);if(!t)return null;const e=JSON.parse(t),r=Utt*24*60*60*1e3;return Date.now()-e.timestamp>r?(localStorage.removeItem(aV),console.log("[Affiliate] Referral code expired"),null):e.code}catch{return null}},cne="/assets/levelup-logo-header-_ZX7DvlA.png",Gtt="/assets/scale-your-team-ku4MPatU.png";function Htt({open:t,onOpenChange:e}){return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"max-w-3xl max-h-[90vh] overflow-hidden",children:[o.jsx(cl,{children:o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"p-2 bg-[#4a6b6d]/10 rounded-lg",children:o.jsx(Eo,{className:"h-5 w-5 text-[#4a6b6d]"})}),o.jsxs("div",{children:[o.jsx(qo,{children:"Schedule a Brokerage Interest Meeting"}),o.jsx(ad,{children:"Learn how LevelUp can empower your entire team"})]})]})}),t&&o.jsx("iframe",{src:"https://booking.relevelup.com/jeremy-collins",className:"w-full border-0 rounded-lg",style:{height:"600px",minHeight:"500px"},title:"Schedule Brokerage Interest Meeting"})]})})}const Abe="/assets/mission_control-BJ-Kz8rX.png",Wtt="/assets/crm-CsLftmB2.png",Ktt="/assets/deal_pipeline-XYgypvwv.png",Ytt="/assets/staging_studio-5iLDjnv0.png",Ztt="/assets/coaching-CSQEA81I.png",Xtt="/assets/marketing_studio-Brx1ZOnN.png",Qtt=[{key:"dashboard",label:"Agent Command Center",caption:"Your entire day — smart queue, calendar and pipeline in one view.",src:Abe},{key:"crm",label:"CRM & Contact Hub",caption:"Contacts, tags, follow-ups and deal history, always one click away.",src:Wtt},{key:"pipeline",label:"Deal Pipeline",caption:"Every active deal with tasks, forms and commission tracking built in.",src:Ktt},{key:"staging",label:"Staging Studio",caption:"AI photo staging — MLS-ready before/afters in minutes.",src:Ytt},{key:"coaching",label:"Coaching",caption:"Book live coaching sessions with Google Meet created automatically.",src:Ztt},{key:"marketing",label:"Marketing Studio",caption:"Templates, social posts, reels and print — all branded to you.",src:Xtt}];function Jtt({slot:t}){return o.jsxs("figure",{className:"rounded-2xl overflow-hidden border border-white/10 bg-white/5 backdrop-blur-sm shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2 border-b border-white/10",children:[o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-400/80"}),o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-400/80"}),o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-green-400/80"}),o.jsx("span",{className:"ml-3 text-[11px] rounded px-2 py-0.5 bg-white/10 text-white/70",children:"dashboard.relevelup.com"})]}),t.src?o.jsx("img",{src:t.src,alt:`LevelUp ${t.label} screenshot`,className:"w-full h-auto block",loading:"lazy"}):o.jsxs("div",{className:"w-full aspect-[16/10] flex flex-col items-center justify-center gap-3 bg-white/5",children:[o.jsx(Es,{className:"h-8 w-8 text-white/40"}),o.jsx("p",{className:"text-sm font-medium text-white/60",children:t.label}),o.jsx("p",{className:"text-xs px-6 text-center text-white/40",children:"Screenshot placeholder"})]}),o.jsxs("figcaption",{className:"px-4 py-3 text-sm text-white/80",children:[o.jsx("span",{className:"font-semibold text-white",children:t.label})," — ",t.caption]})]})}const kd={individual_agent:{name:"Individual Agent",price:"$39",period:"/month",description:"Perfect for independent agents ready to level up",features:["Full dashboard access","300+ professional templates","Academy training library","Community & networking","Live events & workshops","Social media content","Newsletter resources","Email support"],trial:"7-day free trial",popular:!1},brokerage_over_25:{name:"Brokerage",subtitle:"Unlimited Agents",price:"$499",period:"/month",description:"Scale your brokerage without limits",features:["Everything in Individual, plus:","Unlimited agents","Brokerage manager dashboard","Exclusive brokerage resources","Team performance analytics","Agent onboarding tools","Resource sharing","Priority support"],popular:!1}},ert=[{icon:sG,title:"Academy Training",description:"Access a library of on-demand video training covering lead generation, marketing, technology, and more."},{icon:qM,title:"300+ Templates",description:"Professional Canva templates for social media, flyers, postcards, and marketing materials."},{icon:fo,title:"Live Events",description:"Weekly live training sessions, workshops, and Q&A events with industry experts."},{icon:u1,title:"Agent Community",description:"Connect with fellow agents, share wins, ask questions, and network in our private community."},{icon:Im,title:"Resource Kits",description:"Downloadable toolkits with scripts, checklists, guides, and everything you need to close more deals."},{icon:Yh,title:"Social Swag",description:"Fresh social media content and designs updated regularly to help you stand out online."}],trt=[{category:"Marketing Studio",icon:bC,items:["Weekly Reels scripts","Social Post Generator","300+ Canva templates","Marketing Calendar","Postcard Direct Mail","Listing Music Videos","Social Swag drops"]},{category:"Lead Generation",icon:uG,items:["Custom lead websites","Open House Guest Book","RSVP pages","Resource landing pages","Listing Revival™","FSBO Breakthrough","Attract system"]},{category:"CRM & Deals",icon:$Re,items:["Agent OS CRM","Deal pipeline","Forms & e-signatures","Client portal","Smart follow-up queue","Lead ponds for teams","Google Business reviews"]},{category:"AI & Media",icon:dLe,items:["AI Staging Studio","Video library & sharing","Screen recording","Virtual backgrounds","AI blog writer","YouTube → Blog","Ask AI assistant"]},{category:"Growth & Coaching",icon:HA,items:["Academy courses","Live weekly coaching","Coaching programs","1:1 coaching booking","Private community","Live events & workshops"]},{category:"Brokerage Tools",icon:Eo,items:["Manager dashboard","Team analytics","Agent onboarding","Office form libraries","Listing Exchange","Brand kits","Recruiting pipeline"]}],rrt=[{icon:El,title:"Contact Management",description:"Organize your sphere into relationship tiers—Top 25, Past Clients, Referral Partners, and more."},{icon:Es,title:"Smart Touchpoint Plans",description:"Automated action plans that tell you exactly who to contact and how, based on relationship type."},{icon:Ui,title:"One-Tap Actions",description:"Call, text, or email contacts directly with pre-written scripts tailored to each relationship."},{icon:ARe,title:"Birthday & Anniversary Alerts",description:"Never miss an important date—get reminders for birthdays and home anniversaries."},{icon:ga,title:"Pop-by Map",description:"See all your contacts on a map and plan efficient pop-by routes in your area."},{icon:GA,title:"Momentum Tracking",description:"Track your touch streaks, weekly goals, and relationship health scores."},{icon:tp,title:"Relationship Health",description:"Visual dashboard showing which contacts need attention based on last touch date."},{icon:kL,title:"Daily Action Cards",description:"Wake up to a prioritized list of exactly who to reach out to today."}],nrt=[{name:"Sarah M.",role:"Top Producer, RE/MAX",quote:"LevelUp completely transformed how I run my business. The templates alone save me hours every week."},{name:"Mike T.",role:"Brokerage Owner",quote:"Onboarding new agents used to take weeks. Now they're productive from day one with all the training resources."},{name:"Jessica L.",role:"Team Lead",quote:"The community is incredible. I've learned more from other agents here than any conference I've attended."}],irt=()=>{const{user:t,loading:e}=$n(),r=$a(),[n]=mS();P.useEffect(()=>{const Z=window.location.host==="listings.relevelup.com",Q=window.location.pathname==="/";if(Z&&Q){r("/public/listings",{replace:!0});return}},[r]);const[i,a]=P.useState(null),[c,s]=P.useState(null),[f,m]=P.useState(!1),[x,_]=P.useState(""),[T,E]=P.useState(""),[C,N]=P.useState(""),[L,M]=P.useState(!1),[D,B]=P.useState(!1),V=(Z,Q=!1)=>{s({tier:Z,skipTrial:Q}),m(!0)};Vtt(),P.useEffect(()=>{const Z=window.location.host==="listings.relevelup.com",Q=location.pathname.startsWith("/public/");!e&&t&&!Z&&!Q&&r("/dashboard")},[t,e,r,location.pathname]),P.useEffect(()=>{n.get("canceled")==="true"&&Jt.error("Checkout was canceled. Feel free to try again when you're ready!")},[n]);const G=async(Z,Q=!1)=>{if(!x){Jt.error("Please enter your email address");return}if(!T.trim()){Jt.error("Please enter your full name");return}M(!0),a(Z+(Q?"_direct":""));const se=qtt();try{const{data:ie,error:ue}=await De.functions.invoke("create-checkout",{body:{tier:Z,email:x,name:T.trim(),couponCode:C.trim()||void 0,skipTrial:Q,referralCode:se}});if(ue)throw ue;if(ie!=null&&ie.url)window.open(ie.url,"_blank","noopener,noreferrer"),Jt.success("Checkout opened in a new tab");else throw new Error("No checkout URL returned")}catch(ie){console.error("Checkout error:",ie),Jt.error(ie.message||"Failed to start checkout. Please try again.")}finally{M(!1),a(null),m(!1),s(null)}},W=()=>{c&&G(c.tier,c.skipTrial)};return e?o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-[#4a6b6d]",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-white border-t-transparent"})}):o.jsxs("div",{className:"min-h-screen bg-background overflow-hidden",children:[o.jsx("nav",{className:"fixed top-0 left-0 right-0 z-50 bg-[#4a6b6d] shadow-md",children:o.jsxs("div",{className:"container mx-auto px-4 py-3 flex items-center justify-between",children:[o.jsx("div",{className:"flex items-center",children:o.jsx("img",{src:cne,alt:"LevelUp",className:"h-8 md:h-10"})}),o.jsxs("div",{className:"flex items-center gap-2 md:gap-4",children:[o.jsx(Kt,{variant:"ghost",className:"text-white/90 hover:text-white hover:bg-white/10 hidden sm:inline-flex",onClick:()=>{var Z;return(Z=document.getElementById("features"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},children:"Features"}),o.jsx(Kt,{variant:"ghost",className:"text-white/90 hover:text-white hover:bg-white/10 hidden sm:inline-flex",onClick:()=>{var Z;return(Z=document.getElementById("pricing"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},children:"Pricing"}),o.jsx(Kt,{variant:"ghost",className:"text-white/90 hover:text-white hover:bg-white/10 hidden sm:inline-flex",onClick:()=>r("/brokerage-solutions"),children:"For Brokerages"}),o.jsx(Kt,{variant:"ghost",className:"text-white/90 hover:text-white hover:bg-white/10 hidden sm:inline-flex",onClick:()=>r("/blog"),children:"Blog"}),o.jsx(Kt,{onClick:()=>r("/auth"),className:"bg-white text-[#4a6b6d] hover:bg-gray-100 font-medium shadow-md",children:"Sign In"})]})]})}),o.jsxs("section",{className:"relative overflow-hidden bg-[#0f2530]",children:[o.jsx("style",{children:` @keyframes hero-float { 0%,100% { transform: translateY(0px); } 50% { transform: translateY(-12px); } } @keyframes hero-float-slow { 0%,100% { transform: translateY(0px); } 50% { transform: translateY(-8px); } } @keyframes hero-glow { 0%,100% { opacity: 0.55; } 50% { opacity: 0.9; } } `}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#122c3a] via-[#16384a] to-[#0f2530]"}),o.jsx("div",{className:"absolute -top-40 left-1/2 -translate-x-1/2 h-[560px] w-[900px] rounded-full bg-[#4aa8a0]/25 blur-[140px] animate-[hero-glow_7s_ease-in-out_infinite]"}),o.jsx("div",{className:"absolute top-1/3 -left-40 h-[420px] w-[420px] rounded-full bg-[#2a6f8a]/20 blur-[120px]"}),o.jsx("div",{className:"absolute top-1/4 -right-40 h-[420px] w-[420px] rounded-full bg-[#c9a84c]/10 blur-[120px]"}),o.jsx("div",{className:"absolute inset-0 opacity-[0.12] bg-[linear-gradient(to_right,rgba(255,255,255,0.5)_1px,transparent_1px),linear-gradient(to_bottom,rgba(255,255,255,0.5)_1px,transparent_1px)] bg-[size:56px_56px] [mask-image:radial-gradient(ellipse_75%_65%_at_50%_35%,black,transparent)]"}),o.jsx("div",{className:"absolute inset-x-0 bottom-0 h-40 bg-gradient-to-t from-[#0f2530] to-transparent"}),o.jsxs("div",{className:"container mx-auto px-4 relative",children:[o.jsxs("div",{className:"max-w-5xl mx-auto text-center pt-20 md:pt-28 pb-10 space-y-8",children:[o.jsx("div",{className:"flex justify-center animate-fade-in",children:o.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/5 backdrop-blur-sm px-4 py-1.5 text-xs md:text-sm font-semibold tracking-wide text-white/85 shadow-lg",children:[o.jsx(Es,{className:"h-3.5 w-3.5 text-[#7fd4cc]"}),"The Agent Operating System — coaching, CRM & marketing in one"]})}),o.jsxs("h1",{className:"text-4xl sm:text-5xl md:text-7xl font-sans font-bold tracking-tight text-white leading-[1.05] animate-fade-in",children:["The tools you need",o.jsx("br",{className:"hidden sm:block"})," to get it done.",o.jsx("span",{className:"block mt-3 bg-gradient-to-r from-[#8fe0d6] via-[#5cc0b6] to-[#e6c878] bg-clip-text text-transparent",children:"The platform to keep it going."})]}),o.jsx("p",{className:"text-base md:text-xl text-white/65 max-w-2xl mx-auto leading-relaxed animate-fade-in",children:"Weekly coaching, a smart CRM, done-for-you marketing and AI tools — everything a modern agent runs on, in one login."}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center pt-2 animate-fade-in",children:[o.jsxs(Kt,{size:"lg",onClick:()=>{var Z;return(Z=document.getElementById("free-trial"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"px-8 py-7 text-lg font-semibold bg-white text-[#122c3a] hover:bg-white/90 shadow-[0_0_40px_-8px_rgba(140,220,210,0.6)] transition-all hover:scale-105 group rounded-full",children:["Start Your Free Trial",o.jsx(Uc,{className:"ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform"})]}),o.jsx(Kt,{size:"lg",variant:"outline",onClick:()=>{var Z;return(Z=document.getElementById("features"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"px-8 py-7 text-lg font-semibold border-2 border-white/40 text-white bg-white/5 backdrop-blur-sm hover:bg-white hover:text-[#122c3a] rounded-full",children:"See What's Included"})]}),o.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-8 gap-y-3 pt-2 text-sm text-white/55 animate-fade-in",children:[o.jsxs("span",{className:"inline-flex items-center gap-2",children:[o.jsx(Xc,{className:"h-4 w-4 text-[#e6c878] fill-[#e6c878]"})," Built with agents' direct input"]}),o.jsxs("span",{className:"inline-flex items-center gap-2",children:[o.jsx(kL,{className:"h-4 w-4 text-[#7fd4cc]"})," New tools added every month"]}),o.jsxs("span",{className:"inline-flex items-center gap-2",children:[o.jsx(WA,{className:"h-4 w-4 text-white/60"})," Cancel anytime"]})]})]}),o.jsxs("div",{className:"relative max-w-5xl mx-auto pb-20 md:pb-28 px-2",children:[o.jsx("div",{className:"absolute inset-x-8 top-10 bottom-0 rounded-[40px] bg-gradient-to-b from-[#4aa8a0]/30 to-transparent blur-2xl","aria-hidden":!0}),o.jsxs("div",{className:"relative animate-[hero-float-slow_8s_ease-in-out_infinite]",children:[o.jsxs("figure",{className:"rounded-2xl overflow-hidden border border-white/15 bg-[#0d1f29]/80 backdrop-blur-md shadow-[0_40px_80px_-20px_rgba(0,0,0,0.7)]",children:[o.jsxs("div",{className:"flex items-center gap-1.5 px-4 py-2.5 border-b border-white/10 bg-white/5",children:[o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-400/80"}),o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-amber-400/80"}),o.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-green-400/80"}),o.jsx("span",{className:"ml-3 text-[11px] rounded px-2 py-0.5 bg-white/10 text-white/70",children:"dashboard.relevelup.com"})]}),o.jsx("img",{src:Abe,alt:"LevelUp Agent Command Center dashboard",className:"w-full h-auto block"})]}),o.jsxs("div",{className:"hidden md:flex absolute -left-10 top-24 items-center gap-3 rounded-2xl border border-white/15 bg-[#122c3a]/90 backdrop-blur-md px-4 py-3 shadow-2xl animate-[hero-float_6s_ease-in-out_infinite]",children:[o.jsx("span",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-[#4aa8a0]/20",children:o.jsx(aS,{className:"h-5 w-5 text-[#7fd4cc]"})}),o.jsxs("span",{children:[o.jsx("span",{className:"block text-sm font-semibold text-white",children:"Smart Queue ready"}),o.jsx("span",{className:"block text-xs text-white/55",children:"5 follow-ups due today"})]})]}),o.jsxs("div",{className:"hidden md:flex absolute -right-10 top-1/2 items-center gap-3 rounded-2xl border border-white/15 bg-[#122c3a]/90 backdrop-blur-md px-4 py-3 shadow-2xl animate-[hero-float_7s_ease-in-out_infinite_1s]",children:[o.jsx("span",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-[#e6c878]/15",children:o.jsx(sG,{className:"h-5 w-5 text-[#e6c878]"})}),o.jsxs("span",{children:[o.jsx("span",{className:"block text-sm font-semibold text-white",children:"Weekly Reels delivered"}),o.jsx("span",{className:"block text-xs text-white/55",children:"Fresh scripts every Monday"})]})]}),o.jsxs("div",{className:"hidden md:flex absolute left-8 -bottom-6 items-center gap-3 rounded-2xl border border-white/15 bg-[#122c3a]/90 backdrop-blur-md px-4 py-3 shadow-2xl animate-[hero-float_6.5s_ease-in-out_infinite_0.5s]",children:[o.jsx("span",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-white/10",children:o.jsx(fo,{className:"h-5 w-5 text-white/80"})}),o.jsxs("span",{children:[o.jsx("span",{className:"block text-sm font-semibold text-white",children:"Coaching booked"}),o.jsx("span",{className:"block text-xs text-white/55",children:"Meet link added automatically"})]})]})]})]})]})]}),o.jsx("section",{className:"py-20 bg-background",children:o.jsx("div",{className:"container mx-auto px-4",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center space-y-8",children:[o.jsx("h2",{className:"text-3xl md:text-5xl leading-tight font-sans font-semibold text-secondary",children:"We help brokerages and agents grow with training, tools, and built-in execution."}),o.jsxs("div",{className:"space-y-2 text-lg text-muted-foreground",children:[o.jsx("p",{children:"Agents get weekly coaching + plug-and-play marketing."}),o.jsx("p",{children:"Brokerages get higher adoption, consistency, and real engagement."})]}),o.jsx("p",{className:"text-2xl md:text-4xl text-[#4a6b6d] pt-4 font-sans font-bold",children:"LEVELUP EQUIPS BOTH TO THRIVE."}),o.jsx("p",{className:"text-lg text-muted-foreground",children:"Learn how we support agents and empower brokerages to grow—together."}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center pt-4",children:[o.jsxs(Kt,{size:"lg",variant:"outline",onClick:()=>{var Z;return(Z=document.getElementById("brokerage"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"border-[#4a6b6d] text-[#4a6b6d] hover:bg-[#4a6b6d]/5",children:[o.jsx(Eo,{className:"mr-2 h-5 w-5"}),"Brokerage Partnership"]}),o.jsxs(Kt,{size:"lg",onClick:()=>{var Z;return(Z=document.getElementById("pricing"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"bg-[#4a6b6d] hover:bg-[#3d5a5c]",children:[o.jsx(kl,{className:"mr-2 h-5 w-5"}),"Individual Membership"]})]})]})})}),o.jsx("section",{id:"features",className:"py-20 bg-muted/30",children:o.jsxs("div",{className:"container mx-auto px-4",children:[o.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[o.jsxs("span",{className:"inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#4a6b6d]/10 text-[#4a6b6d] text-sm font-semibold mb-5",children:[o.jsx(ORe,{className:"w-4 h-4"}),"40+ tools & counting"]}),o.jsx("h2",{className:"text-3xl md:text-4xl mb-6 font-sans font-bold",children:"What's inside our members only portal?"}),o.jsx("p",{className:"text-lg text-muted-foreground",children:"Everything you need to grow your business, all in one place."})]}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 max-w-6xl mx-auto",children:ert.map((Z,Q)=>o.jsxs(qn,{className:"group relative overflow-hidden border hover:border-[#4a6b6d]/50 transition-all duration-300 hover:shadow-lg bg-background",children:[o.jsxs(Qu,{children:[o.jsx("div",{className:"w-14 h-14 rounded-2xl bg-[#4a6b6d]/10 flex items-center justify-center mb-4",children:o.jsx(Z.icon,{className:"w-7 h-7 text-[#4a6b6d]"})}),o.jsx(Ju,{className:"text-xl font-sans",children:Z.title})]}),o.jsx(ri,{children:o.jsx("p",{className:"text-muted-foreground leading-relaxed",children:Z.description})})]},Q))}),o.jsxs("div",{className:"mt-14 max-w-6xl mx-auto rounded-3xl bg-gradient-to-br from-[#1e3a4c] via-[#2a4f5f] to-[#3d6b6b] p-8 md:p-12 relative overflow-hidden shadow-2xl",children:[o.jsx("div",{className:"absolute inset-0 opacity-10",children:o.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMzYgMzRoLTJ2LTRoMnY0em0wLTZ2LTRoLTJ2NGgyem0tNiA2aC0ydi00aDJ2NHptMC02di00aC0ydjRoMnoiLz48L2c+PC9nPjwvc3ZnPg==')]"})}),o.jsxs("div",{className:"relative",children:[o.jsxs("div",{className:"text-center mb-10",children:[o.jsx("h3",{className:"text-2xl md:text-3xl font-bold text-white font-sans",children:"...and that's just the beginning"}),o.jsx("p",{className:"text-white/60 mt-2",children:"Dozens of purpose-built tools, all included with membership."})]}),o.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-10 gap-y-8",children:trt.map(Z=>o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-2.5 mb-4",children:[o.jsx("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-white/10",children:o.jsx(Z.icon,{className:"h-4 w-4 text-white"})}),o.jsx("span",{className:"text-sm font-bold uppercase tracking-wider text-white/90",children:Z.category})]}),o.jsx("ul",{className:"space-y-2.5",children:Z.items.map(Q=>o.jsxs("li",{className:"flex items-center gap-2.5 text-white/70 text-sm",children:[o.jsx(Ao,{className:"h-3.5 w-3.5 text-emerald-300 shrink-0"}),Q]},Q))})]},Z.category))}),o.jsxs("p",{className:"text-center text-white/50 text-sm mt-10 flex items-center justify-center gap-2",children:[o.jsx(Es,{className:"h-4 w-4"}),"New tools added every month — membership keeps getting more valuable."]})]})]})]})}),o.jsxs("section",{className:"py-20 bg-gradient-to-br from-[#1e3a4c] via-[#2a4f5f] to-[#3d6b6b] relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 opacity-10",children:o.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMzYgMzRoLTJ2LTRoMnY0em0wLTZ2LTRoLTJ2NGgyem0tNiA2aC0ydi00aDJ2NHptMC02di00aC0ydjRoMnoiLz48L2c+PC9nPjwvc3ZnPg==')]"})}),o.jsxs("div",{className:"container mx-auto px-4 relative",children:[o.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-14",children:[o.jsx("span",{className:"text-sm font-semibold tracking-[0.15em] uppercase text-white/70",children:"See it in action"}),o.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-white mt-4 tracking-tight font-sans",children:"A real platform, not another course"}),o.jsx("p",{className:"text-white/60 mt-4 max-w-2xl mx-auto text-lg",children:"This is what members open every morning."})]}),o.jsx("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 max-w-6xl mx-auto",children:Qtt.map(Z=>o.jsx(Jtt,{slot:Z},Z.key))})]})]}),o.jsxs("section",{id:"agent-os",className:"py-20 bg-gradient-to-br from-[#4a6b6d] to-[#3d5a5c] relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 opacity-10",children:o.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMzYgMzRoLTJ2LTRoMnY0em0wLTZ2LTRoLTJ2NGgyem0tNiA2aC0ydi00aDJ2NHptMC02di00aC0ydjRoMnoiLz48L2c+PC9nPjwvc3ZnPg==')]"})}),o.jsxs("div",{className:"container mx-auto px-4 relative",children:[o.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 text-white text-sm font-medium mb-6",children:[o.jsx(Es,{className:"w-4 h-4"}),"Included with Membership"]}),o.jsxs("h2",{className:"text-3xl mb-6 text-white font-sans font-bold md:text-6xl",children:["Meet ",o.jsx("span",{className:"italic",children:"Agent OS"})]}),o.jsx("p",{className:"text-lg text-white/80",children:"Your relationship-first operating system. Never forget a follow-up, track every touchpoint, and turn your sphere into a referral machine."})]}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-6xl mx-auto",children:rrt.map((Z,Q)=>o.jsxs(qn,{className:"group relative overflow-hidden border-0 bg-white/10 backdrop-blur-sm hover:bg-white/20 transition-all duration-300",children:[o.jsxs(Qu,{className:"pb-3",children:[o.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/20 flex items-center justify-center mb-3",children:o.jsx(Z.icon,{className:"w-6 h-6 text-white"})}),o.jsx(Ju,{className:"text-lg font-semibold text-white",children:Z.title})]}),o.jsx(ri,{children:o.jsx("p",{className:"text-white/70 text-sm leading-relaxed",children:Z.description})})]},Q))}),o.jsx("div",{className:"text-center mt-12",children:o.jsxs(Kt,{size:"lg",onClick:()=>{var Z;return(Z=document.getElementById("pricing"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"bg-white text-[#4a6b6d] hover:bg-white/90 shadow-xl transition-all hover:scale-105",children:["Get Agent OS with Your Membership",o.jsx(Uc,{className:"ml-2 w-5 h-5"})]})})]})]}),o.jsx("section",{id:"brokerage",className:"py-20 bg-[#4a6b6d]/5",children:o.jsx("div",{className:"container mx-auto px-4",children:o.jsx("div",{className:"max-w-6xl mx-auto",children:o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#4a6b6d]/10 text-[#4a6b6d] text-sm font-medium",children:[o.jsx(Eo,{className:"w-4 h-4"}),"For Brokerages"]}),o.jsxs("h2",{className:"text-3xl font-sans font-bold md:text-6xl",children:["Empower Your"," ",o.jsx("span",{className:"italic text-[#4a6b6d]",children:"Entire Team"})]}),o.jsx("p",{className:"text-lg text-muted-foreground",children:"Give every agent on your team access to world-class training and resources. Track performance, streamline onboarding, and watch your brokerage thrive."}),o.jsx("ul",{className:"space-y-4",children:["Dedicated brokerage manager dashboard","Invite and manage agents with one click","Exclusive brokerage-only resources","Team analytics and performance tracking","Simplified agent onboarding","Share resources across your team"].map((Z,Q)=>o.jsxs("li",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"w-6 h-6 rounded-full bg-[#4a6b6d]/10 flex items-center justify-center flex-shrink-0",children:o.jsx(Ao,{className:"w-4 h-4 text-[#4a6b6d]"})}),o.jsx("span",{className:"text-foreground",children:Z})]},Q))}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 mt-4",children:[o.jsxs(Kt,{size:"lg",onClick:()=>{var Z;return(Z=document.getElementById("pricing"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"bg-[#4a6b6d] hover:bg-[#3d5a5c]",children:["See Brokerage Plans",o.jsx(th,{className:"ml-2 w-5 h-5"})]}),o.jsxs(Kt,{size:"lg",variant:"outline",onClick:()=>B(!0),className:"border-[#4a6b6d] text-[#4a6b6d] hover:bg-[#4a6b6d]/10",children:[o.jsx(fo,{className:"mr-2 w-5 h-5"}),"Schedule Info Session"]})]})]}),o.jsx("div",{className:"relative hidden md:block",children:o.jsx("img",{src:Gtt,alt:"Scale Your Team from 5 to 500 Agents",className:"w-full rounded-3xl shadow-lg"})})]})})})}),o.jsx("section",{className:"py-20 bg-background",children:o.jsxs("div",{className:"container mx-auto px-4",children:[o.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[o.jsxs("h2",{className:"text-3xl mb-6 font-sans md:text-5xl font-bold",children:["Agents Love ",o.jsx("span",{className:"italic text-[#4a6b6d]",children:"LevelUp"})]}),o.jsx("p",{className:"text-lg text-muted-foreground",children:"See what top producers are saying about the platform."})]}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 max-w-6xl mx-auto",children:nrt.map((Z,Q)=>o.jsx(qn,{className:"bg-muted/30 border-0",children:o.jsxs(ri,{className:"pt-8",children:[o.jsx("div",{className:"flex gap-1 mb-4",children:[1,2,3,4,5].map(se=>o.jsx(Xc,{className:"w-5 h-5 fill-yellow-400 text-yellow-400"},se))}),o.jsxs("p",{className:"text-lg mb-6 italic text-muted-foreground",children:['"',Z.quote,'"']}),o.jsxs("div",{children:[o.jsx("p",{className:"font-semibold",children:Z.name}),o.jsx("p",{className:"text-sm text-muted-foreground",children:Z.role})]})]})},Q))})]})}),o.jsxs("section",{id:"free-trial",className:"py-20 bg-gradient-to-br from-[#1e3a4c] via-[#2a4f5f] to-[#3d6b6b] relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 opacity-10",children:o.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMzYgMzRoLTJ2LTRoMnY0em0wLTZ2LTRoLTJ2NGgyem0tNiA2aC0ydi00aDJ2NHptMC02di00aC0ydjRoMnoiLz48L2c+PC9nPjwvc3ZnPg==')]"})}),o.jsx("div",{className:"container mx-auto px-4 relative",children:o.jsxs("div",{className:"max-w-3xl mx-auto text-center space-y-8",children:[o.jsxs("h2",{className:"text-3xl md:text-5xl font-bold text-white",children:["Start Your Free Trial ",o.jsx("span",{className:"italic",children:"Today"})]}),o.jsx("p",{className:"text-lg md:text-xl text-white/80 leading-relaxed",children:"Get instant access to 7 days of trainings, templates, and tools — designed to give you quick wins now and resources you'll keep forever."}),o.jsx("div",{className:"pt-4",children:o.jsxs(Kt,{size:"lg",className:"px-12 py-7 text-lg font-semibold bg-white text-[#4a6b6d] hover:bg-white/90 shadow-2xl transition-all hover:scale-105 group rounded-full",onClick:()=>V("individual_agent"),children:["Start Free Trial",o.jsx(Uc,{className:"ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform"})]})})]})})]}),o.jsx("section",{id:"pricing",className:"py-20 bg-muted/30",children:o.jsxs("div",{className:"container mx-auto px-4",children:[o.jsxs("div",{className:"text-center mb-16",children:[o.jsxs("h2",{className:"text-3xl mb-6 font-sans md:text-5xl font-bold",children:["Simple, Transparent ",o.jsx("span",{className:"italic text-[#4a6b6d]",children:"Pricing"})]}),o.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:"Choose the plan that fits your needs. All plans include everything you need to succeed."})]}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 max-w-4xl mx-auto",children:[o.jsxs(qn,{className:"relative flex flex-col border hover:border-[#4a6b6d]/50 transition-all hover:shadow-xl bg-background",children:[o.jsxs(Qu,{className:"pb-4",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-10 h-10 rounded-xl bg-[#4a6b6d]/10 flex items-center justify-center",children:o.jsx(kl,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsx(Ju,{className:"text-xl font-sans",children:kd.individual_agent.name})]}),o.jsxs("div",{className:"flex items-baseline gap-1 mt-4",children:[o.jsx("span",{className:"text-5xl font-bold",children:kd.individual_agent.price}),o.jsx("span",{className:"text-muted-foreground text-lg",children:kd.individual_agent.period})]}),o.jsx(sk,{className:"text-base mt-2",children:kd.individual_agent.description}),o.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-green-500/10 text-green-600 text-sm font-medium mt-4",children:[o.jsx(pc,{className:"w-4 h-4"}),kd.individual_agent.trial]})]}),o.jsx(ri,{className:"flex-1 pt-0",children:o.jsx("ul",{className:"space-y-3",children:kd.individual_agent.features.map((Z,Q)=>o.jsxs("li",{className:"flex items-center gap-3",children:[o.jsx(Ao,{className:"w-5 h-5 text-[#4a6b6d] flex-shrink-0"}),o.jsx("span",{children:Z})]},Q))})}),o.jsxs(h6,{className:"flex flex-col gap-3 pt-4",children:[o.jsx(Kt,{className:"w-full py-6 text-lg bg-[#4a6b6d] hover:bg-[#3d5a5c]",onClick:()=>V("individual_agent"),children:"Start Free Trial"}),o.jsx(Kt,{variant:"outline",className:"w-full rounded-full border-2 border-[#4a6b6d] text-[#4a6b6d] bg-white hover:bg-[#4a6b6d]/5 uppercase text-sm font-medium tracking-wide",onClick:()=>V("individual_agent",!0),children:"Skip Trial, Subscribe Now"})]})]}),o.jsxs(qn,{className:"relative flex flex-col border-2 border-[#4a6b6d] shadow-2xl bg-background",children:[o.jsx("div",{className:"absolute -top-4 left-1/2 -translate-x-1/2 px-6 py-2 bg-[#4a6b6d] text-white text-sm font-semibold rounded-full shadow-lg",children:"Most Popular"}),o.jsxs(Qu,{className:"pb-4 pt-8",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[o.jsx("div",{className:"w-10 h-10 rounded-xl bg-[#4a6b6d]/20 flex items-center justify-center",children:o.jsx(Eo,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsxs("div",{children:[o.jsx(Ju,{className:"text-xl font-sans",children:kd.brokerage_over_25.name}),o.jsx("span",{className:"text-sm text-muted-foreground",children:kd.brokerage_over_25.subtitle})]})]}),o.jsxs("div",{className:"flex items-baseline gap-1 mt-4",children:[o.jsx("span",{className:"text-5xl font-bold",children:kd.brokerage_over_25.price}),o.jsx("span",{className:"text-muted-foreground text-lg",children:kd.brokerage_over_25.period})]}),o.jsx(sk,{className:"text-base mt-2",children:kd.brokerage_over_25.description})]}),o.jsx(ri,{className:"flex-1 pt-0",children:o.jsx("ul",{className:"space-y-3",children:kd.brokerage_over_25.features.map((Z,Q)=>o.jsxs("li",{className:"flex items-center gap-3",children:[o.jsx(Ao,{className:"w-5 h-5 text-[#4a6b6d] flex-shrink-0"}),o.jsx("span",{children:Z})]},Q))})}),o.jsxs(h6,{className:"pt-4 flex flex-col gap-3",children:[o.jsx(Kt,{className:"w-full py-6 text-lg shadow-lg bg-[#4a6b6d] hover:bg-[#3d5a5c]",onClick:()=>V("brokerage_over_25"),children:"Get Started"}),o.jsxs(Kt,{variant:"link",className:"text-[#4a6b6d]",onClick:()=>r("/brokerage-solutions"),children:["Explore all brokerage management tools ",o.jsx(Uc,{className:"ml-1 w-4 h-4"})]})]})]})]})]})}),o.jsx("section",{id:"neutrality",className:"py-20 bg-background",children:o.jsx("div",{className:"container mx-auto px-4",children:o.jsxs("div",{className:"max-w-4xl mx-auto",children:[o.jsxs("div",{className:"text-center mb-12",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[#4a6b6d]/10 text-[#4a6b6d] text-sm font-medium mb-4",children:[o.jsx(WA,{className:"w-4 h-4"}),"Our Commitment"]}),o.jsxs("h2",{className:"text-3xl md:text-4xl font-sans font-bold",children:["LevelUp Brokerage ",o.jsx("span",{className:"italic text-[#4a6b6d]",children:"Neutrality Policy"})]}),o.jsx("p",{className:"text-lg text-muted-foreground mt-4 max-w-2xl mx-auto",children:"We are committed to being a trusted, independent partner for every agent and brokerage."})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[o.jsx(qn,{className:"border-[#4a6b6d]/20 bg-[#4a6b6d]/[0.03]",children:o.jsxs(ri,{className:"p-6 flex items-start gap-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg bg-[#4a6b6d]/10 flex items-center justify-center shrink-0",children:o.jsx(Eo,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsx("p",{className:"text-foreground font-medium leading-relaxed",children:"LevelUp serves all brokerages."})]})}),o.jsx(qn,{className:"border-[#4a6b6d]/20 bg-[#4a6b6d]/[0.03]",children:o.jsxs(ri,{className:"p-6 flex items-start gap-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg bg-[#4a6b6d]/10 flex items-center justify-center shrink-0",children:o.jsx(Fy,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsx("p",{className:"text-foreground font-medium leading-relaxed",children:"LevelUp does not share member information with any brokerage."})]})}),o.jsx(qn,{className:"border-[#4a6b6d]/20 bg-[#4a6b6d]/[0.03]",children:o.jsxs(ri,{className:"p-6 flex items-start gap-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg bg-[#4a6b6d]/10 flex items-center justify-center shrink-0",children:o.jsx(lLe,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsx("p",{className:"text-foreground font-medium leading-relaxed",children:"LevelUp does not recruit brokerage partners' agents."})]})}),o.jsx(qn,{className:"border-[#4a6b6d]/20 bg-[#4a6b6d]/[0.03]",children:o.jsxs(ri,{className:"p-6 flex items-start gap-4",children:[o.jsx("div",{className:"w-10 h-10 rounded-lg bg-[#4a6b6d]/10 flex items-center justify-center shrink-0",children:o.jsx(Im,{className:"w-5 h-5 text-[#4a6b6d]"})}),o.jsx("p",{className:"text-foreground font-medium leading-relaxed",children:"LevelUp does not use LevelUp events, trainings, webinars, CRM data, or member lists for recruiting purposes."})]})})]})]})})}),o.jsxs("section",{className:"py-20 bg-gradient-to-br from-[#1e3a4c] via-[#2a4f5f] to-[#3d6b6b] relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 opacity-10",children:o.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmZmZmYiIGZpbGwtb3BhY2l0eT0iMC40Ij48cGF0aCBkPSJNMzYgMzRoLTJ2LTRoMnY0em0wLTZ2LTRoLTJ2NGgyem0tNiA2aC0ydi00aDJ2NHptMC02di00aC0ydjRoMnoiLz48L2c+PC9nPjwvc3ZnPg==')]"})}),o.jsx("div",{className:"container mx-auto px-4 relative",children:o.jsxs("div",{className:"max-w-4xl mx-auto text-center space-y-8",children:[o.jsx("h2",{className:"text-3xl text-white font-sans md:text-5xl",children:"Ready to Level Up?"}),o.jsx("p",{className:"text-lg text-white/80 max-w-2xl mx-auto",children:"Join thousands of agents who are closing more deals, saving time, and growing their business with LevelUp."}),o.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[o.jsxs(Kt,{size:"lg",onClick:()=>{var Z;return(Z=document.getElementById("pricing"))==null?void 0:Z.scrollIntoView({behavior:"smooth"})},className:"px-10 py-7 text-lg font-semibold bg-white text-[#4a6b6d] hover:bg-white/90 shadow-2xl transition-all hover:scale-105",children:["Start Your Free Trial",o.jsx(Uc,{className:"ml-2 w-5 h-5"})]}),o.jsx(Kt,{size:"lg",onClick:()=>r("/auth"),className:"px-10 py-7 text-lg font-semibold border-2 border-white text-white bg-transparent hover:bg-white hover:text-[#4a6b6d]",children:"Sign In"})]})]})})]}),o.jsx("footer",{className:"py-12 bg-[#3d5a5c] text-white/80",children:o.jsx("div",{className:"container mx-auto px-4",children:o.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-between gap-4",children:[o.jsx("img",{src:cne,alt:"LevelUp",className:"h-8"}),o.jsxs("p",{className:"text-sm",children:["© ",new Date().getFullYear()," LevelUp. All rights reserved."]}),o.jsxs("div",{className:"flex items-center gap-6",children:[o.jsx("a",{href:"/brokerage-solutions",className:"text-white/60 hover:text-white transition-colors text-sm",children:"For Brokerages"}),o.jsx("a",{href:"/blog",className:"text-white/60 hover:text-white transition-colors text-sm",children:"Blog"}),o.jsx("a",{href:"/privacy-policy",className:"text-white/60 hover:text-white transition-colors text-sm",children:"Privacy Policy"}),o.jsx("a",{href:"mailto:support@relevelup.com",className:"text-white/60 hover:text-white transition-colors text-sm",children:"Contact Support"})]})]})})}),o.jsx(Htt,{open:D,onOpenChange:B}),o.jsx(ro,{open:f,onOpenChange:m,children:o.jsxs(za,{className:"sm:max-w-md",children:[o.jsxs(cl,{children:[o.jsx(qo,{className:"text-xl font-sans font-semibold",children:"Enter your details to get started"}),o.jsx(ad,{children:(c==null?void 0:c.tier)==="individual_agent"&&!(c!=null&&c.skipTrial)?"Start your 7-day free trial":(c==null?void 0:c.tier)==="individual_agent"?"Subscribe to Individual Agent":"Subscribe to Brokerage"})]}),o.jsxs("div",{className:"space-y-4 py-4",children:[o.jsxs("div",{children:[o.jsxs(Fr,{htmlFor:"dialog-name",children:["Full Name ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsx(Hr,{id:"dialog-name",type:"text",placeholder:"John Smith",value:T,onChange:Z=>E(Z.target.value),className:"mt-1",required:!0})]}),o.jsxs("div",{children:[o.jsxs(Fr,{htmlFor:"dialog-email",children:["Email Address ",o.jsx("span",{className:"text-red-500",children:"*"})]}),o.jsx(Hr,{id:"dialog-email",type:"email",placeholder:"you@example.com",value:x,onChange:Z=>_(Z.target.value),className:"mt-1",required:!0})]}),o.jsxs("div",{children:[o.jsxs(Fr,{htmlFor:"dialog-coupon",children:["Discount Code ",o.jsx("span",{className:"text-muted-foreground",children:"(Optional)"})]}),o.jsx(Hr,{id:"dialog-coupon",type:"text",placeholder:"Enter discount code",value:C,onChange:Z=>N(Z.target.value),className:"mt-1"})]})]}),o.jsx(Kt,{className:"w-full py-6 text-lg bg-[#4a6b6d] hover:bg-[#3d5a5c]",onClick:W,disabled:L,children:L?"Loading...":"Continue to Checkout"})]})})]})},srt="/assets/levelup-logo-horizontal-DEFNc0ms.png",art=bS({email:co().email("Invalid email address"),password:co().min(6,"Password must be at least 6 characters")}),kbe="https://dashboard.relevelup.com",wN="/oauth-connect",ort=`${kbe}/profile?reset=true`,MR="levelupOAuthRouteHistory";function une(t){return t.startsWith("/")&&!t.startsWith("//")&&!t.includes("://")}function lrt(t){const e=Date.now(),r=15e3;try{const a=[...JSON.parse(sessionStorage.getItem(MR)??"[]").filter(s=>e-s.ats.route));return a.length>=6&&c.has("auth")&&c.has("consent")}catch{return sessionStorage.setItem(MR,JSON.stringify([{route:t,at:e}])),!1}}function crt(){sessionStorage.removeItem(MR)}const urt=()=>{const{signIn:t,user:e,loading:r}=$n(),n=(e==null?void 0:e.id)??null,i=$a(),[a]=mS(),c=a.get("authorization_id")??"",s=a.get("next")??"",[f,m]=P.useState(!1),[x,_]=P.useState({}),[T,E]=P.useState(""),[C,N]=P.useState(!1),[L,M]=P.useState(!1),[D,B]=P.useState(null),[V,G]=P.useState(null),[W,Z]=P.useState(!1),[Q,se]=P.useState(!1),[ie,ue]=P.useState(()=>{if(a.get("paused")!=="1")return null;let Ae="";try{Ae=sessionStorage.getItem("accountPausedReason")||""}catch{}return Ae?`Your account is paused. ${Ae}`:"Your account is paused. Please contact LevelUp support to reactivate it."}),be=P.useRef(!1);P.useEffect(()=>{if(c&&window.location.hostname==="tile-portal.lovable.app"){const Ae=new URL("/auth",kbe);Ae.searchParams.set("next",`${wN}?authorization_id=${encodeURIComponent(c)}`),window.location.replace(Ae.toString());return}if(c){const Ae=`${wN}?authorization_id=${encodeURIComponent(c)}`;sessionStorage.setItem("redirectAfterLogin",Ae);return}s&&une(s)&&sessionStorage.setItem("redirectAfterLogin",s)},[c,s]),P.useEffect(()=>{if(r||!n||be.current)return;const Ae=c?`${wN}?authorization_id=${encodeURIComponent(c)}`:sessionStorage.getItem("redirectAfterLogin")||"/dashboard";if(!une(Ae)){sessionStorage.removeItem("redirectAfterLogin"),be.current=!0,i("/dashboard",{replace:!0});return}const Se=Ae.startsWith(wN)||Ae.startsWith("/oauth/consent")||Ae.startsWith("/.lovable/oauth/consent");if(Se&&lrt("auth")){B("We couldn't complete the OAuth sign-in handoff because the browser kept bouncing between sign-in and consent. Please refresh this page and try Connect again.");return}be.current=!0,Se||(crt(),sessionStorage.removeItem("redirectAfterLogin")),i(Ae,{replace:!0})},[c,r,i,n]);const Te=async Ae=>{Ae.preventDefault(),_({}),ue(null),G(null),Z(!1),m(!0);const Se=new FormData(Ae.currentTarget),ge=Se.get("email"),je=Se.get("password");try{art.parse({email:ge,password:je}),await t(ge,je)}catch(_e){if(_e instanceof pqe){const xe={};_e.issues.forEach(Pe=>{Pe.path[0]&&(xe[Pe.path[0]]=Pe.message)}),_(xe)}else if(_e instanceof Error&&_e.name==="AccountPaused")ue(_e.message);else if(ge)try{const{data:xe}=await De.functions.invoke("account-activation-status",{body:{email:ge}});xe!=null&&xe.needsActivation&&G(ge)}catch{}}finally{m(!1)}},we=async()=>{if(V){se(!0);try{const{data:Ae,error:Se}=await De.functions.invoke("send-password-reset",{body:{email:V,variant:"activation"}});if(Se)throw Se;if((Ae==null?void 0:Ae.sent)===!1)throw new Error("We couldn't send the activation email. Please try again in a moment or contact support.");Z(!0),Jt.success("Activation email sent! Check your inbox.")}catch(Ae){Jt.error(Ae instanceof Error?Ae.message:"Failed to send activation email")}finally{se(!1)}}},Oe=async()=>{if(!T){Jt.error("Please enter your email address");return}N(!0);try{const{data:Ae,error:Se}=await De.functions.invoke("send-password-reset",{body:{email:T.trim().toLowerCase(),redirectTo:ort}});if(Se)throw Se;if((Ae==null?void 0:Ae.sent)===!1){Jt.error("We couldn't find a LevelUp account for that email. Double-check the address, or email hello@relevelup.com and we'll help.");return}Jt.success("Password reset email sent! Check your inbox."),M(!1),E("")}catch(Ae){Jt.error(Ae instanceof Error?Ae.message:"Failed to send reset email")}finally{N(!1)}};return o.jsxs("div",{className:"min-h-screen relative overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-[#4a6b6d] via-[#3d5a5c] to-[#2a4347]",children:o.jsxs("div",{className:"absolute inset-0 opacity-30",children:[o.jsx("div",{className:"absolute top-0 left-0 w-96 h-96 bg-white/10 rounded-full blur-3xl animate-pulse"}),o.jsx("div",{className:"absolute bottom-0 right-0 w-96 h-96 bg-white/5 rounded-full blur-3xl animate-pulse",style:{animationDelay:"1s"}}),o.jsx("div",{className:"absolute top-1/2 left-1/2 w-64 h-64 bg-white/5 rounded-full blur-3xl animate-pulse",style:{animationDelay:"2s"}})]})}),o.jsxs("div",{className:"relative z-10 flex flex-col min-h-screen",children:[o.jsx("header",{className:"p-6",children:o.jsxs(zi,{to:"/",className:"inline-flex items-center gap-2 text-sm text-white/80 hover:text-white transition-colors",children:[o.jsx(Oy,{className:"h-4 w-4"}),"Back to Home"]})}),o.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:o.jsxs("div",{className:"w-full max-w-md",children:[o.jsx("div",{className:"flex justify-center mb-8",children:o.jsx("div",{className:"bg-white rounded-xl p-4 shadow-2xl",children:o.jsx("img",{src:srt,alt:"LevelUp",className:"h-12 w-auto"})})}),o.jsxs(qn,{className:"border-0 shadow-2xl bg-white/95 backdrop-blur-sm",children:[o.jsxs(Qu,{className:"space-y-1 text-center pb-4",children:[o.jsx(Ju,{className:"text-3xl font-bold text-[#2a4347]",style:{fontFamily:"'Libre Baskerville', serif"},children:"Welcome Back"}),o.jsx(sk,{className:"text-gray-600",children:D||"Sign in to access your dashboard"})]}),o.jsxs(ri,{children:[ie&&o.jsxs("div",{className:"mb-4 rounded-lg border border-amber-300 bg-amber-50 p-4 text-left",children:[o.jsx("p",{className:"text-sm font-semibold text-amber-900",children:"Account paused"}),o.jsx("p",{className:"mt-1 text-sm text-amber-800",children:ie}),o.jsx("a",{href:"mailto:support@relevelup.com",className:"mt-2 inline-block text-sm font-medium text-amber-900 underline",children:"Contact support"})]}),V&&o.jsxs("div",{className:"mb-4 rounded-lg border border-[#4a6b6d]/30 bg-[#f2f7f7] p-4 text-left",children:[o.jsx("p",{className:"text-sm font-semibold text-[#2a4347]",children:"You haven't set a password yet"}),o.jsx("p",{className:"mt-1 text-sm text-gray-700",children:W?`We just emailed ${V} a link to set your password and sign in. Check your inbox (and spam folder).`:`Your LevelUp account for ${V} is ready — it just needs a password. We'll email you a link to set one.`}),!W&&o.jsx(Kt,{type:"button",onClick:we,disabled:Q,className:"mt-3 bg-[#4a6b6d] hover:bg-[#3d5a5c] text-white",children:Q?"Sending...":"Email me a set-password link"})]}),o.jsxs("form",{onSubmit:Te,className:"space-y-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(Fr,{htmlFor:"signin-email",className:"text-gray-700",children:"Email"}),o.jsx(Hr,{id:"signin-email",name:"email",type:"email",placeholder:"your@email.com",required:!0,className:"border-gray-300 focus:border-[#4a6b6d] focus:ring-[#4a6b6d]"}),x.email&&o.jsx("p",{className:"text-sm text-red-600",children:x.email})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Fr,{htmlFor:"signin-password",className:"text-gray-700",children:"Password"}),o.jsx(Hr,{id:"signin-password",name:"password",type:"password",required:!0,className:"border-gray-300 focus:border-[#4a6b6d] focus:ring-[#4a6b6d]"}),x.password&&o.jsx("p",{className:"text-sm text-red-600",children:x.password})]}),o.jsx(Kt,{type:"submit",className:"w-full bg-[#4a6b6d] hover:bg-[#3d5a5c] text-white font-semibold py-6 text-lg transition-all duration-200 shadow-lg hover:shadow-xl",disabled:f,children:f?"Signing in...":"Sign In"}),o.jsxs(ro,{open:L,onOpenChange:M,children:[o.jsx(Bge,{asChild:!0,children:o.jsx(Kt,{variant:"link",className:"w-full text-sm text-[#4a6b6d] hover:text-[#3d5a5c]",children:"Forgot password?"})}),o.jsxs(za,{className:"bg-white",children:[o.jsxs(cl,{children:[o.jsx(qo,{className:"text-[#2a4347]",style:{fontFamily:"'Libre Baskerville', serif"},children:"Reset Password"}),o.jsx(ad,{className:"text-gray-600",children:"Enter your email address and we'll send you a link to reset your password."})]}),o.jsxs("div",{className:"space-y-4 pt-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx(Fr,{htmlFor:"reset-email",className:"text-gray-700",children:"Email"}),o.jsx(Hr,{id:"reset-email",type:"email",placeholder:"your@email.com",value:T,onChange:Ae=>E(Ae.target.value),className:"border-gray-300 focus:border-[#4a6b6d] focus:ring-[#4a6b6d]"})]}),o.jsx(Kt,{onClick:Oe,className:"w-full bg-[#4a6b6d] hover:bg-[#3d5a5c] text-white",disabled:C,children:C?"Sending...":"Send Reset Link"})]})]})]})]})]})]}),o.jsxs("p",{className:"text-center text-white/70 text-sm mt-6",children:["Don't have an account?"," ",o.jsx(zi,{to:"/",className:"text-white hover:underline font-medium",children:"View Plans"})]})]})})]})]})},I7=()=>br({queryKey:["lead-sources"],queryFn:async()=>{const{data:t,error:e}=await De.from("lead_sources").select("*").eq("is_active",!0).order("sort_order");if(e)throw e;return t}}),drt=()=>{const t=Ir(),{user:e}=$n();return kr({mutationFn:async r=>{const{data:n}=await De.from("lead_sources").select("id, name").eq("is_active",!0).ilike("name",r.trim()),i=(n||[]).find(s=>s.name.toLowerCase()===r.trim().toLowerCase()&&!0);if(i)throw new Error(`Lead source "${i.name}" already exists`);const{data:a,error:c}=await De.from("lead_sources").insert({name:r,owner_user_id:e==null?void 0:e.id,sort_order:100}).select().single();if(c)throw c;return a},onSuccess:()=>{t.invalidateQueries({queryKey:["lead-sources"]}),Jt.success("Lead source added")},onError:r=>{Jt.error("Failed to add lead source"),console.error(r)}})},O6t=()=>{const t=Ir();return kr({mutationFn:async({id:e,name:r})=>{const{error:n}=await De.from("lead_sources").update({name:r}).eq("id",e);if(n)throw n},onSuccess:()=>{t.invalidateQueries({queryKey:["lead-sources"]}),Jt.success("Lead source updated")},onError:e=>{Jt.error(e.message||"Failed to update lead source")}})},F6t=()=>{const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("lead_sources").update({is_active:!1}).eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["lead-sources"]}),Jt.success("Lead source removed")},onError:e=>{Jt.error(e.message||"Failed to remove lead source")}})},Cbe=(t,e)=>{const{user:r,isAdmin:n}=$n(),i=n&&e?e:r==null?void 0:r.id;return br({queryKey:["scorecard-transactions",t,i],queryFn:async()=>{let a=De.from("scorecard_transactions").select(` *, lead_source:lead_sources(id, name), client_type:relationship_types(id, name), contact:innercircle_contacts(id, first_name, last_name) `).eq("owner_user_id",i).order("close_date",{ascending:!1});t&&(a=a.gte("close_date",`${t}-01-01`).lte("close_date",`${t}-12-31`));const{data:c,error:s}=await a;if(s)throw s;return c},enabled:!!i})},hrt=t=>{const{user:e,isAdmin:r}=$n(),n=r&&t?t:e==null?void 0:e.id;return br({queryKey:["scorecard-transactions-all",n],queryFn:async()=>{const{data:i,error:a}=await De.from("scorecard_transactions").select(` *, lead_source:lead_sources(id, name), client_type:relationship_types(id, name), contact:innercircle_contacts(id, first_name, last_name) `).eq("owner_user_id",n).order("close_date",{ascending:!1});if(a)throw a;return i},enabled:!!n})},j7=()=>{const t=Ir(),{user:e}=$n();return kr({mutationFn:async r=>{const{data:n,error:i}=await De.from("scorecard_transactions").insert({...r,owner_user_id:e.id}).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["scorecard-transactions"]}),t.invalidateQueries({queryKey:["scorecard-transactions-all"]}),Jt.success("Transaction added")},onError:r=>{Jt.error("Failed to add transaction"),console.error(r)}})},frt=()=>{const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("scorecard_transactions").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["scorecard-transactions"]}),t.invalidateQueries({queryKey:["scorecard-transactions-all"]}),Jt.success("Transaction updated")},onError:e=>{Jt.error("Failed to update transaction"),console.error(e)}})},prt=()=>{const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("scorecard_transactions").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["scorecard-transactions"]}),t.invalidateQueries({queryKey:["scorecard-transactions-all"]}),Jt.success("Transaction deleted")},onError:e=>{Jt.error("Failed to delete transaction"),console.error(e)}})},mrt=(t,e)=>{const{user:r,isAdmin:n}=$n(),i=n&&e?e:r==null?void 0:r.id;return br({queryKey:["scorecard-goals",t,i],queryFn:async()=>{const{data:a,error:c}=await De.from("scorecard_goals").select("*").eq("owner_user_id",i).eq("year",t).maybeSingle();if(c)throw c;return a},enabled:!!i})},grt=()=>{const t=Ir(),{user:e}=$n();return kr({mutationFn:async r=>{const{data:n,error:i}=await De.from("scorecard_goals").upsert({...r,owner_user_id:e.id},{onConflict:"owner_user_id,year"}).select().single();if(i)throw i;return n},onSuccess:(r,n)=>{t.invalidateQueries({queryKey:["scorecard-goals",n.year]}),Jt.success("Goals saved")},onError:r=>{Jt.error("Failed to save goals"),console.error(r)}})},iF=()=>{const{user:t}=$n();return br({queryKey:["scorecard-settings",t==null?void 0:t.id],queryFn:async()=>{const{data:e,error:r}=await De.from("scorecard_settings").select("*").eq("user_id",t.id).maybeSingle();if(r)throw r;return e},enabled:!!(t!=null&&t.id)})},yrt=()=>{const t=Ir(),{user:e}=$n();return kr({mutationFn:async r=>{const{data:n,error:i}=await De.from("scorecard_settings").upsert({...r,user_id:e.id},{onConflict:"user_id"}).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["scorecard-settings"]}),Jt.success("Settings saved")},onError:r=>{Jt.error("Failed to save settings"),console.error(r)}})},xrt=(t,e)=>{const{data:r,isLoading:n}=Cbe(t,e),{data:i,isLoading:a}=hrt(e),{data:c}=iF(),s=(c==null?void 0:c.show_commission)??!0,f=m=>{if(!m||m.length===0)return{totalTransactions:0,buyerCount:0,sellerCount:0,totalVolume:0,averagePrice:0,totalCommission:0,totalNetToAgent:0,topLeadSource:null,transactionsByMonth:[],leadSourceBreakdown:[]};const x=m.filter(G=>G.transaction_type==="buyer").length,_=m.filter(G=>G.transaction_type==="seller").length,T=m.reduce((G,W)=>G+Number(W.sale_price),0),E=m.reduce((G,W)=>G+(Number(W.commission_amount)||0),0),C=m.reduce((G,W)=>{const Z=Number(W.commission_amount)||0;if(!Z)return G;let Q=Z;return W.brokerage_split_pct&&(Q-=Z*(W.brokerage_split_pct/100)),W.team_split_pct&&(Q-=Z*(W.team_split_pct/100)),W.franchise_fee_pct&&(Q-=Z*(W.franchise_fee_pct/100)),W.referral_fee_pct&&(Q-=Z*(W.referral_fee_pct/100)),W.transaction_fee&&(Q-=W.transaction_fee),G+Math.max(0,Q)},0),N={};m.forEach(G=>{var Z;const W=((Z=G.lead_source)==null?void 0:Z.name)||"Unknown";N[W]=(N[W]||0)+1});const L=Object.entries(N).map(([G,W])=>({name:G,count:W})).sort((G,W)=>W.count-G.count),M=L[0]||null,D={};m.forEach(G=>{const W=E1(G.close_date).toLocaleString("default",{month:"short"});D[W]=(D[W]||0)+1});const V=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].map(G=>({month:G,count:D[G]||0}));return{totalTransactions:m.length,buyerCount:x,sellerCount:_,totalVolume:T,averagePrice:m.length>0?T/m.length:0,totalCommission:s?E:0,totalNetToAgent:s?C:0,topLeadSource:M,transactionsByMonth:V,leadSourceBreakdown:L}};return{yearStats:f(r),lifetimeStats:f(i),isLoading:n||a,showCommission:s}},B6t=()=>{const{isAdmin:t}=$n();return br({queryKey:["agents-with-transactions"],queryFn:async()=>{const{data:e,error:r}=await De.from("scorecard_transactions").select("owner_user_id").order("owner_user_id");if(r)throw r;const n=[...new Set(e.map(c=>c.owner_user_id))],{data:i,error:a}=await De.from("profiles").select("id, name, email").in("id",n);if(a)throw a;return i},enabled:t})},P7=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{className:"relative w-full overflow-auto",children:o.jsx("table",{ref:r,className:ir("w-full caption-bottom text-sm",t),...e})}));P7.displayName="Table";const N7=P.forwardRef(({className:t,...e},r)=>o.jsx("thead",{ref:r,className:ir("[&_tr]:border-b",t),...e}));N7.displayName="TableHeader";const R7=P.forwardRef(({className:t,...e},r)=>o.jsx("tbody",{ref:r,className:ir("[&_tr:last-child]:border-0",t),...e}));R7.displayName="TableBody";const _rt=P.forwardRef(({className:t,...e},r)=>o.jsx("tfoot",{ref:r,className:ir("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...e}));_rt.displayName="TableFooter";const _k=P.forwardRef(({className:t,...e},r)=>o.jsx("tr",{ref:r,className:ir("border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50",t),...e}));_k.displayName="TableRow";const zl=P.forwardRef(({className:t,...e},r)=>o.jsx("th",{ref:r,className:ir("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t),...e}));zl.displayName="TableHead";const $l=P.forwardRef(({className:t,...e},r)=>o.jsx("td",{ref:r,className:ir("p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...e}));$l.displayName="TableCell";const vrt=P.forwardRef(({className:t,...e},r)=>o.jsx("caption",{ref:r,className:ir("mt-4 text-sm text-muted-foreground",t),...e}));vrt.displayName="TableCaption";const oV="boost";function V_(t,e){typeof window>"u"||window.dispatchEvent(new CustomEvent(oV,{detail:{type:t,requestId:e}}))}function z6t(t){const e=r=>{const n=r.detail;t(typeof n=="string"?{type:n}:n)};return window.addEventListener(oV,e),()=>window.removeEventListener(oV,e)}const $6t=["Idle","Thinking","Listening","Working","Success","Alert","Celebration","Pointing","Wave","Sleeping"],U6t=new Set(["Idle","Thinking","Listening","Working","Sleeping"]),V6t={contact_created:{clip:"Celebration",priority:4},task_completed:{clip:"Celebration",priority:4},lead_received:{clip:"Alert",priority:3},gift_claimed:{clip:"Celebration",priority:5},task_created:{clip:"Success",priority:2},request_success:{clip:"Success",priority:2}},dne={hidden:!1,paused:!1,reduceMotion:!1},Ibe=new Map,jbe=t=>`boost:prefs:${t}`;function q6t(t){try{const e=window.localStorage.getItem(jbe(t));if(e)return{...dne,...JSON.parse(e)}}catch{}return Ibe.get(t)??dne}function G6t(t,e){Ibe.set(t,e);try{window.localStorage.setItem(jbe(t),JSON.stringify(e))}catch{}}let v2=null;function H6t(){var t;if(v2!==null)return v2;try{const e=document.createElement("canvas"),r=e.getContext("webgl2")||e.getContext("webgl");v2=!!r,(t=r==null?void 0:r.getExtension("WEBGL_lose_context"))==null||t.loseContext()}catch{v2=!1}return v2}const L7=()=>br({queryKey:["relationship-types"],queryFn:async()=>{const{data:t,error:e}=await De.from("relationship_types").select("*").order("sort_order");if(e)throw e;return t}}),W6t=()=>{const t=es(),e=1e3;return br({queryKey:["innercircle-contacts-lite",t],queryFn:async()=>{const r=[];let n=0;for(;;){const{data:i,error:a}=await De.from("innercircle_contacts").select("id, first_name, last_name, email, phone, address, city, state, zip, zip_code, birthday, home_anniversary, wedding_anniversary, created_at").eq("owner_user_id",t).order("created_at",{ascending:!1}).range(n,n+e-1);if(a)throw a;const c=i??[];if(r.push(...c),c.length{const e=es(),r=1e3,n=async i=>{const a=[];let c=0;for(;;){const{data:s,error:f}=await i.range(c,c+r-1);if(f)throw f;const m=s??[];if(a.push(...m),m.length{let i=De.from("innercircle_contacts").select("*").eq("owner_user_id",e).order("created_at",{ascending:!1}).order("first_name");const a=await n(i);if(a.length===0)return a;const c=a.map(E=>E.id),s=Array.from(new Set(a.map(E=>E.lead_source_id).filter(E=>!!E))),f=(E,C=250)=>{const N=[];for(let L=0;L{const{data:C,error:N}=await De.from("innercircle_contact_tags").select("id, contact_id, relationship_type_id, relationship_type:relationship_types(*)").in("contact_id",E);if(N)throw N;return C??[]})),Promise.all(f(s).map(async E=>{const{data:C,error:N}=await De.from("lead_sources").select("id, name").in("id",E);if(N)throw N;return C??[]}))]),_=new Map;m.flat().forEach(E=>{const C=_.get(E.contact_id)??[];C.push(E),_.set(E.contact_id,C)});const T=new Map(x.flat().map(E=>[E.id,E]));return a.map(E=>({...E,lead_source_ref:E.lead_source_id?T.get(E.lead_source_id)??null:null,tags:_.get(E.id)??[]}))},enabled:!!e,staleTime:10*60*1e3})},K6t=t=>br({queryKey:["innercircle-contact",t],queryFn:async()=>{const{data:e,error:r}=await De.from("innercircle_contacts").select(` *, lead_source_ref:lead_sources(id, name), tags:innercircle_contact_tags( id, contact_id, relationship_type_id, relationship_type:relationship_types(*) ) `).eq("id",t).maybeSingle();if(r)throw r;return e},enabled:!!t}),Y6t=()=>{const t=es();return br({queryKey:["innercircle-contact-counts",t],queryFn:async()=>{const{data:e,error:r}=await De.from("innercircle_contacts").select(` id, tags:innercircle_contact_tags(relationship_type_id) `);if(r)throw r;const n={};return e==null||e.forEach(i=>{var a;(a=i.tags)==null||a.forEach(c=>{n[c.relationship_type_id]=(n[c.relationship_type_id]||0)+1})}),n},enabled:!!t})},brt=()=>{const t=Ir(),e=es();return kr({mutationFn:async r=>{const{tagIds:n,...i}=r,a={...i,birthday:i.birthday||null,home_anniversary:i.home_anniversary||null,spouse_birthday:i.spouse_birthday||null,owner_user_id:e},{data:c,error:s}=await De.from("innercircle_contacts").insert(a).select().single();if(s)throw s;if(n&&n.length>0){const{error:f}=await De.from("innercircle_contact_tags").insert(n.map(m=>({contact_id:c.id,relationship_type_id:m})));if(f)throw f}return c},onSuccess:()=>{t.invalidateQueries({queryKey:["innercircle-contacts"]}),t.invalidateQueries({queryKey:["innercircle-contact-counts"]}),V_("contact_created"),As({title:"Contact created successfully"})},onError:r=>{As({title:"Error creating contact",description:r.message,variant:"destructive"})}})},Z6t=()=>{const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{tagIds:n,tags:i,...a}=r,c=["birthday","home_anniversary","spouse_birthday","wedding_anniversary","last_contacted_at","next_touch_date"],s={...a};for(const x of Object.keys(s)){const _=s[x];(_===""||typeof _=="string"&&c.includes(x)&&_.trim()==="")&&(s[x]=null)}const{data:f,error:m}=await De.from("innercircle_contacts").update(s).eq("id",e).select().single();if(m)throw m;if(n!==void 0&&(await De.from("innercircle_contact_tags").delete().eq("contact_id",e),n.length>0)){const{error:x}=await De.from("innercircle_contact_tags").insert(n.map(_=>({contact_id:e,relationship_type_id:_})));if(x)throw x}return f},onSuccess:()=>{t.invalidateQueries({queryKey:["innercircle-contacts"]}),t.invalidateQueries({queryKey:["innercircle-contact"]}),t.invalidateQueries({queryKey:["innercircle-contact-counts"]}),V_("contact_created"),As({title:"Contact updated successfully"})},onError:e=>{As({title:"Error updating contact",description:e.message,variant:"destructive"})}})},X6t=()=>{const t=Ir();return kr({mutationFn:async({contactId:e,spouseContactId:r})=>{if(r){const{error:n}=await De.from("innercircle_contacts").update({spouse_contact_id:r}).eq("id",e);if(n)throw n;const{error:i}=await De.from("innercircle_contacts").update({spouse_contact_id:e}).eq("id",r);if(i)throw i}else{const{data:n}=await De.from("innercircle_contacts").select("spouse_contact_id").eq("id",e).single(),i=n==null?void 0:n.spouse_contact_id,{error:a}=await De.from("innercircle_contacts").update({spouse_contact_id:null}).eq("id",e);if(a)throw a;if(i){const{error:c}=await De.from("innercircle_contacts").update({spouse_contact_id:null}).eq("id",i);if(c)throw c}}},onSuccess:()=>{t.invalidateQueries({queryKey:["innercircle-contacts"]}),t.invalidateQueries({queryKey:["innercircle-contact"]}),t.invalidateQueries({queryKey:["innercircle-contact-spouse"]}),As({title:"Spouse link updated"})},onError:e=>{As({title:"Error linking spouse",description:e.message,variant:"destructive"})}})},Q6t=()=>{const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("innercircle_contacts").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["innercircle-contacts"]}),t.invalidateQueries({queryKey:["innercircle-contact-counts"]}),As({title:"Contact deleted successfully"})},onError:e=>{As({title:"Error deleting contact",description:e.message,variant:"destructive"})}})},J6t=()=>{const t=Ir();return kr({mutationFn:async({ids:e,onProgress:r})=>{let i=0;for(let a=0;a{t.invalidateQueries({queryKey:["innercircle-contacts"]}),t.invalidateQueries({queryKey:["innercircle-contact-counts"]}),t.invalidateQueries({queryKey:["all-contact-custom-tags"]})}})},eVt=()=>br({queryKey:["action-types"],queryFn:async()=>{const{data:t,error:e}=await De.from("action_types").select("*").order("sort_order");if(e)throw e;return t}}),tVt=t=>br({queryKey:["action-scripts",t],queryFn:async()=>{let e=De.from("action_scripts").select("*, action_type:action_types(*)");const{data:r,error:n}=await e;if(n)throw n;return r}}),rVt=()=>br({queryKey:["touchpoint-plans"],queryFn:async()=>{const{data:t,error:e}=await De.from("touchpoint_plans").select(` *, items:touchpoint_plan_items( *, action_type:action_types(*), default_script:action_scripts(*) ) `).order("name");if(e)throw e;return t}}),nVt=()=>{const t=Ir(),e=es();return kr({mutationFn:async({name:r,description:n})=>{const{data:i,error:a}=await De.from("touchpoint_plans").insert({name:r,description:n,owner_user_id:e,active:!0,is_template:!1}).select().single();if(a)throw a;return i},onSuccess:()=>{t.invalidateQueries({queryKey:["touchpoint-plans"]}),As({title:"Plan created successfully"})},onError:r=>{As({title:"Error creating plan",description:r.message,variant:"destructive"})}})},iVt=()=>{const t=Ir(),e=es();return kr({mutationFn:async({sourcePlanId:r,newName:n})=>{const{data:i,error:a}=await De.from("touchpoint_plans").select(` *, items:touchpoint_plan_items(*) `).eq("id",r).single();if(a)throw a;if(!i)throw new Error("Source plan not found");const{data:c,error:s}=await De.from("touchpoint_plans").insert({name:n,description:i.description,owner_user_id:e,active:!0,is_template:!1}).select().single();if(s)throw s;if(i.items&&i.items.length>0){const f=i.items.map(x=>({plan_id:c.id,month_number:x.month_number,action_type_id:x.action_type_id,default_script_id:x.default_script_id,notes:x.notes})),{error:m}=await De.from("touchpoint_plan_items").insert(f);if(m)throw m}return c},onSuccess:()=>{t.invalidateQueries({queryKey:["touchpoint-plans"]}),As({title:"Plan duplicated successfully",description:"You can now edit your copy of this plan."})},onError:r=>{As({title:"Error duplicating plan",description:r.message,variant:"destructive"})}})},sVt=()=>{const t=Ir();return kr({mutationFn:async({id:e,name:r,description:n})=>{const{data:i,error:a}=await De.from("touchpoint_plans").update({name:r,description:n}).eq("id",e).select().single();if(a)throw a;return i},onSuccess:()=>{t.invalidateQueries({queryKey:["touchpoint-plans"]}),As({title:"Plan updated successfully"})}})},aVt=()=>{const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("touchpoint_plans").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["touchpoint-plans"]}),As({title:"Plan deleted successfully"})}})},oVt=()=>{const t=Ir();return kr({mutationFn:async({planId:e,items:r})=>{if(await De.from("touchpoint_plan_items").delete().eq("plan_id",e),r.length>0){const{error:n}=await De.from("touchpoint_plan_items").insert(r.map(i=>({plan_id:e,month_number:i.month_number,action_type_id:i.action_type_id,default_script_id:i.default_script_id||null,notes:i.notes})));if(n)throw n}},onSuccess:()=>{t.invalidateQueries({queryKey:["touchpoint-plans"]}),As({title:"Plan schedule updated"})}})},lVt=()=>{const t=Ir();return kr({mutationFn:async({actionTypeId:e,title:r,scriptBody:n,emailSubject:i,tone:a})=>{const{data:{user:c}}=await De.auth.getUser(),{data:s,error:f}=await De.from("action_scripts").insert({action_type_id:e,title:r,script_body:n,email_subject:i||null,tone:a||null,active:!0,user_id:c==null?void 0:c.id}).select().single();if(f)throw f;return s},onSuccess:()=>{t.invalidateQueries({queryKey:["action-scripts"]}),As({title:"Script created successfully"})},onError:e=>{As({title:"Error creating script",description:e.message,variant:"destructive"})}})},cVt=()=>{const t=es();return br({queryKey:["user-plan-enrollments",t],queryFn:async()=>{const{data:e,error:r}=await De.from("user_plan_enrollments").select(` *, plan:touchpoint_plans(*), relationship_type:relationship_types(*) `);if(r)throw r;return e},enabled:!!t})},uVt=()=>{const t=Ir(),e=es();return kr({mutationFn:async({planId:r,relationshipTypeId:n,active:i})=>{const{data:a}=await De.from("user_plan_enrollments").select("id").eq("plan_id",r).eq("relationship_type_id",n).maybeSingle();if(a){const{error:c}=await De.from("user_plan_enrollments").update({active:i}).eq("id",a.id);if(c)throw c}else if(i){const{error:c}=await De.from("user_plan_enrollments").insert({owner_user_id:e,plan_id:r,relationship_type_id:n,active:!0,start_date:new Date().toISOString().split("T")[0]});if(c)throw c}},onSuccess:()=>{t.invalidateQueries({queryKey:["user-plan-enrollments"]}),As({title:"Plan enrollment updated"})}})},Nbe=(t=7)=>{const e=es();return br({queryKey:["contact-touch-logs",e,t],queryFn:async()=>{const r=new Date;r.setDate(r.getDate()-t);const{data:n,error:i}=await De.from("contact_touch_logs").select(` *, contact:innercircle_contacts(*), action_type:action_types(*) `).eq("owner_user_id",e).gte("completed_at",r.toISOString()).order("completed_at",{ascending:!1});if(i)throw i;return n},enabled:!!e})},wrt=()=>{const t=es();return br({queryKey:["contacts-last-touch",t],queryFn:async()=>{const{data:e,error:r}=await De.from("contact_touch_logs").select("contact_id, completed_at").eq("owner_user_id",t).order("completed_at",{ascending:!1});if(r)throw r;const n={};return e==null||e.forEach(i=>{n[i.contact_id]||(n[i.contact_id]=i.completed_at)}),n},enabled:!!t})},dVt=(t=90)=>{const{data:e}=Pbe(),{data:r}=wrt();if(!e||!r)return{contacts:[],count:0};const n=new Date;n.setDate(n.getDate()-t);const i=e.filter(a=>{const c=r[a.id];return c?new Date(c){const t=Ir(),e=es();return kr({mutationFn:async({contactId:r,actionTypeId:n,scriptUsedId:i,notes:a,completedAt:c})=>{const{data:s,error:f}=await De.from("contact_touch_logs").insert({owner_user_id:e,contact_id:r,action_type_id:n,script_used_id:i,notes:a,completed_at:c||new Date().toISOString()}).select().single();if(f)throw f;return s},onSuccess:async(r,n)=>{var i,a;t.invalidateQueries({queryKey:["contact-touch-logs"]}),t.invalidateQueries({queryKey:["contacts-last-touch"]}),t.invalidateQueries({queryKey:["today-actions"]}),t.invalidateQueries({queryKey:["popby-logs"]}),V_("task_completed"),As({title:"Action completed!"});try{const[c,s]=await Promise.all([De.from("innercircle_contacts").select("email").eq("id",n.contactId).single(),De.from("action_types").select("name").eq("id",n.actionTypeId).single()]),f=(i=c.data)==null?void 0:i.email,m=((a=s.data)==null?void 0:a.name)||"Touch";/pop[\s-]?by/i.test(m)&&De.from("popby_logs").insert({owner_user_id:e,contact_id:n.contactId,notes:n.notes??null,completed_at:n.completedAt||r.completed_at}).then(()=>{t.invalidateQueries({queryKey:["popby-logs"]})}),f&&De.functions.invoke("boldtrail-sync",{body:{action:"push_touch",contact_email:f,touch_type:m,touch_notes:n.notes||null,touch_date:n.completedAt||r.completed_at}}).catch(()=>{})}catch{}}})},Rbe="agentos_weekly_touch_goal",hne=20,Srt=()=>{if(typeof window>"u")return hne;const t=localStorage.getItem(Rbe);if(t){const e=parseInt(t,10);if(!isNaN(e)&&e>0)return e}return hne},fVt=t=>{localStorage.setItem(Rbe,t.toString())},pVt=()=>{const{data:t}=Nbe(7),e=new Date;e.setHours(0,0,0,0);const r=new Date(e);r.setDate(e.getDate()-e.getDay());const n=(t==null?void 0:t.filter(c=>new Date(c.completed_at)>=r).length)||0;let i=0;if(t&&t.length>0){const c=new Set(t.map(f=>new Date(f.completed_at).toDateString()));let s=new Date(e);for(;c.has(s.toDateString());)i++,s.setDate(s.getDate()-1)}const a=Srt();return{actionsThisWeek:n,weeklyGoal:a,streak:i,progress:Math.min(n/a*100,100)}},Trt=()=>{const t=es();return br({queryKey:["contact-plan-cycles",t],queryFn:async()=>{const{data:e,error:r}=await De.from("contact_plan_cycles").select(` *, contact:innercircle_contacts(*), plan:touchpoint_plans( *, items:touchpoint_plan_items( *, action_type:action_types(*), default_script:action_scripts(*) ) ) `);if(r)throw r;return e},enabled:!!t})},mVt=()=>{const t=Ir();return es(),kr({mutationFn:async()=>{var f;const{data:e}=await De.from("user_plan_enrollments").select("*").eq("active",!0);if(!e||e.length===0)return;const{data:r}=await De.auth.getUser(),n=(f=r==null?void 0:r.user)==null?void 0:f.id;if(!n)return;const{data:i}=await De.from("innercircle_contacts").select(` id, tags:innercircle_contact_tags(relationship_type_id) `).eq("owner_user_id",n);if(!i)return;const{data:a}=await De.from("contact_plan_cycles").select("contact_id, plan_id"),c=new Set((a==null?void 0:a.map(m=>`${m.contact_id}-${m.plan_id}`))||[]),s=[];for(const m of i)for(const x of m.tags||[]){const _=e.find(T=>T.relationship_type_id===x.relationship_type_id);_&&!c.has(`${m.id}-${_.plan_id}`)&&s.push({contact_id:m.id,plan_id:_.plan_id,relationship_type_id:x.relationship_type_id})}if(s.length>0){const{error:m}=await De.from("contact_plan_cycles").insert(s);if(m)throw m}return s.length},onSuccess:e=>{t.invalidateQueries({queryKey:["contact-plan-cycles"]}),e&&e>0&&As({title:`${e} contact(s) enrolled in plans`})}})},gVt=()=>{const t=es(),{data:e}=Trt(),{data:r}=Nbe(30);return br({queryKey:["today-actions",t,e==null?void 0:e.length,r==null?void 0:r.length],queryFn:async()=>{var C;if(!e||e.length===0)return[];const{data:n}=await De.from("contact_snoozes").select("contact_id").gte("snoozed_until",new Date().toISOString()),i=new Set((n==null?void 0:n.map(N=>N.contact_id))||[]),a=new Date,c=[],s=new Date(a.getFullYear(),a.getMonth(),1),f=new Set((r==null?void 0:r.filter(N=>new Date(N.completed_at)>=s).map(N=>`${N.contact_id}-${N.action_type_id}`))||[]);for(const N of e){if(!((C=N.plan)!=null&&C.items)||N.plan.items.length===0||!N.contact||i.has(N.contact_id))continue;const L=new Date(N.cycle_start_date),D=Math.floor((a.getTime()-L.getTime())/(30.44*24*60*60*1e3))%12+1,B=N.plan.items.find(V=>V.month_number===D);if(B&&B.action_type){const V=`${N.contact_id}-${B.action_type_id}`;if(!f.has(V)){const{data:G}=await De.from("relationship_types").select("name").eq("id",N.relationship_type_id).single();c.push({contact:N.contact,actionType:B.action_type,script:B.default_script||void 0,planName:N.plan.name,relationshipTypeName:(G==null?void 0:G.name)||"",monthNumber:D})}}}const m=5,x=a.getDate(),_=c.sort((N,L)=>N.contact.first_name.localeCompare(L.contact.first_name)),T=(x-1)%Math.max(1,_.length);return[..._.slice(T),..._.slice(0,T)].slice(0,m)},enabled:!!t&&!!e})};var sF="Popover",[Lbe,yVt]=Go(sF,[ex]),ZC=ex(),[Ert,lx]=Lbe(sF),Dbe=t=>{const{__scopePopover:e,children:r,open:n,defaultOpen:i,onOpenChange:a,modal:c=!1}=t,s=ZC(e),f=P.useRef(null),[m,x]=P.useState(!1),[_,T]=sd({prop:n,defaultProp:i??!1,onChange:a,caller:sF});return o.jsx(rO,{...s,children:o.jsx(Ert,{scope:e,contentId:Cl(),triggerRef:f,open:_,onOpenChange:T,onOpenToggle:P.useCallback(()=>T(E=>!E),[T]),hasCustomAnchor:m,onCustomAnchorAdd:P.useCallback(()=>x(!0),[]),onCustomAnchorRemove:P.useCallback(()=>x(!1),[]),modal:c,children:r})})};Dbe.displayName=sF;var Mbe="PopoverAnchor",Art=P.forwardRef((t,e)=>{const{__scopePopover:r,...n}=t,i=lx(Mbe,r),a=ZC(r),{onCustomAnchorAdd:c,onCustomAnchorRemove:s}=i;return P.useEffect(()=>(c(),()=>s()),[c,s]),o.jsx(PC,{...a,...n,ref:e})});Art.displayName=Mbe;var Obe="PopoverTrigger",Fbe=P.forwardRef((t,e)=>{const{__scopePopover:r,...n}=t,i=lx(Obe,r),a=ZC(r),c=Gn(e,i.triggerRef),s=o.jsx(rn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Vbe(i.open),...n,ref:c,onClick:Or(t.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:o.jsx(PC,{asChild:!0,...a,children:s})});Fbe.displayName=Obe;var D7="PopoverPortal",[krt,Crt]=Lbe(D7,{forceMount:void 0}),Bbe=t=>{const{__scopePopover:e,forceMount:r,children:n,container:i}=t,a=lx(D7,e);return o.jsx(krt,{scope:e,forceMount:r,children:o.jsx(ul,{present:r||a.open,children:o.jsx(rS,{asChild:!0,container:i,children:n})})})};Bbe.displayName=D7;var A1="PopoverContent",zbe=P.forwardRef((t,e)=>{const r=Crt(A1,t.__scopePopover),{forceMount:n=r.forceMount,...i}=t,a=lx(A1,t.__scopePopover);return o.jsx(ul,{present:n||a.open,children:a.modal?o.jsx(jrt,{...i,ref:e}):o.jsx(Prt,{...i,ref:e})})});zbe.displayName=A1;var Irt=My("PopoverContent.RemoveScroll"),jrt=P.forwardRef((t,e)=>{const r=lx(A1,t.__scopePopover),n=P.useRef(null),i=Gn(e,n),a=P.useRef(!1);return P.useEffect(()=>{const c=n.current;if(c)return YM(c)},[]),o.jsx(EC,{as:Irt,allowPinchZoom:!0,children:o.jsx($be,{...t,ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Or(t.onCloseAutoFocus,c=>{var s;c.preventDefault(),a.current||(s=r.triggerRef.current)==null||s.focus()}),onPointerDownOutside:Or(t.onPointerDownOutside,c=>{const s=c.detail.originalEvent,f=s.button===0&&s.ctrlKey===!0,m=s.button===2||f;a.current=m},{checkForDefaultPrevented:!1}),onFocusOutside:Or(t.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1})})})}),Prt=P.forwardRef((t,e)=>{const r=lx(A1,t.__scopePopover),n=P.useRef(!1),i=P.useRef(!1);return o.jsx($be,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{var c,s;(c=t.onCloseAutoFocus)==null||c.call(t,a),a.defaultPrevented||(n.current||(s=r.triggerRef.current)==null||s.focus(),a.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:a=>{var f,m;(f=t.onInteractOutside)==null||f.call(t,a),a.defaultPrevented||(n.current=!0,a.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const c=a.target;((m=r.triggerRef.current)==null?void 0:m.contains(c))&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&i.current&&a.preventDefault()}})}),$be=P.forwardRef((t,e)=>{const{__scopePopover:r,trapFocus:n,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:c,onEscapeKeyDown:s,onPointerDownOutside:f,onFocusOutside:m,onInteractOutside:x,..._}=t,T=lx(A1,r),E=ZC(r);return WM(),o.jsx(TC,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:i,onUnmountAutoFocus:a,children:o.jsx(O_,{asChild:!0,disableOutsidePointerEvents:c,onInteractOutside:x,onEscapeKeyDown:s,onPointerDownOutside:f,onFocusOutside:m,onDismiss:()=>T.onOpenChange(!1),children:o.jsx(nO,{"data-state":Vbe(T.open),role:"dialog",id:T.contentId,...E,..._,ref:e,style:{..._.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Ube="PopoverClose",Nrt=P.forwardRef((t,e)=>{const{__scopePopover:r,...n}=t,i=lx(Ube,r);return o.jsx(rn.button,{type:"button",...n,ref:e,onClick:Or(t.onClick,()=>i.onOpenChange(!1))})});Nrt.displayName=Ube;var Rrt="PopoverArrow",Lrt=P.forwardRef((t,e)=>{const{__scopePopover:r,...n}=t,i=ZC(r);return o.jsx(iO,{...i,...n,ref:e})});Lrt.displayName=Rrt;function Vbe(t){return t?"open":"closed"}var Drt=Dbe,Mrt=Fbe,Ort=Bbe,qbe=zbe;const OR=Drt,FR=Mrt,xA=P.forwardRef(({className:t,align:e="center",sideOffset:r=4,...n},i)=>o.jsx(Ort,{children:o.jsx(qbe,{ref:i,align:e,sideOffset:r,className:ir("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...n})}));xA.displayName=qbe.displayName;const Frt=bS({property_address:co().min(1,"Property address is required"),city:co().optional(),state:co().optional(),zip:co().optional(),transaction_type:k9(["buyer","seller"]),close_date:co().min(1,"Close date is required"),sale_price:hA().min(0,"Sale price must be positive"),commission_amount:hA().optional(),lead_source_id:co().optional(),client_type_id:co().optional(),contact_id:co().optional(),notes:co().optional(),is_win:Wqe()});function Gbe({open:t,onOpenChange:e,transaction:r}){const[n,i]=P.useState(!1),[a,c]=P.useState(""),[s,f]=P.useState(!1),[m,x]=P.useState(""),_=j7(),T=frt(),{data:E}=I7(),{data:C}=L7(),{data:N}=Pbe(),L=brt(),M=drt(),{data:D}=iF(),B=(D==null?void 0:D.show_commission)??!0,V=y9({resolver:x9(Frt),defaultValues:{property_address:"",city:"",state:"",zip:"",transaction_type:"buyer",close_date:new Date().toISOString().split("T")[0],sale_price:0,commission_amount:void 0,lead_source_id:void 0,client_type_id:void 0,contact_id:void 0,notes:"",is_win:!1}});P.useEffect(()=>{r?V.reset({property_address:r.property_address,city:r.city||"",state:r.state||"",zip:r.zip||"",transaction_type:r.transaction_type,close_date:r.close_date,sale_price:Number(r.sale_price),commission_amount:r.commission_amount?Number(r.commission_amount):void 0,lead_source_id:r.lead_source_id||void 0,client_type_id:r.client_type_id||void 0,contact_id:r.contact_id||void 0,notes:r.notes||"",is_win:r.is_win}):V.reset({property_address:"",city:"",state:"",zip:"",transaction_type:"buyer",close_date:new Date().toISOString().split("T")[0],sale_price:0,commission_amount:void 0,lead_source_id:void 0,client_type_id:void 0,contact_id:void 0,notes:"",is_win:!1})},[r,V]);const G=async se=>{const ie={property_address:se.property_address,transaction_type:se.transaction_type,close_date:se.close_date,sale_price:se.sale_price,is_win:se.is_win,commission_amount:se.commission_amount||null,lead_source_id:se.lead_source_id||null,client_type_id:se.client_type_id||null,contact_id:se.contact_id||null,city:se.city||null,state:se.state||null,zip:se.zip||null,notes:se.notes||null};r?await T.mutateAsync({id:r.id,...ie}):await _.mutateAsync(ie),e(!1)},W=async()=>{if(!a.trim())return;const[se,...ie]=a.trim().split(" "),ue=ie.join(" ")||null,be=await L.mutateAsync({first_name:se,last_name:ue,tagIds:[]});be&&(V.setValue("contact_id",be.id),c(""),f(!1),i(!1))},Z=async()=>{if(!m.trim())return;const se=await M.mutateAsync(m.trim());se&&(V.setValue("lead_source_id",se.id),x(""))},Q=N==null?void 0:N.find(se=>se.id===V.watch("contact_id"));return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"max-w-lg max-h-[90vh]",children:[o.jsx(cl,{children:o.jsx(qo,{children:r?"Edit Transaction":"Add Transaction"})}),o.jsx(pp,{className:"max-h-[70vh] pr-4",children:o.jsx(C9,{...V,children:o.jsxs("form",{onSubmit:V.handleSubmit(G),className:"space-y-4",children:[o.jsx(tl,{control:V.control,name:"property_address",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Property Address *"}),o.jsx(zo,{children:o.jsx(Hr,{placeholder:"123 Main St",...se})}),o.jsx(Gh,{})]})}),o.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[o.jsx(tl,{control:V.control,name:"city",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"City"}),o.jsx(zo,{children:o.jsx(Hr,{placeholder:"City",...se})})]})}),o.jsx(tl,{control:V.control,name:"state",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"State"}),o.jsx(zo,{children:o.jsx(Hr,{placeholder:"TX",...se})})]})}),o.jsx(tl,{control:V.control,name:"zip",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Zip"}),o.jsx(zo,{children:o.jsx(Hr,{placeholder:"75001",...se})})]})})]}),o.jsx(tl,{control:V.control,name:"transaction_type",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Transaction Type *"}),o.jsxs(Fa,{onValueChange:se.onChange,value:se.value,children:[o.jsx(zo,{children:o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select type"})})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"buyer",children:"Buyer"}),o.jsx(xn,{value:"seller",children:"Seller"})]})]}),o.jsx(Gh,{})]})}),o.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[o.jsx(tl,{control:V.control,name:"close_date",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Close Date *"}),o.jsx(zo,{children:o.jsx(Hr,{type:"date",...se})}),o.jsx(Gh,{})]})}),o.jsx(tl,{control:V.control,name:"sale_price",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Sale Price *"}),o.jsx(zo,{children:o.jsx(Hr,{type:"number",placeholder:"0",...se,onChange:ie=>se.onChange(Number(ie.target.value))})}),o.jsx(Gh,{})]})})]}),B&&o.jsx(tl,{control:V.control,name:"commission_amount",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Commission"}),o.jsx(zo,{children:o.jsx(Hr,{type:"number",placeholder:"0",...se,value:se.value??"",onChange:ie=>se.onChange(ie.target.value?Number(ie.target.value):void 0)})})]})}),o.jsx(tl,{control:V.control,name:"lead_source_id",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Lead Source"}),o.jsxs(Fa,{onValueChange:se.onChange,value:se.value||"",children:[o.jsx(zo,{children:o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select source"})})}),o.jsx(Ia,{children:E==null?void 0:E.map(ie=>o.jsx(xn,{value:ie.id,children:ie.name},ie.id))})]})]})}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Hr,{placeholder:"Add custom source...",value:m,onChange:se=>x(se.target.value),className:"flex-1"}),o.jsx(Kt,{type:"button",variant:"outline",size:"icon",onClick:Z,disabled:!m.trim(),children:o.jsx(ym,{className:"h-4 w-4"})})]}),o.jsx(tl,{control:V.control,name:"client_type_id",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Client Type"}),o.jsxs(Fa,{onValueChange:se.onChange,value:se.value||"",children:[o.jsx(zo,{children:o.jsx(Ca,{children:o.jsx(Ba,{placeholder:"Select client type"})})}),o.jsx(Ia,{children:C==null?void 0:C.map(ie=>o.jsx(xn,{value:ie.id,children:ie.name},ie.id))})]})]})}),o.jsx(tl,{control:V.control,name:"contact_id",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Client Contact"}),o.jsxs(OR,{open:n,onOpenChange:i,children:[o.jsx(FR,{asChild:!0,children:o.jsx(zo,{children:o.jsxs(Kt,{variant:"outline",role:"combobox",className:ir("w-full justify-between",!se.value&&"text-muted-foreground"),children:[Q?`${Q.first_name} ${Q.last_name||""}`.trim():"Select contact",o.jsx(yU,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),o.jsxs(xA,{className:"w-full p-0",align:"start",children:[o.jsxs(uk,{children:[o.jsx(dk,{placeholder:"Search contacts..."}),o.jsxs(hk,{children:[o.jsx(fk,{children:o.jsxs("div",{className:"p-2 space-y-2",children:[o.jsx("p",{className:"text-sm text-muted-foreground",children:"No contact found."}),!s&&o.jsxs(Kt,{variant:"outline",size:"sm",className:"w-full",onClick:()=>f(!0),children:[o.jsx(ym,{className:"h-4 w-4 mr-2"}),"Add New Contact"]})]})}),o.jsx(v1,{children:N==null?void 0:N.map(ie=>o.jsxs(gy,{value:`${ie.first_name} ${ie.last_name||""}`,onSelect:()=>{se.onChange(ie.id),i(!1)},children:[o.jsx(Ao,{className:ir("mr-2 h-4 w-4",ie.id===se.value?"opacity-100":"opacity-0")}),ie.first_name," ",ie.last_name||""]},ie.id))})]})]}),s&&o.jsxs("div",{className:"p-2 border-t space-y-2",children:[o.jsx(Hr,{placeholder:"Enter contact name...",value:a,onChange:ie=>c(ie.target.value)}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Kt,{size:"sm",onClick:W,disabled:!a.trim()||L.isPending,children:"Add Contact"}),o.jsx(Kt,{size:"sm",variant:"outline",onClick:()=>{f(!1),c("")},children:"Cancel"})]})]})]})]})]})}),o.jsx(tl,{control:V.control,name:"notes",render:({field:se})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Notes"}),o.jsx(zo,{children:o.jsx(ud,{placeholder:"Any notes about this transaction...",...se})})]})}),o.jsx(tl,{control:V.control,name:"is_win",render:({field:se})=>o.jsxs(Fo,{className:"flex items-center justify-between rounded-lg border p-3",children:[o.jsxs("div",{className:"space-y-0.5",children:[o.jsx(Bo,{children:"Mark as Win 🏆"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"Highlight this as a notable success"})]}),o.jsx(zo,{children:o.jsx(TS,{checked:se.value,onCheckedChange:se.onChange})})]})}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(Kt,{type:"button",variant:"outline",onClick:()=>e(!1),children:"Cancel"}),o.jsxs(Kt,{type:"submit",disabled:_.isPending||T.isPending,children:[r?"Update":"Add"," Transaction"]})]})]})})})]})})}const lz=768;function Brt(){const[t,e]=P.useState(void 0);return P.useEffect(()=>{const r=window.matchMedia(`(max-width: ${lz-1}px)`),n=()=>{e(window.innerWidthr.removeEventListener("change",n)},[]),!!t}function Hbe({transactions:t,showCommission:e,isLoading:r,agentNameMap:n,readOnly:i}){const[a,c]=P.useState(null),[s,f]=P.useState(null),[m,x]=P.useState(""),[_,T]=P.useState("all"),[E,C]=P.useState("all"),[N,L]=P.useState("all"),[M,D]=P.useState(!1),B=prt(),V=j7(),{data:G}=I7();L7();const W=Brt(),Z=ie=>{const{id:ue,created_at:be,updated_at:Te,lead_source:we,client_type:Oe,contact:Ae,...Se}=ie;V.mutate(Se)},Q=()=>{s&&(B.mutate(s),f(null))},se=t.filter(ie=>{var Ae,Se,ge,je;const ue=m===""||ie.property_address.toLowerCase().includes(m.toLowerCase())||((Se=(Ae=ie.contact)==null?void 0:Ae.first_name)==null?void 0:Se.toLowerCase().includes(m.toLowerCase()))||((je=(ge=ie.contact)==null?void 0:ge.last_name)==null?void 0:je.toLowerCase().includes(m.toLowerCase())),be=_==="all"||ie.transaction_type===_,Te=E==="all"||ie.lead_source_id===E,we=N==="all"||ie.client_type_id===N,Oe=!M||ie.is_win;return ue&&be&&Te&&we&&Oe});return r?o.jsx(qn,{children:o.jsx(ri,{className:"p-6 space-y-4",children:[1,2,3].map(ie=>o.jsx(al,{className:"h-16 w-full"},ie))})}):o.jsxs(o.Fragment,{children:[o.jsxs(qn,{children:[o.jsx(Qu,{className:"pb-3",children:o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[o.jsxs(Ju,{children:["Transactions (",se.length,")"]}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsxs("div",{className:"relative",children:[o.jsx(x_,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),o.jsx(Hr,{placeholder:"Search...",value:m,onChange:ie=>x(ie.target.value),className:"pl-8 w-[150px]"})]}),o.jsxs(Fa,{value:_,onValueChange:T,children:[o.jsx(Ca,{className:"w-[100px]",children:o.jsx(Ba,{placeholder:"Type"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"All Types"}),o.jsx(xn,{value:"buyer",children:"Buyer"}),o.jsx(xn,{value:"seller",children:"Seller"})]})]}),o.jsxs(Fa,{value:E,onValueChange:C,children:[o.jsx(Ca,{className:"w-[130px]",children:o.jsx(Ba,{placeholder:"Lead Source"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"All Sources"}),G==null?void 0:G.map(ie=>o.jsx(xn,{value:ie.id,children:ie.name},ie.id))]})]}),o.jsxs(Kt,{variant:M?"default":"outline",size:"sm",onClick:()=>D(!M),children:[o.jsx(aA,{className:"h-4 w-4 mr-1"}),"Wins"]})]})]})}),o.jsx(ri,{children:se.length===0?o.jsx("p",{className:"text-center text-muted-foreground py-8",children:"No transactions found"}):W?o.jsx("div",{className:"space-y-3",children:se.map(ie=>o.jsxs(qn,{className:"p-4",children:[o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[o.jsx("span",{className:"font-medium truncate",children:ie.property_address}),ie.is_win&&o.jsx(aA,{className:"h-4 w-4 text-yellow-500 flex-shrink-0"})]}),o.jsxs("div",{className:"text-sm text-muted-foreground",children:[ie.city,ie.state?`, ${ie.state}`:""]})]}),o.jsx(hs,{variant:ie.transaction_type==="buyer"?"default":"secondary",children:ie.transaction_type})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-3 text-sm",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-muted-foreground",children:"Close Date: "}),TJ(ie.close_date)]}),o.jsxs("div",{children:[o.jsx("span",{className:"text-muted-foreground",children:"Price: "}),La(ie.sale_price)]}),e&&ie.commission_amount&&o.jsxs("div",{children:[o.jsx("span",{className:"text-muted-foreground",children:"Commission: "}),La(ie.commission_amount)]}),ie.lead_source&&o.jsxs("div",{children:[o.jsx("span",{className:"text-muted-foreground",children:"Source: "}),ie.lead_source.name]}),ie.contact&&o.jsxs("div",{className:"col-span-2",children:[o.jsx("span",{className:"text-muted-foreground",children:"Client: "}),ie.contact.first_name," ",ie.contact.last_name]}),n&&o.jsxs("div",{className:"col-span-2",children:[o.jsx("span",{className:"text-muted-foreground",children:"Agent: "}),n[ie.owner_user_id]||"Unknown"]})]}),!i&&o.jsxs("div",{className:"flex justify-end gap-2 mt-3 pt-3 border-t",children:[o.jsx(Kt,{variant:"ghost",size:"sm",onClick:()=>c(ie),children:o.jsx(wU,{className:"h-4 w-4"})}),o.jsx(Kt,{variant:"ghost",size:"sm",onClick:()=>Z(ie),children:o.jsx(_U,{className:"h-4 w-4"})}),o.jsx(Kt,{variant:"ghost",size:"sm",onClick:()=>f(ie.id),children:o.jsx(TL,{className:"h-4 w-4 text-destructive"})})]})]},ie.id))}):o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(P7,{children:[o.jsx(N7,{children:o.jsxs(_k,{children:[n&&o.jsx(zl,{children:"Agent"}),o.jsx(zl,{children:"Property"}),o.jsx(zl,{children:"Type"}),o.jsx(zl,{children:"Close Date"}),o.jsx(zl,{children:"Sale Price"}),e&&o.jsx(zl,{children:"Commission"}),o.jsx(zl,{children:"Lead Source"}),o.jsx(zl,{children:"Client"}),!i&&o.jsx(zl,{className:"w-[50px]"})]})}),o.jsx(R7,{children:se.map(ie=>{var ue;return o.jsxs(_k,{children:[n&&o.jsx($l,{className:"font-medium text-sm",children:n[ie.owner_user_id]||"Unknown"}),o.jsx($l,{children:o.jsxs("div",{className:"flex items-center gap-2",children:[ie.is_win&&o.jsx(aA,{className:"h-4 w-4 text-yellow-500"}),o.jsxs("div",{children:[o.jsx("div",{className:"font-medium",children:ie.property_address}),o.jsxs("div",{className:"text-sm text-muted-foreground",children:[ie.city,ie.state?`, ${ie.state}`:""]})]})]})}),o.jsx($l,{children:o.jsx(hs,{variant:ie.transaction_type==="buyer"?"default":"secondary",children:ie.transaction_type})}),o.jsx($l,{children:TJ(ie.close_date)}),o.jsx($l,{children:La(ie.sale_price)}),e&&o.jsx($l,{children:ie.commission_amount?La(ie.commission_amount):"-"}),o.jsx($l,{children:((ue=ie.lead_source)==null?void 0:ue.name)||"-"}),o.jsx($l,{children:ie.contact?`${ie.contact.first_name} ${ie.contact.last_name||""}`.trim():"-"}),!i&&o.jsx($l,{children:o.jsxs(wO,{children:[o.jsx(SO,{asChild:!0,children:o.jsx(Kt,{variant:"ghost",size:"icon",children:o.jsx(IRe,{className:"h-4 w-4"})})}),o.jsxs(OC,{align:"end",children:[o.jsxs(Od,{onClick:()=>c(ie),children:[o.jsx(wU,{className:"h-4 w-4 mr-2"}),"Edit"]}),o.jsxs(Od,{onClick:()=>Z(ie),children:[o.jsx(_U,{className:"h-4 w-4 mr-2"}),"Duplicate"]}),o.jsxs(Od,{onClick:()=>f(ie.id),className:"text-destructive",children:[o.jsx(TL,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})})]},ie.id)})})]})})})]}),o.jsx(Gbe,{open:!!a,onOpenChange:ie=>!ie&&c(null),transaction:a||void 0}),o.jsx(Wfe,{open:!!s,onOpenChange:ie=>!ie&&f(null),children:o.jsxs(xG,{children:[o.jsxs(_G,{children:[o.jsx(bG,{children:"Delete Transaction?"}),o.jsx(wG,{children:"This action cannot be undone. This will permanently delete this transaction."})]}),o.jsxs(vG,{children:[o.jsx(TG,{children:"Cancel"}),o.jsx(SG,{onClick:Q,className:"bg-destructive text-destructive-foreground",children:"Delete"})]})]})})]})}var M7="Progress",O7=100,[zrt,xVt]=Go(M7),[$rt,Urt]=zrt(M7),Wbe=P.forwardRef((t,e)=>{const{__scopeProgress:r,value:n=null,max:i,getValueLabel:a=Vrt,...c}=t;(i||i===0)&&!fne(i)&&console.error(qrt(`${i}`,"Progress"));const s=fne(i)?i:O7;n!==null&&!pne(n,s)&&console.error(Grt(`${n}`,"Progress"));const f=pne(n,s)?n:null,m=fD(f)?a(f,s):void 0;return o.jsx($rt,{scope:r,value:f,max:s,children:o.jsx(rn.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":fD(f)?f:void 0,"aria-valuetext":m,role:"progressbar","data-state":Zbe(f,s),"data-value":f??void 0,"data-max":s,...c,ref:e})})});Wbe.displayName=M7;var Kbe="ProgressIndicator",Ybe=P.forwardRef((t,e)=>{const{__scopeProgress:r,...n}=t,i=Urt(Kbe,r);return o.jsx(rn.div,{"data-state":Zbe(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...n,ref:e})});Ybe.displayName=Kbe;function Vrt(t,e){return`${Math.round(t/e*100)}%`}function Zbe(t,e){return t==null?"indeterminate":t===e?"complete":"loading"}function fD(t){return typeof t=="number"}function fne(t){return fD(t)&&!isNaN(t)&&t>0}function pne(t,e){return fD(t)&&!isNaN(t)&&t<=e&&t>=0}function qrt(t,e){return`Invalid prop \`max\` of value \`${t}\` supplied to \`${e}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${O7}\`.`}function Grt(t,e){return`Invalid prop \`value\` of value \`${t}\` supplied to \`${e}\`. The \`value\` prop must be: - a positive number - less than the value passed to \`max\` (or ${O7} if no \`max\` prop is set) - \`null\` or \`undefined\` if the progress is indeterminate. Defaulting to \`null\`.`}var Xbe=Wbe,Hrt=Ybe;const BR=P.forwardRef(({className:t,value:e,...r},n)=>o.jsx(Xbe,{ref:n,className:ir("relative h-4 w-full overflow-hidden rounded-full bg-secondary",t),...r,children:o.jsx(Hrt,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(e||0)}%)`}})}));BR.displayName=Xbe.displayName;function Wrt({goals:t,stats:e,year:r,showCommission:n}){const i=new Date().getMonth()+1,a=new Date().getFullYear()===r?i:12,c=12-a,s=(T,E)=>{if(!E||E===0)return null;const C=Math.min(T/E*100,100),N=Math.max(E-T,0),L=c>0?N/c:0,M=a/12*100,D=C>=M?"ahead":C>=M*.8?"on-track":"behind";return{percent:C,remaining:N,pace:L,status:D}},f=s(e.totalTransactions,t.transactions_goal),m=s(e.totalVolume,t.volume_goal),x=n?s(e.totalCommission,t.gci_goal):null,_=T=>{switch(T){case"ahead":return o.jsxs(hs,{className:"bg-green-500 text-white",children:[o.jsx(aS,{className:"h-3 w-3 mr-1"}),"Ahead"]});case"on-track":return o.jsxs(hs,{variant:"secondary",children:[o.jsx(qRe,{className:"h-3 w-3 mr-1"}),"On Track"]});case"behind":return o.jsxs(hs,{variant:"destructive",children:[o.jsx(Ghe,{className:"h-3 w-3 mr-1"}),"Behind"]});default:return null}};return!t.transactions_goal&&!t.volume_goal&&!t.gci_goal?null:o.jsxs(qn,{children:[o.jsx(Qu,{className:"pb-3",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(uG,{className:"h-5 w-5 text-primary"}),o.jsxs(Ju,{children:[r," Goals Progress"]})]})}),o.jsx(ri,{children:o.jsxs("div",{className:"grid md:grid-cols-3 gap-6",children:[t.transactions_goal&&f&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"text-sm font-medium",children:"Transactions"}),_(f.status)]}),o.jsx(BR,{value:f.percent,className:"h-2"}),o.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[o.jsxs("span",{children:[e.totalTransactions," of ",t.transactions_goal]}),o.jsxs("span",{children:[Math.round(f.percent),"%"]})]}),f.remaining>0&&c>0&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:["Need ",Math.ceil(f.pace),"/month to hit goal"]})]}),t.volume_goal&&m&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"text-sm font-medium",children:"Volume"}),_(m.status)]}),o.jsx(BR,{value:m.percent,className:"h-2"}),o.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[o.jsxs("span",{children:[La(e.totalVolume,!0)," of ",La(t.volume_goal,!0)]}),o.jsxs("span",{children:[Math.round(m.percent),"%"]})]}),m.remaining>0&&c>0&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:["Need ",La(m.pace,!0),"/month"]})]}),n&&t.gci_goal&&x&&o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"text-sm font-medium",children:"GCI"}),_(x.status)]}),o.jsx(BR,{value:x.percent,className:"h-2"}),o.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[o.jsxs("span",{children:[La(e.totalCommission,!0)," of ",La(t.gci_goal,!0)]}),o.jsxs("span",{children:[Math.round(x.percent),"%"]})]}),x.remaining>0&&c>0&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:["Need ",La(x.pace,!0),"/month"]})]})]})})]})}var Krt=Array.isArray,ju=Krt,Yrt=typeof Hl=="object"&&Hl&&Hl.Object===Object&&Hl,Qbe=Yrt,Zrt=Qbe,Xrt=typeof self=="object"&&self&&self.Object===Object&&self,Qrt=Zrt||Xrt||Function("return this")(),mp=Qrt,Jrt=mp,ent=Jrt.Symbol,XC=ent,mne=XC,Jbe=Object.prototype,tnt=Jbe.hasOwnProperty,rnt=Jbe.toString,b2=mne?mne.toStringTag:void 0;function nnt(t){var e=tnt.call(t,b2),r=t[b2];try{t[b2]=void 0;var n=!0}catch{}var i=rnt.call(t);return n&&(e?t[b2]=r:delete t[b2]),i}var int=nnt,snt=Object.prototype,ant=snt.toString;function ont(t){return ant.call(t)}var lnt=ont,gne=XC,cnt=int,unt=lnt,dnt="[object Null]",hnt="[object Undefined]",yne=gne?gne.toStringTag:void 0;function fnt(t){return t==null?t===void 0?hnt:dnt:yne&&yne in Object(t)?cnt(t):unt(t)}var Um=fnt;function pnt(t){return t!=null&&typeof t=="object"}var Vm=pnt,mnt=Um,gnt=Vm,ynt="[object Symbol]";function xnt(t){return typeof t=="symbol"||gnt(t)&&mnt(t)==ynt}var CS=xnt,_nt=ju,vnt=CS,bnt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wnt=/^\w*$/;function Snt(t,e){if(_nt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||vnt(t)?!0:wnt.test(t)||!bnt.test(t)||e!=null&&t in Object(e)}var F7=Snt;function Tnt(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var cx=Tnt;const IS=fs(cx);var Ent=Um,Ant=cx,knt="[object AsyncFunction]",Cnt="[object Function]",Int="[object GeneratorFunction]",jnt="[object Proxy]";function Pnt(t){if(!Ant(t))return!1;var e=Ent(t);return e==Cnt||e==Int||e==knt||e==jnt}var B7=Pnt;const fi=fs(B7);var Nnt=mp,Rnt=Nnt["__core-js_shared__"],Lnt=Rnt,cz=Lnt,xne=function(){var t=/[^.]+$/.exec(cz&&cz.keys&&cz.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Dnt(t){return!!xne&&xne in t}var Mnt=Dnt,Ont=Function.prototype,Fnt=Ont.toString;function Bnt(t){if(t!=null){try{return Fnt.call(t)}catch{}try{return t+""}catch{}}return""}var ewe=Bnt,znt=B7,$nt=Mnt,Unt=cx,Vnt=ewe,qnt=/[\\^$.*+?()[\]{}|]/g,Gnt=/^\[object .+?Constructor\]$/,Hnt=Function.prototype,Wnt=Object.prototype,Knt=Hnt.toString,Ynt=Wnt.hasOwnProperty,Znt=RegExp("^"+Knt.call(Ynt).replace(qnt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Xnt(t){if(!Unt(t)||$nt(t))return!1;var e=znt(t)?Znt:Gnt;return e.test(Vnt(t))}var Qnt=Xnt;function Jnt(t,e){return t==null?void 0:t[e]}var eit=Jnt,tit=Qnt,rit=eit;function nit(t,e){var r=rit(t,e);return tit(r)?r:void 0}var q_=nit,iit=q_,sit=iit(Object,"create"),aF=sit,_ne=aF;function ait(){this.__data__=_ne?_ne(null):{},this.size=0}var oit=ait;function lit(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var cit=lit,uit=aF,dit="__lodash_hash_undefined__",hit=Object.prototype,fit=hit.hasOwnProperty;function pit(t){var e=this.__data__;if(uit){var r=e[t];return r===dit?void 0:r}return fit.call(e,t)?e[t]:void 0}var mit=pit,git=aF,yit=Object.prototype,xit=yit.hasOwnProperty;function _it(t){var e=this.__data__;return git?e[t]!==void 0:xit.call(e,t)}var vit=_it,bit=aF,wit="__lodash_hash_undefined__";function Sit(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=bit&&e===void 0?wit:e,this}var Tit=Sit,Eit=oit,Ait=cit,kit=mit,Cit=vit,Iit=Tit;function jS(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Hit=Git,Wit=oF;function Kit(t,e){var r=this.__data__,n=Wit(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var Yit=Kit,Zit=Nit,Xit=zit,Qit=Vit,Jit=Hit,est=Yit;function PS(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e0?1:-1},H0=function(e){return C_(e)&&e.indexOf("%")===e.length-1},Kr=function(e){return wat(e)&&!QC(e)},Aat=function(e){return Oi(e)},ll=function(e){return Kr(e)||C_(e)},kat=0,JC=function(e){var r=++kat;return"".concat(e||"").concat(r)},Hc=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Kr(e)&&!C_(e))return n;var a;if(H0(e)){var c=e.indexOf("%");a=r*parseFloat(e.slice(0,c))/100}else a=+e;return QC(a)&&(a=n),i&&a>r&&(a=r),a},ry=function(e){if(!e)return null;var r=Object.keys(e);return r&&r.length?e[r[0]]:null},Cat=function(e){if(!Array.isArray(e))return!1;for(var r=e.length,n={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Dat(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function cV(t){"@babel/helpers - typeof";return cV=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},cV(t)}var Ane={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},_m=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},kne=null,dz=null,Y7=function t(e){if(e===kne&&Array.isArray(dz))return dz;var r=[];return P.Children.forEach(e,function(n){Oi(n)||(yat.isFragment(n)?r=r.concat(t(n.props.children)):r.push(n))}),dz=r,kne=e,r};function Hd(t,e){var r=[],n=[];return Array.isArray(e)?n=e.map(function(i){return _m(i)}):n=[_m(e)],Y7(t).forEach(function(i){var a=rd(i,"type.displayName")||rd(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function Hu(t,e){var r=Hd(t,e);return r&&r[0]}var Cne=function(e){if(!e||!e.props)return!1;var r=e.props,n=r.width,i=r.height;return!(!Kr(n)||n<=0||!Kr(i)||i<=0)},Mat=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],Oat=function(e){return e&&e.type&&C_(e.type)&&Mat.indexOf(e.type)>=0},_Vt=function(e){return e&&cV(e)==="object"&&"clipDot"in e},Fat=function(e,r,n,i){var a,c=(a=uz==null?void 0:uz[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!fi(e)&&(i&&c.includes(r)||Pat.includes(r))||n&&K7.includes(r)},oi=function(e,r,n){if(!e||typeof e=="function"||typeof e=="boolean")return null;var i=e;if(P.isValidElement(e)&&(i=e.props),!IS(i))return null;var a={};return Object.keys(i).forEach(function(c){var s;Fat((s=i)===null||s===void 0?void 0:s[c],c,r,n)&&(a[c]=i[c])}),a},uV=function t(e,r){if(e===r)return!0;var n=P.Children.count(e);if(n!==P.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Ine(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Vat(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function hV(t){var e=t.children,r=t.width,n=t.height,i=t.viewBox,a=t.className,c=t.style,s=t.title,f=t.desc,m=Uat(t,$at),x=i||{width:r,height:n,x:0,y:0},_=Mi("recharts-surface",a);return Xe.createElement("svg",dV({},oi(m,!0,"svg"),{className:_,width:r,height:n,style:c,viewBox:"".concat(x.x," ").concat(x.y," ").concat(x.width," ").concat(x.height)}),Xe.createElement("title",null,s),Xe.createElement("desc",null,f),e)}var qat=["children","className"];function fV(){return fV=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Hat(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var $s=Xe.forwardRef(function(t,e){var r=t.children,n=t.className,i=Gat(t,qat),a=Mi("recharts-layer",n);return Xe.createElement("g",fV({className:a},oi(i,!0),{ref:e}),r)}),Xh=function(e,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;ai?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n=n?t:Yat(t,e,r)}var Xat=Zat,Qat="\\ud800-\\udfff",Jat="\\u0300-\\u036f",eot="\\ufe20-\\ufe2f",tot="\\u20d0-\\u20ff",rot=Jat+eot+tot,not="\\ufe0e\\ufe0f",iot="\\u200d",sot=RegExp("["+iot+Qat+rot+not+"]");function aot(t){return sot.test(t)}var uwe=aot;function oot(t){return t.split("")}var lot=oot,dwe="\\ud800-\\udfff",cot="\\u0300-\\u036f",uot="\\ufe20-\\ufe2f",dot="\\u20d0-\\u20ff",hot=cot+uot+dot,fot="\\ufe0e\\ufe0f",pot="["+dwe+"]",pV="["+hot+"]",mV="\\ud83c[\\udffb-\\udfff]",mot="(?:"+pV+"|"+mV+")",hwe="[^"+dwe+"]",fwe="(?:\\ud83c[\\udde6-\\uddff]){2}",pwe="[\\ud800-\\udbff][\\udc00-\\udfff]",got="\\u200d",mwe=mot+"?",gwe="["+fot+"]?",yot="(?:"+got+"(?:"+[hwe,fwe,pwe].join("|")+")"+gwe+mwe+")*",xot=gwe+mwe+yot,_ot="(?:"+[hwe+pV+"?",pV,fwe,pwe,pot].join("|")+")",vot=RegExp(mV+"(?="+mV+")|"+_ot+xot,"g");function bot(t){return t.match(vot)||[]}var wot=bot,Sot=lot,Tot=uwe,Eot=wot;function Aot(t){return Tot(t)?Eot(t):Sot(t)}var kot=Aot,Cot=Xat,Iot=uwe,jot=kot,Pot=iwe;function Not(t){return function(e){e=Pot(e);var r=Iot(e)?jot(e):void 0,n=r?r[0]:e.charAt(0),i=r?Cot(r,1).join(""):e.slice(1);return n[t]()+i}}var Rot=Not,Lot=Rot,Dot=Lot("toUpperCase"),Mot=Dot;const bF=fs(Mot);function fa(t){return function(){return t}}const ywe=Math.cos,gD=Math.sin,nf=Math.sqrt,yD=Math.PI,wF=2*yD,gV=Math.PI,yV=2*gV,L0=1e-6,Oot=yV-L0;function xwe(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return xwe;const r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;iL0)if(!(Math.abs(_*f-m*x)>L0)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let E=n-c,C=i-s,N=f*f+m*m,L=E*E+C*C,M=Math.sqrt(N),D=Math.sqrt(T),B=a*Math.tan((gV-Math.acos((N+T-L)/(2*M*D)))/2),V=B/D,G=B/M;Math.abs(V-1)>L0&&this._append`L${e+V*x},${r+V*_}`,this._append`A${a},${a},0,0,${+(_*E>x*C)},${this._x1=e+G*f},${this._y1=r+G*m}`}}arc(e,r,n,i,a,c){if(e=+e,r=+r,n=+n,c=!!c,n<0)throw new Error(`negative radius: ${n}`);let s=n*Math.cos(i),f=n*Math.sin(i),m=e+s,x=r+f,_=1^c,T=c?i-a:a-i;this._x1===null?this._append`M${m},${x}`:(Math.abs(this._x1-m)>L0||Math.abs(this._y1-x)>L0)&&this._append`L${m},${x}`,n&&(T<0&&(T=T%yV+yV),T>Oot?this._append`A${n},${n},0,1,${_},${e-s},${r-f}A${n},${n},0,1,${_},${this._x1=m},${this._y1=x}`:T>L0&&this._append`A${n},${n},0,${+(T>=gV)},${_},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Z7(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new Bot(e)}function X7(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function _we(t){this._context=t}_we.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function SF(t){return new _we(t)}function vwe(t){return t[0]}function bwe(t){return t[1]}function wwe(t,e){var r=fa(!0),n=null,i=SF,a=null,c=Z7(s);t=typeof t=="function"?t:t===void 0?vwe:fa(t),e=typeof e=="function"?e:e===void 0?bwe:fa(e);function s(f){var m,x=(f=X7(f)).length,_,T=!1,E;for(n==null&&(a=i(E=c())),m=0;m<=x;++m)!(m=E;--C)s.point(B[C],V[C]);s.lineEnd(),s.areaEnd()}M&&(B[T]=+t(L,T,_),V[T]=+e(L,T,_),s.point(n?+n(L,T,_):B[T],r?+r(L,T,_):V[T]))}if(D)return s=null,D+""||null}function x(){return wwe().defined(i).curve(c).context(a)}return m.x=function(_){return arguments.length?(t=typeof _=="function"?_:fa(+_),n=null,m):t},m.x0=function(_){return arguments.length?(t=typeof _=="function"?_:fa(+_),m):t},m.x1=function(_){return arguments.length?(n=_==null?null:typeof _=="function"?_:fa(+_),m):n},m.y=function(_){return arguments.length?(e=typeof _=="function"?_:fa(+_),r=null,m):e},m.y0=function(_){return arguments.length?(e=typeof _=="function"?_:fa(+_),m):e},m.y1=function(_){return arguments.length?(r=_==null?null:typeof _=="function"?_:fa(+_),m):r},m.lineX0=m.lineY0=function(){return x().x(t).y(e)},m.lineY1=function(){return x().x(t).y(r)},m.lineX1=function(){return x().x(n).y(e)},m.defined=function(_){return arguments.length?(i=typeof _=="function"?_:fa(!!_),m):i},m.curve=function(_){return arguments.length?(c=_,a!=null&&(s=c(a)),m):c},m.context=function(_){return arguments.length?(_==null?a=s=null:s=c(a=_),m):a},m}class Swe{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}}function zot(t){return new Swe(t,!0)}function $ot(t){return new Swe(t,!1)}const Q7={draw(t,e){const r=nf(e/yD);t.moveTo(r,0),t.arc(0,0,r,0,wF)}},Uot={draw(t,e){const r=nf(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},Twe=nf(1/3),Vot=Twe*2,qot={draw(t,e){const r=nf(e/Vot),n=r*Twe;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},Got={draw(t,e){const r=nf(e),n=-r/2;t.rect(n,n,r,r)}},Hot=.8908130915292852,Ewe=gD(yD/10)/gD(7*yD/10),Wot=gD(wF/10)*Ewe,Kot=-ywe(wF/10)*Ewe,Yot={draw(t,e){const r=nf(e*Hot),n=Wot*r,i=Kot*r;t.moveTo(0,-r),t.lineTo(n,i);for(let a=1;a<5;++a){const c=wF*a/5,s=ywe(c),f=gD(c);t.lineTo(f*r,-s*r),t.lineTo(s*n-f*i,f*n+s*i)}t.closePath()}},hz=nf(3),Zot={draw(t,e){const r=-nf(e/(hz*3));t.moveTo(0,r*2),t.lineTo(-hz*r,-r),t.lineTo(hz*r,-r),t.closePath()}},Cd=-.5,Id=nf(3)/2,xV=1/nf(12),Xot=(xV/2+1)*3,Qot={draw(t,e){const r=nf(e/Xot),n=r/2,i=r*xV,a=n,c=r*xV+r,s=-a,f=c;t.moveTo(n,i),t.lineTo(a,c),t.lineTo(s,f),t.lineTo(Cd*n-Id*i,Id*n+Cd*i),t.lineTo(Cd*a-Id*c,Id*a+Cd*c),t.lineTo(Cd*s-Id*f,Id*s+Cd*f),t.lineTo(Cd*n+Id*i,Cd*i-Id*n),t.lineTo(Cd*a+Id*c,Cd*c-Id*a),t.lineTo(Cd*s+Id*f,Cd*f-Id*s),t.closePath()}};function Jot(t,e){let r=null,n=Z7(i);t=typeof t=="function"?t:fa(t||Q7),e=typeof e=="function"?e:fa(e===void 0?64:+e);function i(){let a;if(r||(r=a=n()),t.apply(this,arguments).draw(r,+e.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(t=typeof a=="function"?a:fa(a),i):t},i.size=function(a){return arguments.length?(e=typeof a=="function"?a:fa(+a),i):e},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function xD(){}function _D(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Awe(t){this._context=t}Awe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:_D(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:_D(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function elt(t){return new Awe(t)}function kwe(t){this._context=t}kwe.prototype={areaStart:xD,areaEnd:xD,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:_D(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function tlt(t){return new kwe(t)}function Cwe(t){this._context=t}Cwe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:_D(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function rlt(t){return new Cwe(t)}function Iwe(t){this._context=t}Iwe.prototype={areaStart:xD,areaEnd:xD,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function nlt(t){return new Iwe(t)}function Pne(t){return t<0?-1:1}function Nne(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),c=(r-t._y1)/(i||n<0&&-0),s=(a*i+c*n)/(n+i);return(Pne(a)+Pne(c))*Math.min(Math.abs(a),Math.abs(c),.5*Math.abs(s))||0}function Rne(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function fz(t,e,r){var n=t._x0,i=t._y0,a=t._x1,c=t._y1,s=(a-n)/3;t._context.bezierCurveTo(n+s,i+s*e,a-s,c-s*r,a,c)}function vD(t){this._context=t}vD.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:fz(this,this._t0,Rne(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,fz(this,Rne(this,r=Nne(this,t,e)),r);break;default:fz(this,this._t0,r=Nne(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function jwe(t){this._context=new Pwe(t)}(jwe.prototype=Object.create(vD.prototype)).point=function(t,e){vD.prototype.point.call(this,e,t)};function Pwe(t){this._context=t}Pwe.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)}};function ilt(t){return new vD(t)}function slt(t){return new jwe(t)}function Nwe(t){this._context=t}Nwe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=Lne(t),i=Lne(e),a=0,c=1;c=0;--e)i[e]=(c[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function olt(t){return new TF(t,.5)}function llt(t){return new TF(t,0)}function clt(t){return new TF(t,1)}function k1(t,e){if((c=t.length)>1)for(var r=1,n,i,a=t[e[0]],c,s=a.length;r=0;)r[e]=e;return r}function ult(t,e){return t[e]}function dlt(t){const e=[];return e.key=t,e}function hlt(){var t=fa([]),e=_V,r=k1,n=ult;function i(a){var c=Array.from(t.apply(this,arguments),dlt),s,f=c.length,m=-1,x;for(const _ of a)for(s=0,++m;s0){for(var r,n,i=0,a=t[0].length,c;i0){for(var r=0,n=t[e[0]],i,a=n.length;r0)||!((a=(i=t[e[0]]).length)>0))){for(var r=0,n=1,i,a,c;n=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function blt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var Rwe={symbolCircle:Q7,symbolCross:Uot,symbolDiamond:qot,symbolSquare:Got,symbolStar:Yot,symbolTriangle:Zot,symbolWye:Qot},wlt=Math.PI/180,Slt=function(e){var r="symbol".concat(bF(e));return Rwe[r]||Q7},Tlt=function(e,r,n){if(r==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var i=18*wlt;return 1.25*e*e*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},Elt=function(e,r){Rwe["symbol".concat(bF(e))]=r},J7=function(e){var r=e.type,n=r===void 0?"circle":r,i=e.size,a=i===void 0?64:i,c=e.sizeType,s=c===void 0?"area":c,f=vlt(e,glt),m=Mne(Mne({},f),{},{type:n,size:a,sizeType:s}),x=function(){var L=Slt(n),M=Jot().type(L).size(Tlt(a,s,n));return M()},_=m.className,T=m.cx,E=m.cy,C=oi(m,!0);return T===+T&&E===+E&&a===+a?Xe.createElement("path",vV({},C,{className:Mi("recharts-symbols",_),transform:"translate(".concat(T,", ").concat(E,")"),d:x()})):null};J7.registerSymbol=Elt;function C1(t){"@babel/helpers - typeof";return C1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C1(t)}function bV(){return bV=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var D=E.inactive?m:E.color;return Xe.createElement("li",bV({className:L,style:_,key:"legend-item-".concat(C)},I_(n.props,E,C)),Xe.createElement(hV,{width:c,height:c,viewBox:x,style:T},n.renderIcon(E)),Xe.createElement("span",{className:"recharts-legend-item-text",style:{color:D}},N?N(M,E,C):M))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,c=n.align;if(!i||!i.length)return null;var s={padding:0,margin:0,textAlign:a==="horizontal"?c:"left"};return Xe.createElement("ul",{className:"recharts-default-legend",style:s},this.renderItems())}}])}(P.PureComponent);bk(eH,"displayName","Legend");bk(eH,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Dlt=lF;function Mlt(){this.__data__=new Dlt,this.size=0}var Olt=Mlt;function Flt(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Blt=Flt;function zlt(t){return this.__data__.get(t)}var $lt=zlt;function Ult(t){return this.__data__.has(t)}var Vlt=Ult,qlt=lF,Glt=$7,Hlt=U7,Wlt=200;function Klt(t,e){var r=this.__data__;if(r instanceof qlt){var n=r.__data__;if(!Glt||n.lengths))return!1;var m=a.get(t),x=a.get(e);if(m&&x)return m==e&&x==t;var _=-1,T=!0,E=r&gct?new hct:void 0;for(a.set(t,e),a.set(e,t);++_-1&&t%1==0&&t-1&&t%1==0&&t<=vut}var iH=but,wut=Um,Sut=iH,Tut=Vm,Eut="[object Arguments]",Aut="[object Array]",kut="[object Boolean]",Cut="[object Date]",Iut="[object Error]",jut="[object Function]",Put="[object Map]",Nut="[object Number]",Rut="[object Object]",Lut="[object RegExp]",Dut="[object Set]",Mut="[object String]",Out="[object WeakMap]",Fut="[object ArrayBuffer]",But="[object DataView]",zut="[object Float32Array]",$ut="[object Float64Array]",Uut="[object Int8Array]",Vut="[object Int16Array]",qut="[object Int32Array]",Gut="[object Uint8Array]",Hut="[object Uint8ClampedArray]",Wut="[object Uint16Array]",Kut="[object Uint32Array]",Ta={};Ta[zut]=Ta[$ut]=Ta[Uut]=Ta[Vut]=Ta[qut]=Ta[Gut]=Ta[Hut]=Ta[Wut]=Ta[Kut]=!0;Ta[Eut]=Ta[Aut]=Ta[Fut]=Ta[kut]=Ta[But]=Ta[Cut]=Ta[Iut]=Ta[jut]=Ta[Put]=Ta[Nut]=Ta[Rut]=Ta[Lut]=Ta[Dut]=Ta[Mut]=Ta[Out]=!1;function Yut(t){return Tut(t)&&Sut(t.length)&&!!Ta[wut(t)]}var Zut=Yut;function Xut(t){return function(e){return t(e)}}var qwe=Xut,TD={exports:{}};TD.exports;(function(t,e){var r=Qbe,n=e&&!e.nodeType&&e,i=n&&!0&&t&&!t.nodeType&&t,a=i&&i.exports===n,c=a&&r.process,s=function(){try{var f=i&&i.require&&i.require("util").types;return f||c&&c.binding&&c.binding("util")}catch{}}();t.exports=s})(TD,TD.exports);var Qut=TD.exports,Jut=Zut,edt=qwe,Vne=Qut,qne=Vne&&Vne.isTypedArray,tdt=qne?edt(qne):Jut,Gwe=tdt,rdt=sut,ndt=rH,idt=ju,sdt=Vwe,adt=nH,odt=Gwe,ldt=Object.prototype,cdt=ldt.hasOwnProperty;function udt(t,e){var r=idt(t),n=!r&&ndt(t),i=!r&&!n&&sdt(t),a=!r&&!n&&!i&&odt(t),c=r||n||i||a,s=c?rdt(t.length,String):[],f=s.length;for(var m in t)(e||cdt.call(t,m))&&!(c&&(m=="length"||i&&(m=="offset"||m=="parent")||a&&(m=="buffer"||m=="byteLength"||m=="byteOffset")||adt(m,f)))&&s.push(m);return s}var ddt=udt,hdt=Object.prototype;function fdt(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||hdt;return t===r}var pdt=fdt;function mdt(t,e){return function(r){return t(e(r))}}var Hwe=mdt,gdt=Hwe,ydt=gdt(Object.keys,Object),xdt=ydt,_dt=pdt,vdt=xdt,bdt=Object.prototype,wdt=bdt.hasOwnProperty;function Sdt(t){if(!_dt(t))return vdt(t);var e=[];for(var r in Object(t))wdt.call(t,r)&&r!="constructor"&&e.push(r);return e}var Tdt=Sdt,Edt=B7,Adt=iH;function kdt(t){return t!=null&&Adt(t.length)&&!Edt(t)}var eI=kdt,Cdt=ddt,Idt=Tdt,jdt=eI;function Pdt(t){return jdt(t)?Cdt(t):Idt(t)}var EF=Pdt,Ndt=Wct,Rdt=nut,Ldt=EF;function Ddt(t){return Ndt(t,Ldt,Rdt)}var Mdt=Ddt,Gne=Mdt,Odt=1,Fdt=Object.prototype,Bdt=Fdt.hasOwnProperty;function zdt(t,e,r,n,i,a){var c=r&Odt,s=Gne(t),f=s.length,m=Gne(e),x=m.length;if(f!=x&&!c)return!1;for(var _=f;_--;){var T=s[_];if(!(c?T in e:Bdt.call(e,T)))return!1}var E=a.get(t),C=a.get(e);if(E&&C)return E==e&&C==t;var N=!0;a.set(t,e),a.set(e,t);for(var L=c;++_-1}var Fft=Oft;function Bft(t,e,r){for(var n=-1,i=t==null?0:t.length;++n=ept){var m=e?null:Qft(t);if(m)return Jft(m);c=!1,i=Xft,f=new Kft}else f=e?[]:s;e:for(;++n=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gpt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function ypt(t){return t.value}function xpt(t,e){if(Xe.isValidElement(t))return Xe.cloneElement(t,e);if(typeof t=="function")return Xe.createElement(t,e);e.ref;var r=mpt(e,opt);return Xe.createElement(eH,r)}var oie=1,Dw=function(t){function e(){var r;lpt(this,e);for(var n=arguments.length,i=new Array(n),a=0;aoie||Math.abs(i.height-this.lastBoundingBox.height)>oie)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Zp({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,c=i.align,s=i.verticalAlign,f=i.margin,m=i.chartWidth,x=i.chartHeight,_,T;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(c==="center"&&a==="vertical"){var E=this.getBBoxSnapshot();_={left:((m||0)-E.width)/2}}else _=c==="right"?{right:f&&f.right||0}:{left:f&&f.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(s==="middle"){var C=this.getBBoxSnapshot();T={top:((x||0)-C.height)/2}}else T=s==="bottom"?{bottom:f&&f.bottom||0}:{top:f&&f.top||0};return Zp(Zp({},_),T)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,c=i.width,s=i.height,f=i.wrapperStyle,m=i.payloadUniqBy,x=i.payload,_=Zp(Zp({position:"absolute",width:c||"auto",height:s||"auto"},this.getDefaultPosition(f)),f);return Xe.createElement("div",{className:"recharts-legend-wrapper",style:_,ref:function(E){n.wrapperNode=E}},xpt(a,Zp(Zp({},this.props),{},{payload:Jwe(x,m,ypt)})))}}],[{key:"getWithHeight",value:function(n,i){var a=Zp(Zp({},this.defaultProps),n.props),c=a.layout;return c==="vertical"&&Kr(n.props.height)?{height:n.props.height}:c==="horizontal"?{width:n.props.width||i}:null}}])}(P.PureComponent);AF(Dw,"displayName","Legend");AF(Dw,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var lie=XC,_pt=rH,vpt=ju,cie=lie?lie.isConcatSpreadable:void 0;function bpt(t){return vpt(t)||_pt(t)||!!(cie&&t&&t[cie])}var wpt=bpt,Spt=$we,Tpt=wpt;function r1e(t,e,r,n,i){var a=-1,c=t.length;for(r||(r=Tpt),i||(i=[]);++a0&&r(s)?e>1?r1e(s,e-1,r,n,i):Spt(i,s):n||(i[i.length]=s)}return i}var n1e=r1e;function Ept(t){return function(e,r,n){for(var i=-1,a=Object(e),c=n(e),s=c.length;s--;){var f=c[t?s:++i];if(r(a[f],f,a)===!1)break}return e}}var Apt=Ept,kpt=Apt,Cpt=kpt(),Ipt=Cpt,jpt=Ipt,Ppt=EF;function Npt(t,e){return t&&jpt(t,e,Ppt)}var i1e=Npt,Rpt=eI;function Lpt(t,e){return function(r,n){if(r==null)return r;if(!Rpt(r))return t(r,n);for(var i=r.length,a=e?i:-1,c=Object(r);(e?a--:++ae||a&&c&&f&&!s&&!m||n&&c&&f||!r&&f||!i)return 1;if(!n&&!a&&!m&&t=s)return f;var m=r[n];return f*(m=="desc"?-1:1)}}return t.index-e.index}var Kpt=Wpt,yz=q7,Ypt=G7,Zpt=gp,Xpt=s1e,Qpt=Vpt,Jpt=qwe,emt=Kpt,tmt=DS,rmt=ju;function nmt(t,e,r){e.length?e=yz(e,function(a){return rmt(a)?function(c){return Ypt(c,a.length===1?a[0]:a)}:a}):e=[tmt];var n=-1;e=yz(e,Jpt(Zpt));var i=Xpt(t,function(a,c,s){var f=yz(e,function(m){return m(a)});return{criteria:f,index:++n,value:a}});return Qpt(i,function(a,c){return emt(a,c,r)})}var imt=nmt;function smt(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var amt=smt,omt=amt,die=Math.max;function lmt(t,e,r){return e=die(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=die(n.length-e,0),c=Array(a);++i0){if(++e>=xmt)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var wmt=bmt,Smt=ymt,Tmt=wmt,Emt=Tmt(Smt),Amt=Emt,kmt=DS,Cmt=cmt,Imt=Amt;function jmt(t,e){return Imt(Cmt(t,e,kmt),t+"")}var Pmt=jmt,Nmt=z7,Rmt=eI,Lmt=nH,Dmt=cx;function Mmt(t,e,r){if(!Dmt(r))return!1;var n=typeof e;return(n=="number"?Rmt(r)&&Lmt(e,r.length):n=="string"&&e in r)?Nmt(r[e],t):!1}var kF=Mmt,Omt=n1e,Fmt=imt,Bmt=Pmt,fie=kF,zmt=Bmt(function(t,e){if(t==null)return[];var r=e.length;return r>1&&fie(t,e[0],e[1])?e=[]:r>2&&fie(e[0],e[1],e[2])&&(e=[e[0]]),Fmt(t,Omt(e,1),[])}),$mt=zmt;const oH=fs($mt);function wk(t){"@babel/helpers - typeof";return wk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wk(t)}function IV(){return IV=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=e.x),"".concat(w2,"-left"),Kr(r)&&e&&Kr(e.x)&&r=e.y),"".concat(w2,"-top"),Kr(n)&&e&&Kr(e.y)&&nN?Math.max(x,f[n]):Math.max(_,f[n])}function rgt(t){var e=t.translateX,r=t.translateY,n=t.useTranslate3d;return{transform:n?"translate3d(".concat(e,"px, ").concat(r,"px, 0)"):"translate(".concat(e,"px, ").concat(r,"px)")}}function ngt(t){var e=t.allowEscapeViewBox,r=t.coordinate,n=t.offsetTopLeft,i=t.position,a=t.reverseDirection,c=t.tooltipBox,s=t.useTranslate3d,f=t.viewBox,m,x,_;return c.height>0&&c.width>0&&r?(x=gie({allowEscapeViewBox:e,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:c.width,viewBox:f,viewBoxDimension:f.width}),_=gie({allowEscapeViewBox:e,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:c.height,viewBox:f,viewBoxDimension:f.height}),m=rgt({translateX:x,translateY:_,useTranslate3d:s})):m=egt,{cssProperties:m,cssClasses:tgt({translateX:x,translateY:_,coordinate:r})}}function j1(t){"@babel/helpers - typeof";return j1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j1(t)}function yie(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function xie(t){for(var e=1;e_ie||Math.abs(n.height-this.state.lastBoundingBox.height)>_ie)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,c=i.allowEscapeViewBox,s=i.animationDuration,f=i.animationEasing,m=i.children,x=i.coordinate,_=i.hasPayload,T=i.isAnimationActive,E=i.offset,C=i.position,N=i.reverseDirection,L=i.useTranslate3d,M=i.viewBox,D=i.wrapperStyle,B=ngt({allowEscapeViewBox:c,coordinate:x,offsetTopLeft:E,position:C,reverseDirection:N,tooltipBox:this.state.lastBoundingBox,useTranslate3d:L,viewBox:M}),V=B.cssClasses,G=B.cssProperties,W=xie(xie({transition:T&&a?"transform ".concat(s,"ms ").concat(f):void 0},G),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&_?"visible":"hidden",position:"absolute",top:0,left:0},D);return Xe.createElement("div",{tabIndex:-1,className:V,style:W,ref:function(Q){n.wrapperNode=Q}},m)}}])}(P.PureComponent),fgt=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},vm={isSsr:fgt(),get:function(e){return vm[e]},set:function(e,r){if(typeof e=="string")vm[e]=r;else{var n=Object.keys(e);n&&n.length&&n.forEach(function(i){vm[i]=e[i]})}}};function P1(t){"@babel/helpers - typeof";return P1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P1(t)}function vie(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function bie(t){for(var e=1;e0;return Xe.createElement(hgt,{allowEscapeViewBox:c,animationDuration:s,animationEasing:f,isAnimationActive:T,active:a,coordinate:x,hasPayload:W,offset:E,position:L,reverseDirection:M,useTranslate3d:D,viewBox:B,wrapperStyle:V},Sgt(m,bie(bie({},this.props),{},{payload:G})))}}])}(P.PureComponent);lH(Oh,"displayName","Tooltip");lH(Oh,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!vm.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Tgt=mp,Egt=function(){return Tgt.Date.now()},Agt=Egt,kgt=/\s/;function Cgt(t){for(var e=t.length;e--&&kgt.test(t.charAt(e)););return e}var Igt=Cgt,jgt=Igt,Pgt=/^\s+/;function Ngt(t){return t&&t.slice(0,jgt(t)+1).replace(Pgt,"")}var Rgt=Ngt,Lgt=Rgt,wie=cx,Dgt=CS,Sie=NaN,Mgt=/^[-+]0x[0-9a-f]+$/i,Ogt=/^0b[01]+$/i,Fgt=/^0o[0-7]+$/i,Bgt=parseInt;function zgt(t){if(typeof t=="number")return t;if(Dgt(t))return Sie;if(wie(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=wie(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Lgt(t);var r=Ogt.test(t);return r||Fgt.test(t)?Bgt(t.slice(2),r?2:8):Mgt.test(t)?Sie:+t}var d1e=zgt,$gt=cx,_z=Agt,Tie=d1e,Ugt="Expected a function",Vgt=Math.max,qgt=Math.min;function Ggt(t,e,r){var n,i,a,c,s,f,m=0,x=!1,_=!1,T=!0;if(typeof t!="function")throw new TypeError(Ugt);e=Tie(e)||0,$gt(r)&&(x=!!r.leading,_="maxWait"in r,a=_?Vgt(Tie(r.maxWait)||0,e):a,T="trailing"in r?!!r.trailing:T);function E(W){var Z=n,Q=i;return n=i=void 0,m=W,c=t.apply(Q,Z),c}function C(W){return m=W,s=setTimeout(M,e),x?E(W):c}function N(W){var Z=W-f,Q=W-m,se=e-Z;return _?qgt(se,a-Q):se}function L(W){var Z=W-f,Q=W-m;return f===void 0||Z>=e||Z<0||_&&Q>=a}function M(){var W=_z();if(L(W))return D(W);s=setTimeout(M,N(W))}function D(W){return s=void 0,T&&n?E(W):(n=i=void 0,c)}function B(){s!==void 0&&clearTimeout(s),m=0,n=f=i=s=void 0}function V(){return s===void 0?c:D(_z())}function G(){var W=_z(),Z=L(W);if(n=arguments,i=this,f=W,Z){if(s===void 0)return C(f);if(_)return clearTimeout(s),s=setTimeout(M,e),E(f)}return s===void 0&&(s=setTimeout(M,e)),c}return G.cancel=B,G.flush=V,G}var Hgt=Ggt,Wgt=Hgt,Kgt=cx,Ygt="Expected a function";function Zgt(t,e,r){var n=!0,i=!0;if(typeof t!="function")throw new TypeError(Ygt);return Kgt(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),Wgt(t,e,{leading:n,maxWait:e,trailing:i})}var Xgt=Zgt;const h1e=fs(Xgt);function Tk(t){"@babel/helpers - typeof";return Tk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tk(t)}function Eie(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function AN(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&(Te=h1e(Te,N,{trailing:!0,leading:!1}));var we=new ResizeObserver(Te),Oe=G.current.getBoundingClientRect(),Ae=Oe.width,Se=Oe.height;return ue(Ae,Se),we.observe(G.current),function(){we.disconnect()}},[ue,N]);var be=P.useMemo(function(){var Te=se.containerWidth,we=se.containerHeight;if(Te<0||we<0)return null;Xh(H0(c)||H0(f),`The width(%s) and height(%s) are both fixed numbers, maybe you don't need to use a ResponsiveContainer.`,c,f),Xh(!r||r>0,"The aspect(%s) must be greater than zero.",r);var Oe=H0(c)?Te:c,Ae=H0(f)?we:f;r&&r>0&&(Oe?Ae=Oe/r:Ae&&(Oe=Ae*r),T&&Ae>T&&(Ae=T)),Xh(Oe>0||Ae>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the height and width.`,Oe,Ae,c,f,x,_,r);var Se=!Array.isArray(E)&&_m(E.type).endsWith("Chart");return Xe.Children.map(E,function(ge){return Xe.isValidElement(ge)?P.cloneElement(ge,AN({width:Oe,height:Ae},Se?{style:AN({height:"100%",width:"100%",maxHeight:Ae,maxWidth:Oe},ge.props.style)}:{})):ge})},[r,E,f,T,_,x,se,c]);return Xe.createElement("div",{id:L?"".concat(L):void 0,className:Mi("recharts-responsive-container",M),style:AN(AN({},V),{},{width:c,height:f,minWidth:x,minHeight:_,maxHeight:T}),ref:G},be)}),CF=function(e){return null};CF.displayName="Cell";function Ek(t){"@babel/helpers - typeof";return Ek=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ek(t)}function kie(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function LV(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||vm.isSsr)return{width:0,height:0};var n=dyt(r),i=JSON.stringify({text:e,copyStyle:n});if(Fb.widthCache[i])return Fb.widthCache[i];try{var a=document.getElementById(Cie);a||(a=document.createElement("span"),a.setAttribute("id",Cie),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var c=LV(LV({},uyt),n);Object.assign(a.style,c),a.textContent="".concat(e);var s=a.getBoundingClientRect(),f={width:s.width,height:s.height};return Fb.widthCache[i]=f,++Fb.cacheCount>cyt&&(Fb.cacheCount=0,Fb.widthCache={}),f}catch{return{width:0,height:0}}},hyt=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function Ak(t){"@babel/helpers - typeof";return Ak=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ak(t)}function CD(t,e){return gyt(t)||myt(t,e)||pyt(t,e)||fyt()}function fyt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pyt(t,e){if(t){if(typeof t=="string")return Iie(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Iie(t,e)}}function Iie(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function jyt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function Die(t,e){return Lyt(t)||Ryt(t,e)||Nyt(t,e)||Pyt()}function Pyt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nyt(t,e){if(t){if(typeof t=="string")return Mie(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Mie(t,e)}}function Mie(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&arguments[0]!==void 0?arguments[0]:[];return Oe.reduce(function(Ae,Se){var ge=Se.word,je=Se.width,_e=Ae[Ae.length-1];if(_e&&(i==null||a||_e.width+je+nSe.width?Ae:Se})};if(!x)return E;for(var N="…",L=function(Oe){var Ae=_.slice(0,Oe),Se=g1e({breakAll:m,style:f,children:Ae+N}).wordsWithComputedWidth,ge=T(Se),je=ge.length>c||C(ge).width>Number(i);return[je,ge]},M=0,D=_.length-1,B=0,V;M<=D&&B<=_.length-1;){var G=Math.floor((M+D)/2),W=G-1,Z=L(W),Q=Die(Z,2),se=Q[0],ie=Q[1],ue=L(G),be=Die(ue,1),Te=be[0];if(!se&&!Te&&(M=G+1),se&&Te&&(D=G-1),!se&&Te){V=ie;break}B++}return V||E},Oie=function(e){var r=Oi(e)?[]:e.toString().split(m1e);return[{words:r}]},Myt=function(e){var r=e.width,n=e.scaleToFit,i=e.children,a=e.style,c=e.breakAll,s=e.maxLines;if((r||n)&&!vm.isSsr){var f,m,x=g1e({breakAll:c,children:i,style:a});if(x){var _=x.wordsWithComputedWidth,T=x.spaceWidth;f=_,m=T}else return Oie(i);return Dyt({breakAll:c,children:i,maxLines:s,style:a},f,m,r,n)}return Oie(i)},Fie="#808080",j_=function(e){var r=e.x,n=r===void 0?0:r,i=e.y,a=i===void 0?0:i,c=e.lineHeight,s=c===void 0?"1em":c,f=e.capHeight,m=f===void 0?"0.71em":f,x=e.scaleToFit,_=x===void 0?!1:x,T=e.textAnchor,E=T===void 0?"start":T,C=e.verticalAnchor,N=C===void 0?"end":C,L=e.fill,M=L===void 0?Fie:L,D=Lie(e,Cyt),B=P.useMemo(function(){return Myt({breakAll:D.breakAll,children:D.children,maxLines:D.maxLines,scaleToFit:_,style:D.style,width:D.width})},[D.breakAll,D.children,D.maxLines,_,D.style,D.width]),V=D.dx,G=D.dy,W=D.angle,Z=D.className,Q=D.breakAll,se=Lie(D,Iyt);if(!ll(n)||!ll(a))return null;var ie=n+(Kr(V)?V:0),ue=a+(Kr(G)?G:0),be;switch(N){case"start":be=vz("calc(".concat(m,")"));break;case"middle":be=vz("calc(".concat((B.length-1)/2," * -").concat(s," + (").concat(m," / 2))"));break;default:be=vz("calc(".concat(B.length-1," * -").concat(s,")"));break}var Te=[];if(_){var we=B[0].width,Oe=D.width;Te.push("scale(".concat((Kr(Oe)?Oe/we:1)/we,")"))}return W&&Te.push("rotate(".concat(W,", ").concat(ie,", ").concat(ue,")")),Te.length&&(se.transform=Te.join(" ")),Xe.createElement("text",DV({},oi(se,!0),{x:ie,y:ue,className:Mi("recharts-text",Z),textAnchor:E,fill:M.includes("url")?Fie:M}),B.map(function(Ae,Se){var ge=Ae.words.join(Q?"":" ");return Xe.createElement("tspan",{x:ie,dy:Se===0?be:s,key:"".concat(ge,"-").concat(Se)},ge)}))};function Py(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Oyt(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function cH(t){let e,r,n;t.length!==2?(e=Py,r=(s,f)=>Py(t(s),f),n=(s,f)=>t(s)-f):(e=t===Py||t===Oyt?t:Fyt,r=t,n=t);function i(s,f,m=0,x=s.length){if(m>>1;r(s[_],f)<0?m=_+1:x=_}while(m>>1;r(s[_],f)<=0?m=_+1:x=_}while(mm&&n(s[_-1],f)>-n(s[_],f)?_-1:_}return{left:i,center:c,right:a}}function Fyt(){return 0}function y1e(t){return t===null?NaN:+t}function*Byt(t,e){for(let r of t)r!=null&&(r=+r)>=r&&(yield r)}const zyt=cH(Py),tI=zyt.right;cH(y1e).center;class Bie extends Map{constructor(e,r=Vyt){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const[n,i]of e)this.set(n,i)}get(e){return super.get(zie(this,e))}has(e){return super.has(zie(this,e))}set(e,r){return super.set($yt(this,e),r)}delete(e){return super.delete(Uyt(this,e))}}function zie({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):r}function $yt({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function Uyt({_intern:t,_key:e},r){const n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function Vyt(t){return t!==null&&typeof t=="object"?t.valueOf():t}function qyt(t=Py){if(t===Py)return x1e;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,r)=>{const n=t(e,r);return n||n===0?n:(t(r,r)===0)-(t(e,e)===0)}}function x1e(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const Gyt=Math.sqrt(50),Hyt=Math.sqrt(10),Wyt=Math.sqrt(2);function ID(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),c=a>=Gyt?10:a>=Hyt?5:a>=Wyt?2:1;let s,f,m;return i<0?(m=Math.pow(10,-i)/c,s=Math.round(t*m),f=Math.round(e*m),s/me&&--f,m=-m):(m=Math.pow(10,i)*c,s=Math.round(t/m),f=Math.round(e/m),s*me&&--f),f0))return[];if(t===e)return[t];const n=e=i))return[];const s=a-i+1,f=new Array(s);if(n)if(c<0)for(let m=0;m=n)&&(r=n);return r}function Uie(t,e){let r;for(const n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function _1e(t,e,r=0,n=1/0,i){if(e=Math.floor(e),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(t.length-1,n)),!(r<=e&&e<=n))return t;for(i=i===void 0?x1e:qyt(i);n>r;){if(n-r>600){const f=n-r+1,m=e-r+1,x=Math.log(f),_=.5*Math.exp(2*x/3),T=.5*Math.sqrt(x*_*(f-_)/f)*(m-f/2<0?-1:1),E=Math.max(r,Math.floor(e-m*_/f+T)),C=Math.min(n,Math.floor(e+(f-m)*_/f+T));_1e(t,e,E,C,i)}const a=t[e];let c=r,s=n;for(S2(t,r,e),i(t[n],a)>0&&S2(t,r,n);c0;)--s}i(t[r],a)===0?S2(t,r,s):(++s,S2(t,s,n)),s<=e&&(r=s+1),e<=s&&(n=s-1)}return t}function S2(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function Kyt(t,e,r){if(t=Float64Array.from(Byt(t)),!(!(n=t.length)||isNaN(e=+e))){if(e<=0||n<2)return Uie(t);if(e>=1)return $ie(t);var n,i=(n-1)*e,a=Math.floor(i),c=$ie(_1e(t,a).subarray(0,a+1)),s=Uie(t.subarray(a+1));return c+(s-c)*(i-a)}}function Yyt(t,e,r=y1e){if(!(!(n=t.length)||isNaN(e=+e))){if(e<=0||n<2)return+r(t[0],0,t);if(e>=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),c=+r(t[a],a,t),s=+r(t[a+1],a+1,t);return c+(s-c)*(i-a)}}function Zyt(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?CN(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?CN(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Qyt.exec(t))?new bu(e[1],e[2],e[3],1):(e=Jyt.exec(t))?new bu(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ext.exec(t))?CN(e[1],e[2],e[3],e[4]):(e=txt.exec(t))?CN(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=rxt.exec(t))?Yie(e[1],e[2]/100,e[3]/100,1):(e=nxt.exec(t))?Yie(e[1],e[2]/100,e[3]/100,e[4]):Vie.hasOwnProperty(t)?Hie(Vie[t]):t==="transparent"?new bu(NaN,NaN,NaN,0):null}function Hie(t){return new bu(t>>16&255,t>>8&255,t&255,1)}function CN(t,e,r,n){return n<=0&&(t=e=r=NaN),new bu(t,e,r,n)}function axt(t){return t instanceof rI||(t=jk(t)),t?(t=t.rgb(),new bu(t.r,t.g,t.b,t.opacity)):new bu}function zV(t,e,r,n){return arguments.length===1?axt(t):new bu(t,e,r,n??1)}function bu(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}dH(bu,zV,b1e(rI,{brighter(t){return t=t==null?jD:Math.pow(jD,t),new bu(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ck:Math.pow(Ck,t),new bu(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new bu(u_(this.r),u_(this.g),u_(this.b),PD(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Wie,formatHex:Wie,formatHex8:oxt,formatRgb:Kie,toString:Kie}));function Wie(){return`#${W0(this.r)}${W0(this.g)}${W0(this.b)}`}function oxt(){return`#${W0(this.r)}${W0(this.g)}${W0(this.b)}${W0((isNaN(this.opacity)?1:this.opacity)*255)}`}function Kie(){const t=PD(this.opacity);return`${t===1?"rgb(":"rgba("}${u_(this.r)}, ${u_(this.g)}, ${u_(this.b)}${t===1?")":`, ${t})`}`}function PD(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function u_(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function W0(t){return t=u_(t),(t<16?"0":"")+t.toString(16)}function Yie(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Vh(t,e,r,n)}function w1e(t){if(t instanceof Vh)return new Vh(t.h,t.s,t.l,t.opacity);if(t instanceof rI||(t=jk(t)),!t)return new Vh;if(t instanceof Vh)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),c=NaN,s=a-i,f=(a+i)/2;return s?(e===a?c=(r-n)/s+(r0&&f<1?0:c,new Vh(c,s,f,t.opacity)}function lxt(t,e,r,n){return arguments.length===1?w1e(t):new Vh(t,e,r,n??1)}function Vh(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}dH(Vh,lxt,b1e(rI,{brighter(t){return t=t==null?jD:Math.pow(jD,t),new Vh(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ck:Math.pow(Ck,t),new Vh(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new bu(bz(t>=240?t-240:t+120,i,n),bz(t,i,n),bz(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new Vh(Zie(this.h),IN(this.s),IN(this.l),PD(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=PD(this.opacity);return`${t===1?"hsl(":"hsla("}${Zie(this.h)}, ${IN(this.s)*100}%, ${IN(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Zie(t){return t=(t||0)%360,t<0?t+360:t}function IN(t){return Math.max(0,Math.min(1,t||0))}function bz(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const hH=t=>()=>t;function cxt(t,e){return function(r){return t+r*e}}function uxt(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function dxt(t){return(t=+t)==1?S1e:function(e,r){return r-e?uxt(e,r,t):hH(isNaN(e)?r:e)}}function S1e(t,e){var r=e-t;return r?cxt(t,r):hH(isNaN(t)?e:t)}const Xie=function t(e){var r=dxt(e);function n(i,a){var c=r((i=zV(i)).r,(a=zV(a)).r),s=r(i.g,a.g),f=r(i.b,a.b),m=S1e(i.opacity,a.opacity);return function(x){return i.r=c(x),i.g=s(x),i.b=f(x),i.opacity=m(x),i+""}}return n.gamma=t,n}(1);function hxt(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;ir&&(a=e.slice(r,a),s[c]?s[c]+=a:s[++c]=a),(n=n[0])===(i=i[0])?s[c]?s[c]+=i:s[++c]=i:(s[++c]=null,f.push({i:c,x:ND(n,i)})),r=wz.lastIndex;return re&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function Sxt(t,e,r){var n=t[0],i=t[1],a=e[0],c=e[1];return i2?Txt:Sxt,f=m=null,_}function _(T){return T==null||isNaN(T=+T)?a:(f||(f=s(t.map(n),e,r)))(n(c(T)))}return _.invert=function(T){return c(i((m||(m=s(e,t.map(n),ND)))(T)))},_.domain=function(T){return arguments.length?(t=Array.from(T,RD),x()):t.slice()},_.range=function(T){return arguments.length?(e=Array.from(T),x()):e.slice()},_.rangeRound=function(T){return e=Array.from(T),r=fH,x()},_.clamp=function(T){return arguments.length?(c=T?!0:Wc,x()):c!==Wc},_.interpolate=function(T){return arguments.length?(r=T,x()):r},_.unknown=function(T){return arguments.length?(a=T,_):a},function(T,E){return n=T,i=E,x()}}function pH(){return IF()(Wc,Wc)}function Ext(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function LD(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function N1(t){return t=LD(Math.abs(t)),t?t[1]:NaN}function Axt(t,e){return function(r,n){for(var i=r.length,a=[],c=0,s=t[0],f=0;i>0&&s>0&&(f+s+1>n&&(s=Math.max(1,n-f)),a.push(r.substring(i-=s,i+s)),!((f+=s+1)>n));)s=t[c=(c+1)%t.length];return a.reverse().join(e)}}function kxt(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var Cxt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Pk(t){if(!(e=Cxt.exec(t)))throw new Error("invalid format: "+t);var e;return new mH({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Pk.prototype=mH.prototype;function mH(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}mH.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Ixt(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var T1e;function jxt(t,e){var r=LD(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(T1e=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,c=n.length;return a===c?n:a>c?n+new Array(a-c+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+LD(t,Math.max(0,e+a-1))[0]}function Jie(t,e){var r=LD(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const ese={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Ext,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Jie(t*100,e),r:Jie,s:jxt,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function tse(t){return t}var rse=Array.prototype.map,nse=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Pxt(t){var e=t.grouping===void 0||t.thousands===void 0?tse:Axt(rse.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?tse:kxt(rse.call(t.numerals,String)),c=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function m(_){_=Pk(_);var T=_.fill,E=_.align,C=_.sign,N=_.symbol,L=_.zero,M=_.width,D=_.comma,B=_.precision,V=_.trim,G=_.type;G==="n"?(D=!0,G="g"):ese[G]||(B===void 0&&(B=12),V=!0,G="g"),(L||T==="0"&&E==="=")&&(L=!0,T="0",E="=");var W=N==="$"?r:N==="#"&&/[boxX]/.test(G)?"0"+G.toLowerCase():"",Z=N==="$"?n:/[%p]/.test(G)?c:"",Q=ese[G],se=/[defgprs%]/.test(G);B=B===void 0?6:/[gprs]/.test(G)?Math.max(1,Math.min(21,B)):Math.max(0,Math.min(20,B));function ie(ue){var be=W,Te=Z,we,Oe,Ae;if(G==="c")Te=Q(ue)+Te,ue="";else{ue=+ue;var Se=ue<0||1/ue<0;if(ue=isNaN(ue)?f:Q(Math.abs(ue),B),V&&(ue=Ixt(ue)),Se&&+ue==0&&C!=="+"&&(Se=!1),be=(Se?C==="("?C:s:C==="-"||C==="("?"":C)+be,Te=(G==="s"?nse[8+T1e/3]:"")+Te+(Se&&C==="("?")":""),se){for(we=-1,Oe=ue.length;++weAe||Ae>57){Te=(Ae===46?i+ue.slice(we+1):ue.slice(we))+Te,ue=ue.slice(0,we);break}}}D&&!L&&(ue=e(ue,1/0));var ge=be.length+ue.length+Te.length,je=ge>1)+be+ue+Te+je.slice(ge);break;default:ue=je+be+ue+Te;break}return a(ue)}return ie.toString=function(){return _+""},ie}function x(_,T){var E=m((_=Pk(_),_.type="f",_)),C=Math.max(-8,Math.min(8,Math.floor(N1(T)/3)))*3,N=Math.pow(10,-C),L=nse[8+C/3];return function(M){return E(N*M)+L}}return{format:m,formatPrefix:x}}var jN,gH,E1e;Nxt({thousands:",",grouping:[3],currency:["$",""]});function Nxt(t){return jN=Pxt(t),gH=jN.format,E1e=jN.formatPrefix,jN}function Rxt(t){return Math.max(0,-N1(Math.abs(t)))}function Lxt(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(N1(e)/3)))*3-N1(Math.abs(t)))}function Dxt(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,N1(e)-N1(t))+1}function A1e(t,e,r,n){var i=FV(t,e,r),a;switch(n=Pk(n??",f"),n.type){case"s":{var c=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=Lxt(i,c))&&(n.precision=a),E1e(n,c)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=Dxt(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=Rxt(i))&&(n.precision=a-(n.type==="%")*2);break}}return gH(n)}function ux(t){var e=t.domain;return t.ticks=function(r){var n=e();return MV(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return A1e(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,c=n[i],s=n[a],f,m,x=10;for(s0;){if(m=OV(c,s,r),m===f)return n[i]=c,n[a]=s,e(n);if(m>0)c=Math.floor(c/m)*m,s=Math.ceil(s/m)*m;else if(m<0)c=Math.ceil(c*m)/m,s=Math.floor(s*m)/m;else break;f=m}return t},t}function DD(){var t=pH();return t.copy=function(){return nI(t,DD())},sh.apply(t,arguments),ux(t)}function k1e(t){var e;function r(n){return n==null||isNaN(n=+n)?e:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(t=Array.from(n,RD),r):t.slice()},r.unknown=function(n){return arguments.length?(e=n,r):e},r.copy=function(){return k1e(t).unknown(e)},t=arguments.length?Array.from(t,RD):[0,1],ux(r)}function C1e(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],c;return aMath.pow(t,e)}function zxt(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function ase(t){return(e,r)=>-t(-e,r)}function yH(t){const e=t(ise,sse),r=e.domain;let n=10,i,a;function c(){return i=zxt(n),a=Bxt(n),r()[0]<0?(i=ase(i),a=ase(a),t(Mxt,Oxt)):t(ise,sse),e}return e.base=function(s){return arguments.length?(n=+s,c()):n},e.domain=function(s){return arguments.length?(r(s),c()):r()},e.ticks=s=>{const f=r();let m=f[0],x=f[f.length-1];const _=x0){for(;T<=E;++T)for(C=1;Cx)break;M.push(N)}}else for(;T<=E;++T)for(C=n-1;C>=1;--C)if(N=T>0?C/a(-T):C*a(T),!(Nx)break;M.push(N)}M.length*2{if(s==null&&(s=10),f==null&&(f=n===10?"s":","),typeof f!="function"&&(!(n%1)&&(f=Pk(f)).precision==null&&(f.trim=!0),f=gH(f)),s===1/0)return f;const m=Math.max(1,n*s/e.ticks().length);return x=>{let _=x/a(Math.round(i(x)));return _*nr(C1e(r(),{floor:s=>a(Math.floor(i(s))),ceil:s=>a(Math.ceil(i(s)))})),e}function I1e(){const t=yH(IF()).domain([1,10]);return t.copy=()=>nI(t,I1e()).base(t.base()),sh.apply(t,arguments),t}function ose(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function lse(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function xH(t){var e=1,r=t(ose(e),lse(e));return r.constant=function(n){return arguments.length?t(ose(e=+n),lse(e)):e},ux(r)}function j1e(){var t=xH(IF());return t.copy=function(){return nI(t,j1e()).constant(t.constant())},sh.apply(t,arguments)}function cse(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function $xt(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Uxt(t){return t<0?-t*t:t*t}function _H(t){var e=t(Wc,Wc),r=1;function n(){return r===1?t(Wc,Wc):r===.5?t($xt,Uxt):t(cse(r),cse(1/r))}return e.exponent=function(i){return arguments.length?(r=+i,n()):r},ux(e)}function vH(){var t=_H(IF());return t.copy=function(){return nI(t,vH()).exponent(t.exponent())},sh.apply(t,arguments),t}function Vxt(){return vH.apply(null,arguments).exponent(.5)}function use(t){return Math.sign(t)*t*t}function qxt(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function P1e(){var t=pH(),e=[0,1],r=!1,n;function i(a){var c=qxt(t(a));return isNaN(c)?n:r?Math.round(c):c}return i.invert=function(a){return t.invert(use(a))},i.domain=function(a){return arguments.length?(t.domain(a),i):t.domain()},i.range=function(a){return arguments.length?(t.range((e=Array.from(a,RD)).map(use)),i):e.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(t.clamp(a),i):t.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return P1e(t.domain(),e).round(r).clamp(t.clamp()).unknown(n)},sh.apply(i,arguments),ux(i)}function N1e(){var t=[],e=[],r=[],n;function i(){var c=0,s=Math.max(1,e.length);for(r=new Array(s-1);++c0?r[s-1]:t[0],s=r?[n[r-1],e]:[n[m-1],n[m]]},c.unknown=function(f){return arguments.length&&(a=f),c},c.thresholds=function(){return n.slice()},c.copy=function(){return R1e().domain([t,e]).range(i).unknown(a)},sh.apply(ux(c),arguments)}function L1e(){var t=[.5],e=[0,1],r,n=1;function i(a){return a!=null&&a<=a?e[tI(t,a,0,n)]:r}return i.domain=function(a){return arguments.length?(t=Array.from(a),n=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),n=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var c=e.indexOf(a);return[t[c-1],t[c]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return L1e().domain(t).range(e).unknown(r)},sh.apply(i,arguments)}const Sz=new Date,Tz=new Date;function dl(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{const c=i(a),s=i.ceil(a);return a-c(e(a=new Date(+a),c==null?1:Math.floor(c)),a),i.range=(a,c,s)=>{const f=[];if(a=i.ceil(a),s=s==null?1:Math.floor(s),!(a0))return f;let m;do f.push(m=new Date(+a)),e(a,s),t(a);while(mdl(c=>{if(c>=c)for(;t(c),!a(c);)c.setTime(c-1)},(c,s)=>{if(c>=c)if(s<0)for(;++s<=0;)for(;e(c,-1),!a(c););else for(;--s>=0;)for(;e(c,1),!a(c););}),r&&(i.count=(a,c)=>(Sz.setTime(+a),Tz.setTime(+c),t(Sz),t(Tz),Math.floor(r(Sz,Tz))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?c=>n(c)%a===0:c=>i.count(0,c)%a===0):i)),i}const MD=dl(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);MD.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?dl(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):MD);MD.range;const hm=1e3,$d=hm*60,fm=$d*60,Rm=fm*24,bH=Rm*7,dse=Rm*30,Ez=Rm*365,K0=dl(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*hm)},(t,e)=>(e-t)/hm,t=>t.getUTCSeconds());K0.range;const wH=dl(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*hm)},(t,e)=>{t.setTime(+t+e*$d)},(t,e)=>(e-t)/$d,t=>t.getMinutes());wH.range;const SH=dl(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*$d)},(t,e)=>(e-t)/$d,t=>t.getUTCMinutes());SH.range;const TH=dl(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*hm-t.getMinutes()*$d)},(t,e)=>{t.setTime(+t+e*fm)},(t,e)=>(e-t)/fm,t=>t.getHours());TH.range;const EH=dl(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*fm)},(t,e)=>(e-t)/fm,t=>t.getUTCHours());EH.range;const iI=dl(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*$d)/Rm,t=>t.getDate()-1);iI.range;const jF=dl(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Rm,t=>t.getUTCDate()-1);jF.range;const D1e=dl(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Rm,t=>Math.floor(t/Rm));D1e.range;function G_(t){return dl(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*$d)/bH)}const PF=G_(0),OD=G_(1),Gxt=G_(2),Hxt=G_(3),R1=G_(4),Wxt=G_(5),Kxt=G_(6);PF.range;OD.range;Gxt.range;Hxt.range;R1.range;Wxt.range;Kxt.range;function H_(t){return dl(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/bH)}const NF=H_(0),FD=H_(1),Yxt=H_(2),Zxt=H_(3),L1=H_(4),Xxt=H_(5),Qxt=H_(6);NF.range;FD.range;Yxt.range;Zxt.range;L1.range;Xxt.range;Qxt.range;const AH=dl(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());AH.range;const kH=dl(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());kH.range;const Lm=dl(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Lm.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dl(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});Lm.range;const Dm=dl(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Dm.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:dl(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});Dm.range;function M1e(t,e,r,n,i,a){const c=[[K0,1,hm],[K0,5,5*hm],[K0,15,15*hm],[K0,30,30*hm],[a,1,$d],[a,5,5*$d],[a,15,15*$d],[a,30,30*$d],[i,1,fm],[i,3,3*fm],[i,6,6*fm],[i,12,12*fm],[n,1,Rm],[n,2,2*Rm],[r,1,bH],[e,1,dse],[e,3,3*dse],[t,1,Ez]];function s(m,x,_){const T=xL).right(c,T);if(E===c.length)return t.every(FV(m/Ez,x/Ez,_));if(E===0)return MD.every(Math.max(FV(m,x,_),1));const[C,N]=c[T/c[E-1][2]53)return null;"w"in vt||(vt.w=1),"Z"in vt?(_r=kz(T2(vt.y,0,1)),tn=_r.getUTCDay(),_r=tn>4||tn===0?FD.ceil(_r):FD(_r),_r=jF.offset(_r,(vt.V-1)*7),vt.y=_r.getUTCFullYear(),vt.m=_r.getUTCMonth(),vt.d=_r.getUTCDate()+(vt.w+6)%7):(_r=Az(T2(vt.y,0,1)),tn=_r.getDay(),_r=tn>4||tn===0?OD.ceil(_r):OD(_r),_r=iI.offset(_r,(vt.V-1)*7),vt.y=_r.getFullYear(),vt.m=_r.getMonth(),vt.d=_r.getDate()+(vt.w+6)%7)}else("W"in vt||"U"in vt)&&("w"in vt||(vt.w="u"in vt?vt.u%7:"W"in vt?1:0),tn="Z"in vt?kz(T2(vt.y,0,1)).getUTCDay():Az(T2(vt.y,0,1)).getDay(),vt.m=0,vt.d="W"in vt?(vt.w+6)%7+vt.W*7-(tn+5)%7:vt.w+vt.U*7-(tn+6)%7);return"Z"in vt?(vt.H+=vt.Z/100|0,vt.M+=vt.Z%100,kz(vt)):Az(vt)}}function Q(_t,Rt,er,vt){for(var xr=0,_r=Rt.length,tn=er.length,or,Sr;xr<_r;){if(vt>=tn)return-1;if(or=Rt.charCodeAt(xr++),or===37){if(or=Rt.charAt(xr++),Sr=G[or in hse?Rt.charAt(xr++):or],!Sr||(vt=Sr(_t,er,vt))<0)return-1}else if(or!=er.charCodeAt(vt++))return-1}return vt}function se(_t,Rt,er){var vt=m.exec(Rt.slice(er));return vt?(_t.p=x.get(vt[0].toLowerCase()),er+vt[0].length):-1}function ie(_t,Rt,er){var vt=E.exec(Rt.slice(er));return vt?(_t.w=C.get(vt[0].toLowerCase()),er+vt[0].length):-1}function ue(_t,Rt,er){var vt=_.exec(Rt.slice(er));return vt?(_t.w=T.get(vt[0].toLowerCase()),er+vt[0].length):-1}function be(_t,Rt,er){var vt=M.exec(Rt.slice(er));return vt?(_t.m=D.get(vt[0].toLowerCase()),er+vt[0].length):-1}function Te(_t,Rt,er){var vt=N.exec(Rt.slice(er));return vt?(_t.m=L.get(vt[0].toLowerCase()),er+vt[0].length):-1}function we(_t,Rt,er){return Q(_t,e,Rt,er)}function Oe(_t,Rt,er){return Q(_t,r,Rt,er)}function Ae(_t,Rt,er){return Q(_t,n,Rt,er)}function Se(_t){return c[_t.getDay()]}function ge(_t){return a[_t.getDay()]}function je(_t){return f[_t.getMonth()]}function _e(_t){return s[_t.getMonth()]}function xe(_t){return i[+(_t.getHours()>=12)]}function Pe(_t){return 1+~~(_t.getMonth()/3)}function Ze(_t){return c[_t.getUTCDay()]}function at(_t){return a[_t.getUTCDay()]}function lt(_t){return f[_t.getUTCMonth()]}function xt(_t){return s[_t.getUTCMonth()]}function St(_t){return i[+(_t.getUTCHours()>=12)]}function Xt(_t){return 1+~~(_t.getUTCMonth()/3)}return{format:function(_t){var Rt=W(_t+="",B);return Rt.toString=function(){return _t},Rt},parse:function(_t){var Rt=Z(_t+="",!1);return Rt.toString=function(){return _t},Rt},utcFormat:function(_t){var Rt=W(_t+="",V);return Rt.toString=function(){return _t},Rt},utcParse:function(_t){var Rt=Z(_t+="",!0);return Rt.toString=function(){return _t},Rt}}}var hse={"-":"",_:" ",0:"0"},jl=/^\s*\d+/,i0t=/^%/,s0t=/[\\^$*+?|[\]().{}]/g;function vs(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function o0t(t,e,r){var n=jl.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function l0t(t,e,r){var n=jl.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function c0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function u0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function d0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function fse(t,e,r){var n=jl.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function pse(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function h0t(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function f0t(t,e,r){var n=jl.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function p0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function mse(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function m0t(t,e,r){var n=jl.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function gse(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function g0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function y0t(t,e,r){var n=jl.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function x0t(t,e,r){var n=jl.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function _0t(t,e,r){var n=jl.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function v0t(t,e,r){var n=i0t.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function b0t(t,e,r){var n=jl.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function w0t(t,e,r){var n=jl.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function yse(t,e){return vs(t.getDate(),e,2)}function S0t(t,e){return vs(t.getHours(),e,2)}function T0t(t,e){return vs(t.getHours()%12||12,e,2)}function E0t(t,e){return vs(1+iI.count(Lm(t),t),e,3)}function O1e(t,e){return vs(t.getMilliseconds(),e,3)}function A0t(t,e){return O1e(t,e)+"000"}function k0t(t,e){return vs(t.getMonth()+1,e,2)}function C0t(t,e){return vs(t.getMinutes(),e,2)}function I0t(t,e){return vs(t.getSeconds(),e,2)}function j0t(t){var e=t.getDay();return e===0?7:e}function P0t(t,e){return vs(PF.count(Lm(t)-1,t),e,2)}function F1e(t){var e=t.getDay();return e>=4||e===0?R1(t):R1.ceil(t)}function N0t(t,e){return t=F1e(t),vs(R1.count(Lm(t),t)+(Lm(t).getDay()===4),e,2)}function R0t(t){return t.getDay()}function L0t(t,e){return vs(OD.count(Lm(t)-1,t),e,2)}function D0t(t,e){return vs(t.getFullYear()%100,e,2)}function M0t(t,e){return t=F1e(t),vs(t.getFullYear()%100,e,2)}function O0t(t,e){return vs(t.getFullYear()%1e4,e,4)}function F0t(t,e){var r=t.getDay();return t=r>=4||r===0?R1(t):R1.ceil(t),vs(t.getFullYear()%1e4,e,4)}function B0t(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+vs(e/60|0,"0",2)+vs(e%60,"0",2)}function xse(t,e){return vs(t.getUTCDate(),e,2)}function z0t(t,e){return vs(t.getUTCHours(),e,2)}function $0t(t,e){return vs(t.getUTCHours()%12||12,e,2)}function U0t(t,e){return vs(1+jF.count(Dm(t),t),e,3)}function B1e(t,e){return vs(t.getUTCMilliseconds(),e,3)}function V0t(t,e){return B1e(t,e)+"000"}function q0t(t,e){return vs(t.getUTCMonth()+1,e,2)}function G0t(t,e){return vs(t.getUTCMinutes(),e,2)}function H0t(t,e){return vs(t.getUTCSeconds(),e,2)}function W0t(t){var e=t.getUTCDay();return e===0?7:e}function K0t(t,e){return vs(NF.count(Dm(t)-1,t),e,2)}function z1e(t){var e=t.getUTCDay();return e>=4||e===0?L1(t):L1.ceil(t)}function Y0t(t,e){return t=z1e(t),vs(L1.count(Dm(t),t)+(Dm(t).getUTCDay()===4),e,2)}function Z0t(t){return t.getUTCDay()}function X0t(t,e){return vs(FD.count(Dm(t)-1,t),e,2)}function Q0t(t,e){return vs(t.getUTCFullYear()%100,e,2)}function J0t(t,e){return t=z1e(t),vs(t.getUTCFullYear()%100,e,2)}function e_t(t,e){return vs(t.getUTCFullYear()%1e4,e,4)}function t_t(t,e){var r=t.getUTCDay();return t=r>=4||r===0?L1(t):L1.ceil(t),vs(t.getUTCFullYear()%1e4,e,4)}function r_t(){return"+0000"}function _se(){return"%"}function vse(t){return+t}function bse(t){return Math.floor(+t/1e3)}var Bb,$1e,U1e;n_t({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function n_t(t){return Bb=n0t(t),$1e=Bb.format,Bb.parse,U1e=Bb.utcFormat,Bb.utcParse,Bb}function i_t(t){return new Date(t)}function s_t(t){return t instanceof Date?+t:+new Date(+t)}function CH(t,e,r,n,i,a,c,s,f,m){var x=pH(),_=x.invert,T=x.domain,E=m(".%L"),C=m(":%S"),N=m("%I:%M"),L=m("%I %p"),M=m("%a %d"),D=m("%b %d"),B=m("%B"),V=m("%Y");function G(W){return(f(W)e(i/(t.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>Kyt(t,a/n))},r.copy=function(){return H1e(e).domain(t)},qm.apply(r,arguments)}function LF(){var t=0,e=.5,r=1,n=1,i,a,c,s,f,m=Wc,x,_=!1,T;function E(N){return isNaN(N=+N)?T:(N=.5+((N=+x(N))-a)*(n*Ne}var Z1e=h_t,f_t=DF,p_t=Z1e,m_t=DS;function g_t(t){return t&&t.length?f_t(t,m_t,p_t):void 0}var y_t=g_t;const MF=fs(y_t);function x_t(t,e){return tt.e^a.s<0?1:-1;for(n=a.d.length,i=t.d.length,e=0,r=nt.d[e]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};wn.decimalPlaces=wn.dp=function(){var t=this,e=t.d.length-1,r=(e-t.e)*Ea;if(e=t.d[e],e)for(;e%10==0;e/=10)r--;return r<0?0:r};wn.dividedBy=wn.div=function(t){return bm(this,new this.constructor(t))};wn.dividedToIntegerBy=wn.idiv=function(t){var e=this,r=e.constructor;return na(bm(e,new r(t),0,1),r.precision)};wn.equals=wn.eq=function(t){return!this.cmp(t)};wn.exponent=function(){return Vo(this)};wn.greaterThan=wn.gt=function(t){return this.cmp(t)>0};wn.greaterThanOrEqualTo=wn.gte=function(t){return this.cmp(t)>=0};wn.isInteger=wn.isint=function(){return this.e>this.d.length-2};wn.isNegative=wn.isneg=function(){return this.s<0};wn.isPositive=wn.ispos=function(){return this.s>0};wn.isZero=function(){return this.s===0};wn.lessThan=wn.lt=function(t){return this.cmp(t)<0};wn.lessThanOrEqualTo=wn.lte=function(t){return this.cmp(t)<1};wn.logarithm=wn.log=function(t){var e,r=this,n=r.constructor,i=n.precision,a=i+5;if(t===void 0)t=new n(10);else if(t=new n(t),t.s<1||t.eq(Zu))throw Error(Jd+"NaN");if(r.s<1)throw Error(Jd+(r.s?"NaN":"-Infinity"));return r.eq(Zu)?new n(0):(Oa=!1,e=bm(Nk(r,a),Nk(t,a),a),Oa=!0,na(e,i))};wn.minus=wn.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?tSe(e,t):J1e(e,(t.s=-t.s,t))};wn.modulo=wn.mod=function(t){var e,r=this,n=r.constructor,i=n.precision;if(t=new n(t),!t.s)throw Error(Jd+"NaN");return r.s?(Oa=!1,e=bm(r,t,0,1).times(t),Oa=!0,r.minus(e)):na(new n(r),i)};wn.naturalExponential=wn.exp=function(){return eSe(this)};wn.naturalLogarithm=wn.ln=function(){return Nk(this)};wn.negated=wn.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};wn.plus=wn.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?J1e(e,t):tSe(e,(t.s=-t.s,t))};wn.precision=wn.sd=function(t){var e,r,n,i=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(d_+t);if(e=Vo(i)+1,n=i.d.length-1,r=n*Ea+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return t&&e>r?e:r};wn.squareRoot=wn.sqrt=function(){var t,e,r,n,i,a,c,s=this,f=s.constructor;if(s.s<1){if(!s.s)return new f(0);throw Error(Jd+"NaN")}for(t=Vo(s),Oa=!1,i=Math.sqrt(+s),i==0||i==1/0?(e=Hf(s.d),(e.length+t)%2==0&&(e+="0"),i=Math.sqrt(e),t=FS((t+1)/2)-(t<0||t%2),i==1/0?e="5e"+t:(e=i.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),n=new f(e)):n=new f(i.toString()),r=f.precision,i=c=r+3;;)if(a=n,n=a.plus(bm(s,a,c+2)).times(.5),Hf(a.d).slice(0,c)===(e=Hf(n.d)).slice(0,c)){if(e=e.slice(c-3,c+1),i==c&&e=="4999"){if(na(a,r+1,0),a.times(a).eq(s)){n=a;break}}else if(e!="9999")break;c+=4}return Oa=!0,na(n,r)};wn.times=wn.mul=function(t){var e,r,n,i,a,c,s,f,m,x=this,_=x.constructor,T=x.d,E=(t=new _(t)).d;if(!x.s||!t.s)return new _(0);for(t.s*=x.s,r=x.e+t.e,f=T.length,m=E.length,f=0;){for(e=0,i=f+n;i>n;)s=a[i]+E[n]*T[i-n-1]+e,a[i--]=s%bl|0,e=s/bl|0;a[i]=(a[i]+e)%bl|0}for(;!a[--c];)a.pop();return e?++r:a.shift(),t.d=a,t.e=r,Oa?na(t,_.precision):t};wn.toDecimalPlaces=wn.todp=function(t,e){var r=this,n=r.constructor;return r=new n(r),t===void 0?r:(op(t,0,OS),e===void 0?e=n.rounding:op(e,0,8),na(r,t+Vo(r)+1,e))};wn.toExponential=function(t,e){var r,n=this,i=n.constructor;return t===void 0?r=P_(n,!0):(op(t,0,OS),e===void 0?e=i.rounding:op(e,0,8),n=na(new i(n),t+1,e),r=P_(n,!0,t+1)),r};wn.toFixed=function(t,e){var r,n,i=this,a=i.constructor;return t===void 0?P_(i):(op(t,0,OS),e===void 0?e=a.rounding:op(e,0,8),n=na(new a(i),t+Vo(i)+1,e),r=P_(n.abs(),!1,t+Vo(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};wn.toInteger=wn.toint=function(){var t=this,e=t.constructor;return na(new e(t),Vo(t)+1,e.rounding)};wn.toNumber=function(){return+this};wn.toPower=wn.pow=function(t){var e,r,n,i,a,c,s=this,f=s.constructor,m=12,x=+(t=new f(t));if(!t.s)return new f(Zu);if(s=new f(s),!s.s){if(t.s<1)throw Error(Jd+"Infinity");return s}if(s.eq(Zu))return s;if(n=f.precision,t.eq(Zu))return na(s,n);if(e=t.e,r=t.d.length-1,c=e>=r,a=s.s,c){if((r=x<0?-x:x)<=Q1e){for(i=new f(Zu),e=Math.ceil(n/Ea+4),Oa=!1;r%2&&(i=i.times(s),Tse(i.d,e)),r=FS(r/2),r!==0;)s=s.times(s),Tse(s.d,e);return Oa=!0,t.s<0?new f(Zu).div(i):na(i,n)}}else if(a<0)throw Error(Jd+"NaN");return a=a<0&&t.d[Math.max(e,r)]&1?-1:1,s.s=1,Oa=!1,i=t.times(Nk(s,n+m)),Oa=!0,i=eSe(i),i.s=a,i};wn.toPrecision=function(t,e){var r,n,i=this,a=i.constructor;return t===void 0?(r=Vo(i),n=P_(i,r<=a.toExpNeg||r>=a.toExpPos)):(op(t,1,OS),e===void 0?e=a.rounding:op(e,0,8),i=na(new a(i),t,e),r=Vo(i),n=P_(i,t<=r||r<=a.toExpNeg,t)),n};wn.toSignificantDigits=wn.tosd=function(t,e){var r=this,n=r.constructor;return t===void 0?(t=n.precision,e=n.rounding):(op(t,1,OS),e===void 0?e=n.rounding:op(e,0,8)),na(new n(r),t,e)};wn.toString=wn.valueOf=wn.val=wn.toJSON=wn[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Vo(t),r=t.constructor;return P_(t,e<=r.toExpNeg||e>=r.toExpPos)};function J1e(t,e){var r,n,i,a,c,s,f,m,x=t.constructor,_=x.precision;if(!t.s||!e.s)return e.s||(e=new x(t)),Oa?na(e,_):e;if(f=t.d,m=e.d,c=t.e,i=e.e,f=f.slice(),a=c-i,a){for(a<0?(n=f,a=-a,s=m.length):(n=m,i=c,s=f.length),c=Math.ceil(_/Ea),s=c>s?c+1:s+1,a>s&&(a=s,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(s=f.length,a=m.length,s-a<0&&(a=s,n=m,m=f,f=n),r=0;a;)r=(f[--a]=f[a]+m[a]+r)/bl|0,f[a]%=bl;for(r&&(f.unshift(r),++i),s=f.length;f[--s]==0;)f.pop();return e.d=f,e.e=i,Oa?na(e,_):e}function op(t,e,r){if(t!==~~t||tr)throw Error(d_+t)}function Hf(t){var e,r,n,i=t.length-1,a="",c=t[0];if(i>0){for(a+=c,e=1;ec?1:-1;else for(s=f=0;si[s]?1:-1;break}return f}function r(n,i,a){for(var c=0;a--;)n[a]-=c,c=n[a]1;)n.shift()}return function(n,i,a,c){var s,f,m,x,_,T,E,C,N,L,M,D,B,V,G,W,Z,Q,se=n.constructor,ie=n.s==i.s?1:-1,ue=n.d,be=i.d;if(!n.s)return new se(n);if(!i.s)throw Error(Jd+"Division by zero");for(f=n.e-i.e,Z=be.length,G=ue.length,E=new se(ie),C=E.d=[],m=0;be[m]==(ue[m]||0);)++m;if(be[m]>(ue[m]||0)&&--f,a==null?D=a=se.precision:c?D=a+(Vo(n)-Vo(i))+1:D=a,D<0)return new se(0);if(D=D/Ea+2|0,m=0,Z==1)for(x=0,be=be[0],D++;(m1&&(be=t(be,x),ue=t(ue,x),Z=be.length,G=ue.length),V=Z,N=ue.slice(0,Z),L=N.length;L=bl/2&&++W;do x=0,s=e(be,N,Z,L),s<0?(M=N[0],Z!=L&&(M=M*bl+(N[1]||0)),x=M/W|0,x>1?(x>=bl&&(x=bl-1),_=t(be,x),T=_.length,L=N.length,s=e(_,N,T,L),s==1&&(x--,r(_,Z16)throw Error(PH+Vo(t));if(!t.s)return new x(Zu);for(e==null?(Oa=!1,s=_):s=e,c=new x(.03125);t.abs().gte(.1);)t=t.times(c),m+=5;for(n=Math.log(M0(2,m))/Math.LN10*2+5|0,s+=n,r=i=a=new x(Zu),x.precision=s;;){if(i=na(i.times(t),s),r=r.times(++f),c=a.plus(bm(i,r,s)),Hf(c.d).slice(0,s)===Hf(a.d).slice(0,s)){for(;m--;)a=na(a.times(a),s);return x.precision=_,e==null?(Oa=!0,na(a,_)):a}a=c}}function Vo(t){for(var e=t.e*Ea,r=t.d[0];r>=10;r/=10)e++;return e}function Cz(t,e,r){if(e>t.LN10.sd())throw Oa=!0,r&&(t.precision=r),Error(Jd+"LN10 precision limit exceeded");return na(new t(t.LN10),e)}function Zg(t){for(var e="";t--;)e+="0";return e}function Nk(t,e){var r,n,i,a,c,s,f,m,x,_=1,T=10,E=t,C=E.d,N=E.constructor,L=N.precision;if(E.s<1)throw Error(Jd+(E.s?"NaN":"-Infinity"));if(E.eq(Zu))return new N(0);if(e==null?(Oa=!1,m=L):m=e,E.eq(10))return e==null&&(Oa=!0),Cz(N,m);if(m+=T,N.precision=m,r=Hf(C),n=r.charAt(0),a=Vo(E),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)E=E.times(t),r=Hf(E.d),n=r.charAt(0),_++;a=Vo(E),n>1?(E=new N("0."+r),a++):E=new N(n+"."+r.slice(1))}else return f=Cz(N,m+2,L).times(a+""),E=Nk(new N(n+"."+r.slice(1)),m-T).plus(f),N.precision=L,e==null?(Oa=!0,na(E,L)):E;for(s=c=E=bm(E.minus(Zu),E.plus(Zu),m),x=na(E.times(E),m),i=3;;){if(c=na(c.times(x),m),f=s.plus(bm(c,new N(i),m)),Hf(f.d).slice(0,m)===Hf(s.d).slice(0,m))return s=s.times(2),a!==0&&(s=s.plus(Cz(N,m+2,L).times(a+""))),s=bm(s,new N(_),m),N.precision=L,e==null?(Oa=!0,na(s,L)):s;s=f,i+=2}}function Sse(t,e){var r,n,i;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),n=0;e.charCodeAt(n)===48;)++n;for(i=e.length;e.charCodeAt(i-1)===48;)--i;if(e=e.slice(n,i),e){if(i-=n,r=r-n-1,t.e=FS(r/Ea),t.d=[],n=(r+1)%Ea,r<0&&(n+=Ea),nBD||t.e<-BD))throw Error(PH+r)}else t.s=0,t.e=0,t.d=[0];return t}function na(t,e,r){var n,i,a,c,s,f,m,x,_=t.d;for(c=1,a=_[0];a>=10;a/=10)c++;if(n=e-c,n<0)n+=Ea,i=e,m=_[x=0];else{if(x=Math.ceil((n+1)/Ea),a=_.length,x>=a)return t;for(m=a=_[x],c=1;a>=10;a/=10)c++;n%=Ea,i=n-Ea+c}if(r!==void 0&&(a=M0(10,c-i-1),s=m/a%10|0,f=e<0||_[x+1]!==void 0||m%a,f=r<4?(s||f)&&(r==0||r==(t.s<0?3:2)):s>5||s==5&&(r==4||f||r==6&&(n>0?i>0?m/M0(10,c-i):0:_[x-1])%10&1||r==(t.s<0?8:7))),e<1||!_[0])return f?(a=Vo(t),_.length=1,e=e-a-1,_[0]=M0(10,(Ea-e%Ea)%Ea),t.e=FS(-e/Ea)||0):(_.length=1,_[0]=t.e=t.s=0),t;if(n==0?(_.length=x,a=1,x--):(_.length=x+1,a=M0(10,Ea-n),_[x]=i>0?(m/M0(10,c-i)%M0(10,i)|0)*a:0),f)for(;;)if(x==0){(_[0]+=a)==bl&&(_[0]=1,++t.e);break}else{if(_[x]+=a,_[x]!=bl)break;_[x--]=0,a=1}for(n=_.length;_[--n]===0;)_.pop();if(Oa&&(t.e>BD||t.e<-BD))throw Error(PH+Vo(t));return t}function tSe(t,e){var r,n,i,a,c,s,f,m,x,_,T=t.constructor,E=T.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new T(t),Oa?na(e,E):e;if(f=t.d,_=e.d,n=e.e,m=t.e,f=f.slice(),c=m-n,c){for(x=c<0,x?(r=f,c=-c,s=_.length):(r=_,n=m,s=f.length),i=Math.max(Math.ceil(E/Ea),s)+2,c>i&&(c=i,r.length=1),r.reverse(),i=c;i--;)r.push(0);r.reverse()}else{for(i=f.length,s=_.length,x=i0;--i)f[s++]=0;for(i=_.length;i>c;){if(f[--i]<_[i]){for(a=i;a&&f[--a]===0;)f[a]=bl-1;--f[a],f[i]+=bl}f[i]-=_[i]}for(;f[--s]===0;)f.pop();for(;f[0]===0;f.shift())--n;return f[0]?(e.d=f,e.e=n,Oa?na(e,E):e):new T(0)}function P_(t,e,r){var n,i=Vo(t),a=Hf(t.d),c=a.length;return e?(r&&(n=r-c)>0?a=a.charAt(0)+"."+a.slice(1)+Zg(n):c>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Zg(-i-1)+a,r&&(n=r-c)>0&&(a+=Zg(n))):i>=c?(a+=Zg(i+1-c),r&&(n=r-i-1)>0&&(a=a+"."+Zg(n))):((n=i+1)0&&(i+1===c&&(a+="."),a+=Zg(n))),t.s<0?"-"+a:a}function Tse(t,e){if(t.length>e)return t.length=e,!0}function rSe(t){var e,r,n;function i(a){var c=this;if(!(c instanceof i))return new i(a);if(c.constructor=i,a instanceof i){c.s=a.s,c.e=a.e,c.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(d_+a);if(a>0)c.s=1;else if(a<0)a=-a,c.s=-1;else{c.s=0,c.e=0,c.d=[0];return}if(a===~~a&&a<1e7){c.e=0,c.d=[a];return}return Sse(c,a.toString())}else if(typeof a!="string")throw Error(d_+a);if(a.charCodeAt(0)===45?(a=a.slice(1),c.s=-1):c.s=1,B_t.test(a))Sse(c,a);else throw Error(d_+a)}if(i.prototype=wn,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=rSe,i.config=i.set=z_t,t===void 0&&(t={}),t)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=i[e+1]&&n<=i[e+2])this[r]=n;else throw Error(d_+r+": "+n);if((n=t[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(d_+r+": "+n);return this}var NH=rSe(F_t);Zu=new NH(1);const Ws=NH;function $_t(t){return G_t(t)||q_t(t)||V_t(t)||U_t()}function U_t(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V_t(t,e){if(t){if(typeof t=="string")return VV(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return VV(t,e)}}function q_t(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function G_t(t){if(Array.isArray(t))return VV(t)}function VV(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=e?r.apply(void 0,i):t(e-c,Ese(function(){for(var s=arguments.length,f=new Array(s),m=0;mt.length)&&(e=t.length);for(var r=0,n=new Array(e);r"u"||!(Symbol.iterator in Object(t)))){var r=[],n=!0,i=!1,a=void 0;try{for(var c=t[Symbol.iterator](),s;!(n=(s=c.next()).done)&&(r.push(s.value),!(e&&r.length===e));n=!0);}catch(f){i=!0,a=f}finally{try{!n&&c.return!=null&&c.return()}finally{if(i)throw a}}return r}}function avt(t){if(Array.isArray(t))return t}function oSe(t){var e=Rk(t,2),r=e[0],n=e[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function lSe(t,e,r){if(t.lte(0))return new Ws(0);var n=zF.getDigitCount(t.toNumber()),i=new Ws(10).pow(n),a=t.div(i),c=n!==1?.05:.1,s=new Ws(Math.ceil(a.div(c).toNumber())).add(r).mul(c),f=s.mul(i);return e?f:new Ws(Math.ceil(f))}function ovt(t,e,r){var n=1,i=new Ws(t);if(!i.isint()&&r){var a=Math.abs(t);a<1?(n=new Ws(10).pow(zF.getDigitCount(t)-1),i=new Ws(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new Ws(Math.floor(t)))}else t===0?i=new Ws(Math.floor((e-1)/2)):r||(i=new Ws(Math.floor(t)));var c=Math.floor((e-1)/2),s=Y_t(K_t(function(f){return i.add(new Ws(f-c).mul(n)).toNumber()}),qV);return s(0,e)}function cSe(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(r-1)))return{step:new Ws(0),tickMin:new Ws(0),tickMax:new Ws(0)};var a=lSe(new Ws(e).sub(t).div(r-1),n,i),c;t<=0&&e>=0?c=new Ws(0):(c=new Ws(t).add(e).div(2),c=c.sub(new Ws(c).mod(a)));var s=Math.ceil(c.sub(t).div(a).toNumber()),f=Math.ceil(new Ws(e).sub(c).div(a).toNumber()),m=s+f+1;return m>r?cSe(t,e,r,n,i+1):(m0?f+(r-m):f,s=e>0?s:s+(r-m)),{step:a,tickMin:c.sub(new Ws(s).mul(a)),tickMax:c.add(new Ws(f).mul(a))})}function lvt(t){var e=Rk(t,2),r=e[0],n=e[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,c=Math.max(i,2),s=oSe([r,n]),f=Rk(s,2),m=f[0],x=f[1];if(m===-1/0||x===1/0){var _=x===1/0?[m].concat(HV(qV(0,i-1).map(function(){return 1/0}))):[].concat(HV(qV(0,i-1).map(function(){return-1/0})),[x]);return r>n?GV(_):_}if(m===x)return ovt(m,i,a);var T=cSe(m,x,c,a),E=T.step,C=T.tickMin,N=T.tickMax,L=zF.rangeStep(C,N.add(new Ws(.1).mul(E)),E);return r>n?GV(L):L}function cvt(t,e){var r=Rk(t,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,c=oSe([n,i]),s=Rk(c,2),f=s[0],m=s[1];if(f===-1/0||m===1/0)return[n,i];if(f===m)return[f];var x=Math.max(e,2),_=lSe(new Ws(m).sub(f).div(x-1),a,0),T=[].concat(HV(zF.rangeStep(new Ws(f),new Ws(m).sub(new Ws(.99).mul(_)),_)),[m]);return n>i?GV(T):T}var uvt=sSe(lvt),dvt=sSe(cvt),hvt="Invariant failed";function N_(t,e){throw new Error(hvt)}var fvt=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function D1(t){"@babel/helpers - typeof";return D1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D1(t)}function zD(){return zD=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function vvt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function bvt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function wvt(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,c=-1,s=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(s<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var f=a.range,m=0;m0?i[m-1].coordinate:i[s-1].coordinate,_=i[m].coordinate,T=m>=s-1?i[0].coordinate:i[m+1].coordinate,E=void 0;if(Gc(_-x)!==Gc(T-_)){var C=[];if(Gc(T-_)===Gc(f[1]-f[0])){E=T;var N=_+f[1]-f[0];C[0]=Math.min(N,(N+x)/2),C[1]=Math.max(N,(N+x)/2)}else{E=x;var L=T+f[1]-f[0];C[0]=Math.min(_,(L+_)/2),C[1]=Math.max(_,(L+_)/2)}var M=[Math.min(_,(E+_)/2),Math.max(_,(E+_)/2)];if(e>M[0]&&e<=M[1]||e>=C[0]&&e<=C[1]){c=i[m].index;break}}else{var D=Math.min(x,T),B=Math.max(x,T);if(e>(D+_)/2&&e<=(B+_)/2){c=i[m].index;break}}}else for(var V=0;V0&&V(n[V].coordinate+n[V-1].coordinate)/2&&e<=(n[V].coordinate+n[V+1].coordinate)/2||V===s-1&&e>(n[V].coordinate+n[V-1].coordinate)/2){c=n[V].index;break}return c},RH=function(e){var r,n=e,i=n.type.displayName,a=(r=e.type)!==null&&r!==void 0&&r.defaultProps?uo(uo({},e.type.defaultProps),e.props):e.props,c=a.stroke,s=a.fill,f;switch(i){case"Line":f=c;break;case"Area":case"Radar":f=c&&c!=="none"?c:s;break;default:f=s;break}return f},Bvt=function(e){var r=e.barSize,n=e.totalSize,i=e.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var c={},s=Object.keys(a),f=0,m=s.length;f=0});if(M&&M.length){var D=M[0].type.defaultProps,B=D!==void 0?uo(uo({},D),M[0].props):M[0].props,V=B.barSize,G=B[L];c[G]||(c[G]=[]);var W=Oi(V)?r:V;c[G].push({item:M[0],stackList:M.slice(1),barSize:Oi(W)?void 0:Hc(W,n,0)})}}return c},zvt=function(e){var r=e.barGap,n=e.barCategoryGap,i=e.bandSize,a=e.sizeList,c=a===void 0?[]:a,s=e.maxBarSize,f=c.length;if(f<1)return null;var m=Hc(r,i,0,!0),x,_=[];if(c[0].barSize===+c[0].barSize){var T=!1,E=i/f,C=c.reduce(function(V,G){return V+G.barSize||0},0);C+=(f-1)*m,C>=i&&(C-=(f-1)*m,m=0),C>=i&&E>0&&(T=!0,E*=.9,C=f*E);var N=(i-C)/2>>0,L={offset:N-m,size:0};x=c.reduce(function(V,G){var W={item:G.item,position:{offset:L.offset+L.size+m,size:T?E:G.barSize}},Z=[].concat(Cse(V),[W]);return L=Z[Z.length-1].position,G.stackList&&G.stackList.length&&G.stackList.forEach(function(Q){Z.push({item:Q,position:L})}),Z},_)}else{var M=Hc(n,i,0,!0);i-2*M-(f-1)*m<=0&&(m=0);var D=(i-2*M-(f-1)*m)/f;D>1&&(D>>=0);var B=s===+s?Math.min(D,s):D;x=c.reduce(function(V,G,W){var Z=[].concat(Cse(V),[{item:G.item,position:{offset:M+(D+m)*W+(D-B)/2,size:B}}]);return G.stackList&&G.stackList.length&&G.stackList.forEach(function(Q){Z.push({item:Q,position:Z[Z.length-1].position})}),Z},_)}return x},$vt=function(e,r,n,i){var a=n.children,c=n.width,s=n.margin,f=c-(s.left||0)-(s.right||0),m=fSe({children:a,legendWidth:f});if(m){var x=i||{},_=x.width,T=x.height,E=m.align,C=m.verticalAlign,N=m.layout;if((N==="vertical"||N==="horizontal"&&C==="middle")&&E!=="center"&&Kr(e[E]))return uo(uo({},e),{},Ow({},E,e[E]+(_||0)));if((N==="horizontal"||N==="vertical"&&E==="center")&&C!=="middle"&&Kr(e[C]))return uo(uo({},e),{},Ow({},C,e[C]+(T||0)))}return e},Uvt=function(e,r,n){return Oi(r)?!0:e==="horizontal"?r==="yAxis":e==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},pSe=function(e,r,n,i,a){var c=r.props.children,s=Hd(c,$F).filter(function(m){return Uvt(i,a,m.props.direction)});if(s&&s.length){var f=s.map(function(m){return m.props.dataKey});return e.reduce(function(m,x){var _=Gl(x,n);if(Oi(_))return m;var T=Array.isArray(_)?[OF(_),MF(_)]:[_,_],E=f.reduce(function(C,N){var L=Gl(x,N,0),M=T[0]-Math.abs(Array.isArray(L)?L[0]:L),D=T[1]+Math.abs(Array.isArray(L)?L[1]:L);return[Math.min(M,C[0]),Math.max(D,C[1])]},[1/0,-1/0]);return[Math.min(E[0],m[0]),Math.max(E[1],m[1])]},[1/0,-1/0])}return null},Vvt=function(e,r,n,i,a){var c=r.map(function(s){return pSe(e,s,n,a,i)}).filter(function(s){return!Oi(s)});return c&&c.length?c.reduce(function(s,f){return[Math.min(s[0],f[0]),Math.max(s[1],f[1])]},[1/0,-1/0]):null},mSe=function(e,r,n,i,a){var c=r.map(function(f){var m=f.props.dataKey;return n==="number"&&m&&pSe(e,f,m,i)||bA(e,m,n,a)});if(n==="number")return c.reduce(function(f,m){return[Math.min(f[0],m[0]),Math.max(f[1],m[1])]},[1/0,-1/0]);var s={};return c.reduce(function(f,m){for(var x=0,_=m.length;x<_;x++)s[m[x]]||(s[m[x]]=!0,f.push(m[x]));return f},[])},gSe=function(e,r){return e==="horizontal"&&r==="xAxis"||e==="vertical"&&r==="yAxis"||e==="centric"&&r==="angleAxis"||e==="radial"&&r==="radiusAxis"},ySe=function(e,r,n,i){if(i)return e.map(function(f){return f.coordinate});var a,c,s=e.map(function(f){return f.coordinate===r&&(a=!0),f.coordinate===n&&(c=!0),f.coordinate});return a||s.push(r),c||s.push(n),s},pm=function(e,r,n){if(!e)return null;var i=e.scale,a=e.duplicateDomain,c=e.type,s=e.range,f=e.realScaleType==="scaleBand"?i.bandwidth()/2:2,m=(r||n)&&c==="category"&&i.bandwidth?i.bandwidth()/f:0;if(m=e.axisType==="angleAxis"&&(s==null?void 0:s.length)>=2?Gc(s[0]-s[1])*2*m:m,r&&(e.ticks||e.niceTicks)){var x=(e.ticks||e.niceTicks).map(function(_){var T=a?a.indexOf(_):_;return{coordinate:i(T)+m,value:_,offset:m}});return x.filter(function(_){return!QC(_.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(_,T){return{coordinate:i(_)+m,value:_,index:T,offset:m}}):i.ticks&&!n?i.ticks(e.tickCount).map(function(_){return{coordinate:i(_)+m,value:_,offset:m}}):i.domain().map(function(_,T){return{coordinate:i(_)+m,value:a?a[_]:_,index:T,offset:m}})},Iz=new WeakMap,PN=function(e,r){if(typeof r!="function")return e;Iz.has(e)||Iz.set(e,new WeakMap);var n=Iz.get(e);if(n.has(r))return n.get(r);var i=function(){e.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},xSe=function(e,r,n){var i=e.scale,a=e.type,c=e.layout,s=e.axisType;if(i==="auto")return c==="radial"&&s==="radiusAxis"?{scale:kk(),realScaleType:"band"}:c==="radial"&&s==="angleAxis"?{scale:DD(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:vA(),realScaleType:"point"}:a==="category"?{scale:kk(),realScaleType:"band"}:{scale:DD(),realScaleType:"linear"};if(C_(i)){var f="scale".concat(bF(i));return{scale:(wse[f]||vA)(),realScaleType:wse[f]?f:"point"}}return fi(i)?{scale:i}:{scale:vA(),realScaleType:"point"}},jse=1e-4,_Se=function(e){var r=e.domain();if(!(!r||r.length<=2)){var n=r.length,i=e.range(),a=Math.min(i[0],i[1])-jse,c=Math.max(i[0],i[1])+jse,s=e(r[0]),f=e(r[n-1]);(sc||fc)&&e.domain([r[0],r[n-1]])}},qvt=function(e,r){if(!e)return null;for(var n=0,i=e.length;ni)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(e[s][n][0]=a,e[s][n][1]=a+f,a=e[s][n][1]):(e[s][n][0]=c,e[s][n][1]=c+f,c=e[s][n][1])}},Wvt=function(e){var r=e.length;if(!(r<=0))for(var n=0,i=e[0].length;n=0?(e[c][n][0]=a,e[c][n][1]=a+s,a=e[c][n][1]):(e[c][n][0]=0,e[c][n][1]=0)}},Kvt={sign:Hvt,expand:flt,none:k1,silhouette:plt,wiggle:mlt,positive:Wvt},Yvt=function(e,r,n){var i=r.map(function(s){return s.props.dataKey}),a=Kvt[n],c=hlt().keys(i).value(function(s,f){return+Gl(s,f,0)}).order(_V).offset(a);return c(e)},Zvt=function(e,r,n,i,a,c){if(!e)return null;var s=c?r.reverse():r,f={},m=s.reduce(function(_,T){var E,C=(E=T.type)!==null&&E!==void 0&&E.defaultProps?uo(uo({},T.type.defaultProps),T.props):T.props,N=C.stackId,L=C.hide;if(L)return _;var M=C[n],D=_[M]||{hasStack:!1,stackGroups:{}};if(ll(N)){var B=D.stackGroups[N]||{numericAxisId:n,cateAxisId:i,items:[]};B.items.push(T),D.hasStack=!0,D.stackGroups[N]=B}else D.stackGroups[JC("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[T]};return uo(uo({},_),{},Ow({},M,D))},f),x={};return Object.keys(m).reduce(function(_,T){var E=m[T];if(E.hasStack){var C={};E.stackGroups=Object.keys(E.stackGroups).reduce(function(N,L){var M=E.stackGroups[L];return uo(uo({},N),{},Ow({},L,{numericAxisId:n,cateAxisId:i,items:M.items,stackedData:Yvt(e,M.items,a)}))},C)}return uo(uo({},_),{},Ow({},T,E))},x)},vSe=function(e,r){var n=r.realScaleType,i=r.type,a=r.tickCount,c=r.originalDomain,s=r.allowDecimals,f=n||r.scale;if(f!=="auto"&&f!=="linear")return null;if(a&&i==="number"&&c&&(c[0]==="auto"||c[1]==="auto")){var m=e.domain();if(!m.length)return null;var x=uvt(m,a,s);return e.domain([OF(x),MF(x)]),{niceTicks:x}}if(a&&i==="number"){var _=e.domain(),T=dvt(_,a,s);return{niceTicks:T}}return null};function vVt(t){var e=t.axis,r=t.ticks,n=t.bandSize,i=t.entry,a=t.index,c=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!Oi(i[e.dataKey])){var s=pD(r,"value",i[e.dataKey]);if(s)return s.coordinate+n/2}return r[a]?r[a].coordinate+n/2:null}var f=Gl(i,Oi(c)?e.dataKey:c);return Oi(f)?null:e.scale(f)}var Pse=function(e){var r=e.axis,n=e.ticks,i=e.offset,a=e.bandSize,c=e.entry,s=e.index;if(r.type==="category")return n[s]?n[s].coordinate+i:null;var f=Gl(c,r.dataKey,r.domain[s]);return Oi(f)?null:r.scale(f)-a/2+i},Xvt=function(e){var r=e.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},Qvt=function(e,r){var n,i=(n=e.type)!==null&&n!==void 0&&n.defaultProps?uo(uo({},e.type.defaultProps),e.props):e.props,a=i.stackId;if(ll(a)){var c=r[a];if(c){var s=c.items.indexOf(e);return s>=0?c.stackedData[s]:null}}return null},Jvt=function(e){return e.reduce(function(r,n){return[OF(n.concat([r[0]]).filter(Kr)),MF(n.concat([r[1]]).filter(Kr))]},[1/0,-1/0])},bSe=function(e,r,n){return Object.keys(e).reduce(function(i,a){var c=e[a],s=c.stackedData,f=s.reduce(function(m,x){var _=Jvt(x.slice(r,n+1));return[Math.min(m[0],_[0]),Math.max(m[1],_[1])]},[1/0,-1/0]);return[Math.min(f[0],i[0]),Math.max(f[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},Nse=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Rse=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ZV=function(e,r,n){if(fi(e))return e(r,n);if(!Array.isArray(e))return r;var i=[];if(Kr(e[0]))i[0]=n?e[0]:Math.min(e[0],r[0]);else if(Nse.test(e[0])){var a=+Nse.exec(e[0])[1];i[0]=r[0]-a}else fi(e[0])?i[0]=e[0](r[0]):i[0]=r[0];if(Kr(e[1]))i[1]=n?e[1]:Math.max(e[1],r[1]);else if(Rse.test(e[1])){var c=+Rse.exec(e[1])[1];i[1]=r[1]+c}else fi(e[1])?i[1]=e[1](r[1]):i[1]=r[1];return i},UD=function(e,r,n){if(e&&e.scale&&e.scale.bandwidth){var i=e.scale.bandwidth();if(!n||i>0)return i}if(e&&r&&r.length>=2){for(var a=oH(r,function(_){return _.coordinate}),c=1/0,s=1,f=a.length;st.length)&&(e=t.length);for(var r=0,n=new Array(e);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},lbt=function(e,r,n,i,a){var c=e.width,s=e.height,f=e.startAngle,m=e.endAngle,x=Hc(e.cx,c,c/2),_=Hc(e.cy,s,s/2),T=TSe(c,s,n),E=Hc(e.innerRadius,T,0),C=Hc(e.outerRadius,T,T*.8),N=Object.keys(r);return N.reduce(function(L,M){var D=r[M],B=D.domain,V=D.reversed,G;if(Oi(D.range))i==="angleAxis"?G=[f,m]:i==="radiusAxis"&&(G=[E,C]),V&&(G=[G[1],G[0]]);else{G=D.range;var W=G,Z=rbt(W,2);f=Z[0],m=Z[1]}var Q=xSe(D,a),se=Q.realScaleType,ie=Q.scale;ie.domain(B).range(G),_Se(ie);var ue=vSe(ie,nm(nm({},D),{},{realScaleType:se})),be=nm(nm(nm({},D),ue),{},{range:G,radius:C,realScaleType:se,scale:ie,cx:x,cy:_,innerRadius:E,outerRadius:C,startAngle:f,endAngle:m});return nm(nm({},L),{},SSe({},M,be))},{})},cbt=function(e,r){var n=e.x,i=e.y,a=r.x,c=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-c,2))},ubt=function(e,r){var n=e.x,i=e.y,a=r.cx,c=r.cy,s=cbt({x:n,y:i},{x:a,y:c});if(s<=0)return{radius:s};var f=(n-a)/s,m=Math.acos(f);return i>c&&(m=2*Math.PI-m),{radius:s,angle:obt(m),angleInRadian:m}},dbt=function(e){var r=e.startAngle,n=e.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),c=Math.min(i,a);return{startAngle:r-c*360,endAngle:n-c*360}},hbt=function(e,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),c=Math.floor(i/360),s=Math.min(a,c);return e+s*360},Ose=function(e,r){var n=e.x,i=e.y,a=ubt({x:n,y:i},r),c=a.radius,s=a.angle,f=r.innerRadius,m=r.outerRadius;if(cm)return!1;if(c===0)return!0;var x=dbt(r),_=x.startAngle,T=x.endAngle,E=s,C;if(_<=T){for(;E>T;)E-=360;for(;E<_;)E+=360;C=E>=_&&E<=T}else{for(;E>_;)E-=360;for(;E=T&&E<=_}return C?nm(nm({},r),{},{radius:c,angle:hbt(E,r)}):null},ESe=function(e){return!P.isValidElement(e)&&!fi(e)&&typeof e!="boolean"?e.className:""};function Ok(t){"@babel/helpers - typeof";return Ok=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ok(t)}var fbt=["offset"];function pbt(t){return xbt(t)||ybt(t)||gbt(t)||mbt()}function mbt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gbt(t,e){if(t){if(typeof t=="string")return XV(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return XV(t,e)}}function ybt(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function xbt(t){if(Array.isArray(t))return XV(t)}function XV(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function vbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function Fse(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function Qo(t){for(var e=1;e=0?1:-1,B,V;i==="insideStart"?(B=E+D*c,V=N):i==="insideEnd"?(B=C-D*c,V=!N):i==="end"&&(B=C+D*c,V=N),V=M<=0?V:!V;var G=ma(m,x,L,B),W=ma(m,x,L,B+(V?1:-1)*359),Z="M".concat(G.x,",").concat(G.y,` A`).concat(L,",").concat(L,",0,1,").concat(V?0:1,`, `).concat(W.x,",").concat(W.y),Q=Oi(e.id)?JC("recharts-radial-line-"):e.id;return Xe.createElement("text",Fk({},n,{dominantBaseline:"central",className:Mi("recharts-radial-bar-label",s)}),Xe.createElement("defs",null,Xe.createElement("path",{id:Q,d:Z})),Xe.createElement("textPath",{xlinkHref:"#".concat(Q)},r))},kbt=function(e){var r=e.viewBox,n=e.offset,i=e.position,a=r,c=a.cx,s=a.cy,f=a.innerRadius,m=a.outerRadius,x=a.startAngle,_=a.endAngle,T=(x+_)/2;if(i==="outside"){var E=ma(c,s,m+n,T),C=E.x,N=E.y;return{x:C,y:N,textAnchor:C>=c?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:c,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:c,y:s,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:c,y:s,textAnchor:"middle",verticalAnchor:"end"};var L=(f+m)/2,M=ma(c,s,L,T),D=M.x,B=M.y;return{x:D,y:B,textAnchor:"middle",verticalAnchor:"middle"}},Cbt=function(e){var r=e.viewBox,n=e.parentViewBox,i=e.offset,a=e.position,c=r,s=c.x,f=c.y,m=c.width,x=c.height,_=x>=0?1:-1,T=_*i,E=_>0?"end":"start",C=_>0?"start":"end",N=m>=0?1:-1,L=N*i,M=N>0?"end":"start",D=N>0?"start":"end";if(a==="top"){var B={x:s+m/2,y:f-_*i,textAnchor:"middle",verticalAnchor:E};return Qo(Qo({},B),n?{height:Math.max(f-n.y,0),width:m}:{})}if(a==="bottom"){var V={x:s+m/2,y:f+x+T,textAnchor:"middle",verticalAnchor:C};return Qo(Qo({},V),n?{height:Math.max(n.y+n.height-(f+x),0),width:m}:{})}if(a==="left"){var G={x:s-L,y:f+x/2,textAnchor:M,verticalAnchor:"middle"};return Qo(Qo({},G),n?{width:Math.max(G.x-n.x,0),height:x}:{})}if(a==="right"){var W={x:s+m+L,y:f+x/2,textAnchor:D,verticalAnchor:"middle"};return Qo(Qo({},W),n?{width:Math.max(n.x+n.width-W.x,0),height:x}:{})}var Z=n?{width:m,height:x}:{};return a==="insideLeft"?Qo({x:s+L,y:f+x/2,textAnchor:D,verticalAnchor:"middle"},Z):a==="insideRight"?Qo({x:s+m-L,y:f+x/2,textAnchor:M,verticalAnchor:"middle"},Z):a==="insideTop"?Qo({x:s+m/2,y:f+T,textAnchor:"middle",verticalAnchor:C},Z):a==="insideBottom"?Qo({x:s+m/2,y:f+x-T,textAnchor:"middle",verticalAnchor:E},Z):a==="insideTopLeft"?Qo({x:s+L,y:f+T,textAnchor:D,verticalAnchor:C},Z):a==="insideTopRight"?Qo({x:s+m-L,y:f+T,textAnchor:M,verticalAnchor:C},Z):a==="insideBottomLeft"?Qo({x:s+L,y:f+x-T,textAnchor:D,verticalAnchor:E},Z):a==="insideBottomRight"?Qo({x:s+m-L,y:f+x-T,textAnchor:M,verticalAnchor:E},Z):IS(a)&&(Kr(a.x)||H0(a.x))&&(Kr(a.y)||H0(a.y))?Qo({x:s+Hc(a.x,m),y:f+Hc(a.y,x),textAnchor:"end",verticalAnchor:"end"},Z):Qo({x:s+m/2,y:f+x/2,textAnchor:"middle",verticalAnchor:"middle"},Z)},Ibt=function(e){return"cx"in e&&Kr(e.cx)};function Tl(t){var e=t.offset,r=e===void 0?5:e,n=_bt(t,fbt),i=Qo({offset:r},n),a=i.viewBox,c=i.position,s=i.value,f=i.children,m=i.content,x=i.className,_=x===void 0?"":x,T=i.textBreakAll;if(!a||Oi(s)&&Oi(f)&&!P.isValidElement(m)&&!fi(m))return null;if(P.isValidElement(m))return P.cloneElement(m,i);var E;if(fi(m)){if(E=P.createElement(m,i),P.isValidElement(E))return E}else E=Tbt(i);var C=Ibt(a),N=oi(i,!0);if(C&&(c==="insideStart"||c==="insideEnd"||c==="end"))return Abt(i,E,N);var L=C?kbt(i):Cbt(i);return Xe.createElement(j_,Fk({className:Mi("recharts-label",_)},N,L,{breakAll:T}),E)}Tl.displayName="Label";var ASe=function(e){var r=e.cx,n=e.cy,i=e.angle,a=e.startAngle,c=e.endAngle,s=e.r,f=e.radius,m=e.innerRadius,x=e.outerRadius,_=e.x,T=e.y,E=e.top,C=e.left,N=e.width,L=e.height,M=e.clockWise,D=e.labelViewBox;if(D)return D;if(Kr(N)&&Kr(L)){if(Kr(_)&&Kr(T))return{x:_,y:T,width:N,height:L};if(Kr(E)&&Kr(C))return{x:E,y:C,width:N,height:L}}return Kr(_)&&Kr(T)?{x:_,y:T,width:0,height:0}:Kr(r)&&Kr(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:c||i||0,innerRadius:m||0,outerRadius:x||f||s||0,clockWise:M}:e.viewBox?e.viewBox:{}},jbt=function(e,r){return e?e===!0?Xe.createElement(Tl,{key:"label-implicit",viewBox:r}):ll(e)?Xe.createElement(Tl,{key:"label-implicit",viewBox:r,value:e}):P.isValidElement(e)?e.type===Tl?P.cloneElement(e,{key:"label-implicit",viewBox:r}):Xe.createElement(Tl,{key:"label-implicit",content:e,viewBox:r}):fi(e)?Xe.createElement(Tl,{key:"label-implicit",content:e,viewBox:r}):IS(e)?Xe.createElement(Tl,Fk({viewBox:r},e,{key:"label-implicit"})):null:null},Pbt=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var i=e.children,a=ASe(e),c=Hd(i,Tl).map(function(f,m){return P.cloneElement(f,{viewBox:r||a,key:"label-".concat(m)})});if(!n)return c;var s=jbt(e.label,r||a);return[s].concat(pbt(c))};Tl.parseViewBox=ASe;Tl.renderCallByParent=Pbt;function Nbt(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var Rbt=Nbt;const Lbt=fs(Rbt);function Bk(t){"@babel/helpers - typeof";return Bk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bk(t)}var Dbt=["valueAccessor"],Mbt=["data","dataKey","clockWise","id","textBreakAll"];function Obt(t){return $bt(t)||zbt(t)||Bbt(t)||Fbt()}function Fbt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bbt(t,e){if(t){if(typeof t=="string")return QV(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return QV(t,e)}}function zbt(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function $bt(t){if(Array.isArray(t))return QV(t)}function QV(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Gbt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var Hbt=function(e){return Array.isArray(e.value)?Lbt(e.value):e.value};function Ny(t){var e=t.valueAccessor,r=e===void 0?Hbt:e,n=$se(t,Dbt),i=n.data,a=n.dataKey,c=n.clockWise,s=n.id,f=n.textBreakAll,m=$se(n,Mbt);return!i||!i.length?null:Xe.createElement($s,{className:"recharts-label-list"},i.map(function(x,_){var T=Oi(a)?r(x,_):Gl(x&&x.payload,a),E=Oi(s)?{}:{id:"".concat(s,"-").concat(_)};return Xe.createElement(Tl,qD({},oi(x,!0),m,E,{parentViewBox:x.parentViewBox,value:T,textBreakAll:f,viewBox:Tl.parseViewBox(Oi(c)?x:zse(zse({},x),{},{clockWise:c})),key:"label-".concat(_),index:_}))}))}Ny.displayName="LabelList";function Wbt(t,e){return t?t===!0?Xe.createElement(Ny,{key:"labelList-implicit",data:e}):Xe.isValidElement(t)||fi(t)?Xe.createElement(Ny,{key:"labelList-implicit",data:e,content:t}):IS(t)?Xe.createElement(Ny,qD({data:e},t,{key:"labelList-implicit"})):null:null}function Kbt(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var n=t.children,i=Hd(n,Ny).map(function(c,s){return P.cloneElement(c,{data:e,key:"labelList-".concat(s)})});if(!r)return i;var a=Wbt(t.label,e);return[a].concat(Obt(i))}Ny.renderCallByParent=Kbt;function zk(t){"@babel/helpers - typeof";return zk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},zk(t)}function JV(){return JV=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(c>m),`, `).concat(_.x,",").concat(_.y,` `);if(i>0){var E=ma(r,n,i,c),C=ma(r,n,i,m);T+="L ".concat(C.x,",").concat(C.y,` A `).concat(i,",").concat(i,`,0, `).concat(+(Math.abs(f)>180),",").concat(+(c<=m),`, `).concat(E.x,",").concat(E.y," Z")}else T+="L ".concat(r,",").concat(n," Z");return T},Jbt=function(e){var r=e.cx,n=e.cy,i=e.innerRadius,a=e.outerRadius,c=e.cornerRadius,s=e.forceCornerRadius,f=e.cornerIsExternal,m=e.startAngle,x=e.endAngle,_=Gc(x-m),T=NN({cx:r,cy:n,radius:a,angle:m,sign:_,cornerRadius:c,cornerIsExternal:f}),E=T.circleTangency,C=T.lineTangency,N=T.theta,L=NN({cx:r,cy:n,radius:a,angle:x,sign:-_,cornerRadius:c,cornerIsExternal:f}),M=L.circleTangency,D=L.lineTangency,B=L.theta,V=f?Math.abs(m-x):Math.abs(m-x)-N-B;if(V<0)return s?"M ".concat(C.x,",").concat(C.y,` a`).concat(c,",").concat(c,",0,0,1,").concat(c*2,`,0 a`).concat(c,",").concat(c,",0,0,1,").concat(-c*2,`,0 `):kSe({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:m,endAngle:x});var G="M ".concat(C.x,",").concat(C.y,` A`).concat(c,",").concat(c,",0,0,").concat(+(_<0),",").concat(E.x,",").concat(E.y,` A`).concat(a,",").concat(a,",0,").concat(+(V>180),",").concat(+(_<0),",").concat(M.x,",").concat(M.y,` A`).concat(c,",").concat(c,",0,0,").concat(+(_<0),",").concat(D.x,",").concat(D.y,` `);if(i>0){var W=NN({cx:r,cy:n,radius:i,angle:m,sign:_,isExternal:!0,cornerRadius:c,cornerIsExternal:f}),Z=W.circleTangency,Q=W.lineTangency,se=W.theta,ie=NN({cx:r,cy:n,radius:i,angle:x,sign:-_,isExternal:!0,cornerRadius:c,cornerIsExternal:f}),ue=ie.circleTangency,be=ie.lineTangency,Te=ie.theta,we=f?Math.abs(m-x):Math.abs(m-x)-se-Te;if(we<0&&c===0)return"".concat(G,"L").concat(r,",").concat(n,"Z");G+="L".concat(be.x,",").concat(be.y,` A`).concat(c,",").concat(c,",0,0,").concat(+(_<0),",").concat(ue.x,",").concat(ue.y,` A`).concat(i,",").concat(i,",0,").concat(+(we>180),",").concat(+(_>0),",").concat(Z.x,",").concat(Z.y,` A`).concat(c,",").concat(c,",0,0,").concat(+(_<0),",").concat(Q.x,",").concat(Q.y,"Z")}else G+="L".concat(r,",").concat(n,"Z");return G},ewt={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},CSe=function(e){var r=Vse(Vse({},ewt),e),n=r.cx,i=r.cy,a=r.innerRadius,c=r.outerRadius,s=r.cornerRadius,f=r.forceCornerRadius,m=r.cornerIsExternal,x=r.startAngle,_=r.endAngle,T=r.className;if(c0&&Math.abs(x-_)<360?L=Jbt({cx:n,cy:i,innerRadius:a,outerRadius:c,cornerRadius:Math.min(N,C/2),forceCornerRadius:f,cornerIsExternal:m,startAngle:x,endAngle:_}):L=kSe({cx:n,cy:i,innerRadius:a,outerRadius:c,startAngle:x,endAngle:_}),Xe.createElement("path",JV({},oi(r,!0),{className:E,d:L,role:"img"}))};function $k(t){"@babel/helpers - typeof";return $k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$k(t)}function e8(){return e8=Object.assign?Object.assign.bind():function(t){for(var e=1;e0;)if(!r.equals(t[n],e[n],n,n,t,e,r))return!1;return!0}function mwt(t,e){return BS(t.getTime(),e.getTime())}function Xse(t,e,r){if(t.size!==e.size)return!1;for(var n={},i=t.entries(),a=0,c,s;(c=i.next())&&!c.done;){for(var f=e.entries(),m=!1,x=0;(s=f.next())&&!s.done;){var _=c.value,T=_[0],E=_[1],C=s.value,N=C[0],L=C[1];!m&&!n[x]&&(m=r.equals(T,N,a,x,t,e,r)&&r.equals(E,L,T,N,t,e,r))&&(n[x]=!0),x++}if(!m)return!1;a++}return!0}function gwt(t,e,r){var n=Zse(t),i=n.length;if(Zse(e).length!==i)return!1;for(var a;i-- >0;)if(a=n[i],a===RSe&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!NSe(e,a)||!r.equals(t[a],e[a],a,a,t,e,r))return!1;return!0}function I2(t,e,r){var n=Kse(t),i=n.length;if(Kse(e).length!==i)return!1;for(var a,c,s;i-- >0;)if(a=n[i],a===RSe&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!NSe(e,a)||!r.equals(t[a],e[a],a,a,t,e,r)||(c=Yse(t,a),s=Yse(e,a),(c||s)&&(!c||!s||c.configurable!==s.configurable||c.enumerable!==s.enumerable||c.writable!==s.writable)))return!1;return!0}function ywt(t,e){return BS(t.valueOf(),e.valueOf())}function xwt(t,e){return t.source===e.source&&t.flags===e.flags}function Qse(t,e,r){if(t.size!==e.size)return!1;for(var n={},i=t.values(),a,c;(a=i.next())&&!a.done;){for(var s=e.values(),f=!1,m=0;(c=s.next())&&!c.done;)!f&&!n[m]&&(f=r.equals(a.value,c.value,a.value,c.value,t,e,r))&&(n[m]=!0),m++;if(!f)return!1}return!0}function _wt(t,e){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(t[r]!==e[r])return!1;return!0}var vwt="[object Arguments]",bwt="[object Boolean]",wwt="[object Date]",Swt="[object Map]",Twt="[object Number]",Ewt="[object Object]",Awt="[object RegExp]",kwt="[object Set]",Cwt="[object String]",Iwt=Array.isArray,Jse=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,eae=Object.assign,jwt=Object.prototype.toString.call.bind(Object.prototype.toString);function Pwt(t){var e=t.areArraysEqual,r=t.areDatesEqual,n=t.areMapsEqual,i=t.areObjectsEqual,a=t.arePrimitiveWrappersEqual,c=t.areRegExpsEqual,s=t.areSetsEqual,f=t.areTypedArraysEqual;return function(x,_,T){if(x===_)return!0;if(x==null||_==null||typeof x!="object"||typeof _!="object")return x!==x&&_!==_;var E=x.constructor;if(E!==_.constructor)return!1;if(E===Object)return i(x,_,T);if(Iwt(x))return e(x,_,T);if(Jse!=null&&Jse(x))return f(x,_,T);if(E===Date)return r(x,_,T);if(E===RegExp)return c(x,_,T);if(E===Map)return n(x,_,T);if(E===Set)return s(x,_,T);var C=jwt(x);return C===wwt?r(x,_,T):C===Awt?c(x,_,T):C===Swt?n(x,_,T):C===kwt?s(x,_,T):C===Ewt?typeof x.then!="function"&&typeof _.then!="function"&&i(x,_,T):C===vwt?i(x,_,T):C===bwt||C===Twt||C===Cwt?a(x,_,T):!1}}function Nwt(t){var e=t.circular,r=t.createCustomConfig,n=t.strict,i={areArraysEqual:n?I2:pwt,areDatesEqual:mwt,areMapsEqual:n?Wse(Xse,I2):Xse,areObjectsEqual:n?I2:gwt,arePrimitiveWrappersEqual:ywt,areRegExpsEqual:xwt,areSetsEqual:n?Wse(Qse,I2):Qse,areTypedArraysEqual:n?I2:_wt};if(r&&(i=eae({},i,r(i))),e){var a=LN(i.areArraysEqual),c=LN(i.areMapsEqual),s=LN(i.areObjectsEqual),f=LN(i.areSetsEqual);i=eae({},i,{areArraysEqual:a,areMapsEqual:c,areObjectsEqual:s,areSetsEqual:f})}return i}function Rwt(t){return function(e,r,n,i,a,c,s){return t(e,r,s)}}function Lwt(t){var e=t.circular,r=t.comparator,n=t.createState,i=t.equals,a=t.strict;if(n)return function(f,m){var x=n(),_=x.cache,T=_===void 0?e?new WeakMap:void 0:_,E=x.meta;return r(f,m,{cache:T,equals:i,meta:E,strict:a})};if(e)return function(f,m){return r(f,m,{cache:new WeakMap,equals:i,meta:void 0,strict:a})};var c={cache:void 0,equals:i,meta:void 0,strict:a};return function(f,m){return r(f,m,c)}}var Dwt=hx();hx({strict:!0});hx({circular:!0});hx({circular:!0,strict:!0});hx({createInternalComparator:function(){return BS}});hx({strict:!0,createInternalComparator:function(){return BS}});hx({circular:!0,createInternalComparator:function(){return BS}});hx({circular:!0,createInternalComparator:function(){return BS},strict:!0});function hx(t){t===void 0&&(t={});var e=t.circular,r=e===void 0?!1:e,n=t.createInternalComparator,i=t.createState,a=t.strict,c=a===void 0?!1:a,s=Nwt(t),f=Pwt(s),m=n?n(f):Rwt(f);return Lwt({circular:r,comparator:f,createState:i,equals:m,strict:c})}function Mwt(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function tae(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>e?(t(a),r=-1):Mwt(i)};requestAnimationFrame(n)}function r8(t){"@babel/helpers - typeof";return r8=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r8(t)}function Owt(t){return $wt(t)||zwt(t)||Bwt(t)||Fwt()}function Fwt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bwt(t,e){if(t){if(typeof t=="string")return rae(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return rae(t,e)}}function rae(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?1:M<0?0:M},N=function(M){for(var D=M>1?1:M,B=D,V=0;V<8;++V){var G=_(B)-D,W=E(B);if(Math.abs(G-D)0&&arguments[0]!==void 0?arguments[0]:{},r=e.stiff,n=r===void 0?100:r,i=e.damping,a=i===void 0?8:i,c=e.dt,s=c===void 0?17:c,f=function(x,_,T){var E=-(x-_)*n,C=T*a,N=T+(E-C)*s/1e3,L=T*s/1e3+x;return Math.abs(L-_)t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function x1t(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,a;for(a=0;a=0)&&(r[i]=t[i]);return r}function jz(t){return w1t(t)||b1t(t)||v1t(t)||_1t()}function _1t(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function v1t(t,e){if(t){if(typeof t=="string")return o8(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return o8(t,e)}}function b1t(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function w1t(t){if(Array.isArray(t))return o8(t)}function o8(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function WD(t){return WD=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},WD(t)}var Mm=function(t){k1t(r,t);var e=C1t(r);function r(n,i){var a;S1t(this,r),a=e.call(this,n,i);var c=a.props,s=c.isActive,f=c.attributeName,m=c.from,x=c.to,_=c.steps,T=c.children,E=c.duration;if(a.handleStyleChange=a.handleStyleChange.bind(u8(a)),a.changeStyle=a.changeStyle.bind(u8(a)),!s||E<=0)return a.state={style:{}},typeof T=="function"&&(a.state={style:x}),c8(a);if(_&&_.length)a.state={style:_[0].style};else if(m){if(typeof T=="function")return a.state={style:m},c8(a);a.state={style:f?W2({},f,m):m}}else a.state={style:{}};return a}return E1t(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,c=i.canBegin;this.mounted=!0,!(!a||!c)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,c=a.isActive,s=a.canBegin,f=a.attributeName,m=a.shouldReAnimate,x=a.to,_=a.from,T=this.state.style;if(s){if(!c){var E={style:f?W2({},f,x):x};this.state&&T&&(f&&T[f]!==x||!f&&T!==x)&&this.setState(E);return}if(!(Dwt(i.to,x)&&i.canBegin&&i.isActive)){var C=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var N=C||m?_:i.to;if(this.state&&T){var L={style:f?W2({},f,N):N};(f&&T[f]!==N||!f&&T!==N)&&this.setState(L)}this.runAnimation(kh(kh({},this.props),{},{from:N,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,c=i.from,s=i.to,f=i.duration,m=i.easing,x=i.begin,_=i.onAnimationEnd,T=i.onAnimationStart,E=m1t(c,s,i1t(m),f,this.changeStyle),C=function(){a.stopJSAnimation=E()};this.manager.start([T,x,C,f,_])}},{key:"runStepAnimation",value:function(i){var a=this,c=i.steps,s=i.begin,f=i.onAnimationStart,m=c[0],x=m.style,_=m.duration,T=_===void 0?0:_,E=function(N,L,M){if(M===0)return N;var D=L.duration,B=L.easing,V=B===void 0?"ease":B,G=L.style,W=L.properties,Z=L.onAnimationEnd,Q=M>0?c[M-1]:L,se=W||Object.keys(G);if(typeof V=="function"||V==="spring")return[].concat(jz(N),[a.runJSAnimation.bind(a,{from:Q.style,to:G,duration:D,easing:V}),D]);var ie=sae(se,D,V),ue=kh(kh(kh({},Q.style),G),{},{transition:ie});return[].concat(jz(N),[ue,D,Z]).filter(Hwt)};return this.manager.start([f].concat(jz(c.reduce(E,[x,Math.max(T,s)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=Uwt());var a=i.begin,c=i.duration,s=i.attributeName,f=i.to,m=i.easing,x=i.onAnimationStart,_=i.onAnimationEnd,T=i.steps,E=i.children,C=this.manager;if(this.unSubscribe=C.subscribe(this.handleStyleChange),typeof m=="function"||typeof E=="function"||m==="spring"){this.runJSAnimation(i);return}if(T.length>1){this.runStepAnimation(i);return}var N=s?W2({},s,f):f,L=sae(Object.keys(N),c,m);C.start([x,a,kh(kh({},N),{},{transition:L}),c,_])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var c=i.duration;i.attributeName,i.easing;var s=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var f=y1t(i,g1t),m=P.Children.count(a),x=this.state.style;if(typeof a=="function")return a(x);if(!s||m===0||c<=0)return a;var _=function(E){var C=E.props,N=C.style,L=N===void 0?{}:N,M=C.className,D=P.cloneElement(E,kh(kh({},f),{},{style:kh(kh({},L),x),className:M}));return D};return m===1?_(P.Children.only(a)):Xe.createElement("div",null,P.Children.map(a,function(T){return _(T)}))}}]),r}(P.PureComponent);Mm.displayName="Animate";Mm.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Mm.propTypes={from:Ls.oneOfType([Ls.object,Ls.string]),to:Ls.oneOfType([Ls.object,Ls.string]),attributeName:Ls.string,duration:Ls.number,begin:Ls.number,easing:Ls.oneOfType([Ls.string,Ls.func]),steps:Ls.arrayOf(Ls.shape({duration:Ls.number.isRequired,style:Ls.object.isRequired,easing:Ls.oneOfType([Ls.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Ls.func]),properties:Ls.arrayOf("string"),onAnimationEnd:Ls.func})),children:Ls.oneOfType([Ls.node,Ls.func]),isActive:Ls.bool,canBegin:Ls.bool,onAnimationEnd:Ls.func,shouldReAnimate:Ls.bool,onAnimationStart:Ls.func,onAnimationReStart:Ls.func};function qk(t){"@babel/helpers - typeof";return qk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qk(t)}function KD(){return KD=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0?1:-1,f=n>=0?1:-1,m=i>=0&&n>=0||i<0&&n<0?1:0,x;if(c>0&&a instanceof Array){for(var _=[0,0,0,0],T=0,E=4;Tc?c:a[T];x="M".concat(e,",").concat(r+s*_[0]),_[0]>0&&(x+="A ".concat(_[0],",").concat(_[0],",0,0,").concat(m,",").concat(e+f*_[0],",").concat(r)),x+="L ".concat(e+n-f*_[1],",").concat(r),_[1]>0&&(x+="A ".concat(_[1],",").concat(_[1],",0,0,").concat(m,`, `).concat(e+n,",").concat(r+s*_[1])),x+="L ".concat(e+n,",").concat(r+i-s*_[2]),_[2]>0&&(x+="A ".concat(_[2],",").concat(_[2],",0,0,").concat(m,`, `).concat(e+n-f*_[2],",").concat(r+i)),x+="L ".concat(e+f*_[3],",").concat(r+i),_[3]>0&&(x+="A ".concat(_[3],",").concat(_[3],",0,0,").concat(m,`, `).concat(e,",").concat(r+i-s*_[3])),x+="Z"}else if(c>0&&a===+a&&a>0){var C=Math.min(c,a);x="M ".concat(e,",").concat(r+s*C,` A `).concat(C,",").concat(C,",0,0,").concat(m,",").concat(e+f*C,",").concat(r,` L `).concat(e+n-f*C,",").concat(r,` A `).concat(C,",").concat(C,",0,0,").concat(m,",").concat(e+n,",").concat(r+s*C,` L `).concat(e+n,",").concat(r+i-s*C,` A `).concat(C,",").concat(C,",0,0,").concat(m,",").concat(e+n-f*C,",").concat(r+i,` L `).concat(e+f*C,",").concat(r+i,` A `).concat(C,",").concat(C,",0,0,").concat(m,",").concat(e,",").concat(r+i-s*C," Z")}else x="M ".concat(e,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return x},F1t=function(e,r){if(!e||!r)return!1;var n=e.x,i=e.y,a=r.x,c=r.y,s=r.width,f=r.height;if(Math.abs(s)>0&&Math.abs(f)>0){var m=Math.min(a,a+s),x=Math.max(a,a+s),_=Math.min(c,c+f),T=Math.max(c,c+f);return n>=m&&n<=x&&i>=_&&i<=T}return!1},B1t={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},LH=function(e){var r=fae(fae({},B1t),e),n=P.useRef(),i=P.useState(-1),a=j1t(i,2),c=a[0],s=a[1];P.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var V=n.current.getTotalLength();V&&s(V)}catch{}},[]);var f=r.x,m=r.y,x=r.width,_=r.height,T=r.radius,E=r.className,C=r.animationEasing,N=r.animationDuration,L=r.animationBegin,M=r.isAnimationActive,D=r.isUpdateAnimationActive;if(f!==+f||m!==+m||x!==+x||_!==+_||x===0||_===0)return null;var B=Mi("recharts-rectangle",E);return D?Xe.createElement(Mm,{canBegin:c>0,from:{width:x,height:_,x:f,y:m},to:{width:x,height:_,x:f,y:m},duration:N,animationEasing:C,isActive:D},function(V){var G=V.width,W=V.height,Z=V.x,Q=V.y;return Xe.createElement(Mm,{canBegin:c>0,from:"0px ".concat(c===-1?1:c,"px"),to:"".concat(c,"px 0px"),attributeName:"strokeDasharray",begin:L,duration:N,isActive:M,easing:C},Xe.createElement("path",KD({},oi(r,!0),{className:B,d:pae(Z,Q,G,W,T),ref:n})))}):Xe.createElement("path",KD({},oi(r,!0),{className:B,d:pae(f,m,x,_,T)}))},z1t=["points","className","baseLinePoints","connectNulls"];function mw(){return mw=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function U1t(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function mae(t){return H1t(t)||G1t(t)||q1t(t)||V1t()}function V1t(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function q1t(t,e){if(t){if(typeof t=="string")return d8(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d8(t,e)}}function G1t(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function H1t(t){if(Array.isArray(t))return d8(t)}function d8(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return e.forEach(function(n){gae(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),gae(e[0])&&r[r.length-1].push(e[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},SA=function(e,r){var n=W1t(e);r&&(n=[n.reduce(function(a,c){return[].concat(mae(a),mae(c))},[])]);var i=n.map(function(a){return a.reduce(function(c,s,f){return"".concat(c).concat(f===0?"M":"L").concat(s.x,",").concat(s.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},K1t=function(e,r,n){var i=SA(e,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(SA(r.reverse(),n).slice(1))},Y1t=function(e){var r=e.points,n=e.className,i=e.baseLinePoints,a=e.connectNulls,c=$1t(e,z1t);if(!r||!r.length)return null;var s=Mi("recharts-polygon",n);if(i&&i.length){var f=c.stroke&&c.stroke!=="none",m=K1t(r,i,a);return Xe.createElement("g",{className:s},Xe.createElement("path",mw({},oi(c,!0),{fill:m.slice(-1)==="Z"?c.fill:"none",stroke:"none",d:m})),f?Xe.createElement("path",mw({},oi(c,!0),{fill:"none",d:SA(r,a)})):null,f?Xe.createElement("path",mw({},oi(c,!0),{fill:"none",d:SA(i,a)})):null)}var x=SA(r,a);return Xe.createElement("path",mw({},oi(c,!0),{fill:x.slice(-1)==="Z"?c.fill:"none",className:s,d:x}))};function h8(){return h8=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function rSt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var nSt=function(e,r,n,i,a,c){return"M".concat(e,",").concat(a,"v").concat(i,"M").concat(c,",").concat(r,"h").concat(n)},iSt=function(e){var r=e.x,n=r===void 0?0:r,i=e.y,a=i===void 0?0:i,c=e.top,s=c===void 0?0:c,f=e.left,m=f===void 0?0:f,x=e.width,_=x===void 0?0:x,T=e.height,E=T===void 0?0:T,C=e.className,N=tSt(e,Z1t),L=X1t({x:n,y:a,top:s,left:m,width:_,height:E},N);return!Kr(n)||!Kr(a)||!Kr(_)||!Kr(E)||!Kr(s)||!Kr(m)?null:Xe.createElement("path",f8({},oi(L,!0),{className:Mi("recharts-cross",C),d:nSt(n,a,_,E,s,m)}))},sSt=DF,aSt=Z1e,oSt=gp;function lSt(t,e){return t&&t.length?sSt(t,oSt(e),aSt):void 0}var cSt=lSt;const uSt=fs(cSt);var dSt=DF,hSt=gp,fSt=X1e;function pSt(t,e){return t&&t.length?dSt(t,hSt(e),fSt):void 0}var mSt=pSt;const gSt=fs(mSt);var ySt=["cx","cy","angle","ticks","axisLine"],xSt=["ticks","tick","angle","tickFormatter","stroke"];function O1(t){"@babel/helpers - typeof";return O1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O1(t)}function TA(){return TA=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function _St(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function vSt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function vae(t,e){for(var r=0;rSae?c=i==="outer"?"start":"end":a<-Sae?c=i==="outer"?"end":"start":c="middle",c}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,c=n.radius,s=n.axisLine,f=n.axisLineType,m=A0(A0({},oi(this.props,!1)),{},{fill:"none"},oi(s,!1));if(f==="circle")return Xe.createElement(DH,B0({className:"recharts-polar-angle-axis-line"},m,{cx:i,cy:a,r:c}));var x=this.props.ticks,_=x.map(function(T){return ma(i,a,c,T.coordinate)});return Xe.createElement(Y1t,B0({className:"recharts-polar-angle-axis-line"},m,{points:_}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,c=i.tick,s=i.tickLine,f=i.tickFormatter,m=i.stroke,x=oi(this.props,!1),_=oi(c,!1),T=A0(A0({},x),{},{fill:"none"},oi(s,!1)),E=a.map(function(C,N){var L=n.getTickLineCoord(C),M=n.getTickTextAnchor(C),D=A0(A0(A0({textAnchor:M},x),{},{stroke:"none",fill:m},_),{},{index:N,payload:C,x:L.x2,y:L.y2});return Xe.createElement($s,B0({className:Mi("recharts-polar-angle-axis-tick",ESe(c)),key:"tick-".concat(C.coordinate)},I_(n.props,C,N)),s&&Xe.createElement("line",B0({className:"recharts-polar-angle-axis-tick-line"},T,L)),c&&e.renderTickItem(c,D,f?f(C.value,N):C.value))});return Xe.createElement($s,{className:"recharts-polar-angle-axis-ticks"},E)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,c=n.axisLine;return a<=0||!i||!i.length?null:Xe.createElement($s,{className:Mi("recharts-polar-angle-axis",this.props.className)},c&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var c;return Xe.isValidElement(n)?c=Xe.cloneElement(n,i):fi(n)?c=n(i):c=Xe.createElement(j_,B0({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),c}}])}(P.PureComponent);qF(GF,"displayName","PolarAngleAxis");qF(GF,"axisType","angleAxis");qF(GF,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var DSt=Hwe,MSt=DSt(Object.getPrototypeOf,Object),OSt=MSt,FSt=Um,BSt=OSt,zSt=Vm,$St="[object Object]",USt=Function.prototype,VSt=Object.prototype,qSe=USt.toString,qSt=VSt.hasOwnProperty,GSt=qSe.call(Object);function HSt(t){if(!zSt(t)||FSt(t)!=$St)return!1;var e=BSt(t);if(e===null)return!0;var r=qSt.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&qSe.call(r)==GSt}var WSt=HSt;const KSt=fs(WSt);var YSt=Um,ZSt=Vm,XSt="[object Boolean]";function QSt(t){return t===!0||t===!1||ZSt(t)&&YSt(t)==XSt}var JSt=QSt;const eTt=fs(JSt);function Hk(t){"@babel/helpers - typeof";return Hk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hk(t)}function XD(){return XD=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r0,from:{upperWidth:0,lowerWidth:0,height:T,x:f,y:m},to:{upperWidth:x,lowerWidth:_,height:T,x:f,y:m},duration:N,animationEasing:C,isActive:M},function(B){var V=B.upperWidth,G=B.lowerWidth,W=B.height,Z=B.x,Q=B.y;return Xe.createElement(Mm,{canBegin:c>0,from:"0px ".concat(c===-1?1:c,"px"),to:"".concat(c,"px 0px"),attributeName:"strokeDasharray",begin:L,duration:N,easing:C},Xe.createElement("path",XD({},oi(r,!0),{className:D,d:kae(Z,Q,V,G,W),ref:n})))}):Xe.createElement("g",null,Xe.createElement("path",XD({},oi(r,!0),{className:D,d:kae(f,m,x,_,T)})))},dTt=["option","shapeType","propTransformer","activeClassName","isActive"];function Wk(t){"@babel/helpers - typeof";return Wk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Wk(t)}function hTt(t,e){if(t==null)return{};var r=fTt(t,e),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function fTt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function Cae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function QD(t){for(var e=1;e0?rd(B,"paddingAngle",0):0;if(G){var Z=Yg(G.endAngle-G.startAngle,B.endAngle-B.startAngle),Q=ha(ha({},B),{},{startAngle:D+W,endAngle:D+Z(N)+W});L.push(Q),D=Q.endAngle}else{var se=B.endAngle,ie=B.startAngle,ue=Yg(0,se-ie),be=ue(N),Te=ha(ha({},B),{},{startAngle:D+W,endAngle:D+be+W});L.push(Te),D=Te.endAngle}}),Xe.createElement($s,null,n.renderSectorsStatically(L))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var c=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[c].focus(),i.setState({sectorToFocus:c});break}case"ArrowRight":{var s=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[s].focus(),i.setState({sectorToFocus:s});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,c=this.state.prevSectors;return a&&i&&i.length&&(!c||!FF(c,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,c=i.sectors,s=i.className,f=i.label,m=i.cx,x=i.cy,_=i.innerRadius,T=i.outerRadius,E=i.isAnimationActive,C=this.state.isAnimationFinished;if(a||!c||!c.length||!Kr(m)||!Kr(x)||!Kr(_)||!Kr(T))return null;var N=Mi("recharts-pie",s);return Xe.createElement($s,{tabIndex:this.props.rootTabIndex,className:N,ref:function(M){n.pieRef=M}},this.renderSectors(),f&&this.renderLabels(c),Tl.renderCallByParent(this.props,null,!1),(!E||C)&&Ny.renderCallByParent(this.props,c,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n=360?D:D-1)*f,V=L-D*E-B,G=i.reduce(function(Q,se){var ie=Gl(se,M,0);return Q+(Kr(ie)?ie:0)},0),W;if(G>0){var Z;W=i.map(function(Q,se){var ie=Gl(Q,M,0),ue=Gl(Q,x,se),be=(Kr(ie)?ie:0)/G,Te;se?Te=Z.endAngle+Gc(N)*f*(ie!==0?1:0):Te=c;var we=Te+Gc(N)*((ie!==0?E:0)+be*V),Oe=(Te+we)/2,Ae=(C.innerRadius+C.outerRadius)/2,Se=[{name:ue,value:ie,payload:Q,dataKey:M,type:T}],ge=ma(C.cx,C.cy,Ae,Oe);return Z=ha(ha(ha({percent:be,cornerRadius:a,name:ue,tooltipPayload:Se,midAngle:Oe,middleRadius:Ae,tooltipPosition:ge},Q),C),{},{value:Gl(Q,M),startAngle:Te,endAngle:we,payload:Q,paddingAngle:Gc(N)*f}),Z})}return ha(ha({},C),{},{sectors:W,data:i})});var LTt=Math.ceil,DTt=Math.max;function MTt(t,e,r,n){for(var i=-1,a=DTt(LTt((e-t)/(r||1)),0),c=Array(a);a--;)c[n?a:++i]=t,t+=r;return c}var OTt=MTt,FTt=d1e,Nae=1/0,BTt=17976931348623157e292;function zTt(t){if(!t)return t===0?t:0;if(t=FTt(t),t===Nae||t===-Nae){var e=t<0?-1:1;return e*BTt}return t===t?t:0}var KSe=zTt,$Tt=OTt,UTt=kF,Pz=KSe;function VTt(t){return function(e,r,n){return n&&typeof n!="number"&&UTt(e,r,n)&&(r=n=void 0),e=Pz(e),r===void 0?(r=e,e=0):r=Pz(r),n=n===void 0?e0&&n.handleDrag(i.changedTouches[0])}),Uu(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,c=i.onDragEnd,s=i.startIndex;c==null||c({endIndex:a,startIndex:s})}),n.detachDragEndListener()}),Uu(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),Uu(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),Uu(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),Uu(n,"handleSlideDragStart",function(i){var a=Oae(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return nEt(e,t),JTt(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,c=this.state.scaleValues,s=this.props,f=s.gap,m=s.data,x=m.length-1,_=Math.min(i,a),T=Math.max(i,a),E=e.getIndexInRange(c,_),C=e.getIndexInRange(c,T);return{startIndex:E-E%f,endIndex:C===x?x:C-C%f}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,c=i.tickFormatter,s=i.dataKey,f=Gl(a[n],s,n);return fi(c)?c(f,n):f}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,c=i.startX,s=i.endX,f=this.props,m=f.x,x=f.width,_=f.travellerWidth,T=f.startIndex,E=f.endIndex,C=f.onChange,N=n.pageX-a;N>0?N=Math.min(N,m+x-_-s,m+x-_-c):N<0&&(N=Math.max(N,m-c,m-s));var L=this.getIndex({startX:c+N,endX:s+N});(L.startIndex!==T||L.endIndex!==E)&&C&&C(L),this.setState({startX:c+N,endX:s+N,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=Oae(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,c=i.movingTravellerId,s=i.endX,f=i.startX,m=this.state[c],x=this.props,_=x.x,T=x.width,E=x.travellerWidth,C=x.onChange,N=x.gap,L=x.data,M={startX:this.state.startX,endX:this.state.endX},D=n.pageX-a;D>0?D=Math.min(D,_+T-E-m):D<0&&(D=Math.max(D,_-m)),M[c]=m+D;var B=this.getIndex(M),V=B.startIndex,G=B.endIndex,W=function(){var Q=L.length-1;return c==="startX"&&(s>f?V%N===0:G%N===0)||sf?G%N===0:V%N===0)||s>f&&G===Q};this.setState(Uu(Uu({},c,m+D),"brushMoveStartX",n.pageX),function(){C&&W()&&C(B)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,c=this.state,s=c.scaleValues,f=c.startX,m=c.endX,x=this.state[i],_=s.indexOf(x);if(_!==-1){var T=_+n;if(!(T===-1||T>=s.length)){var E=s[T];i==="startX"&&E>=m||i==="endX"&&E<=f||this.setState(Uu({},i,E),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,c=n.width,s=n.height,f=n.fill,m=n.stroke;return Xe.createElement("rect",{stroke:m,fill:f,x:i,y:a,width:c,height:s})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,c=n.width,s=n.height,f=n.data,m=n.children,x=n.padding,_=P.Children.only(m);return _?Xe.cloneElement(_,{x:i,y:a,width:c,height:s,margin:x,compact:!0,data:f}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,c,s=this,f=this.props,m=f.y,x=f.travellerWidth,_=f.height,T=f.traveller,E=f.ariaLabel,C=f.data,N=f.startIndex,L=f.endIndex,M=Math.max(n,this.props.x),D=Nz(Nz({},oi(this.props,!1)),{},{x:M,y:m,width:x,height:_}),B=E||"Min value: ".concat((a=C[N])===null||a===void 0?void 0:a.name,", Max value: ").concat((c=C[L])===null||c===void 0?void 0:c.name);return Xe.createElement($s,{tabIndex:0,role:"slider","aria-label":B,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(G){["ArrowLeft","ArrowRight"].includes(G.key)&&(G.preventDefault(),G.stopPropagation(),s.handleTravellerMoveKeyboard(G.key==="ArrowRight"?1:-1,i))},onFocus:function(){s.setState({isTravellerFocused:!0})},onBlur:function(){s.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(T,D))}},{key:"renderSlide",value:function(n,i){var a=this.props,c=a.y,s=a.height,f=a.stroke,m=a.travellerWidth,x=Math.min(n,i)+m,_=Math.max(Math.abs(i-n)-m,0);return Xe.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:f,fillOpacity:.2,x,y:c,width:_,height:s})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,c=n.y,s=n.height,f=n.travellerWidth,m=n.stroke,x=this.state,_=x.startX,T=x.endX,E=5,C={pointerEvents:"none",fill:m};return Xe.createElement($s,{className:"recharts-brush-texts"},Xe.createElement(j_,tM({textAnchor:"end",verticalAnchor:"middle",x:Math.min(_,T)-E,y:c+s/2},C),this.getTextOfTick(i)),Xe.createElement(j_,tM({textAnchor:"start",verticalAnchor:"middle",x:Math.max(_,T)+f+E,y:c+s/2},C),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,c=n.children,s=n.x,f=n.y,m=n.width,x=n.height,_=n.alwaysShowText,T=this.state,E=T.startX,C=T.endX,N=T.isTextActive,L=T.isSlideMoving,M=T.isTravellerMoving,D=T.isTravellerFocused;if(!i||!i.length||!Kr(s)||!Kr(f)||!Kr(m)||!Kr(x)||m<=0||x<=0)return null;var B=Mi("recharts-brush",a),V=Xe.Children.count(c)===1,G=XTt("userSelect","none");return Xe.createElement($s,{className:B,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:G},this.renderBackground(),V&&this.renderPanorama(),this.renderSlide(E,C),this.renderTravellerLayer(E,"startX"),this.renderTravellerLayer(C,"endX"),(N||L||M||D||_)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,c=n.width,s=n.height,f=n.stroke,m=Math.floor(a+s/2)-1;return Xe.createElement(Xe.Fragment,null,Xe.createElement("rect",{x:i,y:a,width:c,height:s,fill:f,stroke:"none"}),Xe.createElement("line",{x1:i+1,y1:m,x2:i+c-1,y2:m,fill:"none",stroke:"#fff"}),Xe.createElement("line",{x1:i+1,y1:m+2,x2:i+c-1,y2:m+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return Xe.isValidElement(n)?a=Xe.cloneElement(n,i):fi(n)?a=n(i):a=e.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,c=n.width,s=n.x,f=n.travellerWidth,m=n.updateId,x=n.startIndex,_=n.endIndex;if(a!==i.prevData||m!==i.prevUpdateId)return Nz({prevData:a,prevTravellerWidth:f,prevUpdateId:m,prevX:s,prevWidth:c},a&&a.length?sEt({data:a,width:c,x:s,travellerWidth:f,startIndex:x,endIndex:_}):{scale:null,scaleValues:null});if(i.scale&&(c!==i.prevWidth||s!==i.prevX||f!==i.prevTravellerWidth)){i.scale.range([s,s+c-f]);var T=i.scale.domain().map(function(E){return i.scale(E)});return{prevData:a,prevTravellerWidth:f,prevUpdateId:m,prevX:s,prevWidth:c,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:T}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,c=0,s=a-1;s-c>1;){var f=Math.floor((c+s)/2);n[f]>i?s=f:c=f}return i>=n[s]?s:c}}])}(P.PureComponent);Uu($1,"displayName","Brush");Uu($1,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var aEt=aH;function oEt(t,e){var r;return aEt(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var lEt=oEt,cEt=Fwe,uEt=gp,dEt=lEt,hEt=ju,fEt=kF;function pEt(t,e,r){var n=hEt(t)?cEt:dEt;return r&&fEt(t,e,r)&&(e=void 0),n(t,uEt(e))}var mEt=pEt;const gEt=fs(mEt);var ep=function(e,r){var n=e.alwaysShow,i=e.ifOverflow;return n&&(i="extendDomain"),i===r},Fae=a1e;function yEt(t,e,r){e=="__proto__"&&Fae?Fae(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var xEt=yEt,_Et=xEt,vEt=i1e,bEt=gp;function wEt(t,e){var r={};return e=bEt(e),vEt(t,function(n,i,a){_Et(r,i,e(n,i,a))}),r}var SEt=wEt;const TEt=fs(SEt);function EEt(t,e){for(var r=-1,n=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function UEt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function VEt(t,e){var r=t.x,n=t.y,i=$Et(t,OEt),a="".concat(r),c=parseInt(a,10),s="".concat(n),f=parseInt(s,10),m="".concat(e.height||i.height),x=parseInt(m,10),_="".concat(e.width||i.width),T=parseInt(_,10);return j2(j2(j2(j2(j2({},e),i),c?{x:c}:{}),f?{y:f}:{}),{},{height:x,width:T,name:e.name,radius:e.radius})}function zae(t){return Xe.createElement(GSe,x8({shapeType:"rectangle",propTransformer:VEt,activeClassName:"recharts-active-bar"},t))}var qEt=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof e=="number")return e;var a=Kr(n)||Aat(n);return a?e(n,i):(a||N_(),r)}},GEt=["value","background"],JSe;function U1(t){"@babel/helpers - typeof";return U1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U1(t)}function HEt(t,e){if(t==null)return{};var r=WEt(t,e),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function WEt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function nM(){return nM=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(Oe)0&&Math.abs(we)0&&(Te=Math.min((at||0)-(we[lt-1]||0),Te))}),Number.isFinite(Te)){var Oe=Te/be,Ae=N.layout==="vertical"?n.height:n.width;if(N.padding==="gap"&&(Z=Oe*Ae/2),N.padding==="no-gap"){var Se=Hc(e.barCategoryGap,Oe*Ae),ge=Oe*Ae/2;Z=ge-Se-(ge-Se)/Ae*Se}}}i==="xAxis"?Q=[n.left+(B.left||0)+(Z||0),n.left+n.width-(B.right||0)-(Z||0)]:i==="yAxis"?Q=f==="horizontal"?[n.top+n.height-(B.bottom||0),n.top+(B.top||0)]:[n.top+(B.top||0)+(Z||0),n.top+n.height-(B.bottom||0)-(Z||0)]:Q=N.range,G&&(Q=[Q[1],Q[0]]);var je=xSe(N,a,T),_e=je.scale,xe=je.realScaleType;_e.domain(M).range(Q),_Se(_e);var Pe=vSe(_e,Fh(Fh({},N),{},{realScaleType:xe}));i==="xAxis"?(ue=L==="top"&&!V||L==="bottom"&&V,se=n.left,ie=_[W]-ue*N.height):i==="yAxis"&&(ue=L==="left"&&!V||L==="right"&&V,se=_[W]-ue*N.width,ie=n.top);var Ze=Fh(Fh(Fh({},N),Pe),{},{realScaleType:xe,x:se,y:ie,scale:_e,width:i==="xAxis"?n.width:N.width,height:i==="yAxis"?n.height:N.height});return Ze.bandSize=UD(Ze,Pe),!N.hide&&i==="xAxis"?_[W]+=(ue?-1:1)*Ze.height:N.hide||(_[W]+=(ue?-1:1)*Ze.width),Fh(Fh({},E),{},KF({},C,Ze))},{})},nTe=function(e,r){var n=e.x,i=e.y,a=r.x,c=r.y;return{x:Math.min(n,a),y:Math.min(i,c),width:Math.abs(a-n),height:Math.abs(c-i)}},s2t=function(e){var r=e.x1,n=e.y1,i=e.x2,a=e.y2;return nTe({x:r,y:n},{x:i,y:a})},iTe=function(){function t(e){t2t(this,t),this.scale=e}return r2t(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+c}case"end":{var s=this.bandwidth?this.bandwidth():0;return this.scale(r)+s}default:return this.scale(r)}if(i){var f=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+f}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new t(r)}}])}();KF(iTe,"EPS",1e-4);var MH=function(e){var r=Object.keys(e).reduce(function(n,i){return Fh(Fh({},n),{},KF({},i,iTe.create(e[i])))},{});return Fh(Fh({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=a.bandAware,s=a.position;return TEt(i,function(f,m){return r[m].apply(f,{bandAware:c,position:s})})},isInRange:function(i){return QSe(i,function(a,c){return r[c].isInRange(a)})}})};function a2t(t){return(t%180+180)%180}var o2t=function(e){var r=e.width,n=e.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=a2t(i),c=a*Math.PI/180,s=Math.atan(n/r),f=c>s&&c-1?i[a?e[c]:c]:void 0}}var h2t=d2t,f2t=KSe;function p2t(t){var e=f2t(t),r=e%1;return e===e?r?e-r:e:0}var m2t=p2t,g2t=Qwe,y2t=gp,x2t=m2t,_2t=Math.max;function v2t(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:x2t(r);return i<0&&(i=_2t(n+i,0)),g2t(t,y2t(e),i)}var b2t=v2t,w2t=h2t,S2t=b2t,T2t=w2t(S2t),E2t=T2t;const A2t=fs(E2t);var k2t=jst(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),OH=P.createContext(void 0),FH=P.createContext(void 0),sTe=P.createContext(void 0),aTe=P.createContext({}),oTe=P.createContext(void 0),lTe=P.createContext(0),cTe=P.createContext(0),Gae=function(e){var r=e.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,c=e.clipPathId,s=e.children,f=e.width,m=e.height,x=k2t(a);return Xe.createElement(OH.Provider,{value:n},Xe.createElement(FH.Provider,{value:i},Xe.createElement(aTe.Provider,{value:a},Xe.createElement(sTe.Provider,{value:x},Xe.createElement(oTe.Provider,{value:c},Xe.createElement(lTe.Provider,{value:m},Xe.createElement(cTe.Provider,{value:f},s)))))))},C2t=function(){return P.useContext(oTe)},uTe=function(e){var r=P.useContext(OH);r==null&&N_();var n=r[e];return n==null&&N_(),n},I2t=function(){var e=P.useContext(OH);return ry(e)},j2t=function(){var e=P.useContext(FH),r=A2t(e,function(n){return QSe(n.domain,Number.isFinite)});return r||ry(e)},dTe=function(e){var r=P.useContext(FH);r==null&&N_();var n=r[e];return n==null&&N_(),n},P2t=function(){var e=P.useContext(sTe);return e},N2t=function(){return P.useContext(aTe)},BH=function(){return P.useContext(cTe)},zH=function(){return P.useContext(lTe)};function V1(t){"@babel/helpers - typeof";return V1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V1(t)}function R2t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function L2t(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);rt*i)return!1;var a=r();return t*(e-t*a/2-n)>=0&&t*(e+t*a/2-i)<=0}function mAt(t,e){return xTe(t,e+1)}function gAt(t,e,r,n,i){for(var a=(n||[]).slice(),c=e.start,s=e.end,f=0,m=1,x=c,_=function(){var C=n==null?void 0:n[f];if(C===void 0)return{v:xTe(n,m)};var N=f,L,M=function(){return L===void 0&&(L=r(C,N)),L},D=C.coordinate,B=f===0||lM(t,D,M,x,s);B||(f=0,x=c,m+=1),B&&(x=D+t*(M()/2+i),f+=m)},T;m<=a.length;)if(T=_(),T)return T.v;return[]}function Qk(t){"@babel/helpers - typeof";return Qk=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qk(t)}function Jae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function dc(t){for(var e=1;e0?E.coordinate-L*t:E.coordinate})}else a[T]=E=dc(dc({},E),{},{tickCoord:E.coordinate});var M=lM(t,E.tickCoord,N,s,f);M&&(f=E.tickCoord-t*(N()/2+i),a[T]=dc(dc({},E),{},{isShow:!0}))},x=c-1;x>=0;x--)m(x);return a}function bAt(t,e,r,n,i,a){var c=(n||[]).slice(),s=c.length,f=e.start,m=e.end;if(a){var x=n[s-1],_=r(x,s-1),T=t*(x.coordinate+t*_/2-m);c[s-1]=x=dc(dc({},x),{},{tickCoord:T>0?x.coordinate-T*t:x.coordinate});var E=lM(t,x.tickCoord,function(){return _},f,m);E&&(m=x.tickCoord-t*(_/2+i),c[s-1]=dc(dc({},x),{},{isShow:!0}))}for(var C=a?s-1:s,N=function(D){var B=c[D],V,G=function(){return V===void 0&&(V=r(B,D)),V};if(D===0){var W=t*(B.coordinate-t*G()/2-f);c[D]=B=dc(dc({},B),{},{tickCoord:W<0?B.coordinate-W*t:B.coordinate})}else c[D]=B=dc(dc({},B),{},{tickCoord:B.coordinate});var Z=lM(t,B.tickCoord,G,f,m);Z&&(f=B.tickCoord+t*(G()/2+i),c[D]=dc(dc({},B),{},{isShow:!0}))},L=0;L=2?Gc(i[1].coordinate-i[0].coordinate):1,M=pAt(a,L,E);return f==="equidistantPreserveStart"?gAt(L,M,N,i,c):(f==="preserveStart"||f==="preserveStartEnd"?T=bAt(L,M,N,i,c,f==="preserveStartEnd"):T=vAt(L,M,N,i,c),T.filter(function(D){return D.isShow}))}var wAt=["viewBox"],SAt=["viewBox"],TAt=["ticks"];function H1(t){"@babel/helpers - typeof";return H1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H1(t)}function yw(){return yw=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function EAt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function AAt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function toe(t,e){for(var r=0;r0?f(this.props):f(E)),c<=0||s<=0||!C||!C.length?null:Xe.createElement($s,{className:Mi("recharts-cartesian-axis",m),ref:function(L){n.layerReference=L}},a&&this.renderAxisLine(),this.renderTicks(C,this.state.fontSize,this.state.letterSpacing),Tl.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var c,s=Mi(i.className,"recharts-cartesian-axis-tick-value");return Xe.isValidElement(n)?c=Xe.cloneElement(n,Xo(Xo({},i),{},{className:s})):fi(n)?c=n(Xo(Xo({},i),{},{className:s})):c=Xe.createElement(j_,yw({},i,{className:"recharts-cartesian-axis-tick-value"}),a),c}}])}(P.Component);qH(zS,"displayName","CartesianAxis");qH(zS,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var RAt=["x1","y1","x2","y2","key"],LAt=["offset"];function R_(t){"@babel/helpers - typeof";return R_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},R_(t)}function roe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function fc(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function FAt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var BAt=function(e){var r=e.fill;if(!r||r==="none")return null;var n=e.fillOpacity,i=e.x,a=e.y,c=e.width,s=e.height,f=e.ry;return Xe.createElement("rect",{x:i,y:a,ry:f,width:c,height:s,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function bTe(t,e){var r;if(Xe.isValidElement(t))r=Xe.cloneElement(t,e);else if(fi(t))r=t(e);else{var n=e.x1,i=e.y1,a=e.x2,c=e.y2,s=e.key,f=noe(e,RAt),m=oi(f,!1);m.offset;var x=noe(m,LAt);r=Xe.createElement("line",Y0({},x,{x1:n,y1:i,x2:a,y2:c,fill:"none",key:s}))}return r}function zAt(t){var e=t.x,r=t.width,n=t.horizontal,i=n===void 0?!0:n,a=t.horizontalPoints;if(!i||!a||!a.length)return null;var c=a.map(function(s,f){var m=fc(fc({},t),{},{x1:e,y1:s,x2:e+r,y2:s,key:"line-".concat(f),index:f});return bTe(i,m)});return Xe.createElement("g",{className:"recharts-cartesian-grid-horizontal"},c)}function $At(t){var e=t.y,r=t.height,n=t.vertical,i=n===void 0?!0:n,a=t.verticalPoints;if(!i||!a||!a.length)return null;var c=a.map(function(s,f){var m=fc(fc({},t),{},{x1:s,y1:e,x2:s,y2:e+r,key:"line-".concat(f),index:f});return bTe(i,m)});return Xe.createElement("g",{className:"recharts-cartesian-grid-vertical"},c)}function UAt(t){var e=t.horizontalFill,r=t.fillOpacity,n=t.x,i=t.y,a=t.width,c=t.height,s=t.horizontalPoints,f=t.horizontal,m=f===void 0?!0:f;if(!m||!e||!e.length)return null;var x=s.map(function(T){return Math.round(T+i-i)}).sort(function(T,E){return T-E});i!==x[0]&&x.unshift(0);var _=x.map(function(T,E){var C=!x[E+1],N=C?i+c-T:x[E+1]-T;if(N<=0)return null;var L=E%e.length;return Xe.createElement("rect",{key:"react-".concat(E),y:T,x:n,height:N,width:a,stroke:"none",fill:e[L],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return Xe.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},_)}function VAt(t){var e=t.vertical,r=e===void 0?!0:e,n=t.verticalFill,i=t.fillOpacity,a=t.x,c=t.y,s=t.width,f=t.height,m=t.verticalPoints;if(!r||!n||!n.length)return null;var x=m.map(function(T){return Math.round(T+a-a)}).sort(function(T,E){return T-E});a!==x[0]&&x.unshift(0);var _=x.map(function(T,E){var C=!x[E+1],N=C?a+s-T:x[E+1]-T;if(N<=0)return null;var L=E%n.length;return Xe.createElement("rect",{key:"react-".concat(E),x:T,y:c,width:N,height:f,stroke:"none",fill:n[L],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return Xe.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},_)}var qAt=function(e,r){var n=e.xAxis,i=e.width,a=e.height,c=e.offset;return ySe(VH(fc(fc(fc({},zS.defaultProps),n),{},{ticks:pm(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),c.left,c.left+c.width,r)},GAt=function(e,r){var n=e.yAxis,i=e.width,a=e.height,c=e.offset;return ySe(VH(fc(fc(fc({},zS.defaultProps),n),{},{ticks:pm(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),c.top,c.top+c.height,r)},zb={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function wTe(t){var e,r,n,i,a,c,s=BH(),f=zH(),m=N2t(),x=fc(fc({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:zb.stroke,fill:(r=t.fill)!==null&&r!==void 0?r:zb.fill,horizontal:(n=t.horizontal)!==null&&n!==void 0?n:zb.horizontal,horizontalFill:(i=t.horizontalFill)!==null&&i!==void 0?i:zb.horizontalFill,vertical:(a=t.vertical)!==null&&a!==void 0?a:zb.vertical,verticalFill:(c=t.verticalFill)!==null&&c!==void 0?c:zb.verticalFill,x:Kr(t.x)?t.x:m.left,y:Kr(t.y)?t.y:m.top,width:Kr(t.width)?t.width:m.width,height:Kr(t.height)?t.height:m.height}),_=x.x,T=x.y,E=x.width,C=x.height,N=x.syncWithTicks,L=x.horizontalValues,M=x.verticalValues,D=I2t(),B=j2t();if(!Kr(E)||E<=0||!Kr(C)||C<=0||!Kr(_)||_!==+_||!Kr(T)||T!==+T)return null;var V=x.verticalCoordinatesGenerator||qAt,G=x.horizontalCoordinatesGenerator||GAt,W=x.horizontalPoints,Z=x.verticalPoints;if((!W||!W.length)&&fi(G)){var Q=L&&L.length,se=G({yAxis:B?fc(fc({},B),{},{ticks:Q?L:B.ticks}):void 0,width:s,height:f,offset:m},Q?!0:N);Xh(Array.isArray(se),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(R_(se),"]")),Array.isArray(se)&&(W=se)}if((!Z||!Z.length)&&fi(V)){var ie=M&&M.length,ue=V({xAxis:D?fc(fc({},D),{},{ticks:ie?M:D.ticks}):void 0,width:s,height:f,offset:m},ie?!0:N);Xh(Array.isArray(ue),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(R_(ue),"]")),Array.isArray(ue)&&(Z=ue)}return Xe.createElement("g",{className:"recharts-cartesian-grid"},Xe.createElement(BAt,{fill:x.fill,fillOpacity:x.fillOpacity,x:x.x,y:x.y,width:x.width,height:x.height,ry:x.ry}),Xe.createElement(zAt,Y0({},x,{offset:m,horizontalPoints:W,xAxis:D,yAxis:B})),Xe.createElement($At,Y0({},x,{offset:m,verticalPoints:Z,xAxis:D,yAxis:B})),Xe.createElement(UAt,Y0({},x,{horizontalPoints:W})),Xe.createElement(VAt,Y0({},x,{verticalPoints:Z})))}wTe.displayName="CartesianGrid";function W1(t){"@babel/helpers - typeof";return W1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},W1(t)}function HAt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function WAt(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Rkt(t,e){if(t==null)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}function Lkt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Dkt(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r0?c:e&&e.length&&Kr(i)&&Kr(a)?e.slice(i,a+1):[]};function MTe(t){return t==="number"?[0,"auto"]:void 0}var D8=function(e,r,n,i){var a=e.graphicalItems,c=e.tooltipAxis,s=t3(r,e);return n<0||!a||!a.length||n>=s.length?null:a.reduce(function(f,m){var x,_=(x=m.props.data)!==null&&x!==void 0?x:r;_&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=n&&(_=_.slice(e.dataStartIndex,e.dataEndIndex+1));var T;if(c.dataKey&&!c.allowDuplicatedCategory){var E=_===void 0?s:_;T=pD(E,c.dataKey,i)}else T=_&&_[n]||s[n];return T?[].concat(Z1(f),[wSe(m,T)]):f},[])},coe=function(e,r,n,i){var a=i||{x:e.chartX,y:e.chartY},c=Wkt(a,n),s=e.orderedTooltipTicks,f=e.tooltipAxis,m=e.tooltipTicks,x=Fvt(c,s,m,f);if(x>=0&&m){var _=m[x]&&m[x].value,T=D8(e,r,x,_),E=Kkt(n,s,x,a);return{activeTooltipIndex:x,activeLabel:_,activePayload:T,activeCoordinate:E}}return null},Ykt=function(e,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,c=r.axisIdKey,s=r.stackGroups,f=r.dataStartIndex,m=r.dataEndIndex,x=e.layout,_=e.children,T=e.stackOffset,E=gSe(x,a);return n.reduce(function(C,N){var L,M=N.type.defaultProps!==void 0?gr(gr({},N.type.defaultProps),N.props):N.props,D=M.type,B=M.dataKey,V=M.allowDataOverflow,G=M.allowDuplicatedCategory,W=M.scale,Z=M.ticks,Q=M.includeHidden,se=M[c];if(C[se])return C;var ie=t3(e.data,{graphicalItems:i.filter(function(Pe){var Ze,at=c in Pe.props?Pe.props[c]:(Ze=Pe.type.defaultProps)===null||Ze===void 0?void 0:Ze[c];return at===se}),dataStartIndex:f,dataEndIndex:m}),ue=ie.length,be,Te,we;bkt(M.domain,V,D)&&(be=ZV(M.domain,null,V),E&&(D==="number"||W!=="auto")&&(we=bA(ie,B,"category")));var Oe=MTe(D);if(!be||be.length===0){var Ae,Se=(Ae=M.domain)!==null&&Ae!==void 0?Ae:Oe;if(B){if(be=bA(ie,B,D),D==="category"&&E){var ge=Cat(be);G&&ge?(Te=be,be=eM(0,ue)):G||(be=Lse(Se,be,N).reduce(function(Pe,Ze){return Pe.indexOf(Ze)>=0?Pe:[].concat(Z1(Pe),[Ze])},[]))}else if(D==="category")G?be=be.filter(function(Pe){return Pe!==""&&!Oi(Pe)}):be=Lse(Se,be,N).reduce(function(Pe,Ze){return Pe.indexOf(Ze)>=0||Ze===""||Oi(Ze)?Pe:[].concat(Z1(Pe),[Ze])},[]);else if(D==="number"){var je=Vvt(ie,i.filter(function(Pe){var Ze,at,lt=c in Pe.props?Pe.props[c]:(Ze=Pe.type.defaultProps)===null||Ze===void 0?void 0:Ze[c],xt="hide"in Pe.props?Pe.props.hide:(at=Pe.type.defaultProps)===null||at===void 0?void 0:at.hide;return lt===se&&(Q||!xt)}),B,a,x);je&&(be=je)}E&&(D==="number"||W!=="auto")&&(we=bA(ie,B,"category"))}else E?be=eM(0,ue):s&&s[se]&&s[se].hasStack&&D==="number"?be=T==="expand"?[0,1]:bSe(s[se].stackGroups,f,m):be=mSe(ie,i.filter(function(Pe){var Ze=c in Pe.props?Pe.props[c]:Pe.type.defaultProps[c],at="hide"in Pe.props?Pe.props.hide:Pe.type.defaultProps.hide;return Ze===se&&(Q||!at)}),D,x,!0);if(D==="number")be=N8(_,be,se,a,Z),Se&&(be=ZV(Se,be,V));else if(D==="category"&&Se){var _e=Se,xe=be.every(function(Pe){return _e.indexOf(Pe)>=0});xe&&(be=_e)}}return gr(gr({},C),{},ti({},se,gr(gr({},M),{},{axisType:a,domain:be,categoricalDomain:we,duplicateDomain:Te,originalDomain:(L=M.domain)!==null&&L!==void 0?L:Oe,isCategorical:E,layout:x})))},{})},Zkt=function(e,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,c=r.axisIdKey,s=r.stackGroups,f=r.dataStartIndex,m=r.dataEndIndex,x=e.layout,_=e.children,T=t3(e.data,{graphicalItems:n,dataStartIndex:f,dataEndIndex:m}),E=T.length,C=gSe(x,a),N=-1;return n.reduce(function(L,M){var D=M.type.defaultProps!==void 0?gr(gr({},M.type.defaultProps),M.props):M.props,B=D[c],V=MTe("number");if(!L[B]){N++;var G;return C?G=eM(0,E):s&&s[B]&&s[B].hasStack?(G=bSe(s[B].stackGroups,f,m),G=N8(_,G,B,a)):(G=ZV(V,mSe(T,n.filter(function(W){var Z,Q,se=c in W.props?W.props[c]:(Z=W.type.defaultProps)===null||Z===void 0?void 0:Z[c],ie="hide"in W.props?W.props.hide:(Q=W.type.defaultProps)===null||Q===void 0?void 0:Q.hide;return se===B&&!ie}),"number",x),i.defaultProps.allowDataOverflow),G=N8(_,G,B,a)),gr(gr({},L),{},ti({},B,gr(gr({axisType:a},i.defaultProps),{},{hide:!0,orientation:rd(Gkt,"".concat(a,".").concat(N%2),null),domain:G,originalDomain:V,isCategorical:C,layout:x})))}return L},{})},Xkt=function(e,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,c=r.graphicalItems,s=r.stackGroups,f=r.dataStartIndex,m=r.dataEndIndex,x=e.children,_="".concat(i,"Id"),T=Hd(x,a),E={};return T&&T.length?E=Ykt(e,{axes:T,graphicalItems:c,axisType:i,axisIdKey:_,stackGroups:s,dataStartIndex:f,dataEndIndex:m}):c&&c.length&&(E=Zkt(e,{Axis:a,graphicalItems:c,axisType:i,axisIdKey:_,stackGroups:s,dataStartIndex:f,dataEndIndex:m})),E},Qkt=function(e){var r=ry(e),n=pm(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:oH(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:UD(r,n)}},uoe=function(e){var r=e.children,n=e.defaultShowTooltip,i=Hu(r,$1),a=0,c=0;return e.data&&e.data.length!==0&&(c=e.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(c=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:c,activeTooltipIndex:-1,isTooltipActive:!!n}},Jkt=function(e){return!e||!e.length?!1:e.some(function(r){var n=_m(r&&r.type);return n&&n.indexOf("Bar")>=0})},doe=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},eCt=function(e,r){var n=e.props,i=e.graphicalItems,a=e.xAxisMap,c=a===void 0?{}:a,s=e.yAxisMap,f=s===void 0?{}:s,m=n.width,x=n.height,_=n.children,T=n.margin||{},E=Hu(_,$1),C=Hu(_,Dw),N=Object.keys(f).reduce(function(G,W){var Z=f[W],Q=Z.orientation;return!Z.mirror&&!Z.hide?gr(gr({},G),{},ti({},Q,G[Q]+Z.width)):G},{left:T.left||0,right:T.right||0}),L=Object.keys(c).reduce(function(G,W){var Z=c[W],Q=Z.orientation;return!Z.mirror&&!Z.hide?gr(gr({},G),{},ti({},Q,rd(G,"".concat(Q))+Z.height)):G},{top:T.top||0,bottom:T.bottom||0}),M=gr(gr({},L),N),D=M.bottom;E&&(M.bottom+=E.props.height||$1.defaultProps.height),C&&r&&(M=$vt(M,i,n,r));var B=m-M.left-M.right,V=x-M.top-M.bottom;return gr(gr({brushBottom:D},M),{},{width:Math.max(B,0),height:Math.max(V,0)})},tCt=function(e,r){if(r==="xAxis")return e[r].width;if(r==="yAxis")return e[r].height},OTe=function(e){var r=e.chartName,n=e.GraphicalChild,i=e.defaultTooltipEventType,a=i===void 0?"axis":i,c=e.validateTooltipEventTypes,s=c===void 0?["axis"]:c,f=e.axisComponents,m=e.legendContent,x=e.formatAxisMap,_=e.defaultProps,T=function(M,D){var B=D.graphicalItems,V=D.stackGroups,G=D.offset,W=D.updateId,Z=D.dataStartIndex,Q=D.dataEndIndex,se=M.barSize,ie=M.layout,ue=M.barGap,be=M.barCategoryGap,Te=M.maxBarSize,we=doe(ie),Oe=we.numericAxisName,Ae=we.cateAxisName,Se=Jkt(B),ge=[];return B.forEach(function(je,_e){var xe=t3(M.data,{graphicalItems:[je],dataStartIndex:Z,dataEndIndex:Q}),Pe=je.type.defaultProps!==void 0?gr(gr({},je.type.defaultProps),je.props):je.props,Ze=Pe.dataKey,at=Pe.maxBarSize,lt=Pe["".concat(Oe,"Id")],xt=Pe["".concat(Ae,"Id")],St={},Xt=f.reduce(function(Tt,Dt){var cr=D["".concat(Dt.axisType,"Map")],lr=Pe["".concat(Dt.axisType,"Id")];cr&&cr[lr]||Dt.axisType==="zAxis"||N_();var ur=cr[lr];return gr(gr({},Tt),{},ti(ti({},Dt.axisType,ur),"".concat(Dt.axisType,"Ticks"),pm(ur)))},St),_t=Xt[Ae],Rt=Xt["".concat(Ae,"Ticks")],er=V&&V[lt]&&V[lt].hasStack&&Qvt(je,V[lt].stackGroups),vt=_m(je.type).indexOf("Bar")>=0,xr=UD(_t,Rt),_r=[],tn=Se&&Bvt({barSize:se,stackGroups:V,totalSize:tCt(Xt,Ae)});if(vt){var or,Sr,jr=Oi(at)?Te:at,Qt=(or=(Sr=UD(_t,Rt,!0))!==null&&Sr!==void 0?Sr:jr)!==null&&or!==void 0?or:0;_r=zvt({barGap:ue,barCategoryGap:be,bandSize:Qt!==xr?Qt:xr,sizeList:tn[xt],maxBarSize:jr}),Qt!==xr&&(_r=_r.map(function(Tt){return gr(gr({},Tt),{},{position:gr(gr({},Tt.position),{},{offset:Tt.position.offset-Qt/2})})}))}var Je=je&&je.type&&je.type.getComposedData;Je&&ge.push({props:gr(gr({},Je(gr(gr({},Xt),{},{displayedData:xe,props:M,dataKey:Ze,item:je,bandSize:xr,barPosition:_r,offset:G,stackedData:er,layout:ie,dataStartIndex:Z,dataEndIndex:Q}))),{},ti(ti(ti({key:je.key||"item-".concat(_e)},Oe,Xt[Oe]),Ae,Xt[Ae]),"animationId",W)),childIndex:zat(je,M.children),item:je})}),ge},E=function(M,D){var B=M.props,V=M.dataStartIndex,G=M.dataEndIndex,W=M.updateId;if(!Cne({props:B}))return null;var Z=B.children,Q=B.layout,se=B.stackOffset,ie=B.data,ue=B.reverseStackOrder,be=doe(Q),Te=be.numericAxisName,we=be.cateAxisName,Oe=Hd(Z,n),Ae=Zvt(ie,Oe,"".concat(Te,"Id"),"".concat(we,"Id"),se,ue),Se=f.reduce(function(Pe,Ze){var at="".concat(Ze.axisType,"Map");return gr(gr({},Pe),{},ti({},at,Xkt(B,gr(gr({},Ze),{},{graphicalItems:Oe,stackGroups:Ze.axisType===Te&&Ae,dataStartIndex:V,dataEndIndex:G}))))},{}),ge=eCt(gr(gr({},Se),{},{props:B,graphicalItems:Oe}),D==null?void 0:D.legendBBox);Object.keys(Se).forEach(function(Pe){Se[Pe]=x(B,Se[Pe],ge,Pe.replace("Map",""),r)});var je=Se["".concat(we,"Map")],_e=Qkt(je),xe=T(B,gr(gr({},Se),{},{dataStartIndex:V,dataEndIndex:G,updateId:W,graphicalItems:Oe,stackGroups:Ae,offset:ge}));return gr(gr({formattedGraphicalItems:xe,graphicalItems:Oe,offset:ge,stackGroups:Ae},_e),Se)},C=function(L){function M(D){var B,V,G;return Lkt(this,M),G=Okt(this,M,[D]),ti(G,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),ti(G,"accessibilityManager",new vkt),ti(G,"handleLegendBBoxUpdate",function(W){if(W){var Z=G.state,Q=Z.dataStartIndex,se=Z.dataEndIndex,ie=Z.updateId;G.setState(gr({legendBBox:W},E({props:G.props,dataStartIndex:Q,dataEndIndex:se,updateId:ie},gr(gr({},G.state),{},{legendBBox:W}))))}}),ti(G,"handleReceiveSyncEvent",function(W,Z,Q){if(G.props.syncId===W){if(Q===G.eventEmitterSymbol&&typeof G.props.syncMethod!="function")return;G.applySyncEvent(Z)}}),ti(G,"handleBrushChange",function(W){var Z=W.startIndex,Q=W.endIndex;if(Z!==G.state.dataStartIndex||Q!==G.state.dataEndIndex){var se=G.state.updateId;G.setState(function(){return gr({dataStartIndex:Z,dataEndIndex:Q},E({props:G.props,dataStartIndex:Z,dataEndIndex:Q,updateId:se},G.state))}),G.triggerSyncEvent({dataStartIndex:Z,dataEndIndex:Q})}}),ti(G,"handleMouseEnter",function(W){var Z=G.getMouseInfo(W);if(Z){var Q=gr(gr({},Z),{},{isTooltipActive:!0});G.setState(Q),G.triggerSyncEvent(Q);var se=G.props.onMouseEnter;fi(se)&&se(Q,W)}}),ti(G,"triggeredAfterMouseMove",function(W){var Z=G.getMouseInfo(W),Q=Z?gr(gr({},Z),{},{isTooltipActive:!0}):{isTooltipActive:!1};G.setState(Q),G.triggerSyncEvent(Q);var se=G.props.onMouseMove;fi(se)&&se(Q,W)}),ti(G,"handleItemMouseEnter",function(W){G.setState(function(){return{isTooltipActive:!0,activeItem:W,activePayload:W.tooltipPayload,activeCoordinate:W.tooltipPosition||{x:W.cx,y:W.cy}}})}),ti(G,"handleItemMouseLeave",function(){G.setState(function(){return{isTooltipActive:!1}})}),ti(G,"handleMouseMove",function(W){W.persist(),G.throttleTriggeredAfterMouseMove(W)}),ti(G,"handleMouseLeave",function(W){G.throttleTriggeredAfterMouseMove.cancel();var Z={isTooltipActive:!1};G.setState(Z),G.triggerSyncEvent(Z);var Q=G.props.onMouseLeave;fi(Q)&&Q(Z,W)}),ti(G,"handleOuterEvent",function(W){var Z=Bat(W),Q=rd(G.props,"".concat(Z));if(Z&&fi(Q)){var se,ie;/.*touch.*/i.test(Z)?ie=G.getMouseInfo(W.changedTouches[0]):ie=G.getMouseInfo(W),Q((se=ie)!==null&&se!==void 0?se:{},W)}}),ti(G,"handleClick",function(W){var Z=G.getMouseInfo(W);if(Z){var Q=gr(gr({},Z),{},{isTooltipActive:!0});G.setState(Q),G.triggerSyncEvent(Q);var se=G.props.onClick;fi(se)&&se(Q,W)}}),ti(G,"handleMouseDown",function(W){var Z=G.props.onMouseDown;if(fi(Z)){var Q=G.getMouseInfo(W);Z(Q,W)}}),ti(G,"handleMouseUp",function(W){var Z=G.props.onMouseUp;if(fi(Z)){var Q=G.getMouseInfo(W);Z(Q,W)}}),ti(G,"handleTouchMove",function(W){W.changedTouches!=null&&W.changedTouches.length>0&&G.throttleTriggeredAfterMouseMove(W.changedTouches[0])}),ti(G,"handleTouchStart",function(W){W.changedTouches!=null&&W.changedTouches.length>0&&G.handleMouseDown(W.changedTouches[0])}),ti(G,"handleTouchEnd",function(W){W.changedTouches!=null&&W.changedTouches.length>0&&G.handleMouseUp(W.changedTouches[0])}),ti(G,"handleDoubleClick",function(W){var Z=G.props.onDoubleClick;if(fi(Z)){var Q=G.getMouseInfo(W);Z(Q,W)}}),ti(G,"handleContextMenu",function(W){var Z=G.props.onContextMenu;if(fi(Z)){var Q=G.getMouseInfo(W);Z(Q,W)}}),ti(G,"triggerSyncEvent",function(W){G.props.syncId!==void 0&&Lz.emit(Dz,G.props.syncId,W,G.eventEmitterSymbol)}),ti(G,"applySyncEvent",function(W){var Z=G.props,Q=Z.layout,se=Z.syncMethod,ie=G.state.updateId,ue=W.dataStartIndex,be=W.dataEndIndex;if(W.dataStartIndex!==void 0||W.dataEndIndex!==void 0)G.setState(gr({dataStartIndex:ue,dataEndIndex:be},E({props:G.props,dataStartIndex:ue,dataEndIndex:be,updateId:ie},G.state)));else if(W.activeTooltipIndex!==void 0){var Te=W.chartX,we=W.chartY,Oe=W.activeTooltipIndex,Ae=G.state,Se=Ae.offset,ge=Ae.tooltipTicks;if(!Se)return;if(typeof se=="function")Oe=se(ge,W);else if(se==="value"){Oe=-1;for(var je=0;je=0){var er,vt;if(Te.dataKey&&!Te.allowDuplicatedCategory){var xr=typeof Te.dataKey=="function"?Rt:"payload.".concat(Te.dataKey.toString());er=pD(je,xr,Oe),vt=_e&&xe&&pD(xe,xr,Oe)}else er=je==null?void 0:je[we],vt=_e&&xe&&xe[we];if(xt||lt){var _r=W.props.activeIndex!==void 0?W.props.activeIndex:we;return[P.cloneElement(W,gr(gr(gr({},se.props),Xt),{},{activeIndex:_r})),null,null]}if(!Oi(er))return[_t].concat(Z1(G.renderActivePoints({item:se,activePoint:er,basePoint:vt,childIndex:we,isRange:_e})))}else{var tn,or=(tn=G.getItemByXY(G.state.activeCoordinate))!==null&&tn!==void 0?tn:{graphicalItem:_t},Sr=or.graphicalItem,jr=Sr.item,Qt=jr===void 0?W:jr,Je=Sr.childIndex,Tt=gr(gr(gr({},se.props),Xt),{},{activeIndex:Je});return[P.cloneElement(Qt,Tt),null,null]}return _e?[_t,null,null]:[_t,null]}),ti(G,"renderCustomized",function(W,Z,Q){return P.cloneElement(W,gr(gr({key:"recharts-customized-".concat(Q)},G.props),G.state))}),ti(G,"renderMap",{CartesianGrid:{handler:MN,once:!0},ReferenceArea:{handler:G.renderReferenceElement},ReferenceLine:{handler:MN},ReferenceDot:{handler:G.renderReferenceElement},XAxis:{handler:MN},YAxis:{handler:MN},Brush:{handler:G.renderBrush,once:!0},Bar:{handler:G.renderGraphicChild},Line:{handler:G.renderGraphicChild},Area:{handler:G.renderGraphicChild},Radar:{handler:G.renderGraphicChild},RadialBar:{handler:G.renderGraphicChild},Scatter:{handler:G.renderGraphicChild},Pie:{handler:G.renderGraphicChild},Funnel:{handler:G.renderGraphicChild},Tooltip:{handler:G.renderCursor,once:!0},PolarGrid:{handler:G.renderPolarGrid,once:!0},PolarAngleAxis:{handler:G.renderPolarAxis},PolarRadiusAxis:{handler:G.renderPolarAxis},Customized:{handler:G.renderCustomized}}),G.clipPathId="".concat((B=D.id)!==null&&B!==void 0?B:JC("recharts"),"-clip"),G.throttleTriggeredAfterMouseMove=h1e(G.triggeredAfterMouseMove,(V=D.throttleDelay)!==null&&V!==void 0?V:1e3/60),G.state={},G}return zkt(M,L),Mkt(M,[{key:"componentDidMount",value:function(){var B,V;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(B=this.props.margin.left)!==null&&B!==void 0?B:0,top:(V=this.props.margin.top)!==null&&V!==void 0?V:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var B=this.props,V=B.children,G=B.data,W=B.height,Z=B.layout,Q=Hu(V,Oh);if(Q){var se=Q.props.defaultIndex;if(!(typeof se!="number"||se<0||se>this.state.tooltipTicks.length-1)){var ie=this.state.tooltipTicks[se]&&this.state.tooltipTicks[se].value,ue=D8(this.state,G,se,ie),be=this.state.tooltipTicks[se].coordinate,Te=(this.state.offset.top+W)/2,we=Z==="horizontal",Oe=we?{x:be,y:Te}:{y:be,x:Te},Ae=this.state.formattedGraphicalItems.find(function(ge){var je=ge.item;return je.type.name==="Scatter"});Ae&&(Oe=gr(gr({},Oe),Ae.props.points[se].tooltipPosition),ue=Ae.props.points[se].tooltipPayload);var Se={activeTooltipIndex:se,isTooltipActive:!0,activeLabel:ie,activePayload:ue,activeCoordinate:Oe};this.setState(Se),this.renderCursor(Q),this.accessibilityManager.setIndex(se)}}}},{key:"getSnapshotBeforeUpdate",value:function(B,V){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==V.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==B.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==B.margin){var G,W;this.accessibilityManager.setDetails({offset:{left:(G=this.props.margin.left)!==null&&G!==void 0?G:0,top:(W=this.props.margin.top)!==null&&W!==void 0?W:0}})}return null}},{key:"componentDidUpdate",value:function(B){uV([Hu(B.children,Oh)],[Hu(this.props.children,Oh)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var B=Hu(this.props.children,Oh);if(B&&typeof B.props.shared=="boolean"){var V=B.props.shared?"axis":"item";return s.indexOf(V)>=0?V:a}return a}},{key:"getMouseInfo",value:function(B){if(!this.container)return null;var V=this.container,G=V.getBoundingClientRect(),W=hyt(G),Z={chartX:Math.round(B.pageX-W.left),chartY:Math.round(B.pageY-W.top)},Q=G.width/V.offsetWidth||1,se=this.inRange(Z.chartX,Z.chartY,Q);if(!se)return null;var ie=this.state,ue=ie.xAxisMap,be=ie.yAxisMap,Te=this.getTooltipEventType(),we=coe(this.state,this.props.data,this.props.layout,se);if(Te!=="axis"&&ue&&be){var Oe=ry(ue).scale,Ae=ry(be).scale,Se=Oe&&Oe.invert?Oe.invert(Z.chartX):null,ge=Ae&&Ae.invert?Ae.invert(Z.chartY):null;return gr(gr({},Z),{},{xValue:Se,yValue:ge},we)}return we?gr(gr({},Z),we):null}},{key:"inRange",value:function(B,V){var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,W=this.props.layout,Z=B/G,Q=V/G;if(W==="horizontal"||W==="vertical"){var se=this.state.offset,ie=Z>=se.left&&Z<=se.left+se.width&&Q>=se.top&&Q<=se.top+se.height;return ie?{x:Z,y:Q}:null}var ue=this.state,be=ue.angleAxisMap,Te=ue.radiusAxisMap;if(be&&Te){var we=ry(be);return Ose({x:Z,y:Q},we)}return null}},{key:"parseEventsOfWrapper",value:function(){var B=this.props.children,V=this.getTooltipEventType(),G=Hu(B,Oh),W={};G&&V==="axis"&&(G.props.trigger==="click"?W={onClick:this.handleClick}:W={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var Z=mD(this.props,this.handleOuterEvent);return gr(gr({},Z),W)}},{key:"addListener",value:function(){Lz.on(Dz,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Lz.removeListener(Dz,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(B,V,G){for(var W=this.state.formattedGraphicalItems,Z=0,Q=W.length;Z");return t}const zTe=P.forwardRef(({id:t,className:e,children:r,config:n,...i},a)=>{const c=P.useId(),s=`chart-${t||c.replace(/:/g,"")}`;return o.jsx(FTe.Provider,{value:{config:n},children:o.jsxs("div",{"data-chart":s,ref:a,className:ir("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",e),...i,children:[o.jsx(sCt,{id:s,config:n}),o.jsx(RV,{children:r})]})})});zTe.displayName="Chart";const sCt=({id:t,config:e})=>{const r=Object.entries(e).filter(([n,i])=>i.theme||i.color);return r.length?o.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(iCt).map(([n,i])=>` ${i} [data-chart=${t}] { ${r.map(([a,c])=>{var f;const s=((f=c.theme)==null?void 0:f[n])||c.color;return s?` --color-${a}: ${s};`:null}).join(` `)} } `).join(` `)}}):null},$Te=P.forwardRef(({active:t,payload:e,className:r,indicator:n="dot",hideLabel:i=!1,hideIndicator:a=!1,label:c,labelFormatter:s,labelClassName:f,formatter:m,color:x,nameKey:_,labelKey:T},E)=>{const{config:C}=BTe(),N=P.useMemo(()=>{var G;if(i||!(e!=null&&e.length))return null;const[M]=e,D=`${T||M.dataKey||M.name||"value"}`,B=M8(C,M,D),V=!T&&typeof c=="string"?((G=C[c])==null?void 0:G.label)||c:B==null?void 0:B.label;return s?o.jsx("div",{className:ir("font-medium",f),children:s(V,e)}):V?o.jsx("div",{className:ir("font-medium",f),children:V}):null},[c,s,e,i,f,C,T]);if(!t||!(e!=null&&e.length))return null;const L=e.length===1&&n!=="dot";return o.jsxs("div",{ref:E,className:ir("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",r),children:[L?null:N,o.jsx("div",{className:"grid gap-1.5",children:e.map((M,D)=>{const B=`${_||M.name||M.dataKey||"value"}`,V=M8(C,M,B),G=x||M.payload.fill||M.color;return o.jsx("div",{className:ir("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",n==="dot"&&"items-center"),children:m&&(M==null?void 0:M.value)!==void 0&&M.name?m(M.value,M.name,M,D,M.payload):o.jsxs(o.Fragment,{children:[V!=null&&V.icon?o.jsx(V.icon,{}):!a&&o.jsx("div",{className:ir("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":n==="dot","w-1":n==="line","w-0 border-[1.5px] border-dashed bg-transparent":n==="dashed","my-0.5":L&&n==="dashed"}),style:{"--color-bg":G,"--color-border":G}}),o.jsxs("div",{className:ir("flex flex-1 justify-between leading-none",L?"items-end":"items-center"),children:[o.jsxs("div",{className:"grid gap-1.5",children:[L?N:null,o.jsx("span",{className:"text-muted-foreground",children:(V==null?void 0:V.label)||M.name})]}),M.value&&o.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:M.value.toLocaleString()})]})]})},M.dataKey)})})]})});$Te.displayName="ChartTooltip";const aCt=P.forwardRef(({className:t,hideIcon:e=!1,payload:r,verticalAlign:n="bottom",nameKey:i},a)=>{const{config:c}=BTe();return r!=null&&r.length?o.jsx("div",{ref:a,className:ir("flex items-center justify-center gap-4",n==="top"?"pb-3":"pt-3",t),children:r.map(s=>{const f=`${i||s.dataKey||"value"}`,m=M8(c,s,f);return o.jsxs("div",{className:ir("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[m!=null&&m.icon&&!e?o.jsx(m.icon,{}):o.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:s.color}}),m==null?void 0:m.label]},s.value)})}):null});aCt.displayName="ChartLegend";function M8(t,e,r){if(typeof e!="object"||e===null)return;const n="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0;let i=r;return r in e&&typeof e[r]=="string"?i=e[r]:n&&r in n&&typeof n[r]=="string"&&(i=n[r]),i in t?t[i]:t[r]}const ON=["hsl(var(--primary))","hsl(var(--secondary))","hsl(210, 70%, 50%)","hsl(170, 60%, 45%)","hsl(280, 60%, 55%)","hsl(30, 70%, 50%)","hsl(340, 65%, 55%)","hsl(200, 65%, 50%)"];function UTe({stats:t,year:e}){const r=t.transactionsByMonth.some(i=>i.count>0),n=t.leadSourceBreakdown.length>0;return!r&&!n?o.jsx(qn,{children:o.jsx(ri,{className:"py-12 text-center text-muted-foreground",children:"Add transactions to see your performance charts"})}):o.jsxs("div",{className:"grid gap-6",children:[r&&o.jsxs(qn,{className:"overflow-hidden",children:[o.jsx(Qu,{children:o.jsx(Ju,{className:"text-base",children:"Transactions by Month"})}),o.jsx(ri,{className:"overflow-hidden",children:o.jsx(zTe,{config:{count:{label:"Transactions",color:"hsl(var(--primary))"}},className:"h-[250px]",children:o.jsx(RV,{width:"100%",height:"100%",children:o.jsxs(rCt,{data:t.transactionsByMonth,margin:{top:5,right:10,left:0,bottom:5},children:[o.jsx(wTe,{strokeDasharray:"3 3",className:"stroke-muted"}),o.jsx(JF,{dataKey:"month",tick:{fontSize:11},className:"fill-muted-foreground",interval:0}),o.jsx(e3,{allowDecimals:!1,tick:{fontSize:12},className:"fill-muted-foreground",width:30}),o.jsx(Oh,{content:o.jsx($Te,{})}),o.jsx(W_,{dataKey:"count",fill:"hsl(var(--primary))",radius:[4,4,0,0],name:"Transactions"})]})})})})]}),n&&o.jsxs(qn,{children:[o.jsx(Qu,{children:o.jsx(Ju,{className:"text-base",children:"Lead Sources"})}),o.jsxs(ri,{children:[o.jsx("div",{className:"h-[250px]",children:o.jsx(RV,{width:"100%",height:"100%",children:o.jsxs(nCt,{children:[o.jsx(Gm,{data:t.leadSourceBreakdown,dataKey:"count",nameKey:"name",cx:"50%",cy:"50%",outerRadius:80,label:({name:i,percent:a})=>a>.05?`${i} (${(a*100).toFixed(0)}%)`:"",labelLine:!1,children:t.leadSourceBreakdown.map((i,a)=>o.jsx(CF,{fill:ON[a%ON.length]},`cell-${a}`))}),o.jsx(Oh,{formatter:(i,a)=>[`${i} deals`,a]})]})})}),o.jsx("div",{className:"flex flex-wrap gap-2 mt-2 justify-center",children:t.leadSourceBreakdown.slice(0,6).map((i,a)=>o.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[o.jsx("div",{className:"w-3 h-3 rounded-sm",style:{backgroundColor:ON[a%ON.length]}}),o.jsx("span",{className:"text-muted-foreground",children:i.name})]},i.name))})]})]})]})}const oCt=nS("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),VTe=P.forwardRef(({className:t,variant:e,...r},n)=>o.jsx("div",{ref:n,role:"alert",className:ir(oCt({variant:e}),t),...r}));VTe.displayName="Alert";const lCt=P.forwardRef(({className:t,...e},r)=>o.jsx("h5",{ref:r,className:ir("mb-1 font-medium leading-none tracking-tight",t),...e}));lCt.displayName="AlertTitle";const qTe=P.forwardRef(({className:t,...e},r)=>o.jsx("div",{ref:r,className:ir("text-sm [&_p]:leading-relaxed",t),...e}));qTe.displayName="AlertDescription";function cCt(t){if(!t||!t.trim())return null;const e=t.trim(),r=["yyyy-MM-dd","M/d/yyyy","MM/dd/yyyy","M-d-yyyy","MM-dd-yyyy","MM/dd/yy","M/d/yy"];for(const n of r)try{const i=dHe(e,n,new Date);if(S6(i))return Di(i,"yyyy-MM-dd")}catch{}try{const n=new Date(e);if(S6(n))return Di(n,"yyyy-MM-dd")}catch{}return null}const uCt=["property_address","city","state","zip","transaction_type","close_date","sale_price","commission_amount","lead_source","client_type","is_win","notes"];function dCt({open:t,onOpenChange:e}){const[r,n]=P.useState([]),[i,a]=P.useState(!1),[c,s]=P.useState(0),{data:f}=I7(),{data:m}=L7(),x=j7(),_=()=>{const M=uCt.join(","),D=["123 Main St","Dallas","TX","75001","buyer","2024-06-15","450000","13500","Referral","Past Client","yes","Great transaction!"].join(","),B=`${M} ${D}`,V=new Blob([B],{type:"text/csv"}),G=URL.createObjectURL(V),W=document.createElement("a");W.href=G,W.download="transaction-import-template.csv",W.click(),URL.revokeObjectURL(G)},T=M=>{const D=M.split(` `).filter(V=>V.trim());if(D.length<2)return[];const B=D[0].split(",").map(V=>V.trim().toLowerCase().replace(/['"]/g,""));return D.slice(1).map((V,G)=>{var Se,ge,je,_e;const W=[];let Z="",Q=!1;for(const xe of V)xe==='"'?Q=!Q:xe===","&&!Q?(W.push(Z.trim()),Z=""):Z+=xe;W.push(Z.trim());const se=xe=>{var Ze;const Pe=B.indexOf(xe);return Pe>=0?(Ze=W[Pe])==null?void 0:Ze.replace(/^["']|["']$/g,"").trim():""},ie=(Se=se("transaction_type"))==null?void 0:Se.toLowerCase(),ue=(ge=se("sale_price"))==null?void 0:ge.replace(/[$,]/g,""),be=(je=se("commission_amount"))==null?void 0:je.replace(/[$,]/g,""),Te=(_e=se("is_win"))==null?void 0:_e.toLowerCase(),we=se("close_date"),Oe=cCt(we);let Ae;return se("property_address")?["buyer","seller"].includes(ie)?Oe?(!ue||isNaN(Number(ue)))&&(Ae="Invalid sale price"):Ae=`Invalid date format: "${we}" - use MM/DD/YYYY or YYYY-MM-DD`:Ae='Transaction type must be "buyer" or "seller"':Ae="Missing property address",{property_address:se("property_address"),city:se("city"),state:se("state"),zip:se("zip"),transaction_type:ie==="seller"?"seller":"buyer",close_date:Oe||"",sale_price:Number(ue)||0,commission_amount:be?Number(be):null,lead_source_name:se("lead_source"),client_type_name:se("client_type"),is_win:["yes","true","1"].includes(Te),notes:se("notes"),error:Ae}})},E=M=>{var V;const D=(V=M.target.files)==null?void 0:V[0];if(!D)return;const B=new FileReader;B.onload=G=>{var Q;const W=(Q=G.target)==null?void 0:Q.result,Z=T(W);n(Z)},B.readAsText(D)},C=async()=>{const M=r.filter(V=>!V.error);if(M.length===0){Jt.error("No valid transactions to import");return}a(!0),s(0);let D=0,B=0;for(let V=0;VQ.name.toLowerCase()===G.lead_source_name.toLowerCase()),Z=m==null?void 0:m.find(Q=>Q.name.toLowerCase()===G.client_type_name.toLowerCase());await x.mutateAsync({property_address:G.property_address,city:G.city||null,state:G.state||null,zip:G.zip||null,transaction_type:G.transaction_type,close_date:G.close_date,sale_price:G.sale_price,commission_amount:G.commission_amount,lead_source_id:(W==null?void 0:W.id)||null,client_type_id:(Z==null?void 0:Z.id)||null,contact_id:null,notes:G.notes||null,is_win:G.is_win}),D++}catch(W){B++,console.error("Failed to import transaction:",W)}s(Math.round((V+1)/M.length*100))}a(!1),D>0&&Jt.success(`Imported ${D} transaction${D>1?"s":""}`),B>0&&Jt.error(`Failed to import ${B} transaction${B>1?"s":""}`),n([]),e(!1)},N=r.filter(M=>!M.error).length,L=r.filter(M=>M.error).length;return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"max-w-2xl max-h-[90vh]",children:[o.jsxs(cl,{children:[o.jsx(qo,{children:"Import Transactions"}),o.jsx(ad,{children:"Upload a CSV file with your past transactions"})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between p-3 border rounded-lg bg-muted/50",children:[o.jsxs("div",{children:[o.jsx("p",{className:"font-medium",children:"Download Template"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"Get a CSV template with the correct format"})]}),o.jsxs(Kt,{variant:"outline",onClick:_,children:[o.jsx(Zl,{className:"h-4 w-4 mr-2"}),"Template"]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx(Fr,{htmlFor:"csv-file",children:"Upload CSV File"}),o.jsx(Hr,{id:"csv-file",type:"file",accept:".csv",onChange:E})]}),r.length>0&&o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(hs,{variant:"outline",children:[r.length," rows found"]}),N>0&&o.jsxs(hs,{className:"bg-green-500 text-white",children:[o.jsx(Ao,{className:"h-3 w-3 mr-1"}),N," valid"]}),L>0&&o.jsxs(hs,{variant:"destructive",children:[o.jsx(Phe,{className:"h-3 w-3 mr-1"}),L," errors"]})]}),o.jsx(pp,{className:"h-[200px] border rounded-lg",children:o.jsxs("div",{className:"p-2 space-y-2",children:[r.slice(0,10).map((M,D)=>o.jsxs("div",{className:`p-2 rounded text-sm ${M.error?"bg-destructive/10":"bg-muted/50"}`,children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"font-medium",children:M.property_address||"(no address)"}),o.jsx(hs,{variant:M.transaction_type==="buyer"?"default":"secondary",children:M.transaction_type})]}),o.jsxs("div",{className:"text-muted-foreground",children:[M.close_date," • $",M.sale_price.toLocaleString()]}),M.error&&o.jsx(VTe,{variant:"destructive",className:"mt-1 py-1",children:o.jsx(qTe,{className:"text-xs",children:M.error})})]},D)),r.length>10&&o.jsxs("p",{className:"text-center text-sm text-muted-foreground",children:["...and ",r.length-10," more"]})]})}),i&&o.jsxs("div",{className:"space-y-2",children:[o.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:o.jsx("div",{className:"bg-primary h-2 rounded-full transition-all",style:{width:`${c}%`}})}),o.jsxs("p",{className:"text-sm text-center text-muted-foreground",children:["Importing... ",c,"%"]})]})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[o.jsx(Kt,{variant:"outline",onClick:()=>e(!1),children:"Cancel"}),o.jsxs(Kt,{onClick:C,disabled:N===0||i,children:[o.jsx(SU,{className:"h-4 w-4 mr-2"}),"Import ",N," Transaction",N!==1?"s":""]})]})]})]})})}const hCt=bS({transactions_goal:hA().min(0).optional(),volume_goal:hA().min(0).optional(),gci_goal:hA().min(0).optional()});function fCt({open:t,onOpenChange:e,year:r,existingGoals:n}){const i=grt(),{data:a}=iF(),c=(a==null?void 0:a.show_commission)??!0,s=y9({resolver:x9(hCt),defaultValues:{transactions_goal:void 0,volume_goal:void 0,gci_goal:void 0}});P.useEffect(()=>{n?s.reset({transactions_goal:n.transactions_goal??void 0,volume_goal:n.volume_goal?Number(n.volume_goal):void 0,gci_goal:n.gci_goal?Number(n.gci_goal):void 0}):s.reset({transactions_goal:void 0,volume_goal:void 0,gci_goal:void 0})},[n,s,t]);const f=async m=>{await i.mutateAsync({year:r,transactions_goal:m.transactions_goal??null,volume_goal:m.volume_goal??null,gci_goal:c?m.gci_goal??null:null}),e(!1)};return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"max-w-md",children:[o.jsxs(cl,{children:[o.jsxs(qo,{children:[r," Goals"]}),o.jsx(ad,{children:"Set your annual targets to track your progress throughout the year."})]}),o.jsx(C9,{...s,children:o.jsxs("form",{onSubmit:s.handleSubmit(f),className:"space-y-4",children:[o.jsx(tl,{control:s.control,name:"transactions_goal",render:({field:m})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Transactions Goal"}),o.jsx(zo,{children:o.jsx(Hr,{type:"number",placeholder:"e.g., 24",...m,value:m.value??"",onChange:x=>m.onChange(x.target.value?Number(x.target.value):void 0)})}),o.jsx(ER,{children:"Total number of deals you want to close"}),o.jsx(Gh,{})]})}),o.jsx(tl,{control:s.control,name:"volume_goal",render:({field:m})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"Volume Goal ($)"}),o.jsx(zo,{children:o.jsx(Hr,{type:"number",placeholder:"e.g., 5000000",...m,value:m.value??"",onChange:x=>m.onChange(x.target.value?Number(x.target.value):void 0)})}),o.jsx(ER,{children:"Total sales volume you want to achieve"}),o.jsx(Gh,{})]})}),c&&o.jsx(tl,{control:s.control,name:"gci_goal",render:({field:m})=>o.jsxs(Fo,{children:[o.jsx(Bo,{children:"GCI Goal ($)"}),o.jsx(zo,{children:o.jsx(Hr,{type:"number",placeholder:"e.g., 150000",...m,value:m.value??"",onChange:x=>m.onChange(x.target.value?Number(x.target.value):void 0)})}),o.jsx(ER,{children:"Gross commission income target"}),o.jsx(Gh,{})]})}),o.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[o.jsx(Kt,{type:"button",variant:"outline",onClick:()=>e(!1),children:"Cancel"}),o.jsx(Kt,{type:"submit",disabled:i.isPending,children:"Save Goals"})]})]})})]})})}function GTe({transactions:t,isLoading:e}){const r=P.useRef(null),n=P.useRef(null),i=P.useRef([]),a=P.useRef(null),{isAdmin:c}=$n(),[s,f]=P.useState(""),[m,x]=P.useState(!0),[_,T]=P.useState(0),[E,C]=P.useState(!1),N=t.filter(M=>M.latitude!=null&&M.longitude!=null),L=t.filter(M=>M.latitude==null||M.longitude==null);return P.useEffect(()=>{(async()=>{x(!0);try{const{data:D}=await De.from("settings").select("value").eq("key","mapbox_public_token").maybeSingle();D!=null&&D.value&&f(D.value)}catch(D){console.error("Error fetching mapbox token:",D)}x(!1)})()},[]),P.useEffect(()=>{if(!s||L.length===0||E)return;(async()=>{var B;C(!0);let D=0;for(const V of L){const G=[V.property_address,V.city,V.state,V.zip].filter(Boolean).join(", ");if(G)try{const Z=await(await fetch(`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(G)}.json?access_token=${s}&limit=1`)).json();if((B=Z.features)!=null&&B[0]){const[Q,se]=Z.features[0].center;await De.from("scorecard_transactions").update({latitude:se,longitude:Q}).eq("id",V.id),V.latitude=se,V.longitude=Q,D++}}catch(W){console.error("Geocode error:",W)}}T(D),C(!1)})()},[s,t]),P.useEffect(()=>{if(!r.current||!s||n.current)return;Md.accessToken=s;const M=t.filter(V=>V.latitude!=null&&V.longitude!=null);let D=[-98.5795,39.8283],B=4;if(M.length>0){const V=M.reduce((W,Z)=>W+Z.longitude,0)/M.length,G=M.reduce((W,Z)=>W+Z.latitude,0)/M.length;D=[V,G],B=M.length===1?12:10}return n.current=new Md.Map({container:r.current,style:"mapbox://styles/mapbox/light-v11",zoom:B,center:D}),n.current.addControl(new Md.NavigationControl,"top-right"),()=>{var V;(V=n.current)==null||V.remove(),n.current=null}},[s]),P.useEffect(()=>{var D;if(!n.current||!s)return;i.current.forEach(B=>B.remove()),i.current=[],(D=a.current)==null||D.remove();const M=t.filter(B=>B.latitude!=null&&B.longitude!=null);if(M.forEach(B=>{var se;const V=B.transaction_type==="buyer",G=V?"#3B82F6":"#10B981",W=document.createElement("div");W.className="cursor-pointer",W.innerHTML=`
${V?'':''}
`;const Z=new Md.Popup({offset:25,closeButton:!0}).setHTML(`
${B.property_address}
${B.city?`
${B.city}${B.state?", "+B.state:""} ${B.zip||""}
`:""}
${V?"Buyer":"Seller"} $${Number(B.sale_price).toLocaleString()}
Closed: ${E1(B.close_date).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})} ${(se=B.lead_source)!=null&&se.name?" · "+B.lead_source.name:""}
${B.contact?`
Client: ${B.contact.first_name} ${B.contact.last_name||""}
`:""}
`),Q=new Md.Marker(W).setLngLat([B.longitude,B.latitude]).setPopup(Z).addTo(n.current);i.current.push(Q)}),M.length>1){const B=new Md.LngLatBounds;M.forEach(V=>B.extend([V.longitude,V.latitude])),n.current.fitBounds(B,{padding:60,maxZoom:13})}else M.length===1&&n.current.flyTo({center:[M[0].longitude,M[0].latitude],zoom:12})},[t,s,E]),m||e?o.jsx(qn,{children:o.jsx(ri,{className:"flex items-center justify-center h-[50vh]",children:o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary"})})}):s?t.length===0?o.jsx(qn,{children:o.jsxs(ri,{className:"flex flex-col items-center justify-center h-[50vh] text-center gap-3",children:[o.jsx(ga,{className:"h-12 w-12 text-muted-foreground"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-semibold",children:"No Transactions Yet"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"Add transactions to see them plotted on the map."})]})]})}):o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-sm",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-white shadow",style:{background:"#3B82F6"}}),o.jsx("span",{children:"Buyer"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-white shadow",style:{background:"#10B981"}}),o.jsx("span",{children:"Seller"})]}),o.jsxs("span",{className:"text-muted-foreground ml-auto text-xs",children:[N.length," of ",t.length," mapped",E&&" · Geocoding..."]})]}),o.jsx("div",{ref:r,className:"w-full h-[55vh] rounded-lg shadow-lg border"})]}):o.jsx(qn,{children:o.jsxs(ri,{className:"flex flex-col items-center justify-center h-[50vh] text-center gap-3",children:[o.jsx(Phe,{className:"h-12 w-12 text-muted-foreground"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-semibold",children:"Map Not Configured"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:c?"Set up your Mapbox token in the Popby Map to enable maps across the platform.":"The map feature has not been configured yet. Please contact your administrator."})]})]})})}const HTe=()=>{const{data:t}=_S();return br({queryKey:["team-scorecard-members",t==null?void 0:t.teamId],queryFn:async()=>{const{data:e,error:r}=await De.from("team_members").select("user_id").eq("team_id",t.teamId);if(r)throw r;const n=e.map(c=>c.user_id),{data:i,error:a}=await De.from("profiles").select("id, name, email, avatar_url").in("id",n);if(a)throw a;return i||[]},enabled:!!(t!=null&&t.teamId)&&(t==null?void 0:t.role)==="team_leader"})},pCt=t=>{const{data:e}=_S(),{data:r}=HTe();return br({queryKey:["team-scorecard-transactions",e==null?void 0:e.teamId,t],queryFn:async()=>{const n=r.map(s=>s.id);let i=De.from("scorecard_transactions").select(` *, lead_source:lead_sources(id, name), client_type:relationship_types(id, name), contact:innercircle_contacts(id, first_name, last_name) `).in("owner_user_id",n).order("close_date",{ascending:!1});t&&(i=i.gte("close_date",`${t}-01-01`).lte("close_date",`${t}-12-31`));const{data:a,error:c}=await i;if(c)throw c;return a},enabled:!!r&&r.length>0})};function mCt(t,e){const r=e.filter(a=>a.owner_user_id===t.id),n=r.reduce((a,c)=>a+Number(c.sale_price),0),i=r.reduce((a,c)=>a+(Number(c.commission_amount)||0),0);return{member:t,totalTransactions:r.length,buyerCount:r.filter(a=>a.transaction_type==="buyer").length,sellerCount:r.filter(a=>a.transaction_type==="seller").length,totalVolume:n,averagePrice:r.length>0?n/r.length:0,totalGCI:i}}function gCt(t,e){return t?t.split(" ").map(r=>r[0]).join("").toUpperCase().slice(0,2):e[0].toUpperCase()}function yCt({year:t}){var T;const{data:e,isLoading:r}=HTe(),{data:n,isLoading:i}=pCt(t),a=$a(),c=r||i,{aggregate:s,memberStats:f,topPerformer:m,agentNameMap:x,teamChartStats:_}=P.useMemo(()=>{if(!e||!n)return{aggregate:null,memberStats:[],topPerformer:null,agentNameMap:{},teamChartStats:null};const E=e.map(ie=>mCt(ie,n));E.sort((ie,ue)=>ue.totalVolume-ie.totalVolume);const C={};e.forEach(ie=>{C[ie.id]=ie.name||ie.email});const N=n.length,L=n.reduce((ie,ue)=>ie+Number(ue.sale_price),0),M=n.reduce((ie,ue)=>ie+(Number(ue.commission_amount)||0),0),D=n.filter(ie=>ie.transaction_type==="buyer").length,B=n.filter(ie=>ie.transaction_type==="seller").length,V={};n.forEach(ie=>{var be;const ue=((be=ie.lead_source)==null?void 0:be.name)||"Unknown";V[ue]=(V[ue]||0)+1});const G=Object.entries(V).sort((ie,ue)=>ue[1]-ie[1])[0],W={};n.forEach(ie=>{const ue=E1(ie.close_date).toLocaleString("default",{month:"short"});W[ue]=(W[ue]||0)+1});const Q=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].map(ie=>({month:ie,count:W[ie]||0})),se=Object.entries(V).map(([ie,ue])=>({name:ie,count:ue})).sort((ie,ue)=>ue.count-ie.count);return{aggregate:{totalTxns:N,buyerCount:D,sellerCount:B,totalVolume:L,avgPrice:N>0?L/N:0,totalGCI:M,topSource:G?{name:G[0],count:G[1]}:null,memberCount:e.length},memberStats:E,topPerformer:E[0]||null,agentNameMap:C,teamChartStats:{transactionsByMonth:Q,leadSourceBreakdown:se}}},[e,n]);return c?o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[1,2,3,4].map(E=>o.jsx(al,{className:"h-24"},E))}),o.jsx(al,{className:"h-64"})]}):!s||f.length===0?o.jsx(qn,{className:"py-12",children:o.jsxs(ri,{className:"text-center space-y-2",children:[o.jsx(El,{className:"h-10 w-10 mx-auto text-muted-foreground"}),o.jsx("h3",{className:"text-lg font-semibold",children:"No Team Data"}),o.jsxs("p",{className:"text-muted-foreground",children:["No scorecard transactions found for your team members in ",t,"."]})]})}):o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-4",children:[o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(El,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Members"})]}),o.jsx("p",{className:"text-2xl font-bold",children:s.memberCount})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(Ma,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Team Transactions"})]}),o.jsx("p",{className:"text-2xl font-bold",children:s.totalTxns}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[s.buyerCount,"B / ",s.sellerCount,"S"]})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(gm,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Team Volume"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(s.totalVolume,!0)})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(aS,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Avg Price"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(s.avgPrice,!0)})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(gm,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Team GCI"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(s.totalGCI,!0)})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(aA,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Top Source"})]}),o.jsx("p",{className:"text-lg font-bold truncate",children:((T=s.topSource)==null?void 0:T.name)||"-"}),s.topSource&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:[s.topSource.count," deals"]})]})})]}),m&&m.totalTransactions>0&&o.jsx(qn,{className:"border-primary/30 bg-primary/5",children:o.jsxs(ri,{className:"pt-4 flex items-center gap-4",children:[o.jsx("div",{className:"flex items-center justify-center h-10 w-10 rounded-full bg-primary/10",children:o.jsx(EL,{className:"h-5 w-5 text-primary"})}),o.jsxs("div",{className:"flex-1",children:[o.jsxs("p",{className:"text-sm font-medium text-muted-foreground",children:["Top Performer — ",t]}),o.jsx("p",{className:"text-lg font-bold",children:m.member.name||m.member.email})]}),o.jsxs("div",{className:"text-right",children:[o.jsxs("p",{className:"text-sm text-muted-foreground",children:[m.totalTransactions," deals"]}),o.jsx("p",{className:"font-semibold",children:La(m.totalVolume,!0)})]})]})}),o.jsxs(qn,{children:[o.jsx(Qu,{children:o.jsx(Ju,{className:"text-lg",children:"Member Performance"})}),o.jsx(ri,{children:o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(P7,{children:[o.jsx(N7,{children:o.jsxs(_k,{children:[o.jsx(zl,{children:"Agent"}),o.jsx(zl,{className:"text-center",children:"Transactions"}),o.jsx(zl,{className:"text-center",children:"B / S"}),o.jsx(zl,{className:"text-right",children:"Volume"}),o.jsx(zl,{className:"text-right",children:"Avg Price"}),o.jsx(zl,{className:"text-right",children:"GCI"}),o.jsx(zl,{className:"text-right"})]})}),o.jsx(R7,{children:f.map((E,C)=>o.jsxs(_k,{children:[o.jsx($l,{children:o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs("div",{className:"relative",children:[C===0&&E.totalTransactions>0&&o.jsx(EL,{className:"absolute -top-2 -right-2 h-3.5 w-3.5 text-amber-500"}),o.jsxs(Zd,{className:"h-8 w-8",children:[o.jsx(Xd,{src:E.member.avatar_url||void 0}),o.jsx(Qd,{className:"text-xs",children:gCt(E.member.name,E.member.email)})]})]}),o.jsxs("div",{children:[o.jsx("p",{className:"font-medium text-sm",children:E.member.name||E.member.email}),E.member.name&&o.jsx("p",{className:"text-xs text-muted-foreground",children:E.member.email})]})]})}),o.jsx($l,{className:"text-center font-semibold",children:E.totalTransactions}),o.jsxs($l,{className:"text-center text-sm",children:[E.buyerCount," / ",E.sellerCount]}),o.jsx($l,{className:"text-right font-medium",children:La(E.totalVolume,!0)}),o.jsx($l,{className:"text-right text-sm",children:La(E.averagePrice,!0)}),o.jsx($l,{className:"text-right font-medium",children:La(E.totalGCI,!0)}),o.jsx($l,{className:"text-right",children:o.jsx(Kt,{variant:"ghost",size:"sm",onClick:()=>a(`/mission-control/scorecard/${E.member.id}`),children:o.jsx(aG,{className:"h-4 w-4"})})})]},E.member.id))})]})})})]}),o.jsxs(W9,{defaultValue:"transactions",className:"space-y-4",children:[o.jsxs(qO,{children:[o.jsxs(xm,{value:"transactions",children:[o.jsx(bU,{className:"h-4 w-4 mr-1"}),"All Transactions"]}),o.jsxs(xm,{value:"charts",children:[o.jsx(GA,{className:"h-4 w-4 mr-1"}),"Charts"]}),o.jsxs(xm,{value:"map",children:[o.jsx(ga,{className:"h-4 w-4 mr-1"}),"Map"]})]}),o.jsx(jy,{value:"transactions",children:o.jsx(Hbe,{transactions:n||[],showCommission:!0,isLoading:i,agentNameMap:x,readOnly:!0})}),o.jsx(jy,{value:"charts",children:_&&o.jsx(UTe,{stats:_,year:t})}),o.jsx(jy,{value:"map",children:o.jsx(GTe,{transactions:n||[],isLoading:i})})]})]})}const $R=new Date().getFullYear(),hoe=Array.from({length:10},(t,e)=>$R-e),FN="all";function xCt(){var be;const[t,e]=P.useState($R),r=t===null?FN:String(t),n=Te=>e(Te===FN?null:Number(Te)),[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(!1),[x,_]=P.useState(!1),[T,E]=P.useState("my"),{data:C}=_S(),N=(C==null?void 0:C.role)==="team_leader",{data:L,isLoading:M}=Cbe(t??void 0),{yearStats:D,lifetimeStats:B,isLoading:V,showCommission:G}=xrt(t??void 0),{data:W,isLoading:Z}=mrt(t??$R),{data:Q}=iF(),se=yrt(),ie=()=>{if(!L||L.length===0)return;const Te=["Property Address","City","State","Zip","Transaction Type","Close Date","Sale Price",...G?["Commission"]:[],"Lead Source","Client Type","Contact Name","Is Win","Notes"],we=L.map(je=>{var _e,xe;return[je.property_address,je.city||"",je.state||"",je.zip||"",je.transaction_type,je.close_date,je.sale_price,...G?[je.commission_amount||""]:[],((_e=je.lead_source)==null?void 0:_e.name)||"",((xe=je.client_type)==null?void 0:xe.name)||"",je.contact?`${je.contact.first_name} ${je.contact.last_name||""}`.trim():"",je.is_win?"Yes":"No",je.notes||""]}),Oe=[Te,...we].map(je=>je.map(_e=>`"${String(_e).replace(/"/g,'""')}"`).join(",")).join(` `),Ae=new Blob([Oe],{type:"text/csv"}),Se=URL.createObjectURL(Ae),ge=document.createElement("a");ge.href=Se,ge.download=t===null?"transactions-all.csv":`transactions-${t}.csv`,ge.click(),URL.revokeObjectURL(Se)},ue=!L||L.length===0;return o.jsxs(b1,{title:"Scorecard",children:[o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("h1",{className:"text-2xl font-bold",children:"Scorecard"}),o.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded border border-amber-500/50 text-amber-600 dark:text-amber-400 bg-amber-500/10",children:"Beta"})]}),N&&o.jsxs("div",{className:"flex items-center gap-1 bg-muted rounded-lg p-1 w-fit",children:[o.jsx(Kt,{variant:T==="my"?"default":"ghost",size:"sm",onClick:()=>E("my"),className:"h-8",children:"My Scorecard"}),o.jsxs(Kt,{variant:T==="team"?"default":"ghost",size:"sm",onClick:()=>E("team"),className:"h-8",children:[o.jsx(El,{className:"h-4 w-4 mr-1.5"}),"Team"]})]}),T==="team"&&N?o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-semibold text-foreground",children:"Team Performance"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:"Aggregate stats and member comparison"})]}),o.jsxs(Fa,{value:r,onValueChange:n,children:[o.jsx(Ca,{className:"w-[140px]",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:FN,children:"All Years"}),hoe.map(Te=>o.jsx(xn,{value:String(Te),children:Te},Te))]})]})]}),o.jsx(yCt,{year:t??void 0})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Business Scorecard"}),o.jsx("p",{className:"text-muted-foreground",children:"Track your transactions, goals, and performance"})]}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsxs(Fa,{value:r,onValueChange:n,children:[o.jsx(Ca,{className:"w-[140px]",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:FN,children:"All Years"}),hoe.map(Te=>o.jsx(xn,{value:String(Te),children:Te},Te))]})]}),o.jsx(Kt,{variant:"outline",size:"icon",onClick:()=>_(!x),children:o.jsx($he,{className:"h-4 w-4"})})]})]}),x&&o.jsxs(qn,{children:[o.jsx(Qu,{className:"pb-3",children:o.jsx(Ju,{className:"text-lg",children:"Settings"})}),o.jsx(ri,{children:o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{className:"space-y-0.5",children:[o.jsx(Fr,{children:"Show Commission"}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"Display commission fields and include in stats"})]}),o.jsx(TS,{checked:(Q==null?void 0:Q.show_commission)??!0,onCheckedChange:Te=>se.mutate({show_commission:Te})})]})})]}),ue&&!M?o.jsx(qn,{className:"py-12",children:o.jsxs(ri,{className:"text-center space-y-4",children:[o.jsx("div",{className:"w-16 h-16 mx-auto rounded-full bg-primary/10 flex items-center justify-center",children:o.jsx(GA,{className:"h-8 w-8 text-primary"})}),o.jsxs("div",{children:[o.jsx("h3",{className:"text-lg font-semibold",children:"Start Tracking Your Success"}),o.jsx("p",{className:"text-muted-foreground max-w-md mx-auto mt-1",children:"Add your past transactions to see your performance metrics, track your goals, and celebrate your wins."})]}),o.jsxs("div",{className:"flex flex-wrap justify-center gap-2 pt-2",children:[o.jsxs(Kt,{onClick:()=>a(!0),children:[o.jsx(ym,{className:"h-4 w-4 mr-2"}),"Add Your First Transaction"]}),o.jsxs(Kt,{variant:"outline",onClick:()=>s(!0),children:[o.jsx(SU,{className:"h-4 w-4 mr-2"}),"Import CSV"]})]}),o.jsxs("div",{className:"pt-4 border-t mt-4",children:[o.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"Need help formatting your data?"}),o.jsx(Kt,{variant:"link",className:"h-auto p-0",asChild:!0,children:o.jsxs("a",{href:"/templates/transaction-import-template.csv",download:!0,children:[o.jsx(Zl,{className:"h-4 w-4 mr-2"}),"Download CSV Template"]})})]})]})}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex flex-wrap gap-2",children:[o.jsxs(Kt,{onClick:()=>a(!0),children:[o.jsx(ym,{className:"h-4 w-4 mr-2"}),"Add Transaction"]}),o.jsxs(Kt,{variant:"outline",onClick:()=>m(!0),children:[o.jsx(uG,{className:"h-4 w-4 mr-2"}),"Set Goals"]}),o.jsxs(Kt,{variant:"outline",onClick:()=>s(!0),children:[o.jsx(SU,{className:"h-4 w-4 mr-2"}),"Import"]}),o.jsxs(Kt,{variant:"outline",onClick:ie,disabled:ue,children:[o.jsx(Zl,{className:"h-4 w-4 mr-2"}),"Export"]}),o.jsx(Kt,{variant:"ghost",size:"sm",asChild:!0,children:o.jsxs("a",{href:"/templates/transaction-import-template.csv",download:!0,children:[o.jsx(Zl,{className:"h-4 w-4 mr-2"}),"CSV Template"]})})]}),o.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-4",children:[o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(Ma,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Transactions"})]}),o.jsx("p",{className:"text-2xl font-bold",children:D.totalTransactions}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[B.totalTransactions," lifetime"]})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(El,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Buyer/Seller"})]}),o.jsxs("p",{className:"text-2xl font-bold",children:[D.buyerCount,"/",D.sellerCount]}),o.jsx("p",{className:"text-xs text-muted-foreground",children:"B/S split"})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(gm,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Volume"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(D.totalVolume,!0)}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[La(B.totalVolume,!0)," lifetime"]})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(aS,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Avg Price"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(D.averagePrice,!0)})]})}),o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(aA,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Top Source"})]}),o.jsx("p",{className:"text-lg font-bold truncate",children:((be=D.topLeadSource)==null?void 0:be.name)||"-"}),D.topLeadSource&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:[D.topLeadSource.count," deals"]})]})}),G&&o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[o.jsx(gm,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"GCI"})]}),o.jsx("p",{className:"text-2xl font-bold",children:La(D.totalCommission,!0)}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[La(B.totalCommission,!0)," lifetime"]})]})}),G&&D.totalNetToAgent>0&&D.totalNetToAgent!==D.totalCommission&&o.jsx(qn,{children:o.jsxs(ri,{className:"pt-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-teal-600 dark:text-teal-400 mb-1",children:[o.jsx(gm,{className:"h-4 w-4"}),o.jsx("span",{className:"text-xs font-medium",children:"Net to Agent"})]}),o.jsx("p",{className:"text-2xl font-bold text-teal-600 dark:text-teal-400",children:La(D.totalNetToAgent,!0)}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:[La(B.totalNetToAgent,!0)," lifetime"]})]})})]}),t!==null&&W&&o.jsx(Wrt,{goals:W,stats:D,year:t,showCommission:G}),o.jsxs(W9,{defaultValue:"transactions",className:"space-y-4",children:[o.jsxs(qO,{children:[o.jsx(xm,{value:"transactions",children:"Transactions"}),o.jsx(xm,{value:"charts",children:"Charts"}),o.jsxs(xm,{value:"map",children:[o.jsx(ga,{className:"h-4 w-4 mr-1"}),"Map"]})]}),o.jsx(jy,{value:"transactions",children:o.jsx(Hbe,{transactions:L||[],showCommission:G,isLoading:M})}),o.jsx(jy,{value:"charts",children:o.jsx(UTe,{stats:D,year:t??void 0})}),o.jsx(jy,{value:"map",children:o.jsx(GTe,{transactions:L||[],isLoading:M})})]})]})]})]}),o.jsx(Gbe,{open:i,onOpenChange:a}),o.jsx(dCt,{open:c,onOpenChange:s}),o.jsx(fCt,{open:f,onOpenChange:m,year:t??$R,existingGoals:W})]})}function _Ct(){const t=es();return br({queryKey:["deal-tasks",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("deal_tasks").select(` *, deal:deal_pipeline(id, deal_name, stage_id), contact:innercircle_contacts(id, first_name, last_name), stage:deal_pipeline_stages(id, name, color) `).eq("owner_user_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e},enabled:!!t})}function bVt(t){const e=es();return br({queryKey:["deal-tasks","deal",t,e],queryFn:async()=>{if(!e||!t)return[];const{data:r,error:n}=await De.from("deal_tasks").select(` *, stage:deal_pipeline_stages(id, name, color) `).eq("owner_user_id",e).eq("deal_id",t).order("sort_order",{ascending:!0});if(n)throw n;return r},enabled:!!e&&!!t})}function vCt(){const t=es(),e=Ir();return kr({mutationFn:async r=>{if(!t)throw new Error("Not authenticated");const{data:n,error:i}=await De.from("deal_tasks").insert({owner_user_id:t,title:r.title,description:r.description||null,deal_id:r.deal_id||null,contact_id:r.contact_id||null,stage_id:r.stage_id||null,priority:r.priority||"medium",status:r.status||"todo",due_date:r.due_date||null,sort_order:r.sort_order||0}).select().single();if(i)throw i;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["deal-tasks"]})}})}function bCt(){const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("deal_tasks").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-tasks"]}),r.status==="done"&&V_("task_completed")}})}function wCt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("deal_tasks").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["deal-tasks"]})}})}function GH(){const t=Ir();return kr({mutationFn:async({id:e,status:r})=>{const{data:n,error:i}=await De.from("deal_tasks").update({status:r,completed_at:r==="done"?new Date().toISOString():null}).eq("id",e).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-tasks"]}),r.status==="done"&&V_("task_completed")}})}function wVt(){const t=Ir();return kr({mutationFn:async e=>{if(e.length===0)return;const{error:r}=await De.from("deal_tasks").update({status:"done",completed_at:new Date().toISOString()}).in("id",e);if(r)throw r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-tasks"]}),r.length>0&&V_("task_completed")}})}function SCt(t){const e=es();return br({queryKey:["deal-task-templates",e,t],queryFn:async()=>{if(!e)return[];let r=De.from("deal_task_templates").select("*").eq("owner_user_id",e).order("sort_order",{ascending:!0});t&&(r=r.eq("stage_id",t));const{data:n,error:i}=await r;if(i)throw i;return n},enabled:!!e})}function TCt(){const t=es(),e=Ir();return kr({mutationFn:async r=>{if(!t)throw new Error("Not authenticated");const{data:n,error:i}=await De.from("deal_task_templates").insert({owner_user_id:t,stage_id:r.stage_id,title:r.title,description:r.description||null,priority:r.priority||"medium",default_due_offset_days:r.default_due_offset_days||null,sort_order:r.sort_order||0}).select().single();if(i)throw i;return n},onSuccess:()=>{e.invalidateQueries({queryKey:["deal-task-templates"]})}})}function ECt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("deal_task_templates").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["deal-task-templates"]})}})}function SVt(){const t=es(),e=Ir();return kr({mutationFn:async({dealId:r,stageId:n})=>{if(!t)throw new Error("Not authenticated");const{data:i,error:a}=await De.from("deal_task_templates").select("*").eq("owner_user_id",t).eq("stage_id",n).order("sort_order");if(a)throw a;if(!i||i.length===0)return[];const{data:c}=await De.from("deal_tasks").select("title, stage_id").eq("deal_id",r).eq("stage_id",n),s=new Set((c||[]).map(_=>_.title)),f=i.filter(_=>!s.has(_.title)).map((_,T)=>({owner_user_id:t,deal_id:r,stage_id:n,title:_.title,description:_.description,priority:_.priority,due_date:_.default_due_offset_days?new Date(Date.now()+_.default_due_offset_days*864e5).toISOString().split("T")[0]:null,sort_order:T,status:"todo"}));if(f.length===0)return[];const{data:m,error:x}=await De.from("deal_tasks").insert(f).select();if(x)throw x;return m},onSuccess:()=>{e.invalidateQueries({queryKey:["deal-tasks"]})}})}function P2(t){const e=t.expected_commission,r=Number(t.bonus_amount)||0;if(!e)return r>0?r:null;if((t.commission_calc_method||"standard")==="referral_first"){let a=e;t.referral_fee_pct&&(a-=e*(t.referral_fee_pct/100));let c=a;return t.brokerage_split_pct&&(c-=a*(t.brokerage_split_pct/100)),t.team_split_pct&&(c-=e*(t.team_split_pct/100)),t.franchise_fee_pct&&(c-=e*(t.franchise_fee_pct/100)),t.transaction_fee&&(c-=t.transaction_fee),Math.max(0,c)+r}let i=e;return t.brokerage_split_pct&&(i-=e*(t.brokerage_split_pct/100)),t.team_split_pct&&(i-=e*(t.team_split_pct/100)),t.franchise_fee_pct&&(i-=e*(t.franchise_fee_pct/100)),t.referral_fee_pct&&(i-=e*(t.referral_fee_pct/100)),t.transaction_fee&&(i-=t.transaction_fee),Math.max(0,i)+r}function ACt(){const t=es();return br({queryKey:["deal-pipeline-stages",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("deal_pipeline_stages").select("*").eq("owner_user_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e},enabled:!!t})}function TVt(){const t=es(),e=Ir();return kr({mutationFn:async()=>{if(!t)throw new Error("Not authenticated");const{error:r}=await De.rpc("initialize_deal_pipeline_stages",{p_user_id:t});if(r)throw r},onSuccess:()=>{e.invalidateQueries({queryKey:["deal-pipeline-stages"]})}})}function kCt(){const t=es();return br({queryKey:["deal-pipeline-deals",t],queryFn:async()=>{if(!t)return[];const{data:e,error:r}=await De.from("deal_pipeline").select(` *, contact:innercircle_contacts(id, first_name, last_name, email, phone), listing:listings(id, property_address, city, state, price, status, created_at) `).eq("owner_user_id",t).order("updated_at",{ascending:!1});if(r)throw r;return e},enabled:!!t})}function EVt(){const t=es(),e=Ir();return kr({mutationFn:async r=>{if(!t)throw new Error("Not authenticated");const{data:n,error:i}=await De.from("deal_pipeline").insert({deal_name:r.deal_name,deal_type:r.deal_type,stage_id:r.stage_id||null,contact_id:r.contact_id||null,listing_id:r.listing_id||null,property_address:r.property_address||null,city:r.city||null,state:r.state||null,zip_code:r.zip_code||null,expected_price:r.expected_price||null,expected_commission:r.expected_commission||null,commission_percentage:r.commission_percentage||3,target_close_date:r.target_close_date||null,contract_date:r.contract_date||null,listing_date:r.listing_date||null,priority:r.priority||"medium",probability:r.probability||50,notes:r.notes||null,owner_user_id:t}).select().single();if(i)throw i;return await De.from("deal_activities").insert([{deal_id:n.id,activity_type:"system",title:"Deal created",description:`Deal "${r.deal_name}" was created`}]),n},onSuccess:()=>{e.invalidateQueries({queryKey:["deal-pipeline-deals"]}),e.invalidateQueries({queryKey:["deal-pipeline-stats"]})}})}function AVt(){const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("deal_pipeline").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-pipeline-stats"]})}})}function kVt(){const t=Ir();return kr({mutationFn:async({dealId:e,stageId:r,stageName:n})=>{const{data:i}=await De.from("deal_pipeline_stages").select("default_probability").eq("id",r).maybeSingle(),a={stage_id:r};typeof(i==null?void 0:i.default_probability)=="number"&&(a.probability=i.default_probability);const{data:c,error:s}=await De.from("deal_pipeline").update(a).eq("id",e).select().single();if(s)throw s;return await De.from("deal_activities").insert({deal_id:e,activity_type:"stage_change",title:`Moved to ${n}`,metadata:{new_stage_id:r,new_stage_name:n}}),c},onSuccess:()=>{t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-activities"]})}})}function CVt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("deal_pipeline").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-pipeline-stats"]})}})}function IVt(t){return br({queryKey:["deal-activities",t],queryFn:async()=>{const{data:e,error:r}=await De.from("deal_activities").select("*").eq("deal_id",t).order("created_at",{ascending:!1});if(r)throw r;return e},enabled:!!t})}function jVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("deal_activities").insert([{deal_id:e.deal_id,activity_type:e.activity_type,title:e.title,description:e.description||null}]).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-activities",r.deal_id]})}})}function PVt(t){return br({queryKey:["deal-checklist",t],queryFn:async()=>{const{data:e,error:r}=await De.from("deal_checklist_items").select("*").eq("deal_id",t).order("sort_order",{ascending:!0});if(r)throw r;return e},enabled:!!t})}function NVt(){const t=Ir();return kr({mutationFn:async({id:e,is_completed:r,deal_id:n})=>{const{data:i,error:a}=await De.from("deal_checklist_items").update({is_completed:r,completed_at:r?new Date().toISOString():null}).eq("id",e).select().single();if(a)throw a;return i},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-checklist",r.deal_id]})}})}function RVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("deal_checklist_items").insert([{deal_id:e.deal_id,title:e.title,description:e.description||null,due_date:e.due_date||null,sort_order:e.sort_order||0}]).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-checklist",r.deal_id]})}})}function LVt(){const t=es();return br({queryKey:["deal-pipeline-stats",t],queryFn:async()=>{if(!t)return null;const{data:e,error:r}=await De.from("deal_pipeline").select("*, deal_pipeline_stages(name, is_won_stage, is_lost_stage)").eq("owner_user_id",t);if(r)throw r;const n=(e==null?void 0:e.filter(s=>{var f,m,x;return!((f=s.deal_pipeline_stages)!=null&&f.is_won_stage)&&!((m=s.deal_pipeline_stages)!=null&&m.is_lost_stage)&&((x=s.deal_pipeline_stages)==null?void 0:x.name)!=="Cancelled"}))||[],i=(e==null?void 0:e.filter(s=>{var f;return(f=s.deal_pipeline_stages)==null?void 0:f.is_won_stage}))||[],a=new Date().getFullYear(),c=i.filter(s=>{const f=s.actual_close_date;return f?new Date(f).getFullYear()===a:!0});return{totalDeals:(e==null?void 0:e.length)||0,activeDeals:n.length,wonDeals:i.length,pipelineValue:n.reduce((s,f)=>s+(f.expected_price||0),0),expectedCommission:n.reduce((s,f)=>s+(f.expected_commission||0)+(f.bonus_amount||0),0),expectedNetToAgent:n.reduce((s,f)=>s+(P2(f)||0),0),wonValue:i.reduce((s,f)=>s+(f.expected_price||0),0),weightedGCI:n.reduce((s,f)=>{const m=(f.probability??50)/100;return s+((f.expected_commission||0)+(f.bonus_amount||0))*m},0),weightedNet:n.reduce((s,f)=>{const m=(f.probability??50)/100;return s+(P2(f)||0)*m},0),ytdWonDeals:c.length,ytdWonGCI:c.reduce((s,f)=>s+(f.expected_commission||0)+(f.bonus_amount||0),0),ytdWonNet:c.reduce((s,f)=>s+(P2(f)||0),0),projectedAnnualNet:c.reduce((s,f)=>s+(P2(f)||0),0)+n.reduce((s,f)=>{const m=(f.probability??50)/100;return s+(P2(f)||0)*m},0)}},enabled:!!t})}function DVt(t){const e=es();return br({queryKey:["deal-by-listing",t,e],queryFn:async()=>{if(!e||!t)return null;const{data:r,error:n}=await De.from("deal_pipeline").select(` *, deal_pipeline_stages(id, name, color) `).eq("owner_user_id",e).eq("listing_id",t).maybeSingle();if(n)throw n;return r},enabled:!!e&&!!t})}function MVt(){const t=Ir();return kr({mutationFn:async({dealId:e,listingId:r})=>{const{data:n,error:i}=await De.from("deal_pipeline").update({listing_id:r}).eq("id",e).select().single();if(i)throw i;return await De.from("deal_activities").insert({deal_id:e,activity_type:"system",title:"Linked to Listing Exchange",description:"This deal is now synced with Listing Exchange",metadata:{listing_id:r}}),n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-by-listing",r.listingId]})}})}function OVt(){const t=Ir();return kr({mutationFn:async({dealId:e,listingId:r})=>{const{data:n,error:i}=await De.from("deal_pipeline").update({listing_id:null}).eq("id",e).select().single();if(i)throw i;return{data:n,listingId:r}},onSuccess:e=>{t.invalidateQueries({queryKey:["deal-pipeline-deals"]}),t.invalidateQueries({queryKey:["deal-by-listing",e.listingId]})}})}var ai=function(){return ai=Object.assign||function(e){for(var r,n=1,i=arguments.length;n1&&(f||!m),_=e>1&&(m||!f),T=function(){n&&a(n)},E=function(){i&&a(i)};return o.jsx(aIt,{displayMonth:t.displayMonth,hideNext:x,hidePrevious:_,nextMonth:i,previousMonth:n,onPreviousClick:T,onNextClick:E})}function oIt(t){var e,r=ya(),n=r.classNames,i=r.disableNavigation,a=r.styles,c=r.captionLayout,s=r.components,f=(e=s==null?void 0:s.CaptionLabel)!==null&&e!==void 0?e:YTe,m;return i?m=o.jsx(f,{id:t.id,displayMonth:t.displayMonth}):c==="dropdown"?m=o.jsx(foe,{displayMonth:t.displayMonth,id:t.id}):c==="dropdown-buttons"?m=o.jsxs(o.Fragment,{children:[o.jsx(foe,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id}),o.jsx(poe,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id})]}):m=o.jsxs(o.Fragment,{children:[o.jsx(f,{id:t.id,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),o.jsx(poe,{displayMonth:t.displayMonth,id:t.id})]}),o.jsx("div",{className:n.caption,style:a.caption,children:m})}function lIt(t){var e=ya(),r=e.footer,n=e.styles,i=e.classNames.tfoot;return r?o.jsx("tfoot",{className:i,style:n.tfoot,children:o.jsx("tr",{children:o.jsx("td",{colSpan:8,children:r})})}):o.jsx(o.Fragment,{})}function cIt(t,e,r){for(var n=r?Nm(new Date):yc(new Date,{locale:t,weekStartsOn:e}),i=[],a=0;a<7;a++){var c=Sl(n,a);i.push(c)}return i}function uIt(){var t=ya(),e=t.classNames,r=t.styles,n=t.showWeekNumber,i=t.locale,a=t.weekStartsOn,c=t.ISOWeek,s=t.formatters.formatWeekdayName,f=t.labels.labelWeekday,m=cIt(i,a,c);return o.jsxs("tr",{style:r.head_row,className:e.head_row,children:[n&&o.jsx("td",{style:r.head_cell,className:e.head_cell}),m.map(function(x,_){return o.jsx("th",{scope:"col",className:e.head_cell,style:r.head_cell,"aria-label":f(x,{locale:i}),children:s(x,{locale:i})},_)})]})}function dIt(){var t,e=ya(),r=e.classNames,n=e.styles,i=e.components,a=(t=i==null?void 0:i.HeadRow)!==null&&t!==void 0?t:uIt;return o.jsx("thead",{style:n.head,className:r.head,children:o.jsx(a,{})})}function hIt(t){var e=ya(),r=e.locale,n=e.formatters.formatDay;return o.jsx(o.Fragment,{children:n(t.date,{locale:r})})}var HH=P.createContext(void 0);function fIt(t){if(!sI(t.initialProps)){var e={selected:void 0,modifiers:{disabled:[]}};return o.jsx(HH.Provider,{value:e,children:t.children})}return o.jsx(pIt,{initialProps:t.initialProps,children:t.children})}function pIt(t){var e=t.initialProps,r=t.children,n=e.selected,i=e.min,a=e.max,c=function(m,x,_){var T,E;(T=e.onDayClick)===null||T===void 0||T.call(e,m,x,_);var C=!!(x.selected&&i&&(n==null?void 0:n.length)===i);if(!C){var N=!!(!x.selected&&a&&(n==null?void 0:n.length)===a);if(!N){var L=n?WTe([],n):[];if(x.selected){var M=L.findIndex(function(D){return Wl(m,D)});L.splice(M,1)}else L.push(m);(E=e.onSelect)===null||E===void 0||E.call(e,L,m,x,_)}}},s={disabled:[]};n&&s.disabled.push(function(m){var x=a&&n.length>a-1,_=n.some(function(T){return Wl(T,m)});return!!(x&&!_)});var f={selected:n,onDayClick:c,modifiers:s};return o.jsx(HH.Provider,{value:f,children:r})}function WH(){var t=P.useContext(HH);if(!t)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return t}function mIt(t,e){var r=e||{},n=r.from,i=r.to;return n&&i?Wl(i,t)&&Wl(n,t)?void 0:Wl(i,t)?{from:i,to:void 0}:Wl(n,t)?void 0:ck(n,t)?{from:t,to:i}:{from:n,to:t}:i?ck(t,i)?{from:i,to:t}:{from:t,to:i}:n?F9(t,n)?{from:t,to:n}:{from:n,to:t}:{from:t,to:void 0}}var KH=P.createContext(void 0);function gIt(t){if(!aI(t.initialProps)){var e={selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}};return o.jsx(KH.Provider,{value:e,children:t.children})}return o.jsx(yIt,{initialProps:t.initialProps,children:t.children})}function yIt(t){var e=t.initialProps,r=t.children,n=e.selected,i=n||{},a=i.from,c=i.to,s=e.min,f=e.max,m=function(E,C,N){var L,M;(L=e.onDayClick)===null||L===void 0||L.call(e,E,C,N);var D=mIt(E,n);(M=e.onSelect)===null||M===void 0||M.call(e,D,E,C,N)},x={range_start:[],range_end:[],range_middle:[],disabled:[]};if(a?(x.range_start=[a],c?(x.range_end=[c],Wl(a,c)||(x.range_middle=[{after:a,before:c}])):x.range_end=[a]):c&&(x.range_start=[c],x.range_end=[c]),s&&(a&&!c&&x.disabled.push({after:IB(a,s-1),before:Sl(a,s-1)}),a&&c&&x.disabled.push({after:a,before:Sl(a,s-1)}),!a&&c&&x.disabled.push({after:IB(c,s-1),before:Sl(c,s-1)})),f){if(a&&!c&&(x.disabled.push({before:Sl(a,-f+1)}),x.disabled.push({after:Sl(a,f-1)})),a&&c){var _=Hh(c,a)+1,T=f-_;x.disabled.push({before:IB(a,T)}),x.disabled.push({after:Sl(c,T)})}!a&&c&&(x.disabled.push({before:Sl(c,-f+1)}),x.disabled.push({after:Sl(c,f-1)}))}return o.jsx(KH.Provider,{value:{selected:n,onDayClick:m,modifiers:x},children:r})}function YH(){var t=P.useContext(KH);if(!t)throw new Error("useSelectRange must be used within a SelectRangeProvider");return t}function UR(t){return Array.isArray(t)?WTe([],t):t!==void 0?[t]:[]}function xIt(t){var e={};return Object.entries(t).forEach(function(r){var n=r[0],i=r[1];e[n]=UR(i)}),e}var tf;(function(t){t.Outside="outside",t.Disabled="disabled",t.Selected="selected",t.Hidden="hidden",t.Today="today",t.RangeStart="range_start",t.RangeEnd="range_end",t.RangeMiddle="range_middle"})(tf||(tf={}));var _It=tf.Selected,Xp=tf.Disabled,vIt=tf.Hidden,bIt=tf.Today,Oz=tf.RangeEnd,Fz=tf.RangeMiddle,Bz=tf.RangeStart,wIt=tf.Outside;function SIt(t,e,r){var n,i=(n={},n[_It]=UR(t.selected),n[Xp]=UR(t.disabled),n[vIt]=UR(t.hidden),n[bIt]=[t.today],n[Oz]=[],n[Fz]=[],n[Bz]=[],n[wIt]=[],n);return t.fromDate&&i[Xp].push({before:t.fromDate}),t.toDate&&i[Xp].push({after:t.toDate}),sI(t)?i[Xp]=i[Xp].concat(e.modifiers[Xp]):aI(t)&&(i[Xp]=i[Xp].concat(r.modifiers[Xp]),i[Bz]=r.modifiers[Bz],i[Fz]=r.modifiers[Fz],i[Oz]=r.modifiers[Oz]),i}var QTe=P.createContext(void 0);function TIt(t){var e=ya(),r=WH(),n=YH(),i=SIt(e,r,n),a=xIt(e.modifiers),c=ai(ai({},i),a);return o.jsx(QTe.Provider,{value:c,children:t.children})}function JTe(){var t=P.useContext(QTe);if(!t)throw new Error("useModifiers must be used within a ModifiersProvider");return t}function EIt(t){return!!(t&&typeof t=="object"&&"before"in t&&"after"in t)}function AIt(t){return!!(t&&typeof t=="object"&&"from"in t)}function kIt(t){return!!(t&&typeof t=="object"&&"after"in t)}function CIt(t){return!!(t&&typeof t=="object"&&"before"in t)}function IIt(t){return!!(t&&typeof t=="object"&&"dayOfWeek"in t)}function jIt(t,e){var r,n=e.from,i=e.to;if(n&&i){var a=Hh(i,n)<0;a&&(r=[i,n],n=r[0],i=r[1]);var c=Hh(t,n)>=0&&Hh(i,t)>=0;return c}return i?Wl(i,t):n?Wl(n,t):!1}function PIt(t){return L9(t)}function NIt(t){return Array.isArray(t)&&t.every(L9)}function RIt(t,e){return e.some(function(r){if(typeof r=="boolean")return r;if(PIt(r))return Wl(t,r);if(NIt(r))return r.includes(t);if(AIt(r))return jIt(t,r);if(IIt(r))return r.dayOfWeek.includes(t.getDay());if(EIt(r)){var n=Hh(r.before,t),i=Hh(r.after,t),a=n>0,c=i<0,s=ck(r.before,r.after);return s?c&&a:a||c}return kIt(r)?Hh(t,r.after)>0:CIt(r)?Hh(r.before,t)>0:typeof r=="function"?r(t):!1})}function ZH(t,e,r){var n=Object.keys(e).reduce(function(a,c){var s=e[c];return RIt(t,s)&&a.push(c),a},[]),i={};return n.forEach(function(a){return i[a]=!0}),r&&!FO(t,r)&&(i.outside=!0),i}function LIt(t,e){for(var r=Zc(t[0]),n=$C(t[t.length-1]),i,a,c=r;c<=n;){var s=ZH(c,e),f=!s.disabled&&!s.hidden;if(!f){c=Sl(c,1);continue}if(s.selected)return c;s.today&&!a&&(a=c),i||(i=c),c=Sl(c,1)}return a||i}var DIt=365;function eEe(t,e){var r=e.moveBy,n=e.direction,i=e.context,a=e.modifiers,c=e.retry,s=c===void 0?{count:0,lastFocused:t}:c,f=i.weekStartsOn,m=i.fromDate,x=i.toDate,_=i.locale,T={day:Sl,week:w6,month:od,year:l9e,startOfWeek:function(L){return i.ISOWeek?Nm(L):yc(L,{locale:_,weekStartsOn:f})},endOfWeek:function(L){return i.ISOWeek?zxe(L):MO(L,{locale:_,weekStartsOn:f})}},E=T[r](t,n==="after"?1:-1);n==="before"&&m?E=c9e([m,E]):n==="after"&&x&&(E=u9e([x,E]));var C=!0;if(a){var N=ZH(E,a);C=!N.disabled&&!N.hidden}return C?E:s.count>DIt?s.lastFocused:eEe(E,{moveBy:r,direction:n,context:i,modifiers:a,retry:ai(ai({},s),{count:s.count+1})})}var tEe=P.createContext(void 0);function MIt(t){var e=oI(),r=JTe(),n=P.useState(),i=n[0],a=n[1],c=P.useState(),s=c[0],f=c[1],m=LIt(e.displayMonths,r),x=i??(s&&e.isDateDisplayed(s))?s:m,_=function(){f(i),a(void 0)},T=function(L){a(L)},E=ya(),C=function(L,M){if(i){var D=eEe(i,{moveBy:L,direction:M,context:E,modifiers:r});Wl(i,D)||(e.goToDate(D,i),T(D))}},N={focusedDay:i,focusTarget:x,blur:_,focus:T,focusDayAfter:function(){return C("day","after")},focusDayBefore:function(){return C("day","before")},focusWeekAfter:function(){return C("week","after")},focusWeekBefore:function(){return C("week","before")},focusMonthBefore:function(){return C("month","before")},focusMonthAfter:function(){return C("month","after")},focusYearBefore:function(){return C("year","before")},focusYearAfter:function(){return C("year","after")},focusStartOfWeek:function(){return C("startOfWeek","before")},focusEndOfWeek:function(){return C("endOfWeek","after")}};return o.jsx(tEe.Provider,{value:N,children:t.children})}function XH(){var t=P.useContext(tEe);if(!t)throw new Error("useFocusContext must be used within a FocusProvider");return t}function OIt(t,e){var r=JTe(),n=ZH(t,r,e);return n}var QH=P.createContext(void 0);function FIt(t){if(!r3(t.initialProps)){var e={selected:void 0};return o.jsx(QH.Provider,{value:e,children:t.children})}return o.jsx(BIt,{initialProps:t.initialProps,children:t.children})}function BIt(t){var e=t.initialProps,r=t.children,n=function(a,c,s){var f,m,x;if((f=e.onDayClick)===null||f===void 0||f.call(e,a,c,s),c.selected&&!e.required){(m=e.onSelect)===null||m===void 0||m.call(e,void 0,a,c,s);return}(x=e.onSelect)===null||x===void 0||x.call(e,a,a,c,s)},i={selected:e.selected,onDayClick:n};return o.jsx(QH.Provider,{value:i,children:r})}function rEe(){var t=P.useContext(QH);if(!t)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return t}function zIt(t,e){var r=ya(),n=rEe(),i=WH(),a=YH(),c=XH(),s=c.focusDayAfter,f=c.focusDayBefore,m=c.focusWeekAfter,x=c.focusWeekBefore,_=c.blur,T=c.focus,E=c.focusMonthBefore,C=c.focusMonthAfter,N=c.focusYearBefore,L=c.focusYearAfter,M=c.focusStartOfWeek,D=c.focusEndOfWeek,B=function(Se){var ge,je,_e,xe;r3(r)?(ge=n.onDayClick)===null||ge===void 0||ge.call(n,t,e,Se):sI(r)?(je=i.onDayClick)===null||je===void 0||je.call(i,t,e,Se):aI(r)?(_e=a.onDayClick)===null||_e===void 0||_e.call(a,t,e,Se):(xe=r.onDayClick)===null||xe===void 0||xe.call(r,t,e,Se)},V=function(Se){var ge;T(t),(ge=r.onDayFocus)===null||ge===void 0||ge.call(r,t,e,Se)},G=function(Se){var ge;_(),(ge=r.onDayBlur)===null||ge===void 0||ge.call(r,t,e,Se)},W=function(Se){var ge;(ge=r.onDayMouseEnter)===null||ge===void 0||ge.call(r,t,e,Se)},Z=function(Se){var ge;(ge=r.onDayMouseLeave)===null||ge===void 0||ge.call(r,t,e,Se)},Q=function(Se){var ge;(ge=r.onDayPointerEnter)===null||ge===void 0||ge.call(r,t,e,Se)},se=function(Se){var ge;(ge=r.onDayPointerLeave)===null||ge===void 0||ge.call(r,t,e,Se)},ie=function(Se){var ge;(ge=r.onDayTouchCancel)===null||ge===void 0||ge.call(r,t,e,Se)},ue=function(Se){var ge;(ge=r.onDayTouchEnd)===null||ge===void 0||ge.call(r,t,e,Se)},be=function(Se){var ge;(ge=r.onDayTouchMove)===null||ge===void 0||ge.call(r,t,e,Se)},Te=function(Se){var ge;(ge=r.onDayTouchStart)===null||ge===void 0||ge.call(r,t,e,Se)},we=function(Se){var ge;(ge=r.onDayKeyUp)===null||ge===void 0||ge.call(r,t,e,Se)},Oe=function(Se){var ge;switch(Se.key){case"ArrowLeft":Se.preventDefault(),Se.stopPropagation(),r.dir==="rtl"?s():f();break;case"ArrowRight":Se.preventDefault(),Se.stopPropagation(),r.dir==="rtl"?f():s();break;case"ArrowDown":Se.preventDefault(),Se.stopPropagation(),m();break;case"ArrowUp":Se.preventDefault(),Se.stopPropagation(),x();break;case"PageUp":Se.preventDefault(),Se.stopPropagation(),Se.shiftKey?N():E();break;case"PageDown":Se.preventDefault(),Se.stopPropagation(),Se.shiftKey?L():C();break;case"Home":Se.preventDefault(),Se.stopPropagation(),M();break;case"End":Se.preventDefault(),Se.stopPropagation(),D();break}(ge=r.onDayKeyDown)===null||ge===void 0||ge.call(r,t,e,Se)},Ae={onClick:B,onFocus:V,onBlur:G,onKeyDown:Oe,onKeyUp:we,onMouseEnter:W,onMouseLeave:Z,onPointerEnter:Q,onPointerLeave:se,onTouchCancel:ie,onTouchEnd:ue,onTouchMove:be,onTouchStart:Te};return Ae}function $It(){var t=ya(),e=rEe(),r=WH(),n=YH(),i=r3(t)?e.selected:sI(t)?r.selected:aI(t)?n.selected:void 0;return i}function UIt(t){return Object.values(tf).includes(t)}function VIt(t,e){var r=[t.classNames.day];return Object.keys(e).forEach(function(n){var i=t.modifiersClassNames[n];if(i)r.push(i);else if(UIt(n)){var a=t.classNames["day_".concat(n)];a&&r.push(a)}}),r}function qIt(t,e){var r=ai({},t.styles.day);return Object.keys(e).forEach(function(n){var i;r=ai(ai({},r),(i=t.modifiersStyles)===null||i===void 0?void 0:i[n])}),r}function GIt(t,e,r){var n,i,a,c=ya(),s=XH(),f=OIt(t,e),m=zIt(t,f),x=$It(),_=!!(c.onDayClick||c.mode!=="default");P.useEffect(function(){var W;f.outside||s.focusedDay&&_&&Wl(s.focusedDay,t)&&((W=r.current)===null||W===void 0||W.focus())},[s.focusedDay,t,r,_,f.outside]);var T=VIt(c,f).join(" "),E=qIt(c,f),C=!!(f.outside&&!c.showOutsideDays||f.hidden),N=(a=(i=c.components)===null||i===void 0?void 0:i.DayContent)!==null&&a!==void 0?a:hIt,L=o.jsx(N,{date:t,displayMonth:e,activeModifiers:f}),M={style:E,className:T,children:L,role:"gridcell"},D=s.focusTarget&&Wl(s.focusTarget,t)&&!f.outside,B=s.focusedDay&&Wl(s.focusedDay,t),V=ai(ai(ai({},M),(n={disabled:f.disabled,role:"gridcell"},n["aria-selected"]=f.selected,n.tabIndex=B||D?0:-1,n)),m),G={isButton:_,isHidden:C,activeModifiers:f,selectedDays:x,buttonProps:V,divProps:M};return G}function HIt(t){var e=P.useRef(null),r=GIt(t.date,t.displayMonth,e);return r.isHidden?o.jsx("div",{role:"gridcell"}):r.isButton?o.jsx(fM,ai({name:"day",ref:e},r.buttonProps)):o.jsx("div",ai({},r.divProps))}function WIt(t){var e=t.number,r=t.dates,n=ya(),i=n.onWeekNumberClick,a=n.styles,c=n.classNames,s=n.locale,f=n.labels.labelWeekNumber,m=n.formatters.formatWeekNumber,x=m(Number(e),{locale:s});if(!i)return o.jsx("span",{className:c.weeknumber,style:a.weeknumber,children:x});var _=f(Number(e),{locale:s}),T=function(E){i(e,r,E)};return o.jsx(fM,{name:"week-number","aria-label":_,className:c.weeknumber,style:a.weeknumber,onClick:T,children:x})}function KIt(t){var e,r,n=ya(),i=n.styles,a=n.classNames,c=n.showWeekNumber,s=n.components,f=(e=s==null?void 0:s.Day)!==null&&e!==void 0?e:HIt,m=(r=s==null?void 0:s.WeekNumber)!==null&&r!==void 0?r:WIt,x;return c&&(x=o.jsx("td",{className:a.cell,style:i.cell,children:o.jsx(m,{number:t.weekNumber,dates:t.dates})})),o.jsxs("tr",{className:a.row,style:i.row,children:[x,t.dates.map(function(_){return o.jsx("td",{className:a.cell,style:i.cell,role:"presentation",children:o.jsx(f,{displayMonth:t.displayMonth,date:_})},m7e(_))})]})}function moe(t,e,r){for(var n=r!=null&&r.ISOWeek?zxe(e):MO(e,r),i=r!=null&&r.ISOWeek?Nm(t):yc(t,r),a=Hh(n,i),c=[],s=0;s<=a;s++)c.push(Sl(i,s));var f=c.reduce(function(m,x){var _=r!=null&&r.ISOWeek?D9(x):O9(x,r),T=m.find(function(E){return E.weekNumber===_});return T?(T.dates.push(x),m):(m.push({weekNumber:_,dates:[x]}),m)},[]);return f}function YIt(t,e){var r=moe(Zc(t),$C(t),e);if(e!=null&&e.useFixedWeeks){var n=y7e(t,e);if(n<6){var i=r[r.length-1],a=i.dates[i.dates.length-1],c=w6(a,6-n),s=moe(w6(a,1),c,e);r.push.apply(r,s)}}return r}function ZIt(t){var e,r,n,i=ya(),a=i.locale,c=i.classNames,s=i.styles,f=i.hideHead,m=i.fixedWeeks,x=i.components,_=i.weekStartsOn,T=i.firstWeekContainsDate,E=i.ISOWeek,C=YIt(t.displayMonth,{useFixedWeeks:!!m,ISOWeek:E,locale:a,weekStartsOn:_,firstWeekContainsDate:T}),N=(e=x==null?void 0:x.Head)!==null&&e!==void 0?e:dIt,L=(r=x==null?void 0:x.Row)!==null&&r!==void 0?r:KIt,M=(n=x==null?void 0:x.Footer)!==null&&n!==void 0?n:lIt;return o.jsxs("table",{id:t.id,className:c.table,style:s.table,role:"grid","aria-labelledby":t["aria-labelledby"],children:[!f&&o.jsx(N,{}),o.jsx("tbody",{className:c.tbody,style:s.tbody,children:C.map(function(D){return o.jsx(L,{displayMonth:t.displayMonth,dates:D.dates,weekNumber:D.weekNumber},D.weekNumber)})}),o.jsx(M,{displayMonth:t.displayMonth})]})}function XIt(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var QIt=XIt()?P.useLayoutEffect:P.useEffect,zz=!1,JIt=0;function goe(){return"react-day-picker-".concat(++JIt)}function ejt(t){var e,r=t??(zz?goe():null),n=P.useState(r),i=n[0],a=n[1];return QIt(function(){i===null&&a(goe())},[]),P.useEffect(function(){zz===!1&&(zz=!0)},[]),(e=t??i)!==null&&e!==void 0?e:void 0}function tjt(t){var e,r,n=ya(),i=n.dir,a=n.classNames,c=n.styles,s=n.components,f=oI().displayMonths,m=ejt(n.id?"".concat(n.id,"-").concat(t.displayIndex):void 0),x=n.id?"".concat(n.id,"-grid-").concat(t.displayIndex):void 0,_=[a.month],T=c.month,E=t.displayIndex===0,C=t.displayIndex===f.length-1,N=!E&&!C;i==="rtl"&&(e=[E,C],C=e[0],E=e[1]),E&&(_.push(a.caption_start),T=ai(ai({},T),c.caption_start)),C&&(_.push(a.caption_end),T=ai(ai({},T),c.caption_end)),N&&(_.push(a.caption_between),T=ai(ai({},T),c.caption_between));var L=(r=s==null?void 0:s.Caption)!==null&&r!==void 0?r:oIt;return o.jsxs("div",{className:_.join(" "),style:T,children:[o.jsx(L,{id:m,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),o.jsx(ZIt,{id:x,"aria-labelledby":m,displayMonth:t.displayMonth})]},t.displayIndex)}function rjt(t){var e=ya(),r=e.classNames,n=e.styles;return o.jsx("div",{className:r.months,style:n.months,children:t.children})}function njt(t){var e,r,n=t.initialProps,i=ya(),a=XH(),c=oI(),s=P.useState(!1),f=s[0],m=s[1];P.useEffect(function(){i.initialFocus&&a.focusTarget&&(f||(a.focus(a.focusTarget),m(!0)))},[i.initialFocus,f,a.focus,a.focusTarget,a]);var x=[i.classNames.root,i.className];i.numberOfMonths>1&&x.push(i.classNames.multiple_months),i.showWeekNumber&&x.push(i.classNames.with_weeknumber);var _=ai(ai({},i.styles.root),i.style),T=Object.keys(n).filter(function(C){return C.startsWith("data-")}).reduce(function(C,N){var L;return ai(ai({},C),(L={},L[N]=n[N],L))},{}),E=(r=(e=n.components)===null||e===void 0?void 0:e.Months)!==null&&r!==void 0?r:rjt;return o.jsx("div",ai({className:x.join(" "),style:_,dir:i.dir,id:i.id,nonce:n.nonce,title:n.title,lang:n.lang},T,{children:o.jsx(E,{children:c.displayMonths.map(function(C,N){return o.jsx(tjt,{displayIndex:N,displayMonth:C},N)})})}))}function ijt(t){var e=t.children,r=CCt(t,["children"]);return o.jsx(WCt,{initialProps:r,children:o.jsx(nIt,{children:o.jsx(FIt,{initialProps:r,children:o.jsx(fIt,{initialProps:r,children:o.jsx(gIt,{initialProps:r,children:o.jsx(TIt,{children:o.jsx(MIt,{children:e})})})})})})})}function sjt(t){return o.jsx(ijt,ai({},t,{children:o.jsx(njt,{initialProps:t})}))}function nEe({className:t,classNames:e,showOutsideDays:r=!0,captionLayout:n,...i}){const a=n==="dropdown"?"dropdown-buttons":n;return o.jsx(sjt,{showOutsideDays:r,captionLayout:a,className:ir("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center min-h-8",caption_label:"text-sm font-medium",caption_dropdowns:"flex gap-2 items-center justify-center px-9 [&_[aria-hidden=true]]:hidden",vhidden:"sr-only",nav:"space-x-1 flex items-center",nav_button:ir(KA({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",day:ir(KA({variant:"ghost"}),"h-9 w-9 p-0 font-normal aria-selected:opacity-100"),day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",dropdown:"h-8 rounded-md border border-input bg-background px-2 py-1 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",...e},components:{IconLeft:({...c})=>o.jsx(Bm,{className:"h-4 w-4"}),IconRight:({...c})=>o.jsx(th,{className:"h-4 w-4"})},...i})}nEe.displayName="Calendar";function iEe({open:t,onOpenChange:e,editTask:r,defaultDealId:n,defaultStageId:i}){var Te;const a=vCt(),c=bCt(),{data:s}=kCt(),f=es(),{data:m}=br({queryKey:["contacts-for-tasks",f],queryFn:async()=>{if(!f)return[];const{data:we,error:Oe}=await De.from("innercircle_contacts").select("id, first_name, last_name").eq("owner_user_id",f).order("first_name").limit(500);if(Oe)throw Oe;return we},enabled:!!f&&t}),[x,_]=P.useState(""),[T,E]=P.useState(""),[C,N]=P.useState("none"),[L,M]=P.useState("none"),[D,B]=P.useState("medium"),[V,G]=P.useState("todo"),[W,Z]=P.useState(),[Q,se]=P.useState(!1),[ie,ue]=P.useState(!1);P.useEffect(()=>{r?(_(r.title),E(r.description||""),N(r.deal_id||"none"),M(r.contact_id||"none"),B(r.priority),G(r.status),Z(r.due_date?$c(r.due_date):void 0)):(_(""),E(""),N(n||"none"),M("none"),B("medium"),G("todo"),Z(void 0))},[r,t,n]);const be=async()=>{if(!x.trim()){Jt.error("Task title is required");return}try{const we={title:x.trim(),description:T.trim()||null,deal_id:C==="none"?null:C,contact_id:L==="none"?null:L,stage_id:i||null,priority:D,status:V,due_date:W?Di(W,"yyyy-MM-dd"):null};r?(await c.mutateAsync({id:r.id,...we}),Jt.success("Task updated")):(await a.mutateAsync(we),V_("task_created"),Jt.success("Task created")),e(!1)}catch{Jt.error("Failed to save task")}};return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"sm:max-w-[480px]",children:[o.jsx(cl,{children:o.jsx(qo,{children:r?"Edit Task":"New Task"})}),o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx(Fr,{children:"Title *"}),o.jsx(Hr,{value:x,onChange:we=>_(we.target.value),placeholder:"e.g., Send inspection report"})]}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Description"}),o.jsx(ud,{value:T,onChange:we=>E(we.target.value),placeholder:"Optional details...",rows:2})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx(Fr,{children:"Priority"}),o.jsxs(Fa,{value:D,onValueChange:we=>B(we),children:[o.jsx(Ca,{children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"low",children:"🟢 Low"}),o.jsx(xn,{value:"medium",children:"🟡 Medium"}),o.jsx(xn,{value:"high",children:"🟠 High"}),o.jsx(xn,{value:"urgent",children:"🔴 Urgent"})]})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Status"}),o.jsxs(Fa,{value:V,onValueChange:we=>G(we),children:[o.jsx(Ca,{children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"todo",children:"To Do"}),o.jsx(xn,{value:"in_progress",children:"In Progress"}),o.jsx(xn,{value:"done",children:"Done"})]})]})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Due Date"}),o.jsxs(OR,{children:[o.jsx(FR,{asChild:!0,children:o.jsxs(Kt,{variant:"outline",className:ir("w-full justify-start text-left font-normal",!W&&"text-muted-foreground"),children:[o.jsx(fo,{className:"mr-2 h-4 w-4"}),W?Di(W,"PPP"):"Pick a date"]})}),o.jsx(xA,{className:"w-auto p-0",align:"start",children:o.jsx(nEe,{mode:"single",selected:W,onSelect:Z,initialFocus:!0,className:"p-3 pointer-events-auto"})})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Link to Deal"}),o.jsxs(OR,{open:Q,onOpenChange:se,children:[o.jsx(FR,{asChild:!0,children:o.jsxs(Kt,{variant:"outline",role:"combobox",className:"w-full justify-between font-normal",children:[o.jsxs("span",{className:"flex items-center gap-2 truncate",children:[o.jsx(Eo,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),C!=="none"?((Te=s==null?void 0:s.find(we=>we.id===C))==null?void 0:Te.deal_name)||"Select deal":"No Deal"]}),o.jsx(yU,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),o.jsx(xA,{className:"w-[--radix-popover-trigger-width] p-0",align:"start",children:o.jsxs(uk,{children:[o.jsx(dk,{placeholder:"Search deals..."}),o.jsxs(hk,{children:[o.jsx(fk,{children:"No deals found."}),o.jsxs(v1,{children:[o.jsxs(gy,{value:"no-deal",onSelect:()=>{N("none"),se(!1)},children:[o.jsx(Ao,{className:ir("mr-2 h-4 w-4",C==="none"?"opacity-100":"opacity-0")}),"No Deal"]}),s==null?void 0:s.map(we=>o.jsxs(gy,{value:we.deal_name,onSelect:()=>{N(we.id),se(!1)},children:[o.jsx(Ao,{className:ir("mr-2 h-4 w-4",C===we.id?"opacity-100":"opacity-0")}),we.deal_name]},we.id))]})]})]})})]})]}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Link to Contact"}),o.jsxs(OR,{open:ie,onOpenChange:ue,children:[o.jsx(FR,{asChild:!0,children:o.jsxs(Kt,{variant:"outline",role:"combobox",className:"w-full justify-between font-normal",children:[o.jsxs("span",{className:"flex items-center gap-2 truncate",children:[o.jsx(kl,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),L!=="none"?(()=>{const we=m==null?void 0:m.find(Oe=>Oe.id===L);return we?`${we.first_name} ${we.last_name}`:"Select contact"})():"No Contact"]}),o.jsx(yU,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),o.jsx(xA,{className:"w-[--radix-popover-trigger-width] p-0",align:"start",children:o.jsxs(uk,{children:[o.jsx(dk,{placeholder:"Search contacts..."}),o.jsxs(hk,{children:[o.jsx(fk,{children:"No contacts found."}),o.jsxs(v1,{children:[o.jsxs(gy,{value:"no-contact",onSelect:()=>{M("none"),ue(!1)},children:[o.jsx(Ao,{className:ir("mr-2 h-4 w-4",L==="none"?"opacity-100":"opacity-0")}),"No Contact"]}),m==null?void 0:m.map(we=>o.jsxs(gy,{value:`${we.first_name} ${we.last_name}`,onSelect:()=>{M(we.id),ue(!1)},children:[o.jsx(Ao,{className:ir("mr-2 h-4 w-4",L===we.id?"opacity-100":"opacity-0")}),we.first_name," ",we.last_name]},we.id))]})]})]})})]})]}),o.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[o.jsx(Kt,{variant:"outline",onClick:()=>e(!1),children:"Cancel"}),o.jsx(Kt,{onClick:be,disabled:a.isPending||c.isPending,children:r?"Save Changes":"Create Task"})]})]})]})})}const ajt={urgent:{label:"Urgent",color:"bg-red-500/10 text-red-600 border-red-200",dot:"🔴"},high:{label:"High",color:"bg-orange-500/10 text-orange-600 border-orange-200",dot:"🟠"},medium:{label:"Medium",color:"bg-amber-500/10 text-amber-600 border-amber-200",dot:"🟡"},low:{label:"Low",color:"bg-emerald-500/10 text-emerald-600 border-emerald-200",dot:"🟢"}};function ojt({tasks:t}){const e=GH(),r=wCt(),n=$a(),[i,a]=P.useState(null),c=async x=>{const _=x.status==="done"?"todo":"done";try{await e.mutateAsync({id:x.id,status:_})}catch{Jt.error("Failed to update task")}},s=async x=>{try{await r.mutateAsync(x),Jt.success("Task deleted")}catch{Jt.error("Failed to delete task")}};if(t.length===0)return o.jsxs("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[o.jsx(gc,{className:"h-12 w-12 text-muted-foreground/30 mb-3"}),o.jsx("p",{className:"text-muted-foreground font-medium",children:"No tasks found"}),o.jsx("p",{className:"text-muted-foreground/60 text-sm",children:"Create a new task to get started"})]});const f=new Map,m=[];return t.forEach(x=>{if(x.deal){const _=f.get(x.deal.id)||{dealName:x.deal.deal_name,tasks:[]};_.tasks.push(x),f.set(x.deal.id,_)}else m.push(x)}),o.jsxs("div",{className:"space-y-4",children:[m.length>0&&o.jsxs("div",{className:"border rounded-lg overflow-hidden",children:[o.jsx("div",{className:"bg-muted/30 px-4 py-2 border-b",children:o.jsx("h3",{className:"font-medium text-sm text-muted-foreground",children:"General Tasks"})}),m.map(x=>o.jsx(yoe,{task:x,onToggle:c,onDelete:s,onEdit:a,onNavigateDeal:_=>n(`/mission-control/pipeline?deal=${_}`)},x.id))]}),Array.from(f.entries()).map(([x,_])=>o.jsxs("div",{className:"border rounded-lg overflow-hidden",children:[o.jsxs("button",{onClick:()=>n(`/mission-control/pipeline?deal=${x}`),className:"w-full bg-muted/30 px-4 py-2 border-b flex items-center gap-2 hover:bg-muted/50 transition-colors text-left",children:[o.jsx(Eo,{className:"h-3.5 w-3.5 text-muted-foreground"}),o.jsx("h3",{className:"font-medium text-sm",children:_.dealName}),o.jsxs(hs,{variant:"secondary",className:"ml-auto text-xs",children:[_.tasks.filter(T=>T.status==="done").length,"/",_.tasks.length]}),o.jsx(th,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),_.tasks.map(T=>o.jsx(yoe,{task:T,onToggle:c,onDelete:s,onEdit:a,onNavigateDeal:E=>n(`/mission-control/pipeline?deal=${E}`)},T.id))]},x)),i&&o.jsx(iEe,{open:!!i,onOpenChange:()=>a(null),editTask:i})]})}function yoe({task:t,onToggle:e,onDelete:r,onEdit:n,onNavigateDeal:i}){const a=t.status==="done",c=!a&&t.due_date&&_1($c(t.due_date))&&!qd($c(t.due_date)),s=!a&&t.due_date&&qd($c(t.due_date)),f=ajt[t.priority];return o.jsxs("div",{className:ir("flex items-center gap-3 px-4 py-3 border-b last:border-b-0 group hover:bg-muted/30 transition-colors",a&&"opacity-60"),children:[o.jsx("button",{onClick:()=>e(t),className:"shrink-0",children:a?o.jsx(gc,{className:"h-5 w-5 text-emerald-500"}):o.jsx(l1,{className:"h-5 w-5 text-muted-foreground hover:text-primary transition-colors"})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:ir("text-sm font-medium truncate",a&&"line-through text-muted-foreground"),children:t.title}),o.jsxs("div",{className:"flex items-center gap-2 mt-0.5 flex-wrap",children:[t.stage&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{backgroundColor:t.stage.color+"20",color:t.stage.color},children:t.stage.name}),t.contact&&o.jsxs("span",{className:"text-[10px] text-muted-foreground flex items-center gap-0.5",children:[o.jsx(kl,{className:"h-2.5 w-2.5"}),t.contact.first_name," ",t.contact.last_name]})]})]}),o.jsxs(hs,{variant:"outline",className:ir("text-[10px] shrink-0",f.color),children:[f.dot," ",f.label]}),t.due_date&&o.jsxs("span",{className:ir("text-xs shrink-0 flex items-center gap-1",c&&"text-destructive font-medium",s&&"text-amber-600 font-medium",!c&&!s&&"text-muted-foreground"),children:[o.jsx(pc,{className:"h-3 w-3"}),Di($c(t.due_date),"MMM d")]}),o.jsxs("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[o.jsx("button",{onClick:()=>n(t),className:"p-1 hover:bg-muted rounded",children:o.jsx(wU,{className:"h-3.5 w-3.5 text-muted-foreground"})}),o.jsx("button",{onClick:()=>r(t.id),className:"p-1 hover:bg-destructive/10 rounded",children:o.jsx(TL,{className:"h-3.5 w-3.5 text-destructive"})})]})]})}const ljt=[{status:"todo",label:"To Do",icon:l1,color:"border-t-slate-400"},{status:"in_progress",label:"In Progress",icon:sG,color:"border-t-blue-500"},{status:"done",label:"Done",icon:gc,color:"border-t-emerald-500"}],cjt={urgent:"🔴",high:"🟠",medium:"🟡",low:"🟢"};function ujt({tasks:t}){const e=GH(),r=P.useMemo(()=>{const a={todo:[],in_progress:[],done:[]};return t.forEach(c=>a[c.status].push(c)),a},[t]),n=(a,c)=>{a.dataTransfer.setData("taskId",c)},i=async(a,c)=>{a.preventDefault();const s=a.dataTransfer.getData("taskId");if(!s)return;const f=t.find(m=>m.id===s);if(!(!f||f.status===c))try{await e.mutateAsync({id:s,status:c})}catch{Jt.error("Failed to move task")}};return o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:ljt.map(a=>o.jsxs("div",{className:ir("border rounded-lg border-t-4 bg-muted/20",a.color),onDragOver:c=>c.preventDefault(),onDrop:c=>i(c,a.status),children:[o.jsxs("div",{className:"px-4 py-3 flex items-center gap-2",children:[o.jsx(a.icon,{className:"h-4 w-4 text-muted-foreground"}),o.jsx("h3",{className:"font-semibold text-sm",children:a.label}),o.jsx(hs,{variant:"secondary",className:"ml-auto text-xs",children:r[a.status].length})]}),o.jsxs("div",{className:"p-2 space-y-2 min-h-[200px]",children:[r[a.status].map(c=>o.jsx(djt,{task:c,onDragStart:n},c.id)),r[a.status].length===0&&o.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:"Drag tasks here"})]})]},a.status))})}function djt({task:t,onDragStart:e}){const r=t.status==="done",n=!r&&t.due_date&&_1($c(t.due_date))&&!qd($c(t.due_date)),i=!r&&t.due_date&&qd($c(t.due_date));return o.jsx("div",{draggable:!0,onDragStart:a=>e(a,t.id),className:ir("bg-background border rounded-lg p-3 cursor-grab active:cursor-grabbing shadow-sm hover:shadow-md transition-shadow",n&&"border-destructive/50"),children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx("span",{className:"text-xs mt-0.5",children:cjt[t.priority]}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:ir("text-sm font-medium",r&&"line-through text-muted-foreground"),children:t.title}),o.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[t.deal&&o.jsxs("span",{className:"text-[10px] text-muted-foreground flex items-center gap-0.5",children:[o.jsx(Eo,{className:"h-2.5 w-2.5"}),t.deal.deal_name]}),t.contact&&o.jsxs("span",{className:"text-[10px] text-muted-foreground flex items-center gap-0.5",children:[o.jsx(kl,{className:"h-2.5 w-2.5"}),t.contact.first_name," ",t.contact.last_name]})]}),t.due_date&&o.jsxs("div",{className:ir("text-[10px] mt-1.5 flex items-center gap-1",n&&"text-destructive font-medium",i&&"text-amber-600 font-medium",!n&&!i&&"text-muted-foreground"),children:[o.jsx(pc,{className:"h-2.5 w-2.5"}),n?"Overdue — ":i?"Due today — ":"",Di($c(t.due_date),"MMM d")]}),t.stage&&o.jsx("span",{className:"inline-block text-[10px] px-1.5 py-0.5 rounded-full font-medium mt-1.5",style:{backgroundColor:t.stage.color+"20",color:t.stage.color},children:t.stage.name})]})]})})}const xoe={urgent:"🔴",high:"🟠",medium:"🟡",low:"🟢"};function hjt({tasks:t}){const[e,r]=P.useState(new Date),n=GH(),i=Zc(e),a=$C(e),c=yc(i),s=MO(a),f=_9e({start:c,end:s}),m=P.useMemo(()=>{const T=new Map;return t.forEach(E=>{if(!E.due_date)return;const C=E.due_date,N=T.get(C)||[];N.push(E),T.set(C,N)}),T},[t]),x=P.useMemo(()=>t.filter(T=>!T.due_date),[t]),_=async T=>{const E=T.status==="done"?"todo":"done";try{await n.mutateAsync({id:T.id,status:E})}catch{Jt.error("Failed to update task")}};return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx(Kt,{variant:"ghost",size:"icon",onClick:()=>r(PHe(e,1)),children:o.jsx(Bm,{className:"h-4 w-4"})}),o.jsx("h3",{className:"font-semibold",children:Di(e,"MMMM yyyy")}),o.jsx(Kt,{variant:"ghost",size:"icon",onClick:()=>r(od(e,1)),children:o.jsx(th,{className:"h-4 w-4"})})]}),o.jsx("div",{className:"grid grid-cols-7 text-center",children:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(T=>o.jsx("div",{className:"text-xs font-medium text-muted-foreground py-2",children:T},T))}),o.jsx("div",{className:"grid grid-cols-7 border-l border-t",children:f.map(T=>{const E=Di(T,"yyyy-MM-dd"),C=m.get(E)||[],N=FO(T,e),L=qd(T);return o.jsxs("div",{className:ir("border-r border-b min-h-[100px] p-1",!N&&"bg-muted/30",L&&"bg-primary/5"),children:[o.jsx("div",{className:ir("text-xs font-medium mb-1 text-right px-1",!N&&"text-muted-foreground/40",L&&"text-primary font-bold"),children:Di(T,"d")}),o.jsxs("div",{className:"space-y-0.5",children:[C.slice(0,3).map(M=>o.jsxs("button",{onClick:()=>_(M),className:ir("w-full text-left text-[10px] px-1 py-0.5 rounded truncate flex items-center gap-0.5 hover:bg-muted transition-colors",M.status==="done"?"text-muted-foreground line-through":"text-foreground"),children:[M.status==="done"?o.jsx(gc,{className:"h-2.5 w-2.5 text-emerald-500 shrink-0"}):o.jsx(l1,{className:"h-2.5 w-2.5 shrink-0"}),o.jsxs("span",{className:"truncate",children:[xoe[M.priority]," ",M.title]})]},M.id)),C.length>3&&o.jsxs("p",{className:"text-[9px] text-muted-foreground text-center",children:["+",C.length-3," more"]})]})]},E)})}),x.length>0&&o.jsxs("div",{className:"border rounded-lg p-3",children:[o.jsxs("h4",{className:"text-sm font-medium text-muted-foreground mb-2",children:["No Due Date (",x.length,")"]}),o.jsx("div",{className:"space-y-1",children:x.map(T=>o.jsxs("button",{onClick:()=>_(T),className:ir("w-full text-left text-xs px-2 py-1.5 rounded flex items-center gap-2 hover:bg-muted transition-colors",T.status==="done"&&"opacity-50 line-through"),children:[T.status==="done"?o.jsx(gc,{className:"h-3.5 w-3.5 text-emerald-500 shrink-0"}):o.jsx(l1,{className:"h-3.5 w-3.5 shrink-0"}),o.jsxs("span",{className:"truncate",children:[xoe[T.priority]," ",T.title]}),T.deal&&o.jsxs("span",{className:"text-muted-foreground ml-auto shrink-0",children:["• ",T.deal.deal_name]})]},T.id))})]})]})}const fjt={urgent:"🔴",high:"🟠",medium:"🟡",low:"🟢"};function pjt({open:t,onOpenChange:e,stages:r}){var M;const[n,i]=P.useState(((M=r[0])==null?void 0:M.id)||""),{data:a,isLoading:c}=SCt(n||void 0),s=TCt(),f=ECt(),[m,x]=P.useState(""),[_,T]=P.useState("medium"),[E,C]=P.useState(""),N=async()=>{if(!(!m.trim()||!n))try{await s.mutateAsync({stage_id:n,title:m.trim(),priority:_,default_due_offset_days:E?parseInt(E):null,sort_order:((a==null?void 0:a.length)||0)+1}),x(""),C(""),Jt.success("Template added")}catch{Jt.error("Failed to add template")}},L=async D=>{try{await f.mutateAsync(D),Jt.success("Template deleted")}catch{Jt.error("Failed to delete template")}};return o.jsx(ro,{open:t,onOpenChange:e,children:o.jsxs(za,{className:"sm:max-w-[560px]",children:[o.jsx(cl,{children:o.jsxs(qo,{className:"flex items-center gap-2",children:[o.jsx(NRe,{className:"h-5 w-5"}),"Task Templates by Stage"]})}),o.jsx("p",{className:"text-sm text-muted-foreground -mt-2",children:"Create default tasks that auto-populate when a deal enters a stage."}),o.jsxs("div",{children:[o.jsx(Fr,{children:"Pipeline Stage"}),o.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:r.filter(D=>!D.is_won_stage&&!D.is_lost_stage).map(D=>o.jsx("button",{onClick:()=>i(D.id),className:ir("px-3 py-1.5 rounded-full text-xs font-medium border transition-colors",n===D.id?"border-primary bg-primary/10 text-primary":"border-border hover:bg-muted"),children:D.name},D.id))})]}),o.jsx(pp,{className:"max-h-[250px]",children:o.jsxs("div",{className:"space-y-1.5",children:[a==null?void 0:a.map((D,B)=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border rounded-lg group",children:[o.jsx("span",{className:"text-xs",children:fjt[D.priority]}),o.jsx("span",{className:"text-sm flex-1 truncate",children:D.title}),D.default_due_offset_days&&o.jsxs(hs,{variant:"outline",className:"text-[10px]",children:["+",D.default_due_offset_days,"d"]}),o.jsx("button",{onClick:()=>L(D.id),className:"opacity-0 group-hover:opacity-100 p-1 hover:bg-destructive/10 rounded transition-opacity",children:o.jsx(TL,{className:"h-3.5 w-3.5 text-destructive"})})]},D.id)),(a==null?void 0:a.length)===0&&n&&o.jsx("p",{className:"text-sm text-muted-foreground text-center py-6",children:"No templates for this stage yet"})]})}),n&&o.jsxs("div",{className:"space-y-3 border-t pt-3",children:[o.jsx(Fr,{className:"text-xs text-muted-foreground",children:"Add Template Task"}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(Hr,{placeholder:"Task title...",value:m,onChange:D=>x(D.target.value),className:"flex-1",onKeyDown:D=>D.key==="Enter"&&N()}),o.jsxs(Fa,{value:_,onValueChange:D=>T(D),children:[o.jsx(Ca,{className:"w-[100px]",children:o.jsx(Ba,{})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"low",children:"🟢 Low"}),o.jsx(xn,{value:"medium",children:"🟡 Med"}),o.jsx(xn,{value:"high",children:"🟠 High"}),o.jsx(xn,{value:"urgent",children:"🔴 Urgent"})]})]})]}),o.jsxs("div",{className:"flex gap-2 items-end",children:[o.jsxs("div",{className:"flex-1",children:[o.jsx(Fr,{className:"text-xs",children:"Due offset (days from entering stage)"}),o.jsx(Hr,{type:"number",placeholder:"e.g., 7",value:E,onChange:D=>C(D.target.value)})]}),o.jsxs(Kt,{onClick:N,disabled:!m.trim()||s.isPending,children:[o.jsx(ym,{className:"h-4 w-4 mr-1"}),"Add"]})]})]})]})})}function mjt(){const{data:t,isLoading:e}=_Ct(),{data:r}=ACt(),[n,i]=P.useState("list"),[a,c]=P.useState(""),[s,f]=P.useState("active"),[m,x]=P.useState("all"),[_,T]=P.useState("all"),[E,C]=P.useState(!1),[N,L]=P.useState(!1),M=P.useMemo(()=>{if(!t)return[];const V=new Map;return t.forEach(G=>{G.deal&&V.set(G.deal.id,G.deal.deal_name)}),Array.from(V,([G,W])=>({id:G,name:W}))},[t]),D=P.useMemo(()=>t?t.filter(V=>{var ie,ue,be,Te;const G=a.toLowerCase(),W=!G||V.title.toLowerCase().includes(G)||((ue=(ie=V.deal)==null?void 0:ie.deal_name)==null?void 0:ue.toLowerCase().includes(G))||`${((be=V.contact)==null?void 0:be.first_name)||""} ${((Te=V.contact)==null?void 0:Te.last_name)||""}`.toLowerCase().includes(G),Z=s==="all"||s==="active"&&V.status!=="done"||s==="todo"&&V.status==="todo"||s==="in_progress"&&V.status==="in_progress"||s==="done"&&V.status==="done"||s==="overdue"&&V.status!=="done"&&V.due_date&&_1($c(V.due_date))&&!qd($c(V.due_date)),Q=m==="all"||V.priority===m,se=_==="all"||_==="no_deal"&&!V.deal_id||V.deal_id===_;return W&&Z&&Q&&se}):[],[t,a,s,m,_]),B=P.useMemo(()=>{if(!t)return{total:0,overdue:0,dueToday:0,dueThisWeek:0,completed:0};const V=t.filter(G=>G.status!=="done");return{total:V.length,overdue:V.filter(G=>G.due_date&&_1($c(G.due_date))&&!qd($c(G.due_date))).length,dueToday:V.filter(G=>G.due_date&&qd($c(G.due_date))).length,dueThisWeek:V.filter(G=>G.due_date&&mHe($c(G.due_date))).length,completed:t.filter(G=>G.status==="done").length}},[t]);return o.jsx(b1,{children:o.jsxs("div",{className:"space-y-6 p-4 md:p-6 max-w-[1600px] mx-auto",children:[o.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Tasks"}),o.jsx("p",{className:"text-muted-foreground text-sm",children:"Manage tasks across deals and contacts"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(Kt,{variant:"outline",size:"sm",onClick:()=>L(!0),children:[o.jsx(RRe,{className:"h-4 w-4 mr-1"}),"Templates"]}),o.jsxs(Kt,{size:"sm",onClick:()=>C(!0),children:[o.jsx(ym,{className:"h-4 w-4 mr-1"}),"New Task"]})]})]}),o.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3",children:[o.jsxs("button",{onClick:()=>f("active"),className:`p-3 rounded-lg border text-left transition-colors ${s==="active"?"border-primary bg-primary/5":"hover:bg-muted/50"}`,children:[o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground text-xs font-medium",children:[o.jsx(bU,{className:"h-3.5 w-3.5"}),"Active"]}),o.jsx("p",{className:"text-xl font-bold mt-1",children:B.total})]}),o.jsxs("button",{onClick:()=>f("overdue"),className:`p-3 rounded-lg border text-left transition-colors ${s==="overdue"?"border-destructive bg-destructive/5":"hover:bg-muted/50"}`,children:[o.jsxs("div",{className:"flex items-center gap-2 text-destructive text-xs font-medium",children:[o.jsx(SC,{className:"h-3.5 w-3.5"}),"Overdue"]}),o.jsx("p",{className:"text-xl font-bold mt-1 text-destructive",children:B.overdue})]}),o.jsxs("button",{onClick:()=>{f("active")},className:"p-3 rounded-lg border text-left hover:bg-muted/50 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2 text-amber-600 text-xs font-medium",children:[o.jsx(pc,{className:"h-3.5 w-3.5"}),"Due Today"]}),o.jsx("p",{className:"text-xl font-bold mt-1",children:B.dueToday})]}),o.jsxs("button",{onClick:()=>{f("active")},className:"p-3 rounded-lg border text-left hover:bg-muted/50 transition-colors",children:[o.jsxs("div",{className:"flex items-center gap-2 text-blue-600 text-xs font-medium",children:[o.jsx(Xf,{className:"h-3.5 w-3.5"}),"This Week"]}),o.jsx("p",{className:"text-xl font-bold mt-1",children:B.dueThisWeek})]}),o.jsxs("button",{onClick:()=>f("done"),className:`p-3 rounded-lg border text-left transition-colors ${s==="done"?"border-emerald-500 bg-emerald-500/5":"hover:bg-muted/50"}`,children:[o.jsxs("div",{className:"flex items-center gap-2 text-emerald-600 text-xs font-medium",children:[o.jsx(gc,{className:"h-3.5 w-3.5"}),"Completed"]}),o.jsx("p",{className:"text-xl font-bold mt-1",children:B.completed})]})]}),o.jsxs("div",{className:"flex flex-col md:flex-row gap-3 items-start md:items-center",children:[o.jsxs("div",{className:"relative flex-1 max-w-sm",children:[o.jsx(x_,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),o.jsx(Hr,{placeholder:"Search tasks...",value:a,onChange:V=>c(V.target.value),className:"pl-9"})]}),o.jsxs(Fa,{value:m,onValueChange:x,children:[o.jsx(Ca,{className:"w-[130px]",children:o.jsx(Ba,{placeholder:"Priority"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"All Priorities"}),o.jsx(xn,{value:"urgent",children:"🔴 Urgent"}),o.jsx(xn,{value:"high",children:"🟠 High"}),o.jsx(xn,{value:"medium",children:"🟡 Medium"}),o.jsx(xn,{value:"low",children:"🟢 Low"})]})]}),o.jsxs(Fa,{value:_,onValueChange:T,children:[o.jsx(Ca,{className:"w-[160px]",children:o.jsx(Ba,{placeholder:"Deal"})}),o.jsxs(Ia,{children:[o.jsx(xn,{value:"all",children:"All Deals"}),o.jsx(xn,{value:"no_deal",children:"No Deal"}),M.map(V=>o.jsx(xn,{value:V.id,children:V.name},V.id))]})]}),o.jsxs("div",{className:"flex items-center border rounded-lg p-0.5 ml-auto",children:[o.jsx("button",{onClick:()=>i("list"),className:`p-1.5 rounded-md transition-colors ${n==="list"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"}`,children:o.jsx(bU,{className:"h-4 w-4"})}),o.jsx("button",{onClick:()=>i("kanban"),className:`p-1.5 rounded-md transition-colors ${n==="kanban"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"}`,children:o.jsx(oG,{className:"h-4 w-4"})}),o.jsx("button",{onClick:()=>i("calendar"),className:`p-1.5 rounded-md transition-colors ${n==="calendar"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"}`,children:o.jsx(Xf,{className:"h-4 w-4"})})]})]}),e?o.jsx("div",{className:"flex items-center justify-center py-20",children:o.jsx("div",{className:"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full"})}):o.jsxs(o.Fragment,{children:[n==="list"&&o.jsx(ojt,{tasks:D}),n==="kanban"&&o.jsx(ujt,{tasks:D}),n==="calendar"&&o.jsx(hjt,{tasks:D})]}),o.jsx(iEe,{open:E,onOpenChange:C}),o.jsx(pjt,{open:N,onOpenChange:L,stages:r||[]})]})})}const FVt={pending_payment:"Pending Payment",order_submitted:"Order Submitted",awaiting_proof_approval:"Awaiting Proof Approval",proof_approved:"Proof Approved",processing:"Processing",in_production:"In Production",shipped:"Shipped",completed:"Completed",cancelled:"Cancelled",refunded:"Refunded"},BVt={pending_payment:"bg-yellow-100 text-yellow-800",order_submitted:"bg-blue-100 text-blue-800",awaiting_proof_approval:"bg-orange-100 text-orange-800",proof_approved:"bg-green-100 text-green-800",processing:"bg-purple-100 text-purple-800",in_production:"bg-indigo-100 text-indigo-800",shipped:"bg-cyan-100 text-cyan-800",completed:"bg-green-200 text-green-900",cancelled:"bg-red-100 text-red-800",refunded:"bg-gray-100 text-gray-800"};function gjt(t=!0){return br({queryKey:["marketplace-categories",t],queryFn:async()=>{let e=De.from("marketplace_categories").select("*").order("sort_order",{ascending:!0});t&&(e=e.eq("is_active",!0));const{data:r,error:n}=await e;if(n)throw n;return r}})}function zVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("marketplace_categories").insert([e]).select().single();if(n)throw n;return r},onSuccess:()=>{t.invalidateQueries({queryKey:["marketplace-categories"]}),Jt.success("Category created successfully")},onError:e=>{Jt.error("Failed to create category: "+e.message)}})}function $Vt(){const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("marketplace_categories").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:()=>{t.invalidateQueries({queryKey:["marketplace-categories"]}),Jt.success("Category updated successfully")},onError:e=>{Jt.error("Failed to update category: "+e.message)}})}function UVt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("marketplace_categories").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["marketplace-categories"]}),Jt.success("Category deleted successfully")},onError:e=>{Jt.error("Failed to delete category: "+e.message)}})}function yjt(t,e=!0){return br({queryKey:["marketplace-products",t,e],queryFn:async()=>{let r=De.from("marketplace_products").select(` *, category:marketplace_categories(*), images:marketplace_product_images(*), video:marketplace_product_videos(*), variants:marketplace_product_variants(*) `).order("sort_order",{ascending:!0});t&&(r=r.eq("category_id",t)),e&&(r=r.eq("is_active",!0));const{data:n,error:i}=await r;if(i)throw i;return n}})}function VVt(t){return br({queryKey:["marketplace-product",t],queryFn:async()=>{const{data:e,error:r}=await De.from("marketplace_products").select(` *, category:marketplace_categories(*), images:marketplace_product_images(*), video:marketplace_product_videos(*), variants:marketplace_product_variants(*) `).eq("id",t).single();if(r)throw r;return e},enabled:!!t})}function qVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("marketplace_products").insert([e]).select().single();if(n)throw n;return r},onSuccess:()=>{t.invalidateQueries({queryKey:["marketplace-products"]}),Jt.success("Product created successfully")},onError:e=>{Jt.error("Failed to create product: "+e.message)}})}function GVt(){const t=Ir();return kr({mutationFn:async({id:e,...r})=>{const{data:n,error:i}=await De.from("marketplace_products").update(r).eq("id",e).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",r.id]}),Jt.success("Product updated successfully")},onError:e=>{Jt.error("Failed to update product: "+e.message)}})}function HVt(){const t=Ir();return kr({mutationFn:async e=>{const{error:r}=await De.from("marketplace_products").delete().eq("id",e);if(r)throw r},onSuccess:()=>{t.invalidateQueries({queryKey:["marketplace-products"]}),Jt.success("Product deleted successfully")},onError:e=>{Jt.error("Failed to delete product: "+e.message)}})}function WVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("marketplace_product_images").insert([e]).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",r.product_id]})}})}function KVt(){const t=Ir();return kr({mutationFn:async({id:e,productId:r})=>{const{error:n}=await De.from("marketplace_product_images").delete().eq("id",e);if(n)throw n;return r},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",e]}),Jt.success("Image deleted successfully")},onError:e=>{Jt.error("Failed to delete image: "+e.message)}})}function YVt(){const t=Ir();return kr({mutationFn:async({imageId:e,productId:r})=>{const{error:n}=await De.from("marketplace_product_images").update({is_primary:!1}).eq("product_id",r);if(n)throw n;const{error:i}=await De.from("marketplace_product_images").update({is_primary:!0}).eq("id",e);if(i)throw i;return r},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",e]}),Jt.success("Primary image updated")},onError:e=>{Jt.error("Failed to set primary image: "+e.message)}})}function ZVt(){const t=Ir();return kr({mutationFn:async e=>{const{data:r,error:n}=await De.from("marketplace_product_variants").insert([e]).select().single();if(n)throw n;return r},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",r.product_id]}),Jt.success("Variant added successfully")}})}function XVt(){const t=Ir();return kr({mutationFn:async({id:e,productId:r})=>{const{error:n}=await De.from("marketplace_product_variants").delete().eq("id",e);if(n)throw n;return r},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",e]}),Jt.success("Variant deleted successfully")}})}function QVt(){const t=Ir();return kr({mutationFn:async({productId:e,videoUrl:r})=>{await De.from("marketplace_product_videos").delete().eq("product_id",e);const{data:n,error:i}=await De.from("marketplace_product_videos").insert({product_id:e,video_url:r}).select().single();if(i)throw i;return n},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["marketplace-products"]}),t.invalidateQueries({queryKey:["marketplace-product",r.productId]}),Jt.success("Video updated successfully")}})}function JVt(t){const{isAdmin:e}=$n();return br({queryKey:["marketplace-orders",t,e],queryFn:async()=>{let r=De.from("marketplace_orders").select(` *, items:marketplace_order_items(*), status_history:marketplace_order_status_history(*) `).order("created_at",{ascending:!1});const{data:n,error:i}=await r;if(i)throw i;if(e&&n){const a=[...new Set(n.map(f=>f.user_id))],{data:c}=await De.from("profiles").select("id, name, email").in("id",a),s=new Map((c==null?void 0:c.map(f=>[f.id,f]))||[]);return n.map(f=>({...f,user:s.get(f.user_id)}))}return n}})}function e8t(){const{user:t}=$n();return br({queryKey:["my-marketplace-orders",t==null?void 0:t.id],queryFn:async()=>{const{data:e,error:r}=await De.from("marketplace_orders").select(` *, items:marketplace_order_items(*), status_history:marketplace_order_status_history(*) `).eq("user_id",t.id).order("created_at",{ascending:!1});if(r)throw r;return e},enabled:!!(t!=null&&t.id)})}function t8t(t){return br({queryKey:["marketplace-order",t],queryFn:async()=>{const{data:e,error:r}=await De.from("marketplace_orders").select(` *, items:marketplace_order_items(*), status_history:marketplace_order_status_history(*) `).eq("id",t).single();if(r)throw r;return e},enabled:!!t})}function r8t(){const t=Ir(),{user:e}=$n();return kr({mutationFn:async({orderId:r,status:n,notes:i,trackingNumber:a,trackingUrl:c,previousStatus:s})=>{const f={status:n};a!==void 0&&(f.tracking_number=a),c!==void 0&&(f.tracking_url=c);const{error:m}=await De.from("marketplace_orders").update(f).eq("id",r);if(m)throw m;const{error:x}=await De.from("marketplace_order_status_history").insert({order_id:r,status:n,notes:i,created_by:e==null?void 0:e.id});if(x)throw x;if(["shipped","in_production","processing","completed"].includes(n)&&n!==s)try{await De.functions.invoke("marketplace-order-notify",{body:{orderId:r,notificationType:n==="shipped"?"shipped":"status_update",newStatus:n,trackingNumber:a,trackingUrl:c}})}catch(T){console.error("Failed to send notification email:",T)}},onSuccess:(r,n)=>{t.invalidateQueries({queryKey:["marketplace-orders"]}),t.invalidateQueries({queryKey:["marketplace-order",n.orderId]}),t.invalidateQueries({queryKey:["my-marketplace-orders"]}),Jt.success("Order status updated")},onError:r=>{Jt.error("Failed to update order: "+r.message)}})}function n8t(){const t=Ir();return kr({mutationFn:async({itemId:e,proofUrl:r,proofNotes:n,orderId:i})=>{const{error:a}=await De.from("marketplace_order_items").update({proof_url:r,proof_notes:n,proof_status:"pending"}).eq("id",e);if(a)throw a;await De.from("marketplace_orders").update({status:"awaiting_proof_approval"}).eq("id",i);try{await De.functions.invoke("marketplace-order-notify",{body:{orderId:i,notificationType:"proof_ready"}})}catch(c){console.error("Failed to send proof notification:",c)}return i},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-orders"]}),t.invalidateQueries({queryKey:["marketplace-order",e]}),t.invalidateQueries({queryKey:["my-marketplace-orders"]}),Jt.success("Proof uploaded & customer notified")}})}function i8t(){const t=Ir();return kr({mutationFn:async({itemId:e,orderId:r})=>{const{error:n}=await De.from("marketplace_order_items").update({proof_status:"approved"}).eq("id",e);if(n)throw n;return r},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-orders"]}),t.invalidateQueries({queryKey:["marketplace-order",e]}),t.invalidateQueries({queryKey:["my-marketplace-orders"]}),Jt.success("Proof approved")}})}function s8t(){const t=Ir();return kr({mutationFn:async({itemId:e,orderId:r,reason:n})=>{const{error:i}=await De.from("marketplace_order_items").update({proof_status:"rejected",proof_notes:n}).eq("id",e);if(i)throw i;return r},onSuccess:e=>{t.invalidateQueries({queryKey:["marketplace-orders"]}),t.invalidateQueries({queryKey:["marketplace-order",e]}),t.invalidateQueries({queryKey:["my-marketplace-orders"]}),Jt.success("Proof rejected - please upload a new proof")}})}function xjt(){const t=$a(),[e,r]=P.useState(null),{data:n,isLoading:i}=yjt(e||void 0,!0),{data:a,isLoading:c}=gjt(!0),{cartItems:s}=P0e(),f=s.reduce((x,_)=>x+_.quantity,0),m=x=>{t(`/marketplace/${x.id}`)};return i||c?o.jsx(b1,{title:"Marketplace",children:o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{className:"flex gap-2 overflow-x-auto pb-2",children:[1,2,3].map(x=>o.jsx(al,{className:"h-10 w-24 flex-shrink-0"},x))}),o.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:[1,2,3,4].map(x=>o.jsx(al,{className:"h-72 w-full"},x))})]})}):o.jsx(b1,{title:"Marketplace",children:o.jsxs("div",{className:"space-y-6",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("div",{children:[o.jsx("h1",{className:"text-5xl font-bold text-foreground",children:"Marketplace"}),o.jsx("p",{className:"text-muted-foreground mt-1",children:"Shop exclusive products for LevelUp members"})]}),o.jsxs(Kt,{variant:"outline",onClick:()=>t("/marketplace/cart"),className:"relative",children:[o.jsx(Uhe,{className:"h-4 w-4 mr-2"}),"Cart",f>0&&o.jsx(hs,{className:"absolute -top-2 -right-2 h-5 w-5 flex items-center justify-center p-0 text-xs",children:f})]})]}),a&&a.length>0&&o.jsxs("div",{className:"flex gap-2 overflow-x-auto pb-2",children:[o.jsx(Kt,{variant:e===null?"default":"outline",size:"sm",onClick:()=>r(null),children:"All"}),a.map(x=>o.jsx(Kt,{variant:e===x.id?"default":"outline",size:"sm",onClick:()=>r(x.id),children:x.name},x.id))]}),n&&n.length>0?o.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:n.map(x=>{var _;return o.jsxs(qn,{className:"overflow-hidden cursor-pointer hover:shadow-lg transition-shadow",onClick:()=>m(x),children:[o.jsxs("div",{className:"aspect-square bg-muted relative",children:[x.images&&x.images.length>0?o.jsx("img",{src:((_=x.images.find(T=>T.is_primary))==null?void 0:_.image_url)||x.images[0].image_url,alt:x.name,className:"w-full h-full object-cover"}):o.jsx("div",{className:"flex items-center justify-center h-full",children:o.jsx(_J,{className:"h-12 w-12 text-muted-foreground"})}),x.category&&o.jsx(hs,{className:"absolute top-2 left-2",variant:"secondary",children:x.category.name})]}),o.jsxs(ri,{className:"p-4",children:[o.jsx("h3",{className:"font-semibold mb-1 line-clamp-1",children:x.name}),x.description&&o.jsx("p",{className:"text-sm text-muted-foreground mb-2 line-clamp-2",children:x.description}),o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsxs("span",{className:"font-bold text-lg",children:["$",Number(x.base_price).toFixed(2)]}),x.variants&&x.variants.length>0&&o.jsxs("span",{className:"text-xs text-muted-foreground",children:[x.variants.length," options"]})]})]})]},x.id)})}):o.jsxs("div",{className:"text-center py-12",children:[o.jsx(_J,{className:"h-12 w-12 mx-auto text-muted-foreground mb-4"}),o.jsx("p",{className:"text-muted-foreground",children:"No products available yet."})]})]})})}const lI={home_anniversary:{title:["Happy Home","Anniversary"],icon:"🏡",emojis:["🏡","✨","🎉","❤️","🎊","🏠"],defaultMessage:"Wishing you many more wonderful years of memories in your beautiful home. Thank you for letting me be part of your journey."},wedding_anniversary:{title:["Happy","Anniversary"],icon:"💍",emojis:["💍","💐","❤️","🥂","💕","✨"],defaultMessage:"Wishing you both a wonderful anniversary filled with love, laughter, and cherished memories. Here's to many more years together!"},just_listed:{title:["Just","Listed!"],icon:"🏠",emojis:["🏠","📋","🔑","⭐","🎯","✨"],defaultMessage:"Exciting news — this beautiful property just hit the market! Contact me for a private showing."},just_sold:{title:["Just","Sold!"],icon:"🎉",emojis:["🎉","🏡","🔑","🥂","🎊","💰"],defaultMessage:"Another successful closing! Congratulations to the new homeowners. It was a pleasure making this happen."},congratulations:{title:["Congratulations!",""],icon:"🏆",emojis:["🎉","🥳","🏆","⭐","🎊","✨"],defaultMessage:"What an incredible milestone! I'm so happy for you. Wishing you all the best in this exciting new chapter."},birthday:{title:["Happy","Birthday!"],icon:"🎂",emojis:["🎂","🎈","🎁","🥳","🎉","🧁"],defaultMessage:"Wishing you the happiest of birthdays! May this year bring you joy, laughter, and everything you've been dreaming of."},holiday:{title:["Happy","Holidays!"],icon:"🎄",emojis:["🎄","❄️","🎁","⭐","🕯️","🎅"],defaultMessage:"Wishing you and your family a season filled with warmth, joy, and cherished moments. Happy Holidays!"},thank_you:{title:["Thank","You!"],icon:"💐",emojis:["💐","🙏","❤️","⭐","✨","🤝"],defaultMessage:"Thank you so much for your trust and confidence. It truly means the world to me. I'm always here for you!"},thinking_of_you:{title:["Thinking","Of You"],icon:"💭",emojis:["💭","❤️","🌸","☀️","🦋","💫"],defaultMessage:"Just wanted to reach out and let you know I'm thinking of you. I hope you're doing well — don't hesitate to reach out anytime!"}};function N2({delay:t,x:e,y:r,size:n}){return o.jsx(hr.div,{className:"absolute rounded-full bg-slate-300/30 dark:bg-slate-500/20",style:{left:e,top:r,width:n,height:n},animate:{y:[0,-20,0],opacity:[.3,.7,.3],scale:[1,1.2,1]},transition:{duration:4,delay:t,repeat:1/0,ease:"easeInOut"}})}function _jt(t){const{cardType:e,recipientName:r,propertyAddress:n,anniversaryYears:i,customMessage:a,agentName:c,agentPhotoUrl:s,agentPhone:f,agentEmail:m,agentBrokerage:x,propertyPhotoUrl:_,videoUrl:T}=t,E=lI[e];return o.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-50 via-blue-50/30 to-white dark:from-slate-950 dark:to-slate-900 flex items-center justify-center p-4 overflow-hidden relative",children:[o.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[o.jsx(hr.div,{className:"absolute -top-20 -right-20 w-72 h-72 rounded-full bg-gradient-to-br from-blue-100/40 to-slate-100/20 blur-3xl",animate:{scale:[1,1.1,1],rotate:[0,5,0]},transition:{duration:8,repeat:1/0,ease:"easeInOut"}}),o.jsx(hr.div,{className:"absolute -bottom-20 -left-20 w-64 h-64 rounded-full bg-gradient-to-tr from-slate-200/30 to-blue-100/20 blur-3xl",animate:{scale:[1,1.15,1],rotate:[0,-5,0]},transition:{duration:10,repeat:1/0,ease:"easeInOut"}}),o.jsx(N2,{delay:0,x:"15%",y:"20%",size:8}),o.jsx(N2,{delay:1,x:"80%",y:"30%",size:6}),o.jsx(N2,{delay:2,x:"60%",y:"70%",size:10}),o.jsx(N2,{delay:.5,x:"25%",y:"80%",size:7}),o.jsx(N2,{delay:1.5,x:"70%",y:"15%",size:5})]}),o.jsxs(hr.div,{className:"w-full max-w-md relative z-10",initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8,ease:"easeOut"},children:[o.jsxs(hr.div,{className:"bg-white/80 dark:bg-slate-900/80 backdrop-blur-xl rounded-3xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.1)] overflow-hidden border border-slate-200/60 dark:border-slate-700/50",initial:{scale:.95},animate:{scale:1},transition:{duration:.6,delay:.2},children:[o.jsx("div",{className:"relative h-2 bg-gradient-to-r from-slate-200 via-blue-300 to-slate-200 dark:from-slate-700 dark:via-blue-500 dark:to-slate-700 overflow-hidden",children:o.jsx(hr.div,{className:"absolute inset-0 bg-gradient-to-r from-transparent via-white/60 to-transparent",animate:{x:["-100%","200%"]},transition:{duration:3,repeat:1/0,repeatDelay:2,ease:"easeInOut"}})}),o.jsxs("div",{className:"px-8 py-10 text-center",children:[o.jsxs(hr.div,{className:"mx-auto mb-6 h-20 w-20 rounded-2xl bg-gradient-to-br from-slate-100 to-blue-50 dark:from-slate-800 dark:to-slate-700 flex items-center justify-center shadow-lg relative",initial:{scale:0,rotate:-10},animate:{scale:1,rotate:0},transition:{duration:.5,delay:.4,type:"spring",stiffness:200},children:[o.jsx(hr.div,{className:"absolute inset-0 rounded-2xl border-2 border-slate-200/50 dark:border-slate-600/50",animate:{scale:[1,1.15,1],opacity:[.5,0,.5]},transition:{duration:2.5,repeat:1/0,ease:"easeInOut"}}),o.jsx("span",{className:"text-4xl",children:E.icon})]}),e==="home_anniversary"&&i!==null&&i>0&&o.jsx(hr.div,{className:"inline-block mb-4",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.4,delay:.6},children:o.jsxs("span",{className:"text-sm font-semibold tracking-[0.25em] uppercase text-blue-400 dark:text-blue-300",children:[i," ",i===1?"Year":"Years"]})}),o.jsx(hr.h1,{className:"text-4xl font-light text-slate-800 dark:text-slate-100 mb-1 tracking-tight",initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,delay:.7},children:E.title[0]}),E.title[1]&&o.jsx(hr.h2,{className:"text-4xl font-bold text-slate-800 dark:text-slate-100 mb-8 tracking-tight",initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,delay:.85},children:E.title[1]}),o.jsxs(hr.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,delay:1},children:[o.jsx("p",{className:"text-xl font-medium text-slate-700 dark:text-slate-200 mb-1",children:r}),n&&o.jsx("p",{className:"text-sm text-slate-400 dark:text-slate-500 mb-6",children:n})]}),o.jsx(hr.div,{className:"h-px bg-gradient-to-r from-transparent via-slate-300 dark:via-slate-600 to-transparent mx-auto mb-6",initial:{width:0},animate:{width:"80%"},transition:{duration:.8,delay:1.1},style:{margin:"0 auto 1.5rem"}}),_&&o.jsx(hr.div,{className:"mb-6 rounded-xl overflow-hidden shadow-md",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.15,duration:.5},children:o.jsx("img",{src:_,alt:"Property",className:"w-full h-48 object-cover"})}),T&&o.jsx(hr.div,{className:"mb-6 rounded-xl overflow-hidden shadow-md",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.2,duration:.5},children:o.jsx("iframe",{src:`${T}?autoplay=false&responsive=true`,className:"w-full aspect-video",allow:"autoplay; encrypted-media",allowFullScreen:!0})}),o.jsx(hr.p,{className:"text-sm text-slate-500 dark:text-slate-400 leading-relaxed max-w-xs mx-auto mb-8 italic",initial:{opacity:0},animate:{opacity:1},transition:{duration:.6,delay:1.3},children:a||E.defaultMessage}),o.jsxs(hr.div,{className:"border-t border-slate-100 dark:border-slate-800 pt-6",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.5,delay:1.5},children:[o.jsxs("div",{className:"flex items-center justify-center gap-3",children:[s?o.jsx(hr.img,{src:s,alt:c,className:"h-12 w-12 rounded-full object-cover ring-2 ring-slate-200 dark:ring-slate-700 shadow-md",whileHover:{scale:1.1}}):o.jsx("div",{className:"h-12 w-12 rounded-full bg-gradient-to-br from-slate-200 to-blue-100 dark:from-slate-700 dark:to-slate-600 flex items-center justify-center shadow-md",children:o.jsx("span",{className:"text-sm font-semibold text-slate-600 dark:text-slate-300",children:c.charAt(0)})}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-sm font-semibold text-slate-700 dark:text-slate-200",children:c}),x&&o.jsx("p",{className:"text-xs text-slate-400 dark:text-slate-500",children:x})]})]}),o.jsxs("div",{className:"flex items-center justify-center gap-3 mt-4",children:[f&&o.jsxs(hr.a,{href:`tel:${f}`,className:"flex items-center gap-1.5 px-4 py-2 rounded-full bg-slate-100 dark:bg-slate-800 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors shadow-sm",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call"]}),m&&o.jsxs(hr.a,{href:`mailto:${m}`,className:"flex items-center gap-1.5 px-4 py-2 rounded-full bg-slate-100 dark:bg-slate-800 text-xs font-medium text-slate-600 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-700 transition-colors shadow-sm",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})]}),o.jsx(hr.p,{className:"text-center text-[10px] text-slate-400 dark:text-slate-600 mt-4",initial:{opacity:0},animate:{opacity:1},transition:{delay:2},children:"Powered by LevelUp"})]})]})}function $z({delay:t,x:e,y:r,color:n,size:i}){return o.jsx(hr.div,{className:`absolute rounded-full blur-2xl ${n}`,style:{left:e,top:r,width:i,height:i},animate:{scale:[1,1.4,1],opacity:[.2,.5,.2]},transition:{duration:5,delay:t,repeat:1/0,ease:"easeInOut"}})}function R2({delay:t,x:e,y:r}){return o.jsx(hr.div,{className:"absolute text-white/30 text-lg",style:{left:e,top:r},animate:{opacity:[0,1,0],scale:[.5,1,.5],rotate:[0,180,360]},transition:{duration:3,delay:t,repeat:1/0,ease:"easeInOut"},children:"✦"})}const _oe={home_anniversary:{bg:"from-violet-950 via-purple-900 to-fuchsia-950",orbs:["bg-violet-500/30","bg-fuchsia-500/25","bg-purple-400/20"]},birthday:{bg:"from-pink-950 via-rose-900 to-fuchsia-950",orbs:["bg-pink-500/30","bg-rose-500/25","bg-fuchsia-400/20"]},just_sold:{bg:"from-emerald-950 via-teal-900 to-cyan-950",orbs:["bg-emerald-500/30","bg-teal-500/25","bg-cyan-400/20"]},just_listed:{bg:"from-amber-950 via-orange-900 to-yellow-950",orbs:["bg-amber-500/30","bg-orange-500/25","bg-yellow-400/20"]},thank_you:{bg:"from-rose-950 via-pink-900 to-red-950",orbs:["bg-rose-500/30","bg-pink-500/25","bg-red-400/20"]},congratulations:{bg:"from-yellow-950 via-amber-900 to-orange-950",orbs:["bg-yellow-500/30","bg-amber-500/25","bg-orange-400/20"]},holiday:{bg:"from-red-950 via-rose-900 to-emerald-950",orbs:["bg-red-500/30","bg-green-500/25","bg-rose-400/20"]},thinking_of_you:{bg:"from-indigo-950 via-violet-900 to-purple-950",orbs:["bg-indigo-500/30","bg-violet-500/25","bg-purple-400/20"]}};function vjt(t){const{cardType:e,recipientName:r,propertyAddress:n,anniversaryYears:i,customMessage:a,agentName:c,agentPhotoUrl:s,agentPhone:f,agentEmail:m,agentBrokerage:x,propertyPhotoUrl:_,videoUrl:T}=t,E=lI[e],C=_oe[e]||_oe.home_anniversary;return o.jsxs("div",{className:`min-h-screen bg-gradient-to-br ${C.bg} flex items-center justify-center p-4 overflow-hidden relative`,children:[o.jsx($z,{delay:0,x:"10%",y:"10%",color:C.orbs[0],size:200}),o.jsx($z,{delay:1,x:"70%",y:"60%",color:C.orbs[1],size:180}),o.jsx($z,{delay:2,x:"50%",y:"20%",color:C.orbs[2],size:150}),o.jsx(R2,{delay:0,x:"20%",y:"25%"}),o.jsx(R2,{delay:.8,x:"75%",y:"15%"}),o.jsx(R2,{delay:1.6,x:"85%",y:"65%"}),o.jsx(R2,{delay:2.4,x:"10%",y:"75%"}),o.jsx(R2,{delay:.4,x:"45%",y:"85%"}),o.jsxs(hr.div,{className:"w-full max-w-md relative z-10",initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:.7,ease:"easeOut"},children:[o.jsxs(hr.div,{className:"relative rounded-3xl overflow-hidden",initial:{scale:.9},animate:{scale:1},transition:{duration:.5,delay:.2,type:"spring",stiffness:150},children:[o.jsx(hr.div,{className:"absolute -inset-[1px] rounded-3xl bg-gradient-to-r from-violet-500 via-fuchsia-500 to-violet-500 opacity-50",animate:{backgroundPosition:["0% 50%","100% 50%","0% 50%"]},transition:{duration:4,repeat:1/0,ease:"linear"},style:{backgroundSize:"200% 200%"}}),o.jsxs("div",{className:"relative bg-white/5 backdrop-blur-xl border border-white/10 rounded-3xl px-8 py-10 text-center m-[1px]",children:[o.jsxs(hr.div,{className:"mx-auto mb-6 h-20 w-20 rounded-2xl bg-gradient-to-br from-violet-500 to-fuchsia-500 flex items-center justify-center shadow-2xl shadow-violet-500/40 relative",initial:{scale:0,rotate:-20},animate:{scale:1,rotate:0},transition:{duration:.6,delay:.4,type:"spring",stiffness:200},children:[o.jsx(hr.div,{className:"absolute inset-0 rounded-2xl bg-gradient-to-br from-violet-500 to-fuchsia-500",animate:{scale:[1,1.3,1],opacity:[.6,0,.6]},transition:{duration:2,repeat:1/0,ease:"easeInOut"}}),o.jsx("span",{className:"text-4xl relative z-10",children:E.icon})]}),e==="home_anniversary"&&i!==null&&i>0&&o.jsxs(hr.div,{className:"inline-flex items-center gap-2 mb-5 px-5 py-2 rounded-full bg-white/10 border border-white/15 backdrop-blur-sm",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.4,delay:.6},children:[o.jsx(hr.span,{className:"text-3xl font-black text-white",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.8},children:i}),o.jsx("span",{className:"text-xs font-semibold text-violet-200 uppercase tracking-widest",children:i===1?"Year":"Years"})]}),o.jsx(hr.h1,{className:"text-5xl font-black text-transparent bg-clip-text bg-gradient-to-r from-violet-200 via-white to-fuchsia-200 mb-2 leading-tight",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.7},children:E.title[0]}),E.title[1]&&o.jsx(hr.h2,{className:"text-5xl font-black text-transparent bg-clip-text bg-gradient-to-r from-fuchsia-300 via-violet-200 to-purple-300 mb-2 leading-tight",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.85},children:E.title[1]}),o.jsx(hr.div,{className:"text-3xl mb-4",initial:{opacity:0,scale:0},animate:{opacity:1,scale:1},transition:{duration:.4,delay:1,type:"spring",stiffness:300},children:E.emojis.slice(0,3).join("")}),o.jsxs(hr.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:1.1},children:[o.jsx("p",{className:"text-xl font-semibold text-white/90 mb-1",children:r}),n&&o.jsxs("p",{className:"text-sm text-violet-300/70 mb-6 flex items-center justify-center gap-1.5",children:[o.jsx(Ma,{className:"h-3.5 w-3.5"}),n]})]}),_&&o.jsx(hr.div,{className:"mb-6 rounded-2xl overflow-hidden border border-white/10 shadow-lg",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.2,duration:.5},children:o.jsx("img",{src:_,alt:"Property",className:"w-full h-48 object-cover"})}),T&&o.jsx(hr.div,{className:"mb-6 rounded-2xl overflow-hidden border border-white/10 shadow-lg",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.25,duration:.5},children:o.jsx("iframe",{src:`${T}?autoplay=false&responsive=true`,className:"w-full aspect-video",allow:"autoplay; encrypted-media",allowFullScreen:!0})}),o.jsx(hr.div,{className:"bg-white/5 rounded-2xl p-5 border border-white/10 mb-8 backdrop-blur-sm",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.3},children:o.jsx("p",{className:"text-sm text-violet-100/80 leading-relaxed",children:a||E.defaultMessage})}),o.jsxs(hr.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.5},children:[o.jsxs("div",{className:"flex items-center justify-center gap-3",children:[s?o.jsx(hr.img,{src:s,alt:c,className:"h-12 w-12 rounded-xl object-cover ring-2 ring-violet-500/40 shadow-lg",whileHover:{scale:1.1}}):o.jsx("div",{className:"h-12 w-12 rounded-xl bg-gradient-to-br from-violet-500 to-fuchsia-500 flex items-center justify-center shadow-lg",children:o.jsx("span",{className:"text-sm font-bold text-white",children:c.charAt(0)})}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-sm font-bold text-white",children:c}),x&&o.jsx("p",{className:"text-xs text-violet-300/60",children:x})]})]}),o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-5",children:[f&&o.jsxs(hr.a,{href:`tel:${f}`,className:"flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-gradient-to-r from-violet-500/30 to-fuchsia-500/30 text-xs font-semibold text-white hover:from-violet-500/50 hover:to-fuchsia-500/50 transition-all border border-white/15 shadow-lg",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call Me"]}),m&&o.jsxs(hr.a,{href:`mailto:${m}`,className:"flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-gradient-to-r from-violet-500/30 to-fuchsia-500/30 text-xs font-semibold text-white hover:from-violet-500/50 hover:to-fuchsia-500/50 transition-all border border-white/15 shadow-lg",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})]}),o.jsx(hr.p,{className:"text-center text-[10px] text-violet-400/40 mt-4",initial:{opacity:0},animate:{opacity:1},transition:{delay:2},children:"Powered by LevelUp"})]})]})}function bjt({emoji:t,delay:e,x:r,duration:n}){return o.jsx(hr.div,{className:"absolute text-2xl pointer-events-none",style:{left:r,bottom:-20},animate:{y:[0,-600],opacity:[0,1,1,0],x:[0,15,-10,5],rotate:[0,20,-15,10]},transition:{duration:n,delay:e,repeat:1/0,ease:"easeOut"},children:t})}const voe={home_anniversary:{bg:"from-amber-50 via-orange-50 to-rose-50",header:"from-amber-400 via-orange-400 to-rose-400",accent:"text-amber-900",text:"text-amber-800"},birthday:{bg:"from-pink-50 via-rose-50 to-fuchsia-50",header:"from-pink-400 via-rose-400 to-fuchsia-400",accent:"text-pink-900",text:"text-pink-800"},just_sold:{bg:"from-emerald-50 via-teal-50 to-cyan-50",header:"from-emerald-400 via-teal-400 to-cyan-400",accent:"text-emerald-900",text:"text-emerald-800"},just_listed:{bg:"from-sky-50 via-blue-50 to-indigo-50",header:"from-sky-400 via-blue-400 to-indigo-400",accent:"text-blue-900",text:"text-blue-800"},thank_you:{bg:"from-rose-50 via-pink-50 to-red-50",header:"from-rose-400 via-pink-400 to-red-400",accent:"text-rose-900",text:"text-rose-800"},congratulations:{bg:"from-yellow-50 via-amber-50 to-orange-50",header:"from-yellow-400 via-amber-400 to-orange-400",accent:"text-amber-900",text:"text-amber-800"},holiday:{bg:"from-red-50 via-green-50 to-emerald-50",header:"from-red-500 via-green-500 to-emerald-500",accent:"text-green-900",text:"text-green-800"},thinking_of_you:{bg:"from-violet-50 via-purple-50 to-indigo-50",header:"from-violet-400 via-purple-400 to-indigo-400",accent:"text-violet-900",text:"text-violet-800"}};function wjt(t){const{cardType:e,recipientName:r,propertyAddress:n,anniversaryYears:i,customMessage:a,agentName:c,agentPhotoUrl:s,agentPhone:f,agentEmail:m,agentBrokerage:x,propertyPhotoUrl:_,videoUrl:T}=t,E=lI[e],C=voe[e]||voe.home_anniversary;return o.jsxs("div",{className:`min-h-screen bg-gradient-to-b ${C.bg} flex items-center justify-center p-4 overflow-hidden relative`,children:[E.emojis.map((N,L)=>o.jsx(bjt,{emoji:N,delay:L*1.2,x:`${15+L*14}%`,duration:5+L%3},L)),o.jsx(hr.div,{className:"absolute top-1/4 left-1/2 -translate-x-1/2 w-96 h-96 bg-gradient-to-r from-amber-200/30 to-rose-200/30 rounded-full blur-[100px]",animate:{scale:[1,1.2,1],opacity:[.3,.5,.3]},transition:{duration:6,repeat:1/0,ease:"easeInOut"}}),o.jsxs(hr.div,{className:"w-full max-w-md relative z-10",initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.7},children:[o.jsxs(hr.div,{className:"bg-white rounded-3xl shadow-[0_20px_60px_-15px_rgba(251,146,60,0.2)] overflow-hidden border border-amber-100",initial:{scale:.9},animate:{scale:1},transition:{duration:.5,delay:.2,type:"spring",stiffness:150},children:[o.jsxs(hr.div,{className:`h-28 bg-gradient-to-r ${C.header} relative overflow-hidden`,children:[o.jsx(hr.div,{className:"absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent",animate:{x:["-100%","200%"]},transition:{duration:3,repeat:1/0,repeatDelay:2,ease:"easeInOut"}}),o.jsx(hr.div,{className:"absolute top-3 left-10 text-5xl",animate:{rotate:[0,10,-5,0],y:[0,-3,0]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},children:E.emojis[0]}),o.jsx(hr.div,{className:"absolute top-2 right-14 text-3xl",animate:{scale:[1,1.3,1],rotate:[0,15,0]},transition:{duration:2,repeat:1/0,ease:"easeInOut",delay:.5},children:E.emojis[1]}),o.jsx(hr.div,{className:"absolute bottom-2 left-1/2 -translate-x-1/2 text-3xl",animate:{y:[0,-5,0],scale:[1,1.1,1]},transition:{duration:2.5,repeat:1/0,ease:"easeInOut",delay:1},children:E.emojis[2]})]}),o.jsxs("div",{className:"px-8 py-8 text-center -mt-10 relative",children:[o.jsx(hr.div,{className:"mx-auto mb-4 h-20 w-20 rounded-full bg-white shadow-xl flex items-center justify-center border-4 border-white relative",initial:{scale:0},animate:{scale:1},transition:{delay:.4,type:"spring",stiffness:300},children:o.jsx(hr.div,{animate:{scale:[1,1.2,1]},transition:{duration:1.5,repeat:1/0,ease:"easeInOut"},children:o.jsx("span",{className:"text-3xl",children:E.icon})})}),e==="home_anniversary"&&i!==null&&i>0&&o.jsx(hr.div,{className:"mb-3",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{delay:.6},children:o.jsxs("span",{className:`inline-flex items-baseline gap-1.5 ${C.accent}`,children:[o.jsx(hr.span,{className:"text-5xl font-black",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.8},children:i}),o.jsx("span",{className:"text-sm font-semibold",children:i===1?"year":"wonderful years"})]})}),o.jsxs(hr.h1,{className:`text-3xl font-bold ${C.accent} mb-1`,initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.9},children:[E.title.join(" ")," ",E.emojis[4]]}),o.jsxs(hr.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:1.1},children:[o.jsx("p",{className:`text-lg font-semibold ${C.text} mb-1`,children:r}),n&&o.jsxs("p",{className:`text-sm ${C.text} opacity-70 flex items-center justify-center gap-1 mb-5`,children:[o.jsx(ga,{className:"h-3 w-3"}),n]})]}),_&&o.jsx(hr.div,{className:"mb-5 rounded-2xl overflow-hidden border border-amber-200 shadow-md",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.2,duration:.5},children:o.jsx("img",{src:_,alt:"Property",className:"w-full h-48 object-cover"})}),T&&o.jsx(hr.div,{className:"mb-5 rounded-2xl overflow-hidden border border-amber-200 shadow-md",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.25,duration:.5},children:o.jsx("iframe",{src:`${T}?autoplay=false&responsive=true`,className:"w-full aspect-video",allow:"autoplay; encrypted-media",allowFullScreen:!0})}),o.jsx(hr.div,{className:"bg-gradient-to-br from-amber-50 to-orange-50 rounded-2xl p-5 mb-6 border border-amber-100 shadow-inner",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.3},children:o.jsxs("p",{className:`text-sm ${C.text} leading-relaxed italic`,children:['"',a||E.defaultMessage,'"']})}),o.jsxs(hr.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.5},children:[o.jsxs("div",{className:"flex items-center gap-3 justify-center",children:[s?o.jsx(hr.img,{src:s,alt:c,className:"h-12 w-12 rounded-full object-cover ring-2 ring-amber-200 shadow-md",whileHover:{scale:1.1}}):o.jsx("div",{className:`h-12 w-12 rounded-full bg-gradient-to-br ${C.header} flex items-center justify-center shadow-md`,children:o.jsx("span",{className:"text-sm font-bold text-white",children:c.charAt(0)})}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:`text-sm font-bold ${C.accent}`,children:c}),x&&o.jsx("p",{className:`text-xs ${C.text} opacity-60`,children:x})]})]}),o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-4",children:[f&&o.jsxs(hr.a,{href:`tel:${f}`,className:`flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-gradient-to-r ${C.header} text-xs font-semibold text-white shadow-md`,whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call"]}),m&&o.jsxs(hr.a,{href:`mailto:${m}`,className:`flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-gradient-to-r ${C.header} text-xs font-semibold text-white shadow-md`,whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})]}),o.jsx(hr.p,{className:"text-center text-[10px] text-amber-400 mt-4",initial:{opacity:0},animate:{opacity:1},transition:{delay:2},children:"Powered by LevelUp"})]})]})}function BN({delay:t,x:e,y:r,size:n,color:i}){return o.jsx(hr.div,{className:`absolute rounded-full ${i} blur-3xl`,style:{left:e,top:r,width:n,height:n},animate:{scale:[1,1.3,1],opacity:[.4,.7,.4],x:[0,20,-10,0],y:[0,-15,10,0]},transition:{duration:8,delay:t,repeat:1/0,ease:"easeInOut"}})}function Uz({delay:t,x:e,y:r,size:n}){return o.jsx(hr.div,{className:"absolute rounded-full border border-white/10",style:{left:e,top:r,width:n,height:n},animate:{scale:[1,1.2,1],opacity:[.1,.3,.1],rotate:[0,180,360]},transition:{duration:12,delay:t,repeat:1/0,ease:"linear"}})}const boe={home_anniversary:{mesh:["bg-sky-400/40","bg-indigo-500/30","bg-violet-400/25"],accent:"text-sky-200",glow:"shadow-sky-500/20"},birthday:{mesh:["bg-pink-400/40","bg-fuchsia-500/30","bg-purple-400/25"],accent:"text-pink-200",glow:"shadow-pink-500/20"},just_sold:{mesh:["bg-emerald-400/40","bg-teal-500/30","bg-cyan-400/25"],accent:"text-emerald-200",glow:"shadow-emerald-500/20"},just_listed:{mesh:["bg-amber-400/40","bg-orange-500/30","bg-yellow-400/25"],accent:"text-amber-200",glow:"shadow-amber-500/20"},thank_you:{mesh:["bg-rose-400/40","bg-pink-500/30","bg-red-400/25"],accent:"text-rose-200",glow:"shadow-rose-500/20"},congratulations:{mesh:["bg-yellow-400/40","bg-amber-500/30","bg-orange-400/25"],accent:"text-yellow-200",glow:"shadow-yellow-500/20"},holiday:{mesh:["bg-red-400/40","bg-emerald-500/30","bg-green-400/25"],accent:"text-red-200",glow:"shadow-red-500/20"},thinking_of_you:{mesh:["bg-violet-400/40","bg-indigo-500/30","bg-blue-400/25"],accent:"text-violet-200",glow:"shadow-violet-500/20"}};function Sjt(t){const{cardType:e,recipientName:r,propertyAddress:n,anniversaryYears:i,customMessage:a,agentName:c,agentPhotoUrl:s,agentPhone:f,agentEmail:m,agentBrokerage:x,propertyPhotoUrl:_,videoUrl:T}=t,E=lI[e],C=boe[e]||boe.home_anniversary;return o.jsxs("div",{className:"min-h-screen bg-slate-950 flex items-center justify-center p-4 overflow-hidden relative",children:[o.jsx(BN,{delay:0,x:"5%",y:"10%",size:300,color:C.mesh[0]}),o.jsx(BN,{delay:2,x:"60%",y:"50%",size:250,color:C.mesh[1]}),o.jsx(BN,{delay:4,x:"30%",y:"70%",size:200,color:C.mesh[2]}),o.jsx(BN,{delay:1,x:"80%",y:"15%",size:180,color:C.mesh[0]}),o.jsx(Uz,{delay:0,x:"15%",y:"20%",size:100}),o.jsx(Uz,{delay:3,x:"70%",y:"60%",size:140}),o.jsx(Uz,{delay:6,x:"40%",y:"10%",size:80}),o.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:`url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")`}}),o.jsxs(hr.div,{className:"w-full max-w-md relative z-10",initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:.8,ease:[.16,1,.3,1]},children:[o.jsxs(hr.div,{className:`relative rounded-[28px] overflow-hidden backdrop-blur-2xl bg-white/[0.06] border border-white/[0.12] shadow-2xl ${C.glow}`,initial:{scale:.92},animate:{scale:1},transition:{duration:.6,delay:.2,type:"spring",stiffness:120},children:[o.jsx("div",{className:"relative h-[2px] bg-gradient-to-r from-transparent via-white/20 to-transparent overflow-hidden",children:o.jsx(hr.div,{className:"absolute inset-0 bg-gradient-to-r from-transparent via-white/60 to-transparent",animate:{x:["-100%","200%"]},transition:{duration:4,repeat:1/0,repeatDelay:3,ease:"easeInOut"}})}),o.jsxs("div",{className:"px-8 py-10 text-center",children:[o.jsxs(hr.div,{className:"mx-auto mb-6 h-24 w-24 rounded-3xl bg-white/[0.08] backdrop-blur-xl border border-white/[0.15] flex items-center justify-center relative",initial:{scale:0,rotate:-15},animate:{scale:1,rotate:0},transition:{duration:.6,delay:.4,type:"spring",stiffness:180},children:[o.jsx(hr.div,{className:"absolute -inset-1 rounded-3xl border border-white/[0.08]",animate:{scale:[1,1.1,1],opacity:[.3,0,.3]},transition:{duration:3,repeat:1/0,ease:"easeInOut"}}),o.jsx(hr.span,{className:"text-5xl",animate:{scale:[1,1.08,1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"},children:E.icon})]}),e==="home_anniversary"&&i!==null&&i>0&&o.jsxs(hr.div,{className:"inline-flex items-center gap-2 mb-5 px-5 py-2 rounded-full bg-white/[0.06] border border-white/[0.1] backdrop-blur-sm",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.4,delay:.6},children:[o.jsx(hr.span,{className:"text-3xl font-black text-white",initial:{opacity:0},animate:{opacity:1},transition:{delay:.8},children:i}),o.jsx("span",{className:`text-[10px] font-bold uppercase tracking-[0.2em] ${C.accent}`,children:i===1?"Year":"Years"})]}),o.jsx(hr.h1,{className:"text-4xl font-extralight text-white/90 mb-1 tracking-tight",initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.6,delay:.7},children:E.title[0]}),E.title[1]&&o.jsx(hr.h2,{className:"text-4xl font-bold text-white mb-6 tracking-tight",initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.6,delay:.85},children:E.title[1]}),o.jsxs(hr.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:1},children:[o.jsx("p",{className:"text-xl font-medium text-white/80 mb-1",children:r}),n&&o.jsxs("p",{className:"text-sm text-white/30 mb-6 flex items-center justify-center gap-1.5",children:[o.jsx(ga,{className:"h-3 w-3"})," ",n]})]}),o.jsx(hr.div,{className:"h-px bg-gradient-to-r from-transparent via-white/15 to-transparent mx-auto mb-6",initial:{width:0},animate:{width:"70%"},transition:{duration:1,delay:1.1},style:{margin:"0 auto 1.5rem"}}),_&&o.jsx(hr.div,{className:"mb-6 rounded-2xl overflow-hidden border border-white/10",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.15,duration:.5},children:o.jsx("img",{src:_,alt:"Property",className:"w-full h-48 object-cover"})}),T&&o.jsx(hr.div,{className:"mb-6 rounded-2xl overflow-hidden border border-white/10",initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{delay:1.2,duration:.5},children:o.jsx("iframe",{src:`${T}?autoplay=false&responsive=true`,className:"w-full aspect-video",allow:"autoplay; encrypted-media",allowFullScreen:!0})}),o.jsx(hr.div,{className:"bg-white/[0.04] rounded-2xl p-5 border border-white/[0.08] mb-8 backdrop-blur-sm",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.3},children:o.jsxs("p",{className:"text-sm text-white/60 leading-relaxed italic",children:['"',a||E.defaultMessage,'"']})}),o.jsxs(hr.div,{className:"border-t border-white/[0.06] pt-6",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:1.5},children:[o.jsxs("div",{className:"flex items-center justify-center gap-3",children:[s?o.jsx(hr.img,{src:s,alt:c,className:"h-12 w-12 rounded-2xl object-cover ring-1 ring-white/10",whileHover:{scale:1.08}}):o.jsx("div",{className:"h-12 w-12 rounded-2xl bg-white/[0.08] border border-white/[0.1] flex items-center justify-center",children:o.jsx("span",{className:"text-sm font-semibold text-white/60",children:c.charAt(0)})}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-sm font-semibold text-white/80",children:c}),x&&o.jsx("p",{className:"text-xs text-white/30",children:x})]})]}),o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-4",children:[f&&o.jsxs(hr.a,{href:`tel:${f}`,className:"flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-white/[0.06] border border-white/[0.1] text-xs font-medium text-white/70 hover:bg-white/[0.12] transition-colors backdrop-blur-sm",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call"]}),m&&o.jsxs(hr.a,{href:`mailto:${m}`,className:"flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-white/[0.06] border border-white/[0.1] text-xs font-medium text-white/70 hover:bg-white/[0.12] transition-colors backdrop-blur-sm",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})]}),o.jsx(hr.p,{className:"text-center text-[10px] text-white/20 mt-4",initial:{opacity:0},animate:{opacity:1},transition:{delay:2},children:"Powered by LevelUp"})]})]})}function Vz({delay:t,x:e,angle:r,color:n}){return o.jsx(hr.div,{className:`absolute h-[400px] w-[1px] ${n} origin-top`,style:{left:e,top:"-10%",transform:`rotate(${r}deg)`},animate:{opacity:[0,.4,0],scaleY:[.5,1,.5]},transition:{duration:6,delay:t,repeat:1/0,ease:"easeInOut"}})}function zN({delay:t,x:e}){return o.jsx(hr.div,{className:"absolute w-1 h-1 rounded-full bg-amber-400/60",style:{left:e,bottom:"20%"},animate:{y:[0,-200,-400],x:[0,15,-10],opacity:[0,.8,0],scale:[0,1.5,0]},transition:{duration:4,delay:t,repeat:1/0,ease:"easeOut"}})}const woe={home_anniversary:{gradient:"from-slate-950 via-blue-950 to-slate-950",accent:"from-blue-400 to-cyan-300",stripe:"bg-blue-400/20"},birthday:{gradient:"from-slate-950 via-rose-950 to-slate-950",accent:"from-rose-400 to-pink-300",stripe:"bg-rose-400/20"},just_sold:{gradient:"from-slate-950 via-emerald-950 to-slate-950",accent:"from-emerald-400 to-green-300",stripe:"bg-emerald-400/20"},just_listed:{gradient:"from-slate-950 via-amber-950 to-slate-950",accent:"from-amber-400 to-yellow-300",stripe:"bg-amber-400/20"},thank_you:{gradient:"from-slate-950 via-pink-950 to-slate-950",accent:"from-pink-400 to-rose-300",stripe:"bg-pink-400/20"},congratulations:{gradient:"from-slate-950 via-yellow-950 to-slate-950",accent:"from-yellow-400 to-amber-300",stripe:"bg-yellow-400/20"},holiday:{gradient:"from-slate-950 via-red-950 to-slate-950",accent:"from-red-400 to-green-400",stripe:"bg-red-400/20"},thinking_of_you:{gradient:"from-slate-950 via-purple-950 to-slate-950",accent:"from-purple-400 to-violet-300",stripe:"bg-purple-400/20"}};function Tjt(t){const{cardType:e,recipientName:r,propertyAddress:n,anniversaryYears:i,customMessage:a,agentName:c,agentPhotoUrl:s,agentPhone:f,agentEmail:m,agentBrokerage:x,propertyPhotoUrl:_,videoUrl:T}=t,E=lI[e],C=woe[e]||woe.home_anniversary;return o.jsxs("div",{className:`min-h-screen bg-gradient-to-b ${C.gradient} flex items-center justify-center p-4 overflow-hidden relative`,children:[o.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top,rgba(255,255,255,0.04)_0%,transparent_60%)]"}),o.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_bottom,rgba(0,0,0,0.6)_0%,transparent_60%)]"}),o.jsx(Vz,{delay:0,x:"20%",angle:15,color:C.stripe}),o.jsx(Vz,{delay:2,x:"75%",angle:-12,color:C.stripe}),o.jsx(Vz,{delay:4,x:"50%",angle:5,color:C.stripe}),o.jsx(zN,{delay:0,x:"30%"}),o.jsx(zN,{delay:1.5,x:"60%"}),o.jsx(zN,{delay:3,x:"45%"}),o.jsx(zN,{delay:.7,x:"75%"}),o.jsx("div",{className:"absolute inset-0 opacity-[0.015] mix-blend-overlay",style:{backgroundImage:`url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")`}}),o.jsxs(hr.div,{className:"w-full max-w-md relative z-10",initial:{opacity:0},animate:{opacity:1},transition:{duration:1.2},children:[o.jsx(hr.div,{className:"relative overflow-hidden",initial:{y:50},animate:{y:0},transition:{duration:.8,delay:.3,ease:[.16,1,.3,1]},children:o.jsxs("div",{className:"px-8 py-12 text-center",children:[o.jsx(hr.div,{className:"mx-auto mb-8 relative",initial:{scale:0},animate:{scale:1},transition:{duration:.8,delay:.5,type:"spring",stiffness:100},children:o.jsx(hr.div,{className:`h-20 w-20 mx-auto rounded-2xl bg-gradient-to-br ${C.accent} flex items-center justify-center shadow-2xl`,animate:{boxShadow:["0 0 40px rgba(255,255,255,0.05)","0 0 80px rgba(255,255,255,0.1)","0 0 40px rgba(255,255,255,0.05)"]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},children:o.jsx("span",{className:"text-4xl",children:E.icon})})}),e==="home_anniversary"&&i!==null&&i>0&&o.jsxs(hr.div,{className:"mb-6",initial:{opacity:0},animate:{opacity:1},transition:{delay:.7},children:[o.jsx(hr.span,{className:`text-6xl font-black bg-gradient-to-r ${C.accent} bg-clip-text text-transparent`,initial:{scale:.5,opacity:0},animate:{scale:1,opacity:1},transition:{delay:.9,type:"spring"},children:i}),o.jsx("p",{className:"text-[10px] font-bold uppercase tracking-[0.4em] text-white/30 mt-1",children:i===1?"Year":"Years"})]}),o.jsx("div",{className:"overflow-hidden mb-2",children:o.jsx(hr.h1,{className:"text-5xl font-thin text-white/90 tracking-wide",initial:{y:"100%"},animate:{y:0},transition:{duration:.7,delay:.8,ease:[.16,1,.3,1]},children:E.title[0]})}),E.title[1]&&o.jsx("div",{className:"overflow-hidden mb-8",children:o.jsx(hr.h2,{className:`text-5xl font-black bg-gradient-to-r ${C.accent} bg-clip-text text-transparent`,initial:{y:"100%"},animate:{y:0},transition:{duration:.7,delay:.95,ease:[.16,1,.3,1]},children:E.title[1]})}),o.jsxs(hr.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:1.1,duration:.6},children:[o.jsx("p",{className:"text-lg font-light text-white/70 tracking-wide",children:r}),n&&o.jsxs("p",{className:"text-xs text-white/25 mt-1 flex items-center justify-center gap-1",children:[o.jsx(ga,{className:"h-3 w-3"})," ",n]})]}),o.jsxs(hr.div,{className:"flex items-center justify-center gap-3 my-8",initial:{opacity:0},animate:{opacity:1},transition:{delay:1.2},children:[o.jsx(hr.div,{className:"h-px flex-1 max-w-[60px] bg-gradient-to-r from-transparent to-white/15",initial:{scaleX:0},animate:{scaleX:1},transition:{delay:1.3,duration:.8},style:{transformOrigin:"right"}}),o.jsx(hr.span,{className:"text-white/10 text-xs",animate:{rotate:[0,360]},transition:{duration:20,repeat:1/0,ease:"linear"},children:"✦"}),o.jsx(hr.div,{className:"h-px flex-1 max-w-[60px] bg-gradient-to-l from-transparent to-white/15",initial:{scaleX:0},animate:{scaleX:1},transition:{delay:1.3,duration:.8},style:{transformOrigin:"left"}})]}),_&&o.jsxs(hr.div,{className:"mb-8 rounded-2xl overflow-hidden ring-1 ring-white/5",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:1.3,duration:.6},children:[o.jsx("img",{src:_,alt:"Property",className:"w-full h-48 object-cover"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-slate-950/30 to-transparent pointer-events-none"})]}),T&&o.jsx(hr.div,{className:"mb-8 rounded-2xl overflow-hidden ring-1 ring-white/5",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:1.35,duration:.6},children:o.jsx("iframe",{src:`${T}?autoplay=false&responsive=true`,className:"w-full aspect-video",allow:"autoplay; encrypted-media",allowFullScreen:!0})}),o.jsx(hr.p,{className:"text-sm text-white/40 leading-relaxed max-w-xs mx-auto mb-10 font-light",initial:{opacity:0},animate:{opacity:1},transition:{delay:1.4,duration:.8},children:a||E.defaultMessage}),o.jsxs(hr.div,{className:"pt-6 border-t border-white/[0.04]",initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{delay:1.6,duration:.6},children:[o.jsxs("div",{className:"flex items-center justify-center gap-3 mb-4",children:[s?o.jsx(hr.img,{src:s,alt:c,className:"h-12 w-12 rounded-full object-cover ring-2 ring-white/10 shadow-xl",whileHover:{scale:1.1}}):o.jsx("div",{className:`h-12 w-12 rounded-full bg-gradient-to-br ${C.accent} flex items-center justify-center shadow-xl`,children:o.jsx("span",{className:"text-sm font-bold text-slate-900",children:c.charAt(0)})}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-sm font-medium text-white/70",children:c}),x&&o.jsx("p",{className:"text-[11px] text-white/25",children:x})]})]}),o.jsxs("div",{className:"flex items-center justify-center gap-2",children:[f&&o.jsxs(hr.a,{href:`tel:${f}`,className:`flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-gradient-to-r ${C.accent} text-xs font-semibold text-slate-900 shadow-lg`,whileHover:{scale:1.05,boxShadow:"0 10px 40px rgba(255,255,255,0.15)"},whileTap:{scale:.95},children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call"]}),m&&o.jsxs(hr.a,{href:`mailto:${m}`,className:"flex items-center gap-1.5 px-5 py-2.5 rounded-full bg-white/[0.06] border border-white/[0.1] text-xs font-medium text-white/60 hover:bg-white/[0.12] transition-colors",whileHover:{scale:1.05},whileTap:{scale:.95},children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})}),o.jsx(hr.p,{className:"text-center text-[10px] text-white/10 mt-6",initial:{opacity:0},animate:{opacity:1},transition:{delay:2.2},children:"Powered by LevelUp"})]})]})}function sEe(){const{shareToken:t}=hp(),{data:e,isLoading:r,error:n}=br({queryKey:["public-sendable-card",t],queryFn:async()=>{const{data:c,error:s}=await De.from("sendable_cards").select("*").eq("share_token",t).single();if(s)throw s;return c},enabled:!!t});if(P.useEffect(()=>{if(!e)return;const c=(e.recipient_name||"").trim().split(/\s+/)[0],f={home_anniversary:"Happy Home Anniversary",birthday:"Happy Birthday",wedding_anniversary:"Happy Anniversary",just_listed:"Just Listed",just_sold:"Just Sold",congratulations:"Congratulations",holiday:"Happy Holidays",thank_you:"Thank You",thinking_of_you:"Thinking of You"}[e.card_type]||"A card for you";document.title=c?`${f}, ${c}!`:`${f}!`},[e]),P.useEffect(()=>{t&&De.rpc("log_sendable_card_view",{p_share_token:t}).then(({error:c})=>{c&&console.error("Error tracking view:",c)})},[t]),r)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:o.jsxs("div",{className:"animate-pulse space-y-4 text-center",children:[o.jsx("div",{className:"h-8 w-48 bg-muted rounded mx-auto"}),o.jsx("div",{className:"h-4 w-32 bg-muted rounded mx-auto"})]})});if(n||!e)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"Card not found"}),o.jsx("p",{className:"text-muted-foreground",children:"This card may have been removed or the link is invalid."})]})});const i=e.home_anniversary_date?Math.floor((Date.now()-E1(e.home_anniversary_date).getTime())/(365.25*24*60*60*1e3)):null,a={cardType:e.card_type||"home_anniversary",recipientName:e.recipient_name,propertyAddress:e.property_address,anniversaryYears:i,customMessage:e.custom_message,agentName:e.agent_name,agentPhotoUrl:e.agent_photo_url,agentPhone:e.agent_phone,agentEmail:e.agent_email,agentBrokerage:e.agent_brokerage,propertyPhotoUrl:e.property_photo_url,videoUrl:e.video_url||null};switch(e.template){case"bold":return o.jsx(vjt,{...a});case"warm":return o.jsx(wjt,{...a});case"glass":return o.jsx(Sjt,{...a});case"cinematic":return o.jsx(Tjt,{...a});case"elegant":default:return o.jsx(_jt,{...a})}}const Ejt=Object.freeze(Object.defineProperty({__proto__:null,default:sEe},Symbol.toStringTag,{value:"Module"})),aEe=()=>{const t=Ji();return P.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",t.pathname)},[t.pathname]),o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-100",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"mb-4 text-4xl font-bold",children:"404"}),o.jsx("p",{className:"mb-4 text-xl text-gray-600",children:"Oops! Page not found"}),o.jsx("a",{href:"/",className:"text-blue-500 underline hover:text-blue-700",children:"Return to Home"})]})})};function Ajt(){return P.useEffect(()=>(document.body.classList.add("cardstudio-page"),()=>{document.body.classList.remove("cardstudio-page")}),[]),o.jsxs(tk,{children:[o.jsx(Re,{path:"/c/:shareToken",element:o.jsx(sEe,{})}),o.jsx(Re,{path:"*",element:o.jsx(aEe,{})})]})}const qz={Home:"🏠",Search:"🔍",DollarSign:"💰",Coffee:"☕",Calendar:"📅",Users:"👥",Phone:"📞",Video:"🎥"},kjt=["America/New_York","America/Chicago","America/Denver","America/Phoenix","America/Los_Angeles","America/Anchorage","Pacific/Honolulu","Europe/London","Europe/Paris","Asia/Dubai","Asia/Singapore","Asia/Tokyo","Australia/Sydney"];function Cjt(t,e,r){const[n,i,a]=t.split("-").map(Number),[c,s]=e.split(":").map(Number),f=Date.UTC(n,i-1,a,c,s),m=new Intl.DateTimeFormat("en-US",{timeZone:r,hour12:!1,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),x=Object.fromEntries(m.formatToParts(new Date(f)).filter(T=>T.type!=="literal").map(T=>[T.type,T.value])),_=Date.UTC(Number(x.year),Number(x.month)-1,Number(x.day),Number(x.hour)%24,Number(x.minute));return f+(f-_)}function Gz(t){var e;try{return((e=new Intl.DateTimeFormat("en-US",{timeZone:t,timeZoneName:"short"}).formatToParts(new Date).find(n=>n.type==="timeZoneName"))==null?void 0:e.value)||t}catch{return t}}function oEe({slugOverride:t}){const e=hp(),r=t||e.slug,[n,i]=P.useState("types"),[a,c]=P.useState(null),[s,f]=P.useState(null),[m,x]=P.useState(null),[_,T]=P.useState(new Date),[E,C]=P.useState({name:"",email:"",phone:"",message:""}),[N,L]=P.useState(!1),[M,D]=P.useState(null),[B,V]=P.useState(()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"America/New_York"}catch{return"America/New_York"}}),{data:G,isLoading:W}=br({queryKey:["public-booking-settings",r],queryFn:async()=>{const{data:_e,error:xe}=await De.from("agent_booking_settings").select("*").eq("slug",r).eq("is_active",!0).single();if(xe)throw xe;return _e},enabled:!!r}),{data:Z}=br({queryKey:["public-booking-profile",G==null?void 0:G.user_id],queryFn:async()=>{const{data:_e,error:xe}=await De.from("profiles").select("name, avatar_url, email, phone, title, bio").eq("id",G.user_id).single();if(xe)throw xe;return _e},enabled:!!(G!=null&&G.user_id)}),{data:Q=[]}=br({queryKey:["public-booking-types",G==null?void 0:G.user_id],queryFn:async()=>{const{data:_e,error:xe}=await De.from("agent_booking_types").select("id, name, description, duration_minutes, color, icon, qualification_enabled").eq("user_id",G.user_id).eq("is_active",!0).eq("is_coaching_only",!1).order("sort_order");if(xe)throw xe;return _e},enabled:!!(G!=null&&G.user_id)}),se=Di(_,"yyyy-MM"),{data:ie={},isFetching:ue}=br({queryKey:["public-availability-map",r,a==null?void 0:a.id,se],enabled:!!r&&!!a,staleTime:6e4,queryFn:async()=>{const _e=new Date(_.getFullYear(),_.getMonth(),1),xe=Vy(new Date),Pe=ck(xe,_e)?xe:_e,Ze=new Date(_.getFullYear(),_.getMonth()+1,0),at=Math.max(1,Math.round((Ze.getTime()-Pe.getTime())/864e5)+1),{data:lt,error:xt}=await De.functions.invoke("agent-booking",{body:{action:"availability",slug:r,booking_type_id:a.id,start:Di(Pe,"yyyy-MM-dd"),days:Math.min(at,90)}});if(xt)throw xt;if(lt!=null&<.error)throw new Error(lt.error);return(lt==null?void 0:lt.availability)||{}}}),be=_e=>{const xe=Vy(new Date),Pe=Sl(xe,(G==null?void 0:G.max_advance_days)||30);return F9(_e,xe)||ck(_e,Pe)?!1:(ie[Di(_e,"yyyy-MM-dd")]||[]).length>0},Te=P.useMemo(()=>s?ie[Di(s,"yyyy-MM-dd")]||[]:[],[s,ie]),we=P.useMemo(()=>{const _e=_.getFullYear(),xe=_.getMonth(),Pe=new Date(_e,xe,1),Ze=new Date(_e,xe+1,0),at=Pe.getDay(),lt=[];for(let xt=0;xt{var _e,xe;if(!(!a||!s||!m||!E.name||!G)){L(!0);try{const Pe=Di(s,"yyyy-MM-dd"),{data:Ze,error:at}=await De.functions.invoke("agent-booking",{body:{action:"create",slug:r,booking_type_id:a.id,date:Pe,time:m,guest_name:E.name,guest_email:E.email||null,guest_phone:E.phone||null,guest_message:E.message||null,guest_timezone:B}});if(at){let St=at.message;try{const Xt=await((xe=(_e=at.context)==null?void 0:_e.json)==null?void 0:xe.call(_e));Xt!=null&&Xt.error&&(St=Xt.error)}catch{}throw new Error(St)}if(Ze!=null&&Ze.error)throw new Error(Ze.error);const lt=(Ze==null?void 0:Ze.end_time)||m,xt=Ze!=null&&Ze.manage_token?`${window.location.origin}/booking/manage/${Ze.manage_token}`:null;D(xt),De.functions.invoke("booking-notify",{body:{agentUserId:G.user_id,guestName:E.name,guestEmail:E.email||null,guestPhone:E.phone||null,guestMessage:E.message||null,bookingTypeName:a.name,bookingDate:Pe,startTime:m,endTime:lt,durationMinutes:a.duration_minutes,meetingLink:G.meeting_link||null,manageUrl:xt}}).catch(St=>console.error("Booking notify error:",St)),i("confirmed")}catch(Pe){Jt.error("Failed to book: "+Pe.message)}finally{L(!1)}}},Ae=_e=>{const[xe,Pe]=_e.split(":").map(Number),Ze=xe>=12?"PM":"AM";return`${xe%12||12}:${Pe.toString().padStart(2,"0")} ${Ze}`},Se=(G==null?void 0:G.timezone)||"America/New_York",ge=B!==Se,je=(_e,xe)=>{if(!ge)return Ae(xe);try{return new Intl.DateTimeFormat("en-US",{timeZone:B,hour:"numeric",minute:"2-digit"}).format(new Date(Cjt(_e,xe,Se)))}catch{return Ae(xe)}};return W?o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-[#f0f4f8] via-white to-[#e8f0f8] flex items-center justify-center",children:o.jsxs("div",{className:"flex flex-col items-center gap-3",children:[o.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-[#406E71] border-t-transparent"}),o.jsx("p",{className:"text-sm text-slate-500",children:"Loading booking page..."})]})}):G?o.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-[#f0f4f8] via-white to-[#e8f0f8]",children:[o.jsx("div",{className:"h-1.5 bg-gradient-to-r from-[#406E71] via-[#5a9a9d] to-[#2a4c64]"}),o.jsxs("div",{className:"max-w-lg mx-auto px-4 py-6 sm:py-10",children:[o.jsxs("div",{className:"bg-white rounded-2xl shadow-lg shadow-slate-200/60 border border-slate-100 overflow-hidden mb-6",children:[o.jsx("div",{className:"relative bg-gradient-to-r from-[#406E71] to-[#2a4c64] px-6 pt-6 pb-12",children:o.jsxs("div",{className:"absolute inset-0 opacity-10",children:[o.jsx("div",{className:"absolute top-2 right-8 w-20 h-20 rounded-full border-2 border-white/30"}),o.jsx("div",{className:"absolute bottom-4 left-12 w-10 h-10 rounded-full border border-white/20"})]})}),o.jsx("div",{className:"relative -mt-10 px-6",children:o.jsxs("div",{className:"flex items-end gap-4",children:[Z!=null&&Z.avatar_url?o.jsx("img",{src:Z.avatar_url,alt:(Z==null?void 0:Z.name)||"Agent",className:"w-20 h-20 sm:w-24 sm:h-24 rounded-2xl object-cover border-4 border-white shadow-md"}):o.jsx("div",{className:"w-20 h-20 sm:w-24 sm:h-24 rounded-2xl bg-gradient-to-br from-[#406E71] to-[#2a4c64] border-4 border-white shadow-md flex items-center justify-center",children:o.jsx(kl,{className:"h-10 w-10 text-white"})}),o.jsxs("div",{className:"pb-1.5",children:[o.jsx("h1",{className:"text-xl sm:text-2xl font-bold text-slate-800 leading-tight",children:(Z==null?void 0:Z.name)||"Agent"}),(Z==null?void 0:Z.title)&&o.jsx("p",{className:"text-sm text-slate-500 mt-0.5",children:Z.title})]})]})}),o.jsxs("div",{className:"px-6 py-4 flex flex-wrap gap-2",children:[(Z==null?void 0:Z.phone)&&o.jsxs("a",{href:`tel:${Z.phone}`,className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[#406E71]/8 hover:bg-[#406E71]/15 text-[#406E71] text-xs font-medium transition-colors",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:Z.phone}),o.jsx("span",{className:"sm:hidden",children:"Call"})]}),(Z==null?void 0:Z.email)&&o.jsxs("a",{href:`mailto:${Z.email}`,className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[#2a4c64]/8 hover:bg-[#2a4c64]/15 text-[#2a4c64] text-xs font-medium transition-colors",children:[o.jsx($i,{className:"h-3.5 w-3.5"}),o.jsx("span",{className:"hidden sm:inline",children:Z.email}),o.jsx("span",{className:"sm:hidden",children:"Email"})]})]})]}),o.jsx("div",{className:"bg-white rounded-2xl shadow-lg shadow-slate-200/60 border border-slate-100 overflow-hidden",children:o.jsxs("div",{className:"p-5 sm:p-6",children:[n==="types"&&o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-base font-semibold text-slate-800",children:"Select a meeting type"}),o.jsx("p",{className:"text-xs text-slate-400 mt-0.5",children:"Choose the type of meeting you'd like to schedule"})]}),o.jsx("div",{className:"space-y-2.5",children:Q.map(_e=>o.jsx("button",{onClick:()=>{c(_e),i("date")},className:"w-full text-left group",children:o.jsx("div",{className:"relative rounded-xl border border-slate-150 p-4 transition-all duration-200 hover:shadow-md hover:border-[#406E71]/30 hover:-translate-y-0.5 active:translate-y-0",style:{borderLeftWidth:"3px",borderLeftColor:_e.color},children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex items-start gap-3 min-w-0",children:[o.jsx("span",{className:"text-2xl shrink-0 mt-0.5",children:qz[_e.icon]||"📅"}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"font-semibold text-sm text-slate-800 group-hover:text-[#406E71] transition-colors",children:_e.name}),_e.description&&o.jsx("p",{className:"text-xs text-slate-500 mt-0.5 line-clamp-2",children:_e.description})]})]}),o.jsxs("div",{className:"shrink-0 flex items-center gap-1 px-2.5 py-1 rounded-full bg-slate-100 text-slate-600 text-xs font-medium",children:[o.jsx(pc,{className:"h-3 w-3"}),_e.duration_minutes,"m"]})]})})},_e.id))})]}),n==="date"&&a&&o.jsxs("div",{className:"space-y-5",children:[o.jsxs("button",{onClick:()=>{i("types"),f(null),x(null)},className:"flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-slate-800 transition-colors",children:[o.jsx(Oy,{className:"h-3.5 w-3.5"})," Back to meeting types"]}),o.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-xl border",style:{borderColor:a.color+"40",backgroundColor:a.color+"08"},children:[o.jsx("span",{className:"text-xl",children:qz[a.icon]||"📅"}),o.jsx("div",{className:"flex-1 min-w-0",children:o.jsx("p",{className:"font-semibold text-sm text-slate-800",children:a.name})}),o.jsxs("div",{className:"flex items-center gap-1 text-xs text-slate-500 font-medium",children:[o.jsx(pc,{className:"h-3 w-3"}),a.duration_minutes," min"]})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h3",{className:"font-semibold text-sm text-slate-800",children:Di(_,"MMMM yyyy")}),o.jsxs("div",{className:"flex gap-1",children:[o.jsx("button",{className:"h-8 w-8 rounded-lg flex items-center justify-center text-slate-500 hover:bg-slate-100 hover:text-slate-800 transition-colors",onClick:()=>T(new Date(_.getFullYear(),_.getMonth()-1)),children:o.jsx(Bm,{className:"h-4 w-4"})}),o.jsx("button",{className:"h-8 w-8 rounded-lg flex items-center justify-center text-slate-500 hover:bg-slate-100 hover:text-slate-800 transition-colors",onClick:()=>T(new Date(_.getFullYear(),_.getMonth()+1)),children:o.jsx(th,{className:"h-4 w-4"})})]})]}),o.jsxs("div",{className:"grid grid-cols-7 gap-0.5 text-center",children:[["Su","Mo","Tu","We","Th","Fr","Sa"].map(_e=>o.jsx("div",{className:"text-[10px] uppercase tracking-wider text-slate-400 font-semibold py-2",children:_e},_e)),we.map((_e,xe)=>{if(!_e)return o.jsx("div",{},`pad-${xe}`);const Pe=be(_e),Ze=s&&Wl(_e,s),at=Wl(_e,new Date);return o.jsx("button",{disabled:!Pe,onClick:()=>{f(_e),x(null)},className:`h-10 w-10 mx-auto rounded-xl text-sm font-medium transition-all duration-150 ${Ze?"bg-[#406E71] text-white shadow-md shadow-[#406E71]/30 scale-105":Pe?"hover:bg-[#406E71]/10 text-slate-700 hover:text-[#406E71]":"text-slate-200 cursor-not-allowed"} ${at&&!Ze?"ring-1 ring-[#406E71]/40":""}`,children:_e.getDate()},_e.toISOString())})]})]}),s&&o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Xf,{className:"h-4 w-4 text-[#406E71]"}),o.jsx("h3",{className:"font-semibold text-sm text-slate-800",children:Di(s,"EEEE, MMMM d")})]}),o.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-xl bg-slate-50 border border-slate-100 px-3 py-2",children:[o.jsx("span",{className:"text-[11px] text-slate-500",children:"Times shown in your timezone"}),o.jsx("select",{value:B,onChange:_e=>V(_e.target.value),className:"text-[11px] font-medium text-slate-700 bg-transparent focus:outline-none cursor-pointer",children:Array.from(new Set([B,Se,...kjt])).map(_e=>o.jsxs("option",{value:_e,children:[_e.replace(/_/g," ")," (",Gz(_e),")"]},_e))})]}),ue&&Te.length===0?o.jsxs("div",{className:"text-center py-8 space-y-2",children:[o.jsx(ku,{className:"h-6 w-6 text-slate-300 mx-auto animate-spin"}),o.jsx("p",{className:"text-sm text-slate-400",children:"Checking live availability…"})]}):Te.length===0?o.jsxs("div",{className:"text-center py-8 space-y-2",children:[o.jsx(pc,{className:"h-8 w-8 text-slate-300 mx-auto"}),o.jsx("p",{className:"text-sm text-slate-400",children:"No available times on this day"}),o.jsx("p",{className:"text-xs text-slate-400",children:"Try selecting a different date"})]}):o.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 gap-2 max-h-52 overflow-y-auto pr-1 custom-scrollbar",children:Te.map(_e=>{const xe=m===_e;return o.jsx("button",{onClick:()=>x(_e),className:`px-3 py-2.5 rounded-xl text-sm font-medium transition-all duration-150 ${xe?"bg-[#406E71] text-white shadow-md shadow-[#406E71]/30 scale-[1.02]":"bg-slate-50 text-slate-700 hover:bg-[#406E71]/10 hover:text-[#406E71] border border-slate-150"}`,children:je(Di(s,"yyyy-MM-dd"),_e)},_e)})}),m&&o.jsx(Kt,{className:"w-full h-12 rounded-xl bg-[#406E71] hover:bg-[#365c5e] text-white font-semibold shadow-md shadow-[#406E71]/20 transition-all hover:shadow-lg",onClick:()=>i("form"),children:"Continue to Details"})]})]}),n==="form"&&a&&s&&m&&o.jsxs("div",{className:"space-y-5",children:[o.jsxs("button",{onClick:()=>i("date"),className:"flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-slate-800 transition-colors",children:[o.jsx(Oy,{className:"h-3.5 w-3.5"})," Back"]}),o.jsxs("div",{className:"rounded-xl bg-gradient-to-r from-[#406E71]/5 to-[#2a4c64]/5 border border-[#406E71]/15 p-4 space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-lg",children:qz[a.icon]||"📅"}),o.jsx("p",{className:"font-semibold text-sm text-slate-800",children:a.name})]}),o.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-xs text-slate-600",children:[o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(Xf,{className:"h-3.5 w-3.5 text-[#406E71]"}),Di(s,"EEE, MMM d, yyyy")]}),o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx(pc,{className:"h-3.5 w-3.5 text-[#406E71]"}),je(Di(s,"yyyy-MM-dd"),m)," (",Gz(B),") · ",a.duration_minutes," min"]})]})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{className:"text-xs font-semibold text-slate-700",children:"Full Name *"}),o.jsx(Hr,{value:E.name,onChange:_e=>C({...E,name:_e.target.value}),placeholder:"Jane Smith",className:"h-11 rounded-xl border-slate-200 focus:border-[#406E71] focus:ring-[#406E71]/20"})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{className:"text-xs font-semibold text-slate-700",children:"Email"}),o.jsxs("div",{className:"relative",children:[o.jsx($i,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400"}),o.jsx(Hr,{type:"email",value:E.email,onChange:_e=>C({...E,email:_e.target.value}),placeholder:"jane@email.com",className:"h-11 pl-9 rounded-xl border-slate-200 focus:border-[#406E71] focus:ring-[#406E71]/20"})]})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{className:"text-xs font-semibold text-slate-700",children:"Phone"}),o.jsxs("div",{className:"relative",children:[o.jsx(Ui,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400"}),o.jsx(Hr,{type:"tel",value:E.phone,onChange:_e=>C({...E,phone:_e.target.value}),placeholder:"(555) 123-4567",className:"h-11 pl-9 rounded-xl border-slate-200 focus:border-[#406E71] focus:ring-[#406E71]/20"})]})]})]}),o.jsxs("div",{className:"space-y-1.5",children:[o.jsx(Fr,{className:"text-xs font-semibold text-slate-700",children:"Message (optional)"}),o.jsx(ud,{value:E.message,onChange:_e=>C({...E,message:_e.target.value}),placeholder:"Anything you'd like the agent to know ahead of time?",rows:3,className:"rounded-xl border-slate-200 focus:border-[#406E71] focus:ring-[#406E71]/20 resize-none"})]})]}),o.jsx(Kt,{className:"w-full h-12 rounded-xl bg-[#406E71] hover:bg-[#365c5e] text-white font-semibold shadow-md shadow-[#406E71]/20 transition-all hover:shadow-lg disabled:opacity-60",onClick:Oe,disabled:!E.name||N,children:N?o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-2 border-white border-t-transparent"}),"Booking..."]}):"Confirm Booking"})]}),n==="confirmed"&&o.jsxs("div",{className:"text-center space-y-5 py-6",children:[o.jsxs("div",{className:"relative mx-auto w-20 h-20",children:[o.jsx("div",{className:"absolute inset-0 rounded-full bg-emerald-100 animate-ping opacity-30"}),o.jsx("div",{className:"relative w-20 h-20 rounded-full bg-gradient-to-br from-emerald-400 to-emerald-600 flex items-center justify-center shadow-lg shadow-emerald-200",children:o.jsx(gc,{className:"h-10 w-10 text-white"})})]}),o.jsxs("div",{children:[o.jsx("h2",{className:"text-2xl font-bold text-slate-800",children:"You're booked!"}),o.jsxs("p",{className:"text-slate-500 mt-1.5",children:[a==null?void 0:a.name," with ",(Z==null?void 0:Z.name)||"your agent"]})]}),o.jsx("div",{className:"inline-flex items-center gap-3 px-5 py-3 rounded-xl bg-slate-50 border border-slate-100",children:o.jsxs("div",{className:"text-left text-sm",children:[o.jsx("p",{className:"font-semibold text-slate-800",children:s&&Di(s,"EEEE, MMMM d, yyyy")}),o.jsxs("p",{className:"text-slate-500",children:[s&&m?`${je(Di(s,"yyyy-MM-dd"),m)} (${Gz(B)})`:""," · ",a==null?void 0:a.duration_minutes," min"]})]})}),o.jsx("p",{className:"text-sm text-slate-400 max-w-xs mx-auto",children:"A confirmation with meeting details will be sent to you shortly."}),M&&o.jsx("div",{className:"pt-1",children:o.jsx("a",{href:M,className:"inline-flex items-center gap-1.5 text-xs font-semibold text-[#406E71] underline underline-offset-4",children:"Reschedule or cancel this meeting"})}),((Z==null?void 0:Z.phone)||(Z==null?void 0:Z.email))&&o.jsxs("div",{className:"flex flex-col items-center gap-2 pt-2",children:[o.jsx("p",{className:"text-xs text-slate-400 uppercase tracking-wider font-semibold",children:"Contact"}),o.jsxs("div",{className:"flex gap-3",children:[(Z==null?void 0:Z.phone)&&o.jsxs("a",{href:`tel:${Z.phone}`,className:"inline-flex items-center gap-1.5 px-4 py-2 rounded-full bg-[#406E71]/10 text-[#406E71] text-xs font-medium hover:bg-[#406E71]/20 transition-colors",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," Call"]}),(Z==null?void 0:Z.email)&&o.jsxs("a",{href:`mailto:${Z.email}`,className:"inline-flex items-center gap-1.5 px-4 py-2 rounded-full bg-[#2a4c64]/10 text-[#2a4c64] text-xs font-medium hover:bg-[#2a4c64]/20 transition-colors",children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email"]})]})]})]})]})}),o.jsx("p",{className:"text-center text-[10px] text-slate-300 mt-6 font-medium tracking-wide uppercase",children:"Powered by LevelUp"})]})]}):o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-[#f0f4f8] via-white to-[#e8f0f8] flex items-center justify-center p-4",children:o.jsxs("div",{className:"max-w-sm w-full text-center space-y-4",children:[o.jsx("div",{className:"mx-auto w-16 h-16 rounded-2xl bg-slate-100 flex items-center justify-center",children:o.jsx(Xf,{className:"h-8 w-8 text-slate-400"})}),o.jsx("h2",{className:"text-lg font-semibold text-slate-700",children:"Page Not Available"}),o.jsx("p",{className:"text-sm text-slate-500",children:"This booking page doesn't exist or is currently inactive."})]})})}const Ijt=Object.freeze(Object.defineProperty({__proto__:null,default:oEe},Symbol.toStringTag,{value:"Module"}));function jjt(){const e=Ji().pathname.slice(1).split("/")[0];return P.useEffect(()=>{document.body.classList.add("booking-page");const r=()=>{['[id*="lc_text_widget"]','[id*="lc_text-widget"]','[class*="lc-text-widget"]','[class*="lc_text-widget"]','[class*="lc_text_widget"]',".lc_text-widget--bubble",'[id*="chat-widget"]','[class*="chat-widget"]','iframe[src*="widgets.leadconnectorhq"]','iframe[src*="leadconnector"]','iframe[src*="msgsndr"]',"[data-chat-widget]","[data-widget-id]",'div[style*="z-index"][style*="position: fixed"][style*="bottom"]','div[id^="fc_"]','div[id^="hubspot"]',".widget-visible"].forEach(a=>{document.querySelectorAll(a).forEach(c=>{c.style.display="none"})})};r();const n=[setTimeout(r,500),setTimeout(r,1500),setTimeout(r,3e3),setTimeout(r,5e3)];return()=>{document.body.classList.remove("booking-page"),n.forEach(clearTimeout)}},[]),e?o.jsx(oEe,{slugOverride:e}):o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 dark:from-slate-950 dark:to-slate-900 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"LevelUp Scheduler"}),o.jsx("p",{className:"text-muted-foreground",children:"Visit a specific agent's booking URL to schedule a meeting."})]})})}const Pjt="https://images.unsplash.com/photo-1507525428034-b723cf961d3e?w=1600&q=80",Njt="https://images.unsplash.com/photo-1616486338812-3dadae4b4ace?w=1600&q=80",Rjt="https://images.unsplash.com/photo-1500534314209-a25ddb2bd429?w=1600&q=80",Ljt="https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=1600&q=80",Djt="https://images.unsplash.com/photo-1519741497674-611481863552?w=1600&q=80",Mjt="https://images.unsplash.com/photo-1494526585095-c41746248156?w=1600&q=80",Hz={"minimal-mono":{key:"minimal-mono",label:"Minimal Mono",description:"Clean paper white, restrained.",bg:"#f7f7f5",surface:"#ffffff",border:"#e6e5e0",text:"#111111",textMuted:"#6b6b6b",accent:"#111111",accentText:"#ffffff",headingFont:'"Fraunces", ui-serif, Georgia, serif',bodyFont:'"Inter", system-ui, sans-serif',swatch:["#f7f7f5","#111111","#6b6b6b","#e6e5e0"],defaultCover:Mjt},"warm-coastal":{key:"warm-coastal",label:"Warm Coastal",description:"Sand and soft teal.",bg:"linear-gradient(180deg,#faf6ef 0%,#f2ece1 100%)",surface:"#ffffff",border:"#e6dfd1",text:"#2b2a26",textMuted:"#7a746a",accent:"#2f7a7d",accentText:"#ffffff",headingFont:'"Cormorant Garamond", ui-serif, Georgia, serif',bodyFont:'"Karla", system-ui, sans-serif',swatch:["#faf6ef","#2f7a7d","#c9b99a","#2b2a26"],defaultCover:Pjt},"deep-luxe":{key:"deep-luxe",label:"Deep Luxe",description:"Charcoal with gold.",bg:"linear-gradient(180deg,#161616 0%,#0d0d0d 100%)",surface:"#1e1e1e",border:"#2c2c2c",text:"#f5f0e0",textMuted:"#a49a80",accent:"#c9a84c",accentText:"#111111",headingFont:'"Instrument Serif", ui-serif, Georgia, serif',bodyFont:'"Work Sans", system-ui, sans-serif',swatch:["#0d0d0d","#c9a84c","#f5f0e0","#2c2c2c"],defaultCover:Njt},sunset:{key:"sunset",label:"Sunset",description:"Peach into magenta.",bg:"linear-gradient(160deg,#ffe4d1 0%,#ffc9b0 40%,#f2a1c5 100%)",surface:"#ffffff",border:"#f6d5ce",text:"#2a1a2f",textMuted:"#7a5a70",accent:"#d84a7a",accentText:"#ffffff",headingFont:'"Sora", system-ui, sans-serif',bodyFont:'"Manrope", system-ui, sans-serif',swatch:["#ffe4d1","#ffc9b0","#f2a1c5","#d84a7a"],defaultCover:Rjt},editorial:{key:"editorial",label:"Editorial",description:"Ink black on paper white.",bg:"#f5f3ee",surface:"#ffffff",border:"#d9d6ce",text:"#0d0d0d",textMuted:"#5a564d",accent:"#0d0d0d",accentText:"#f5f3ee",headingFont:'"DM Serif Display", ui-serif, Georgia, serif',bodyFont:'"Fira Sans", system-ui, sans-serif',swatch:["#f5f3ee","#0d0d0d","#d9d6ce","#5a564d"],defaultCover:Ljt},playful:{key:"playful",label:"Playful",description:"Blush and lavender.",bg:"linear-gradient(180deg,#fdf3f7 0%,#efe5ff 100%)",surface:"#ffffff",border:"#ecd7e6",text:"#3a2450",textMuted:"#7c6a94",accent:"#9b72cf",accentText:"#ffffff",headingFont:'"Outfit", system-ui, sans-serif',bodyFont:'"Figtree", system-ui, sans-serif',swatch:["#fdf3f7","#efe5ff","#c9a0dc","#9b72cf"],defaultCover:Djt}},a8t=["#111111","#2f7a7d","#c9a84c","#d84a7a","#3b6fa0","#9b72cf","#e85d3a","#4a6741"];function Ojt(t){return t&&t in Hz?Hz[t]:Hz["minimal-mono"]}function Fjt(t,e){const r=e||t.accent;return{background:t.bg,color:t.text,fontFamily:t.bodyFont,"--c-bg":t.bg,"--c-surface":t.surface,"--c-border":t.border,"--c-text":t.text,"--c-text-muted":t.textMuted,"--c-accent":r,"--c-accent-text":t.accentText,"--c-heading-font":t.headingFont,"--c-body-font":t.bodyFont}}function lEe({slugOverride:t}={}){var Nn;const{slug:e}=hp(),r=t||e,[n]=mS(),i=n.get("t"),[a,c]=P.useState(!0),[s,f]=P.useState(null),[m,x]=P.useState(null),_=P.useRef(null),T=P.useRef(null),[E,C]=P.useState(null),[N,L]=P.useState(null),[M,D]=P.useState(!1),[B,V]=P.useState(!1),[G,W]=P.useState(0),[Z,Q]=P.useState(!1),[se,ie]=P.useState(""),[ue,be]=P.useState(""),[Te,we]=P.useState(""),[Oe,Ae]=P.useState(""),[Se,ge]=P.useState(""),[je,_e]=P.useState(""),[xe,Pe]=P.useState(""),[Ze,at]=P.useState(""),[lt,xt]=P.useState(""),[St,Xt]=P.useState(""),[_t,Rt]=P.useState(""),[er,vt]=P.useState(""),[xr,_r]=P.useState(""),[tn,or]=P.useState([]),[Sr,jr]=P.useState([]),[Qt,Je]=P.useState(""),[Tt,Dt]=P.useState(""),[cr,lr]=P.useState(""),[ur,Rr]=P.useState([]);P.useEffect(()=>{Pn()},[r,i]);const Pn=async()=>{if(!r)return;c(!0);const{data:Nr,error:Sn}=await De.from("contact_intake_pages").select("*").eq("slug",r).eq("is_active",!0).maybeSingle();if(Sn||!Nr){Q(!0),c(!1);return}x(Nr),T.current=Nr;const{data:li}=await De.from("profiles").select("name, avatar_url, title, phone, email, brokerage_id").eq("id",Nr.user_id).single();if(li){let Un;if(li.brokerage_id){const{data:Dn}=await De.from("brokerages").select("name").eq("id",li.brokerage_id).single();Un=(Dn==null?void 0:Dn.name)||void 0}let xi=li.avatar_url||null;if(!xi){const{data:Dn}=De.storage.from("avatars").getPublicUrl(`${Nr.user_id}/avatar.jpg`);Dn!=null&&Dn.publicUrl&&(xi=`${Dn.publicUrl}?t=${Date.now()}`)}const Qr={...li,avatar_url:xi,brokerage_name:Un};f(Qr),_.current=Qr}if(i)try{console.log("[ConnectPage] Resolving token:",i,"for page:",Nr.id);const{data:Un,error:xi}=await De.functions.invoke("process-intake-submissions",{body:{action:"resolve_token",token:i,page_id:Nr.id}});if(console.log("[ConnectPage] Resolve result:",{resolved:Un,resolveErr:xi}),!xi&&(Un!=null&&Un.contact_id)){L(Un.contact_id);const Qr=Un.contact;Qr&&(C(Qr),ie(Qr.first_name||""),be(Qr.last_name||""),we(Qr.email||""),Ae(Qr.phone||""),ge(Qr.address||""),_e(Qr.city||""),Pe(Qr.state||""),at(Qr.zip||""),xt(Qr.birthday||""),Xt(Qr.home_anniversary||""))}}catch(Un){console.error("Failed to resolve token:",Un)}c(!1)},Yn=async()=>{var Nr,Sn;if(!se.trim()){Jt.error("Please enter your first name");return}if(!r){Jt.error("Invalid page. Please refresh.");return}V(!0);try{let li=(Nr=T.current)==null?void 0:Nr.id,Un=(Sn=T.current)==null?void 0:Sn.user_id;if(!li||!Un){const{data:Dn}=await De.from("contact_intake_pages").select("id, user_id").eq("slug",r).eq("is_active",!0).maybeSingle();if(!Dn){Jt.error("This page is no longer active. Please contact the agent directly."),V(!1);return}li=Dn.id,Un=Dn.user_id}const xi={intake_page_id:li,agent_user_id:Un,existing_contact_id:N,first_name:se.trim(),last_name:ue.trim()||null,email:Te.trim()||null,phone:Oe.trim()||null,address:Se.trim()||null,city:je.trim()||null,state:xe.trim()||null,zip:Ze.trim()||null,birthday:lt||null,home_anniversary:St||null,real_estate_interest:_t||null,message:er.trim()||null,life_events:{spouse_name:xr.trim()||null,kids:tn.filter(Dn=>Dn.name.trim()),pets:Sr.filter(Dn=>Dn.name.trim()),favorite_spots:Qt.trim()||null,dream_neighborhood:Tt.trim()||null,wedding_anniversary:cr||null},referrals:ur.filter(Dn=>Dn.name.trim()&&Dn.contact.trim())},{error:Qr}=await De.from("contact_intake_submissions").insert(xi);if(console.log("[ConnectPage] Insert result:",{error:Qr}),Qr)throw Qr;i&&await De.from("contact_intake_tokens").update({used_at:new Date().toISOString()}).eq("token",i);try{const Dn=[se.trim(),ue.trim()].filter(Boolean).join(" ");await fetch("https://relzejiswnotikjgvjhz.supabase.co/functions/v1/connect-page-notify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentUserId:Un,contactName:Dn,contactEmail:Te.trim()||null,contactPhone:Oe.trim()||null,slug:r})})}catch(Dn){console.warn("Connect page notification failed (non-blocking):",Dn)}D(!0)}catch(li){console.error(li),Jt.error("Something went wrong. Please try again.")}finally{V(!1)}};if(a)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 via-white to-blue-50",children:o.jsx(ku,{className:"h-8 w-8 animate-spin text-slate-400"})});if(Z)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 via-white to-blue-50",children:o.jsxs("div",{className:"text-center space-y-3",children:[o.jsx("h1",{className:"text-2xl font-semibold text-slate-700",children:"Page Not Found"}),o.jsx("p",{className:"text-slate-500",children:"This connect page doesn't exist or is no longer active."})]})});if(M)return o.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 via-white to-blue-50 p-4",children:[o.jsx(Il,{children:o.jsxs("title",{children:["Thank You | ",s==null?void 0:s.name]})}),o.jsxs(hr.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:"max-w-md w-full text-center space-y-6 p-8",children:[o.jsx(hr.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",delay:.2},className:"mx-auto w-20 h-20 rounded-full bg-emerald-100 flex items-center justify-center",children:o.jsx(gc,{className:"h-10 w-10 text-emerald-600"})}),o.jsx("h1",{className:"text-3xl font-bold text-slate-800",children:"Thank You!"}),o.jsxs("p",{className:"text-lg text-slate-600",children:[s==null?void 0:s.name," has received your info and will be in touch soon."]}),o.jsxs("div",{className:"flex items-center justify-center gap-1 text-sm text-slate-400 pt-4",children:[o.jsx(tp,{className:"h-3.5 w-3.5"}),o.jsx("span",{children:"Powered by ReLevelUp"})]})]})]});const ki=!!i&&!!E,wi=(m==null?void 0:m.show_little_things)??!0,Ci=[{title:ki?"Confirm Your Info":"Let's Get Connected",fields:o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"First Name *"}),o.jsx("input",{type:"text",value:se,onChange:Nr=>ie(Nr.target.value),placeholder:"Jane",className:"connect-input",required:!0})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Last Name"}),o.jsx("input",{type:"text",value:ue,onChange:Nr=>be(Nr.target.value),placeholder:"Smith",className:"connect-input"})]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Email"}),o.jsx("input",{type:"email",value:Te,onChange:Nr=>we(Nr.target.value),placeholder:"jane@email.com",className:"connect-input"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Phone"}),o.jsx("input",{type:"tel",value:Oe,onChange:Nr=>Ae(Nr.target.value),placeholder:"(555) 123-4567",className:"connect-input"})]})]})},{title:"A Little More About You",fields:o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Street Address"}),o.jsx("input",{type:"text",value:Se,onChange:Nr=>ge(Nr.target.value),placeholder:"123 Main St",className:"connect-input"})]}),o.jsxs("div",{className:"grid grid-cols-5 gap-3",children:[o.jsxs("div",{className:"col-span-2",children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"City"}),o.jsx("input",{type:"text",value:je,onChange:Nr=>_e(Nr.target.value),placeholder:"Austin",className:"connect-input"})]}),o.jsxs("div",{className:"col-span-1",children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"State"}),o.jsx("input",{type:"text",value:xe,onChange:Nr=>Pe(Nr.target.value),placeholder:"TX",maxLength:2,className:"connect-input"})]}),o.jsxs("div",{className:"col-span-2",children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Zip"}),o.jsx("input",{type:"text",value:Ze,onChange:Nr=>at(Nr.target.value),placeholder:"78701",className:"connect-input"})]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Birthday"}),o.jsx("input",{type:"date",value:lt,onChange:Nr=>xt(Nr.target.value),className:"connect-input"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Home Anniversary"}),o.jsx("input",{type:"date",value:St,onChange:Nr=>Xt(Nr.target.value),className:"connect-input"})]})]})]})},...wi?[{title:"The Little Things",subtitle:"Optional — helps me remember what matters to you.",fields:o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Spouse / partner's name"}),o.jsx("input",{type:"text",value:xr,onChange:Nr=>_r(Nr.target.value),placeholder:"Alex",className:"connect-input"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Wedding anniversary"}),o.jsx("input",{type:"date",value:cr,onChange:Nr=>lr(Nr.target.value),className:"connect-input"})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[o.jsx("label",{className:"block text-sm font-medium",style:{color:"var(--c-text-muted)"},children:"Kids"}),o.jsxs("button",{type:"button",onClick:()=>or(Nr=>[...Nr,{name:"",age:""}]),className:"text-xs inline-flex items-center gap-1",style:{color:"var(--c-accent)"},children:[o.jsx(ym,{className:"h-3 w-3"})," Add"]})]}),o.jsxs("div",{className:"space-y-2",children:[tn.length===0&&o.jsx("p",{className:"text-xs",style:{color:"var(--c-text-muted)"},children:"None to add? Skip this."}),tn.map((Nr,Sn)=>o.jsxs("div",{className:"flex gap-2 items-center",children:[o.jsx("input",{type:"text",value:Nr.name,onChange:li=>or(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,name:li.target.value}:xi)),placeholder:"Child's name",className:"connect-input min-w-0",style:{flex:"1 1 0%"}}),o.jsx("input",{type:"text",value:Nr.age,onChange:li=>or(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,age:li.target.value}:xi)),placeholder:"Age",className:"connect-input shrink-0",style:{width:"5rem"}}),o.jsx("button",{type:"button",onClick:()=>or(li=>li.filter((Un,xi)=>xi!==Sn)),className:"p-2 rounded-md hover:bg-black/5 shrink-0","aria-label":"Remove",children:o.jsx(Zs,{className:"h-3.5 w-3.5",style:{color:"var(--c-text-muted)"}})})]},Sn))]})]}),o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[o.jsx("label",{className:"block text-sm font-medium",style:{color:"var(--c-text-muted)"},children:"Pets"}),o.jsxs("button",{type:"button",onClick:()=>jr(Nr=>[...Nr,{name:"",kind:""}]),className:"text-xs inline-flex items-center gap-1",style:{color:"var(--c-accent)"},children:[o.jsx(ym,{className:"h-3 w-3"})," Add"]})]}),o.jsxs("div",{className:"space-y-2",children:[Sr.length===0&&o.jsx("p",{className:"text-xs",style:{color:"var(--c-text-muted)"},children:"None to add? Skip this."}),Sr.map((Nr,Sn)=>o.jsxs("div",{className:"flex gap-2 items-center",children:[o.jsx("input",{type:"text",value:Nr.name,onChange:li=>jr(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,name:li.target.value}:xi)),placeholder:"Pet's name",className:"connect-input min-w-0",style:{flex:"1 1 0%"}}),o.jsx("input",{type:"text",value:Nr.kind,onChange:li=>jr(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,kind:li.target.value}:xi)),placeholder:"Dog, cat…",className:"connect-input shrink-0",style:{width:"7rem"}}),o.jsx("button",{type:"button",onClick:()=>jr(li=>li.filter((Un,xi)=>xi!==Sn)),className:"p-2 rounded-md hover:bg-black/5 shrink-0","aria-label":"Remove",children:o.jsx(Zs,{className:"h-3.5 w-3.5",style:{color:"var(--c-text-muted)"}})})]},Sn))]})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Favorite local spots"}),o.jsx("input",{type:"text",value:Qt,onChange:Nr=>Je(Nr.target.value),placeholder:"That coffee shop on Main, Town Lake…",className:"connect-input"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:"Dream neighborhood"}),o.jsx("input",{type:"text",value:Tt,onChange:Nr=>Dt(Nr.target.value),placeholder:"Where you'd love to live someday",className:"connect-input"})]}),o.jsxs("div",{className:"rounded-xl p-4",style:{background:"color-mix(in srgb, var(--c-accent) 8%, transparent)"},children:[o.jsxs("div",{className:"flex items-center justify-between mb-2",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium",style:{color:"var(--c-text)"},children:"Know someone who'd love an agent like me?"}),o.jsx("p",{className:"text-xs",style:{color:"var(--c-text-muted)"},children:"Refer a friend — up to 3."})]}),ur.length<3&&o.jsxs("button",{type:"button",onClick:()=>Rr(Nr=>[...Nr,{name:"",contact:""}]),className:"text-xs inline-flex items-center gap-1 px-2 py-1 rounded-md",style:{background:"var(--c-accent)",color:"var(--c-accent-text)"},children:[o.jsx(ym,{className:"h-3 w-3"})," Add"]})]}),o.jsx("div",{className:"space-y-2",children:ur.map((Nr,Sn)=>o.jsxs("div",{className:"flex gap-2 items-center",children:[o.jsx("input",{type:"text",value:Nr.name,onChange:li=>Rr(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,name:li.target.value}:xi)),placeholder:"Their name",className:"connect-input min-w-0",style:{flex:"1 1 0%"}}),o.jsx("input",{type:"text",value:Nr.contact,onChange:li=>Rr(Un=>Un.map((xi,Qr)=>Qr===Sn?{...xi,contact:li.target.value}:xi)),placeholder:"Phone or email",className:"connect-input min-w-0",style:{flex:"1 1 0%"}}),o.jsx("button",{type:"button",onClick:()=>Rr(li=>li.filter((Un,xi)=>xi!==Sn)),className:"p-2 rounded-md hover:bg-black/5","aria-label":"Remove",children:o.jsx(Zs,{className:"h-3.5 w-3.5",style:{color:"var(--c-text-muted)"}})})]},Sn))})]})]})}]:[],{title:"One Last Thing",fields:o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{children:[o.jsxs("label",{className:"block text-sm font-medium text-slate-600 mb-3",children:["Are you thinking about making a move anytime soon? ",o.jsx("span",{className:"text-slate-400 font-normal",children:"(totally optional)"})]}),o.jsx("div",{className:"grid grid-cols-2 gap-3",children:[{value:"buying",label:"🏠 Buying",desc:"Looking for a home"},{value:"selling",label:"📋 Selling",desc:"Thinking of selling"},{value:"both",label:"🔄 Both",desc:"Buy & sell"},{value:"not_now",label:"😊 Not right now",desc:"Just staying connected"}].map(Nr=>o.jsxs("button",{type:"button",onClick:()=>Rt(_t===Nr.value?"":Nr.value),className:`p-3.5 rounded-xl border-2 text-left transition-all ${_t===Nr.value?"border-blue-500 bg-blue-50 shadow-sm":"border-slate-200 bg-white hover:border-slate-300"}`,children:[o.jsx("span",{className:"block text-sm font-medium text-slate-800",children:Nr.label}),o.jsx("span",{className:"block text-xs text-slate-500 mt-0.5",children:Nr.desc})]},Nr.value))})]}),o.jsxs("div",{children:[o.jsxs("label",{className:"block text-sm font-medium mb-1.5",style:{color:"var(--c-text-muted)"},children:["Anything else you'd like to share? ",o.jsx("span",{className:"text-slate-400 font-normal",children:"(optional)"})]}),o.jsx("textarea",{value:er,onChange:Nr=>vt(Nr.target.value),placeholder:"Feel free to drop a note...",rows:3,className:"connect-input resize-none"})]})]})}],Gs=Ci.length,vi=Ojt(m==null?void 0:m.theme),sa=Fjt(vi,(m==null?void 0:m.accent_color)||null),ts=(m==null?void 0:m.cover_image_url)||vi.defaultCover,Pr=(m==null?void 0:m.headline)||"Let's stay connected",ni=(m==null?void 0:m.subheadline)||(s!=null&&s.brokerage_name?`${s==null?void 0:s.name} · ${s.brokerage_name}`:(s==null?void 0:s.name)||""),rs=["deep-luxe"].includes((m==null?void 0:m.theme)||"");return o.jsxs("div",{className:"min-h-screen connect-shell",style:sa,children:[o.jsxs(Il,{children:[o.jsxs("title",{children:["Connect with ",(s==null?void 0:s.name)||"Agent"]}),o.jsx("meta",{name:"description",content:`${Pr} — ${(s==null?void 0:s.name)||"your agent"}`}),ts&&o.jsx("meta",{property:"og:image",content:ts}),o.jsx("meta",{property:"og:title",content:`Connect with ${(s==null?void 0:s.name)||"me"}`}),o.jsx("meta",{property:"og:description",content:Pr}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"})]}),o.jsx("style",{children:` .connect-shell { font-family: var(--c-body-font); color: var(--c-text); } .connect-shell h1, .connect-shell h2 { font-family: var(--c-heading-font); } .connect-input { width: 100%; padding: 0.75rem 1rem; border-radius: 0.75rem; border: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-text); font-family: var(--c-body-font); font-size: 0.95rem; transition: border-color 150ms, box-shadow 150ms; } .connect-input::placeholder { color: var(--c-text-muted); opacity: 0.7; } .connect-input:focus { outline: none; border-color: var(--c-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent); } `}),o.jsxs("div",{className:"relative w-full overflow-hidden",style:{height:"clamp(200px, 30vh, 320px)"},children:[o.jsx(hr.img,{src:ts,alt:"",initial:{scale:1.08},animate:{scale:1},transition:{duration:1.4,ease:"easeOut"},className:"absolute inset-0 w-full h-full object-cover"}),o.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,0.55) 100%)"}}),o.jsxs("div",{className:"absolute inset-x-0 bottom-0 p-6 pb-16 text-center",children:[o.jsx(hr.h1,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.15,duration:.6},style:{color:"#fff",fontFamily:vi.headingFont,fontWeight:500,letterSpacing:"-0.01em"},className:"text-3xl sm:text-4xl leading-tight",children:Pr}),ni&&o.jsx(hr.p,{initial:{opacity:0},animate:{opacity:.9},transition:{delay:.35,duration:.6},style:{color:"#fff"},className:"text-sm mt-2",children:ni})]})]}),o.jsxs("div",{className:"max-w-lg mx-auto px-4 pb-12 -mt-12 relative",children:[o.jsxs(hr.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.25},className:"text-center mb-6",children:[s!=null&&s.avatar_url?o.jsx("img",{src:s.avatar_url,alt:s.name,className:"w-24 h-24 rounded-full object-cover mx-auto shadow-xl",style:{border:"4px solid var(--c-surface)"}}):o.jsx("div",{className:"w-24 h-24 rounded-full mx-auto flex items-center justify-center shadow-xl",style:{background:vi.accent,color:vi.accentText,border:"4px solid var(--c-surface)"},children:o.jsx("span",{className:"text-3xl font-bold",children:((Nn=s==null?void 0:s.name)==null?void 0:Nn.charAt(0))||"?"})}),(s==null?void 0:s.title)&&o.jsx("p",{className:"text-sm mt-3",style:{color:"var(--c-text-muted)"},children:s.title}),((s==null?void 0:s.phone)||(s==null?void 0:s.email))&&o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-3",children:[(s==null?void 0:s.phone)&&o.jsx("a",{href:`tel:${s.phone}`,className:"flex items-center justify-center w-10 h-10 rounded-full transition-opacity hover:opacity-80",style:{background:"color-mix(in srgb, var(--c-accent) 12%, transparent)",color:"var(--c-accent)"},"aria-label":"Call agent",children:o.jsx(Ui,{className:"h-4 w-4"})}),(s==null?void 0:s.email)&&o.jsx("a",{href:`mailto:${s.email}`,className:"flex items-center justify-center w-10 h-10 rounded-full transition-opacity hover:opacity-80",style:{background:"color-mix(in srgb, var(--c-accent) 12%, transparent)",color:"var(--c-accent)"},"aria-label":"Email agent",children:o.jsx($i,{className:"h-4 w-4"})})]})]}),o.jsx(hr.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.35},className:"text-center mb-6 px-2 leading-relaxed text-sm",style:{color:"var(--c-text-muted)"},children:(m==null?void 0:m.welcome_message)||"I'd love to stay in touch — just a few quick details."}),o.jsx("div",{className:"flex gap-1.5 mb-6 px-2",children:Array.from({length:Gs}).map((Nr,Sn)=>o.jsx("div",{className:"h-1 flex-1 rounded-full transition-all duration-500",style:{background:Sn<=G?"var(--c-accent)":"color-mix(in srgb, var(--c-text) 12%, transparent)"}},Sn))}),o.jsxs(hr.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.4},className:"rounded-2xl p-6 sm:p-8",style:{background:"var(--c-surface)",border:"1px solid var(--c-border)",boxShadow:rs?"0 20px 40px -20px rgba(0,0,0,0.5)":"0 20px 40px -20px rgba(0,0,0,0.15)"},children:[o.jsx(Qve,{mode:"wait",children:o.jsxs(hr.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},transition:{duration:.25},children:[o.jsxs("div",{className:"mb-6",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Es,{className:"h-4 w-4",style:{color:"var(--c-accent)"}}),o.jsx("h2",{className:"text-lg font-semibold",style:{color:"var(--c-text)"},children:Ci[G].title})]}),Ci[G].subtitle&&o.jsx("p",{className:"text-xs mt-1 ml-6",style:{color:"var(--c-text-muted)"},children:Ci[G].subtitle})]}),Ci[G].fields]},G)}),o.jsxs("div",{className:"flex justify-between mt-8",children:[G>0?o.jsx("button",{type:"button",onClick:()=>W(Nr=>Nr-1),className:"px-5 py-2.5 text-sm font-medium transition-opacity hover:opacity-70",style:{color:"var(--c-text-muted)"},children:"Back"}):o.jsx("div",{}),G{if(G===0&&!se.trim()){Jt.error("Please enter your first name");return}W(Nr=>Nr+1)},className:"px-6 py-2.5 text-sm font-medium rounded-xl transition-transform hover:scale-[1.02] shadow-sm",style:{background:"var(--c-accent)",color:"var(--c-accent-text)"},children:"Continue"}):o.jsx("button",{type:"button",onClick:()=>Yn(),disabled:B,className:"px-6 py-2.5 text-sm font-medium rounded-xl transition-transform hover:scale-[1.02] shadow-sm disabled:opacity-50 flex items-center gap-2",style:{background:"var(--c-accent)",color:"var(--c-accent-text)"},children:B?o.jsxs(o.Fragment,{children:[o.jsx(ku,{className:"h-4 w-4 animate-spin"}),"Sending..."]}):"Submit"})]}),G>0&&GW(Nr=>Nr+1),className:"text-xs transition-opacity hover:opacity-80",style:{color:"var(--c-text-muted)"},children:"Skip this step"})})]}),o.jsx("div",{className:"text-center mt-8",children:o.jsxs("div",{className:"flex items-center justify-center gap-1 text-xs",style:{color:"var(--c-text-muted)"},children:[o.jsx(tp,{className:"h-3 w-3"}),o.jsx("span",{children:"Powered by ReLevelUp"})]})})]})]})}const Bjt=Object.freeze(Object.defineProperty({__proto__:null,default:lEe},Symbol.toStringTag,{value:"Module"}));function zjt(){const e=Ji().pathname.slice(1);return P.useEffect(()=>{document.body.classList.add("connect-page");const r=()=>{['[id*="lc_text_widget"]','[id*="lc_text-widget"]','[class*="lc-text-widget"]','[class*="lc_text-widget"]','[class*="lc_text_widget"]',".lc_text-widget--bubble",'[id*="chat-widget"]','[class*="chat-widget"]','iframe[src*="widgets.leadconnectorhq"]','iframe[src*="leadconnector"]','iframe[src*="msgsndr"]',"[data-chat-widget]","[data-widget-id]",'div[style*="z-index"][style*="position: fixed"][style*="bottom"]','div[id^="fc_"]','div[id^="hubspot"]',".widget-visible"].forEach(a=>{document.querySelectorAll(a).forEach(c=>{c.style.display="none"})})};r();const n=[setTimeout(r,500),setTimeout(r,1500),setTimeout(r,3e3),setTimeout(r,5e3)];return()=>{document.body.classList.remove("connect-page"),n.forEach(clearTimeout)}},[]),!e||e===""?o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-50 via-white to-slate-100 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-slate-800 mb-2",children:"Connect"}),o.jsx("p",{className:"text-slate-500",children:"Stay connected with your real estate professional."}),o.jsx("p",{className:"text-slate-400 text-sm mt-2",children:"Visit a specific agent link to get started."})]})}):o.jsx(lEe,{slugOverride:e})}function $jt(t){try{const e=document.createElement("canvas"),r=e.width=Math.min(t.naturalWidth,64),n=e.height=Math.min(t.naturalHeight,64),i=e.getContext("2d");if(!i)return!0;i.drawImage(t,0,0,r,n);const a=i.getImageData(0,0,r,n).data,c=[[0,0],[r-1,0],[0,n-1],[r-1,n-1],[Math.floor(r/2),0],[Math.floor(r/2),n-1],[0,Math.floor(n/2)],[r-1,Math.floor(n/2)]];for(const[s,f]of c)if(a[(f*r+s)*4+3]<250)return!0;return!1}catch{return!0}}const Ujt={playfair:"'Playfair Display', Georgia, serif",baskerville:"'Libre Baskerville', Georgia, serif",instrument:"'Instrument Serif', Georgia, serif",sans:"'Inter', system-ui, sans-serif"};function Vjt({page:t,fields:e,answers:r,setAnswers:n,onSubmit:i,isSubmitting:a,renderField:c}){const s=t.accent_color||"#E8B84A",f=t.primary_color||"#0F1B3D",m=Ujt[t.heading_font||"playfair"],x=t.eyebrow||null,_=t.headline_accent||null,T=Array.isArray(t.trust_pills)?t.trust_pills:[],E=e,C=E.length>5;return o.jsxs("section",{className:"relative w-full min-h-screen md:min-h-[760px] overflow-hidden",style:{backgroundColor:f},children:[t.hero_image_url?o.jsx("img",{src:t.hero_image_url,alt:"",className:"absolute inset-0 w-full h-full object-cover",loading:"eager"}):o.jsx("div",{className:"absolute inset-0",style:{background:`linear-gradient(135deg, ${f}, #000)`}}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-black/85 via-black/55 to-black/25"}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-transparent to-black/20"}),o.jsx("div",{className:"relative z-10 mx-auto w-full max-w-7xl px-6 md:px-10 py-16 md:py-24 min-h-screen md:min-h-[760px] flex items-center",children:o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-12 w-full items-center",children:[o.jsxs("div",{className:"lg:col-span-3 text-white",children:[t.logo_url&&o.jsx(qjt,{src:t.logo_url}),x&&o.jsx("p",{className:"text-xs md:text-sm font-semibold tracking-[0.22em] text-white/80 mb-4 uppercase",children:x}),o.jsxs("h1",{className:"font-bold leading-[1.04] mb-5 text-4xl sm:text-5xl md:text-6xl lg:text-[68px]",style:{fontFamily:m,letterSpacing:"-0.015em"},children:[t.hero_headline,_&&o.jsxs(o.Fragment,{children:[" ",o.jsx("span",{style:{color:s,fontStyle:"italic"},children:_})]})]}),t.hero_subtext&&o.jsx("p",{className:"text-base md:text-lg text-white/85 leading-relaxed max-w-xl",children:t.hero_subtext}),t.agent_name&&o.jsxs("div",{className:"mt-8 flex items-center gap-3",children:[t.agent_photo_url&&o.jsx("img",{src:t.agent_photo_url,alt:t.agent_name,className:"h-12 w-12 rounded-full object-cover ring-2 ring-white/30"}),o.jsxs("div",{className:"text-white/90",children:[o.jsx("p",{className:"font-semibold text-sm",children:t.agent_name}),o.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-xs text-white/70 mt-0.5",children:[t.agent_phone&&o.jsxs("a",{href:`tel:${t.agent_phone}`,className:"flex items-center gap-1 hover:text-white",children:[o.jsx(Ui,{className:"h-3 w-3"})," ",t.agent_phone]}),t.agent_email&&o.jsxs("a",{href:`mailto:${t.agent_email}`,className:"flex items-center gap-1 hover:text-white",children:[o.jsx($i,{className:"h-3 w-3"})," ",t.agent_email]})]})]})]})]}),o.jsx("div",{className:"lg:col-span-2",children:o.jsxs("div",{className:"rounded-2xl border border-white/15 bg-white/10 backdrop-blur-xl shadow-2xl p-5 md:p-6",children:[o.jsxs("form",{className:"space-y-3",onSubmit:i,children:[o.jsx("div",{className:C?"space-y-3 max-h-[52vh] overflow-y-auto pr-1 -mr-1":"space-y-3",children:E.map(N=>o.jsxs("div",{children:[o.jsxs(Fr,{className:"block text-[11px] font-semibold tracking-wider uppercase text-white/85 mb-1.5",children:[N.label,N.is_required&&o.jsx("span",{className:"ml-1",style:{color:s},children:"*"})]}),o.jsx("div",{className:"[&_input]:bg-white/95 [&_input]:border-0 [&_input]:text-neutral-900 [&_input]:placeholder:text-neutral-400 [&_textarea]:bg-white/95 [&_textarea]:border-0 [&_textarea]:text-neutral-900 [&_textarea]:placeholder:text-neutral-400 [&_button[role=combobox]]:bg-white/95 [&_button[role=combobox]]:border-0 [&_button[role=combobox]]:text-neutral-900 [&_span]:text-white/90 [&_button[role=checkbox]]:border-white/60 [&_button[role=checkbox]]:bg-white/20 [&_button[role=checkbox][data-state=checked]]:bg-white [&_button[role=checkbox][data-state=checked]]:text-neutral-900",children:c(N,r,n,f)})]},N.id))}),o.jsx("button",{type:"submit",disabled:a,className:"w-full px-6 py-3.5 rounded-lg font-bold text-neutral-900 text-base md:text-lg shadow-lg hover:brightness-110 active:brightness-95 transition-all disabled:opacity-60 mt-2",style:{backgroundColor:s},children:a?"Submitting...":t.cta_text||"Get Started"})]}),T.length>0&&o.jsx("div",{className:"flex flex-wrap gap-x-5 gap-y-2 mt-4",children:T.map((N,L)=>o.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] md:text-xs text-white/80 font-medium",children:[o.jsx("span",{className:"h-1 w-1 rounded-full",style:{backgroundColor:s}}),N]},L))})]})})]})})]})}function qjt({src:t}){const[e,r]=P.useState(null),n=o.jsx("img",{src:t,alt:"Logo",crossOrigin:"anonymous",className:"h-10 md:h-12 w-auto object-contain",onLoad:i=>r($jt(i.currentTarget)),onError:()=>r(!0)});return e===!1?o.jsx("span",{className:"inline-flex items-center rounded-md bg-white/90 backdrop-blur px-3 py-2 mb-6 shadow-sm",children:n}):o.jsx("div",{className:"mb-6 inline-block drop-shadow-md",children:n})}const Soe={playfair:"'Playfair Display', Georgia, serif",baskerville:"'Libre Baskerville', Georgia, serif",instrument:"'Instrument Serif', Georgia, serif",sans:"'Inter', system-ui, sans-serif"};function Gjt({page:t,fields:e,answers:r,setAnswers:n,onSubmit:i,isSubmitting:a,renderField:c,activePath:s,setActivePath:f}){const m=P.useRef(null),[x,_]=P.useState(!1),T=t.primary_color||"#406E71",E=t.accent_color||"#2a4c64",C=t.settings||{},N=Soe[t.heading_font]||Soe.playfair,L=Array.isArray(t.trust_pills)?t.trust_pills:[],M={buyerLabel:C.buyer_button_label||"I'm a Buyer",buyerSub:C.buyer_button_subtext||"Find the right home, at the right price",sellerLabel:C.seller_button_label||"I'm a Seller",sellerSub:C.seller_button_subtext||"Get a free, no-obligation home evaluation",buyerTitle:C.buyer_form_title||"Tell me what you’re looking for",buyerSubtitle:C.buyer_form_subtext||"A few quick questions and I’ll send you matching homes.",sellerTitle:C.seller_form_title||"Get your free home evaluation",sellerSubtitle:C.seller_form_subtext||"Tell me about your home and I’ll prepare your value report.",buyerCta:C.buyer_submit_label||"Send me homes",sellerCta:C.seller_submit_label||"Get my home value"},D=P.useMemo(()=>{const W=e.filter(se=>(se.field_group||"default")==="buyer"),Z=e.filter(se=>(se.field_group||"default")==="seller"),Q=e.filter(se=>(se.field_group||"default")==="default");return{buyer:W.length?[...Q,...W]:[...Q],seller:Z.length?[...Q,...Z]:[...Q]}},[e]),B=s?D[s]:[];P.useEffect(()=>{s&&m.current&&m.current.scrollIntoView({behavior:"smooth",block:"start"})},[s]);const V=B.filter(W=>W.is_required&&!r[W.label]),G=W=>{W.preventDefault(),_(!0),!(V.length>0)&&i(W)};return o.jsxs("div",{className:"min-h-screen bg-neutral-950",children:[o.jsxs("section",{className:"relative min-h-[78vh] flex items-center overflow-hidden",children:[o.jsx("div",{className:"absolute inset-0",style:{background:t.hero_image_url?`url(${t.hero_image_url}) center/cover no-repeat`:`linear-gradient(135deg, ${T}, ${E})`}}),o.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.42) 38%, rgba(0,0,0,.82) 100%)"}}),o.jsx("div",{className:"absolute inset-x-0 bottom-0 h-40",style:{background:"linear-gradient(180deg, transparent, #0a0a0a)"}}),o.jsxs("div",{className:"relative w-full max-w-6xl mx-auto px-5 py-20 text-center",children:[t.logo_url&&o.jsx("img",{src:t.logo_url,alt:"",className:"h-11 w-auto mx-auto mb-8 drop-shadow-lg"}),t.eyebrow&&o.jsx("p",{className:"text-[11px] md:text-xs uppercase tracking-[0.32em] text-white/70 mb-5",children:t.eyebrow}),o.jsxs("h1",{className:"text-white text-4xl md:text-6xl lg:text-7xl leading-[1.05] tracking-tight",style:{fontFamily:N},children:[t.hero_headline,t.headline_accent&&o.jsxs(o.Fragment,{children:[" ",o.jsx("em",{className:"italic",style:{color:"#fff",opacity:.85},children:t.headline_accent})]})]}),t.hero_subtext&&o.jsx("p",{className:"mt-5 text-base md:text-lg text-white/80 max-w-2xl mx-auto leading-relaxed",children:t.hero_subtext}),o.jsxs("div",{className:"mt-12 grid gap-4 sm:grid-cols-2 max-w-3xl mx-auto",children:[o.jsx(Toe,{active:s==="buyer",icon:o.jsx(Dhe,{className:"h-5 w-5"}),label:M.buyerLabel,sub:M.buyerSub,color:T,onClick:()=>{_(!1),f("buyer")}}),o.jsx(Toe,{active:s==="seller",icon:o.jsx(Ma,{className:"h-5 w-5"}),label:M.sellerLabel,sub:M.sellerSub,color:E,onClick:()=>{_(!1),f("seller")}})]}),L.length>0&&o.jsx("div",{className:"mt-9 flex flex-wrap items-center justify-center gap-2",children:L.map(W=>o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-white/20 bg-white/10 px-3.5 py-1.5 text-[11px] font-medium text-white/85 backdrop-blur",children:[o.jsx(lG,{className:"h-3 w-3"})," ",W]},W))})]})]}),o.jsx("section",{ref:m,className:"relative bg-neutral-950 px-5 pb-20 pt-2 scroll-mt-4",children:o.jsxs("div",{className:"max-w-3xl mx-auto",children:[s?o.jsxs("div",{className:"-mt-14 rounded-3xl border border-white/10 bg-white shadow-[0_40px_80px_-30px_rgba(0,0,0,.8)] overflow-hidden",children:[o.jsxs("div",{className:"px-6 md:px-9 py-6",style:{background:`linear-gradient(120deg, ${s==="buyer"?T:E}, ${s==="buyer"?E:T})`},children:[o.jsxs("button",{type:"button",onClick:()=>f(null),className:"inline-flex items-center gap-1.5 text-[11px] uppercase tracking-widest text-white/75 hover:text-white transition-colors",children:[o.jsx(Oy,{className:"h-3 w-3"})," Change"]}),o.jsx("h2",{className:"mt-3 text-2xl md:text-3xl text-white leading-tight",style:{fontFamily:N},children:s==="buyer"?M.buyerTitle:M.sellerTitle}),o.jsx("p",{className:"mt-1.5 text-sm text-white/80",children:s==="buyer"?M.buyerSubtitle:M.sellerSubtitle})]}),o.jsxs("form",{onSubmit:G,className:"px-6 md:px-9 py-7 space-y-4",children:[B.length===0&&o.jsx("p",{className:"text-sm text-neutral-500",children:"This form has no questions yet."}),B.map(W=>o.jsxs("div",{children:[o.jsxs(Fr,{className:"text-[13px] font-medium text-neutral-700",children:[W.label,W.is_required&&o.jsx("span",{className:"ml-1",style:{color:T},children:"*"})]}),c(W,r,n,T)]},W.id)),x&&V.length>0&&o.jsxs("p",{className:"text-sm text-red-600",children:["Please fill in: ",V.map(W=>W.label).join(", ")]}),o.jsxs(Kt,{type:"submit",disabled:a,className:"w-full h-12 text-white text-base rounded-xl shadow-lg hover:opacity-95",style:{backgroundColor:s==="buyer"?T:E},children:[a?"Sending…":s==="buyer"?M.buyerCta:M.sellerCta,!a&&o.jsx(Uc,{className:"h-4 w-4 ml-2"})]})]})]}):o.jsx("p",{className:"text-center text-white/45 text-sm py-10",children:"Choose an option above to get started."}),t.agent_name&&o.jsxs("div",{className:"mt-10 flex items-center justify-center gap-4 rounded-2xl border border-white/10 bg-white/[0.04] px-6 py-5 backdrop-blur",children:[t.agent_photo_url&&o.jsx("img",{src:t.agent_photo_url,alt:t.agent_name,className:"h-14 w-14 rounded-full object-cover ring-2 ring-white/20"}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-white font-medium",children:t.agent_name}),o.jsxs("div",{className:"mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-white/65",children:[t.agent_phone&&o.jsxs("a",{href:`tel:${t.agent_phone}`,className:"inline-flex items-center gap-1 hover:text-white",children:[o.jsx(Ui,{className:"h-3 w-3"})," ",t.agent_phone]}),t.agent_email&&o.jsxs("a",{href:`mailto:${t.agent_email}`,className:"inline-flex items-center gap-1 hover:text-white",children:[o.jsx($i,{className:"h-3 w-3"})," ",t.agent_email]})]})]})]})]})})]})}function Toe({active:t,icon:e,label:r,sub:n,color:i,onClick:a}){return o.jsxs("button",{type:"button",onClick:a,className:`group relative overflow-hidden rounded-2xl border px-6 py-7 text-left transition-all duration-300 backdrop-blur-xl ${t?"border-white/60 bg-white/95 shadow-2xl -translate-y-0.5":"border-white/20 bg-white/10 hover:bg-white/20 hover:-translate-y-0.5"}`,children:[o.jsx("span",{className:"inline-flex h-11 w-11 items-center justify-center rounded-full",style:{backgroundColor:t?i:"rgba(255,255,255,.18)",color:"#fff"},children:e}),o.jsx("span",{className:`mt-4 block text-xl font-semibold ${t?"":"text-white"}`,style:t?{color:i}:void 0,children:r}),o.jsx("span",{className:`mt-1 block text-sm ${t?"text-neutral-600":"text-white/70"}`,children:n}),o.jsx(Uc,{className:`absolute right-5 top-7 h-4 w-4 transition-transform group-hover:translate-x-1 ${t?"":"text-white/60"}`,style:t?{color:i}:void 0})]})}function Hjt(t){const e=Math.max(0,Math.floor(t/1e3));return{d:Math.floor(e/86400),h:Math.floor(e%86400/3600),m:Math.floor(e%3600/60),s:e%60}}function Wjt(t,e,r){const n=new Date(e),i=new Date(n.getTime()+60*60*1e3),a=s=>s.toISOString().replace(/[-:]|\.\d{3}/g,""),c=new URL("https://www.google.com/calendar/render");return c.searchParams.set("action","TEMPLATE"),c.searchParams.set("text",t),c.searchParams.set("dates",`${a(n)}/${a(i)}`),r&&c.searchParams.set("location",r),c.toString()}function Kjt(t,e,r){const n=new Date(e),i=new Date(n.getTime()+60*60*1e3),a=s=>s.toISOString().replace(/[-:]|\.\d{3}/g,""),c=["BEGIN:VCALENDAR","VERSION:2.0","BEGIN:VEVENT",`UID:${Date.now()}@levelup`,`DTSTAMP:${a(new Date)}`,`DTSTART:${a(n)}`,`DTEND:${a(i)}`,`SUMMARY:${t}`,r?`LOCATION:${r}`:"","END:VEVENT","END:VCALENDAR"].filter(Boolean).join(`\r `);return`data:text/calendar;charset=utf-8,${encodeURIComponent(c)}`}function Yjt({startsAt:t,locationName:e,address:r,title:n,accent:i}){const[a,c]=P.useState(Date.now());P.useEffect(()=>{const E=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(E)},[]);const s=new Date(t).getTime();if(!Number.isFinite(s))return null;const f=Hjt(s-a),m=s-a<=0,x=new Date(t).toLocaleString("en-US",{weekday:"long",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"}),_=[e,r].filter(Boolean).join(" · "),T=r?`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(r)}`:null;return o.jsx("section",{className:"max-w-5xl mx-auto px-4 py-10",children:o.jsx("div",{className:"rounded-2xl border bg-white/80 backdrop-blur p-6 md:p-8 shadow-sm",children:o.jsxs("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-4",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("div",{className:"text-xs uppercase tracking-wider font-medium",style:{color:i},children:m?"Just happened":"Event starts in"}),m?o.jsx("p",{className:"text-sm text-muted-foreground",children:"Missed this one? Submit the form and we'll let you know about the next one."}):o.jsx("div",{className:"flex items-baseline gap-3",children:[{v:f.d,l:"days"},{v:f.h,l:"hrs"},{v:f.m,l:"min"},{v:f.s,l:"sec"}].map(E=>o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"text-3xl md:text-4xl font-bold tabular-nums",style:{color:i},children:String(E.v).padStart(2,"0")}),o.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:E.l})]},E.l))}),o.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 pt-2 text-sm text-neutral-700",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx(pc,{className:"h-3.5 w-3.5"})," ",x]}),_&&o.jsxs("a",{href:T||"#",target:T?"_blank":void 0,rel:"noreferrer",className:"inline-flex items-center gap-1.5 hover:underline",children:[o.jsx(ga,{className:"h-3.5 w-3.5"})," ",_]})]})]}),!m&&o.jsxs("div",{className:"flex flex-wrap gap-2",children:[o.jsxs("a",{href:Wjt(n,t,_||null),target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 text-sm font-medium rounded-lg border px-3 py-2 hover:bg-neutral-50",children:[o.jsx(fo,{className:"h-4 w-4"})," Add to Google"]}),o.jsxs("a",{href:Kjt(n,t,_||null),download:`${n.replace(/\W+/g,"-").toLowerCase()}.ics`,className:"inline-flex items-center gap-2 text-sm font-medium rounded-lg border px-3 py-2 hover:bg-neutral-50",children:[o.jsx(fo,{className:"h-4 w-4"})," Apple / Outlook"]})]})]})})})}function Zjt(){try{const t="_lp_sid";let e=sessionStorage.getItem(t);return e||(e=crypto.randomUUID?crypto.randomUUID():`s_${Date.now()}_${Math.random().toString(36).slice(2)}`,sessionStorage.setItem(t,e)),e}catch{return`s_${Date.now()}`}}function cEe({slugOverride:t}){var Te;const{slug:e}=hp(),r=t||e,[n,i]=P.useState(!1),[a,c]=P.useState({}),[s,f]=P.useState(null),[m,x]=P.useState(0),[_,T]=P.useState(!1),[E,C]=P.useState(""),[N]=P.useState(()=>Date.now()),L=P.useState(()=>Zjt())[0],{data:M,isLoading:D}=br({queryKey:["public-landing-page",r],queryFn:async()=>{const{data:we,error:Oe}=await De.from("landing_pages").select("*").eq("slug",r).eq("is_published",!0).single();if(Oe)throw Oe;return we},enabled:!!r}),{data:B=[]}=br({queryKey:["public-landing-page-fields",M==null?void 0:M.id],queryFn:async()=>{const{data:we,error:Oe}=await De.from("landing_page_fields").select("*").eq("page_id",M.id).order("sort_order");if(Oe)throw Oe;return we},enabled:!!(M!=null&&M.id)});P.useEffect(()=>{M!=null&&M.id&&De.from("landing_pages").update({view_count:(M.view_count||0)+1}).eq("id",M.id).then(()=>{})},[M==null?void 0:M.id]),P.useEffect(()=>{if(!(M!=null&&M.id))return;const we=new URLSearchParams(window.location.search);De.functions.invoke("landing-page-track",{body:{page_id:M.id,event_type:"view",session_id:L,utm_source:we.get("utm_source"),utm_medium:we.get("utm_medium"),utm_campaign:we.get("utm_campaign"),referrer:document.referrer||null,device:window.matchMedia("(max-width: 768px)").matches?"mobile":"desktop"}}).catch(()=>{})},[M==null?void 0:M.id,L]);const V=kr({mutationFn:async()=>{const we=B.find(Ze=>Ze.field_type==="text"&&Ze.label.toLowerCase().includes("name")),Oe=B.find(Ze=>Ze.field_type==="email"),Ae=B.find(Ze=>Ze.field_type==="phone"),Se=we?String(a[we.label]||""):null,ge=Oe?String(a[Oe.label]||""):null,je=Ae?String(a[Ae.label]||""):null,_e=new URLSearchParams(window.location.search),{data:xe,error:Pe}=await De.functions.invoke("landing-page-submit",{body:{page_id:M.id,answers:JSON.parse(JSON.stringify(s?{"I am a":s==="buyer"?"Buyer":"Seller",...a}:a)),contact_name:Se,contact_email:ge,contact_phone:je,session_id:L,honeypot:E,rendered_at:N,utm_source:_e.get("utm_source"),utm_medium:_e.get("utm_medium"),utm_campaign:_e.get("utm_campaign"),referrer:document.referrer||null}});if(Pe)throw Pe;return xe},onSuccess:we=>{i(!0),we!=null&&we.redirect_url&&setTimeout(()=>{window.location.href=we.redirect_url},1500)}}),G=we=>{we.preventDefault(),!((M==null?void 0:M.page_type)!=="buyer_seller"&&B.filter(Ae=>Ae.is_required&&!a[Ae.label]).length>0)&&V.mutate()};if(D)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-gray-400 border-t-transparent"})});if(!M)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold text-gray-700",children:"Page Not Found"}),o.jsx("p",{className:"text-gray-500 mt-2",children:"This page doesn't exist or is no longer available."})]})});const W=M.primary_color||"#406E71",Z=M.accent_color||"#2a4c64",Q=M,se=M.page_type==="lead_magnet",ie=M.page_type==="just_listed"||M.page_type==="just_sold",ue=Array.isArray(Q.property_photos)?Q.property_photos:[],be=Q.lead_magnet_file_url||Q.lead_magnet_external_url;if(n)return o.jsx("div",{className:"min-h-screen flex items-center justify-center",style:{background:`linear-gradient(135deg, ${W}, ${Z})`},children:o.jsxs("div",{className:"bg-white rounded-2xl shadow-2xl p-8 max-w-md mx-4 text-center",children:[o.jsx(gc,{className:"h-16 w-16 mx-auto mb-4",style:{color:W}}),o.jsx("h2",{className:"text-2xl font-bold mb-2",children:se?"Your download is ready!":"Submitted!"}),o.jsx("p",{className:"text-gray-600",children:M.success_message}),se&&be&&o.jsxs("a",{href:be,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 mt-6 px-6 py-3 rounded-lg text-white font-semibold transition-transform hover:scale-105",style:{backgroundColor:W},children:[o.jsx(Zl,{className:"h-5 w-5"}),"Download ",Q.lead_magnet_file_name||"Your File"]}),M.agent_name&&o.jsxs("div",{className:"mt-6 pt-4 border-t",children:[o.jsx("p",{className:"text-sm text-gray-500",children:"Contact"}),o.jsx("p",{className:"font-semibold",children:M.agent_name}),M.agent_phone&&o.jsxs("a",{href:`tel:${M.agent_phone}`,className:"text-sm flex items-center justify-center gap-1 mt-1",style:{color:W},children:[o.jsx(Ui,{className:"h-3 w-3"})," ",M.agent_phone]}),M.agent_email&&o.jsxs("a",{href:`mailto:${M.agent_email}`,className:"text-sm flex items-center justify-center gap-1 mt-1",style:{color:W},children:[o.jsx($i,{className:"h-3 w-3"})," ",M.agent_email]})]})]})});if(ie){const we=Oe=>{const Ae=parseFloat(Oe.replace(/[^0-9.]/g,""));return isNaN(Ae)?Oe:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(Ae)};return o.jsxs("div",{className:"min-h-screen bg-gray-50",children:[_&&ue.length>0&&o.jsxs("div",{className:"fixed inset-0 z-50 bg-black/95 flex items-center justify-center",onClick:()=>T(!1),children:[o.jsx("button",{onClick:()=>T(!1),className:"absolute top-4 right-4 text-white/80 hover:text-white z-10",children:o.jsx(Zs,{className:"h-8 w-8"})}),o.jsx("button",{onClick:Oe=>{Oe.stopPropagation(),x(Ae=>Ae===0?ue.length-1:Ae-1)},className:"absolute left-4 top-1/2 -translate-y-1/2 bg-white/10 hover:bg-white/20 text-white rounded-full p-3 transition-colors z-10",children:o.jsx(Bm,{className:"h-6 w-6"})}),o.jsx("img",{src:ue[m],alt:`Property photo ${m+1}`,className:"max-h-[90vh] max-w-[90vw] object-contain rounded-lg",onClick:Oe=>Oe.stopPropagation()}),o.jsx("button",{onClick:Oe=>{Oe.stopPropagation(),x(Ae=>Ae===ue.length-1?0:Ae+1)},className:"absolute right-4 top-1/2 -translate-y-1/2 bg-white/10 hover:bg-white/20 text-white rounded-full p-3 transition-colors z-10",children:o.jsx(th,{className:"h-6 w-6"})}),o.jsxs("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 text-white/70 text-sm",children:[m+1," / ",ue.length]})]}),ue.length>0&&o.jsxs("div",{className:"relative max-w-6xl mx-auto px-4 pt-6",children:[o.jsx("div",{className:"absolute top-10 left-8 z-10 px-4 py-1.5 rounded-full text-white font-bold text-sm uppercase tracking-wider shadow-lg",style:{backgroundColor:Q.property_status==="just_sold"?"#e74c3c":W},children:Q.property_status==="just_sold"?"🎉 Just Sold":"🏡 Just Listed"}),ue.length===1?o.jsxs("div",{className:"rounded-2xl overflow-hidden cursor-pointer group",onClick:()=>{x(0),T(!0)},children:[o.jsx("img",{src:ue[0],alt:"Property",className:"w-full h-[50vh] object-cover group-hover:scale-105 transition-transform duration-500"}),o.jsxs("div",{className:"absolute bottom-4 right-4 bg-black/60 text-white px-3 py-1.5 rounded-lg text-sm flex items-center gap-1.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[o.jsx(bJ,{className:"h-4 w-4"})," View"]})]}):ue.length===2?o.jsx("div",{className:"grid grid-cols-2 gap-2 rounded-2xl overflow-hidden",children:ue.slice(0,2).map((Oe,Ae)=>o.jsx("div",{className:"cursor-pointer group relative",onClick:()=>{x(Ae),T(!0)},children:o.jsx("img",{src:Oe,alt:`Property ${Ae+1}`,className:"w-full h-[45vh] object-cover group-hover:scale-105 transition-transform duration-500"})},Ae))}):o.jsxs("div",{className:"grid grid-cols-4 gap-2 rounded-2xl overflow-hidden",style:{height:"55vh"},children:[o.jsx("div",{className:"col-span-2 row-span-2 cursor-pointer group relative",onClick:()=>{x(0),T(!0)},children:o.jsx("img",{src:ue[0],alt:"Property main",className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"})}),ue.slice(1,5).map((Oe,Ae)=>o.jsxs("div",{className:"cursor-pointer group relative",onClick:()=>{x(Ae+1),T(!0)},children:[o.jsx("img",{src:Oe,alt:`Property ${Ae+2}`,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"}),Ae===3&&ue.length>5&&o.jsxs("div",{className:"absolute inset-0 bg-black/50 flex items-center justify-center text-white font-bold text-lg",children:["+",ue.length-5," more"]})]},Ae))]}),ue.length>2&&o.jsxs("button",{onClick:()=>{x(0),T(!0)},className:"absolute bottom-4 right-8 bg-white shadow-lg hover:shadow-xl text-gray-800 px-4 py-2 rounded-lg text-sm font-medium flex items-center gap-2 transition-shadow",children:[o.jsx(bJ,{className:"h-4 w-4"})," View all ",ue.length," photos"]})]}),ue.length===0&&o.jsx("div",{className:"relative py-16 px-4",style:{background:M.hero_image_url?`linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)), url(${M.hero_image_url}) center/cover`:`linear-gradient(135deg, ${W}, ${Z})`},children:o.jsxs("div",{className:"max-w-2xl mx-auto text-center text-white",children:[M.logo_url&&o.jsx("img",{src:M.logo_url,alt:"Logo",className:"h-12 w-auto mx-auto mb-6"}),o.jsx("h1",{className:"text-3xl md:text-4xl font-bold",children:M.hero_headline}),M.hero_subtext&&o.jsx("p",{className:"mt-3 text-lg opacity-90",children:M.hero_subtext})]})}),o.jsx("div",{className:"max-w-4xl mx-auto px-4 py-8",children:o.jsxs("div",{className:"grid md:grid-cols-5 gap-6",children:[o.jsx("div",{className:"md:col-span-3 space-y-6",children:o.jsxs("div",{className:"bg-white rounded-2xl shadow-xl p-6 md:p-8",children:[Q.property_price&&o.jsx("p",{className:"text-3xl md:text-4xl font-bold mb-2",style:{color:W},children:we(Q.property_price)}),Q.property_address&&o.jsxs("p",{className:"text-gray-600 flex items-center gap-1.5 mb-5 text-lg",children:[o.jsx(ga,{className:"h-5 w-5 shrink-0"})," ",Q.property_address]}),o.jsxs("div",{className:"flex gap-6 mb-5 py-4 border-y border-gray-100",children:[Q.property_beds&&o.jsxs("div",{className:"text-center",children:[o.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-lg font-semibold",children:[o.jsx(_C,{className:"h-5 w-5",style:{color:W}})," ",Q.property_beds]}),o.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"Bedrooms"})]}),Q.property_baths&&o.jsxs("div",{className:"text-center",children:[o.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-lg font-semibold",children:[o.jsx(iS,{className:"h-5 w-5",style:{color:W}})," ",Q.property_baths]}),o.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"Bathrooms"})]}),Q.property_sqft&&o.jsxs("div",{className:"text-center",children:[o.jsxs("div",{className:"flex items-center justify-center gap-1.5 text-lg font-semibold",children:[o.jsx(GM,{className:"h-5 w-5",style:{color:W}})," ",Number(Q.property_sqft).toLocaleString()]}),o.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"Sq Ft"})]})]}),Q.property_description&&o.jsxs("div",{children:[o.jsx("h3",{className:"font-semibold text-gray-800 mb-2",children:"About This Property"}),o.jsx("p",{className:"text-gray-600 leading-relaxed whitespace-pre-line",children:Q.property_description})]})]})}),o.jsx("div",{className:"md:col-span-2",children:o.jsxs("div",{className:"bg-white rounded-2xl shadow-xl p-6 sticky top-6",children:[o.jsx("h2",{className:"text-lg font-bold mb-1",style:{color:W},children:Q.property_status==="just_sold"?"Want results like this?":"Interested in this property?"}),o.jsx("p",{className:"text-gray-500 text-sm mb-4",children:"Fill out the form and I'll be in touch!"}),M.agent_name&&o.jsxs("div",{className:"flex items-center gap-3 mb-5 pb-4 border-b",children:[M.agent_photo_url&&o.jsx("img",{src:M.agent_photo_url,alt:M.agent_name,className:"h-12 w-12 rounded-full object-cover"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-semibold text-sm",children:M.agent_name}),o.jsxs("div",{className:"flex flex-col gap-0.5 text-xs text-gray-500",children:[M.agent_phone&&o.jsxs("a",{href:`tel:${M.agent_phone}`,className:"flex items-center gap-1 hover:underline",children:[o.jsx(Ui,{className:"h-3 w-3"})," ",M.agent_phone]}),M.agent_email&&o.jsxs("a",{href:`mailto:${M.agent_email}`,className:"flex items-center gap-1 hover:underline",children:[o.jsx($i,{className:"h-3 w-3"})," ",M.agent_email]})]})]})]}),o.jsxs("form",{onSubmit:G,className:"space-y-3",children:[B.map(Oe=>o.jsxs("div",{children:[o.jsxs(Fr,{className:"text-xs font-medium",children:[Oe.label,Oe.is_required&&o.jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),$N(Oe,a,c)]},Oe.id)),o.jsx(Kt,{type:"submit",className:"w-full text-white",style:{backgroundColor:W},disabled:V.isPending,children:V.isPending?"Submitting...":"Submit"}),V.isError&&o.jsx("p",{className:"text-sm text-red-500 text-center",children:"Something went wrong. Please try again."})]})]})})]})}),o.jsx("div",{className:"text-center py-8 text-xs text-gray-400",children:"Powered by LevelUp"})]})}return M.page_type==="buyer_seller"?o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off","aria-hidden":"true",value:E,onChange:we=>C(we.target.value),style:{position:"absolute",left:"-10000px",top:"auto",width:"1px",height:"1px",overflow:"hidden"}}),o.jsx(Gjt,{page:M,fields:B,answers:a,setAnswers:c,onSubmit:G,isSubmitting:V.isPending,renderField:$N,activePath:s,setActivePath:f}),V.isError&&o.jsx("p",{className:"text-center text-sm text-red-500 pb-8 bg-neutral-950",children:"Something went wrong. Please try again."}),o.jsx("div",{className:"text-center py-6 text-xs text-white/30 bg-neutral-950",children:"Powered by LevelUp"})]}):M.theme_style!=="classic"&&!se?o.jsxs("div",{className:"min-h-screen bg-neutral-50",children:[o.jsx("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off","aria-hidden":"true",value:E,onChange:we=>C(we.target.value),style:{position:"absolute",left:"-10000px",top:"auto",width:"1px",height:"1px",overflow:"hidden"}}),o.jsx(Vjt,{page:M,fields:B,answers:a,setAnswers:c,onSubmit:G,isSubmitting:V.isPending,renderField:$N}),M.page_type==="event_registration"&&((Te=M.settings)==null?void 0:Te.event_starts_at)&&o.jsx(Yjt,{startsAt:M.settings.event_starts_at,locationName:M.settings.event_location_name,address:M.settings.event_address,title:M.hero_headline||M.title,accent:M.accent_color||M.primary_color||"#406E71"}),V.isError&&o.jsx("p",{className:"text-sm text-red-500 text-center py-4",children:"Something went wrong. Please try again."}),o.jsx("div",{className:"text-center py-8 text-xs text-gray-400",children:"Powered by LevelUp"})]}):o.jsxs("div",{className:"min-h-screen bg-gray-50",children:[o.jsx("div",{className:"relative py-16 px-4",style:{background:M.hero_image_url?`linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)), url(${M.hero_image_url}) center/cover`:`linear-gradient(135deg, ${W}, ${Z})`},children:o.jsxs("div",{className:"max-w-2xl mx-auto text-center text-white",children:[M.logo_url&&o.jsx("img",{src:M.logo_url,alt:"Logo",className:"h-12 w-auto mx-auto mb-6"}),o.jsx("h1",{className:"text-3xl md:text-4xl font-bold",children:M.hero_headline}),M.hero_subtext&&o.jsx("p",{className:"mt-3 text-lg opacity-90",children:M.hero_subtext}),se&&Q.lead_magnet_file_name&&o.jsxs("div",{className:"mt-6 inline-flex items-center gap-2 bg-white/20 backdrop-blur px-4 py-2 rounded-full text-sm",children:[o.jsx(Zl,{className:"h-4 w-4"}),"Free Download: ",Q.lead_magnet_file_name]})]})}),o.jsx("div",{className:"max-w-2xl mx-auto px-4 -mt-8",children:o.jsxs("div",{className:"bg-white rounded-2xl shadow-xl p-6 md:p-8",children:[se&&o.jsx("p",{className:"text-sm text-gray-500 mb-4 text-center",children:"Fill out the form below to get your free download!"}),M.agent_name&&o.jsxs("div",{className:"flex items-center gap-3 mb-6 pb-4 border-b",children:[M.agent_photo_url&&o.jsx("img",{src:M.agent_photo_url,alt:M.agent_name,className:"h-12 w-12 rounded-full object-cover"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-semibold",children:M.agent_name}),o.jsxs("div",{className:"flex items-center gap-3 text-sm text-gray-500",children:[M.agent_phone&&o.jsxs("a",{href:`tel:${M.agent_phone}`,className:"flex items-center gap-1 hover:underline",children:[o.jsx(Ui,{className:"h-3 w-3"})," ",M.agent_phone]}),M.agent_email&&o.jsxs("a",{href:`mailto:${M.agent_email}`,className:"flex items-center gap-1 hover:underline",children:[o.jsx($i,{className:"h-3 w-3"})," ",M.agent_email]})]})]})]}),o.jsxs("form",{onSubmit:G,className:"space-y-4",children:[B.map(we=>o.jsxs("div",{children:[o.jsxs(Fr,{className:"text-sm font-medium",children:[we.label,we.is_required&&o.jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),$N(we,a,c)]},we.id)),o.jsx(Kt,{type:"submit",className:"w-full text-white",style:{backgroundColor:W},disabled:V.isPending,children:V.isPending?"Submitting...":se?"Get My Free Download":"Submit"}),V.isError&&o.jsx("p",{className:"text-sm text-red-500 text-center",children:"Something went wrong. Please try again."})]})]})}),o.jsx("div",{className:"text-center py-8 text-xs text-gray-400",children:"Powered by LevelUp"})]})}function $N(t,e,r,n){const i=e[t.label]||"",a=Array.isArray(t.options)?t.options:[];switch(t.field_type){case"text":case"email":case"phone":return o.jsx(Hr,{type:t.field_type==="email"?"email":t.field_type==="phone"?"tel":"text",value:String(i),onChange:c=>r(s=>({...s,[t.label]:c.target.value})),placeholder:t.placeholder||"",className:"mt-1"});case"textarea":return o.jsx(ud,{value:String(i),onChange:c=>r(s=>({...s,[t.label]:c.target.value})),placeholder:t.placeholder||"",rows:3,className:"mt-1"});case"select":return o.jsxs(Fa,{value:String(i),onValueChange:c=>r(s=>({...s,[t.label]:c})),children:[o.jsx(Ca,{className:"mt-1",children:o.jsx(Ba,{placeholder:"Select..."})}),o.jsx(Ia,{children:a.map(c=>o.jsx(xn,{value:c,children:c},c))})]});case"multiselect":return o.jsx("div",{className:"mt-1 space-y-2",children:a.map(c=>{const s=Array.isArray(i)?i:[];return o.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[o.jsx(qC,{checked:s.includes(c),onCheckedChange:f=>{const m=f?[...s,c]:s.filter(x=>x!==c);r(x=>({...x,[t.label]:m}))}}),o.jsx("span",{className:"text-sm",children:c})]},c)})});case"toggle":return o.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[o.jsx(TS,{checked:!!i,onCheckedChange:c=>r(s=>({...s,[t.label]:c?"Yes":"No"}))}),o.jsx("span",{className:"text-sm text-gray-600",children:i?"Yes":"No"})]});default:return o.jsx(Hr,{value:String(i),onChange:c=>r(s=>({...s,[t.label]:c.target.value})),className:"mt-1"})}}const Xjt=Object.freeze(Object.defineProperty({__proto__:null,default:cEe},Symbol.toStringTag,{value:"Module"}));function Qjt(){const e=Ji().pathname.slice(1).split("/")[0];return P.useEffect(()=>{document.body.classList.add("landing-page-public");const r=()=>{['[id*="lc_text_widget"]','[class*="lc-text-widget"]','[class*="lc_text_widget"]',".lc_text-widget--bubble",'[id*="chat-widget"]','[class*="chat-widget"]','iframe[src*="widgets.leadconnectorhq"]','iframe[src*="leadconnector"]','iframe[src*="msgsndr"]',"[data-chat-widget]","[data-widget-id]",'div[style*="z-index"][style*="position: fixed"][style*="bottom"]','div[id^="fc_"]','div[id^="hubspot"]',".widget-visible"].forEach(a=>{document.querySelectorAll(a).forEach(c=>{c.style.display="none"})})};r();const n=[setTimeout(r,500),setTimeout(r,1500),setTimeout(r,3e3),setTimeout(r,5e3)];return()=>{document.body.classList.remove("landing-page-public"),n.forEach(clearTimeout)}},[]),e?o.jsx(cEe,{slugOverride:e}):o.jsx("div",{className:"min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 flex items-center justify-center p-6",children:o.jsxs("div",{className:"text-center",children:[o.jsx("h1",{className:"text-2xl font-bold mb-2",children:"LevelUp Pages"}),o.jsx("p",{className:"text-gray-500",children:"Visit a specific page URL to view content."})]})})}const Jjt=[{type:"hero",enabled:!0},{type:"featured_listings",enabled:!0},{type:"new_listings",enabled:!1},{type:"open_houses",enabled:!1},{type:"my_listings",enabled:!1},{type:"city_pages",enabled:!1},{type:"featured_areas",enabled:!0},{type:"about",enabled:!0},{type:"testimonials",enabled:!0},{type:"cta_banner",enabled:!0}],o8t={hero:"Hero Section",featured_listings:"Featured Listings",featured_areas:"Featured Areas",about:"About Me",testimonials:"Testimonials",agent_reviews:"Live Client Reviews",cta_banner:"Call To Action",new_listings:"New Listings Carousel",open_houses:"Open Houses Carousel",my_listings:"My Listings Carousel",city_pages:"City Pages Grid",property_types:"Property Types Gallery",advantages:"Advantages / Why Choose Us",rate_my_agent:"RateMyAgent Reviews",lifestyle_gallery:"Lifestyle Gallery",market_pulse:"Market Pulse",concierge_services:"Concierge Services",credentials:"Credentials & Clientele",land_use_guide:"Land Use Guide",land_valuation_cta:"Land Valuation CTA",acreage_showcase:"Acreage Showcase",featured_video:"Featured Video",schedule_cta:"Schedule a Consultation"},l8t={hero:"Full-screen background image with headline, subtitle, and search bar",featured_listings:"Grid of highlighted properties from the MLS",featured_areas:"Spotlight regions or neighborhoods that link to property search",about:"Agent photo, bio, and credentials section",testimonials:"Client reviews carousel with quotes",agent_reviews:"Real reviews you selected in the LevelUp Reviews app, updated automatically",cta_banner:"Call-to-action block to drive contact and search engagement",new_listings:"Horizontal carousel of newest listings, filterable by city",open_houses:"Horizontal carousel of open house listings, filterable by city",my_listings:"Showcase the agent's own active listings in a carousel",city_pages:"Grid of your city landing pages with photos and links",property_types:"Visual gallery of property categories (Ranch, Farm, Land, etc.)",advantages:"Feature cards highlighting your expertise and unique value",rate_my_agent:"Verified client reviews carousel powered by RateMyAgent",lifestyle_gallery:"Cinematic photo grid showcasing luxury living — pools, views, interiors",market_pulse:"Sleek market stats dashboard with avg price, days on market, inventory",concierge_services:"White-glove services showcase — staging, design, moving coordination",credentials:"Affiliation logos and specialty positioning (e.g. luxury and sports & entertainment divisions)",land_use_guide:"Interactive land use cards — Agriculture, Hunting, Equestrian, Recreational",land_valuation_cta:`"What's Your Land Worth?" — bold call-to-action for landowners`,acreage_showcase:"Large visual cards emphasizing lot size with aerial imagery",featured_video:"Embedded YouTube or Bunny video section for cinematic storytelling",schedule_cta:"Prominent booking section that sends visitors to your online scheduling calendar"},Eoe={basic:["hero","featured_listings","new_listings","open_houses","my_listings","city_pages","featured_areas","about","testimonials","agent_reviews","rate_my_agent","featured_video","schedule_cta","cta_banner"],luxury:["hero","featured_listings","new_listings","open_houses","my_listings","city_pages","featured_areas","about","testimonials","agent_reviews","rate_my_agent","cta_banner","lifestyle_gallery","market_pulse","concierge_services","credentials","featured_video","schedule_cta"],"land-ranch":["hero","featured_listings","new_listings","open_houses","my_listings","city_pages","featured_areas","about","testimonials","agent_reviews","rate_my_agent","cta_banner","property_types","advantages","land_use_guide","land_valuation_cta","acreage_showcase","featured_video","schedule_cta"]};function c8t(t){return Eoe[t]||Eoe.basic}function ePt(t){const e=t.theme_config||{};return{themeTier:t.theme_tier||"basic",brandColor:t.brand_color||"#0f172a",accentColor:t.accent_color||"#3b82f6",fontFamily:t.font_family||"Inter",heroImageUrl:t.hero_image_url||null,homepageModules:Array.isArray(t.homepage_modules)&&t.homepage_modules.length?t.homepage_modules.map(r=>typeof r=="string"?{type:r,enabled:!0}:{enabled:!0,...r}):Jjt,testimonials:Array.isArray(t.testimonials)?t.testimonials:[],featuredListingIds:t.featured_listing_ids||[],searchCities:Array.isArray(e.searchCities)?e.searchCities:[],searchZipCodes:Array.isArray(e.searchZipCodes)?e.searchZipCodes:[],searchCounties:Array.isArray(e.searchCounties)?e.searchCounties:[],searchSubdivisions:Array.isArray(e.searchSubdivisions)?e.searchSubdivisions:[],referralMode:e.referralMode===!0,referralPrimaryLabel:e.referralPrimaryLabel||void 0,referralPrimaryUrl:e.referralPrimaryUrl||void 0,referralSecondaryLabel:e.referralSecondaryLabel||void 0,referralSecondaryUrl:e.referralSecondaryUrl||void 0,divisionLogos:Array.isArray(e.divisionLogos)?e.divisionLogos:[],focusPages:Array.isArray(e.focusPages)?e.focusPages:[],headerLogoSize:["small","medium","large","xl"].includes(e.headerLogoSize)?e.headerLogoSize:"medium"}}const u8t=[{value:"small",label:"Small",hint:"Discreet — about 36px tall"},{value:"medium",label:"Standard",hint:"Default — about 48px tall"},{value:"large",label:"Large",hint:"Prominent — about 60px tall"},{value:"xl",label:"Extra large",hint:"Fills the header — about 68px tall"}],tPt={small:"h-8 sm:h-9 max-w-[140px]",medium:"h-10 sm:h-12 max-w-[180px]",large:"h-12 sm:h-[60px] max-w-[240px]",xl:"h-14 sm:h-[68px] max-w-[320px]"},rPt={small:"h-10 max-w-[160px]",medium:"h-12 max-w-[200px]",large:"h-16 max-w-[260px]",xl:"h-20 max-w-[320px]"};function JH(t){return t==="small"||t==="large"||t==="xl"?t:"medium"}function nPt(t){return tPt[JH(t)]}function iPt(t){return rPt[JH(t)]}const sPt=new Set(["localhost","tile-portal.lovable.app","id-preview--b4ed24ae-0b44-4f4d-8676-c620f649ed8a.lovable.app","dashboard.relevelup.com","guestbook.relevelup.com","pages.relevelup.com","listings.relevelup.com"]);function aPt(t){const e=t.toLowerCase().replace(/:\d+$/,"");return!!(sPt.has(e)||e.endsWith(".lovable.app")||e.endsWith(".lovableproject.com")||e.endsWith(".lovable.dev"))}function uEe(){return new URLSearchParams(window.location.search).get("previewSlug")}function oPt(){const t=uEe();if(t)return t;const r=window.location.hostname.match(/^([^.]+)\.thelocalmove\.com$/i);return r?r[1]:null}function lPt(){const t=oPt(),e=!!uEe(),r=window.location.hostname,n=t?null:Xde(r),i=!t&&!aPt(r)&&r.includes(".")&&!Zde(r),a=t||n||(i?r:null),{data:c,isLoading:s,error:f}=br({queryKey:["lead-site",a,i,e],queryFn:async()=>{var G;if(!a)return null;const x=De.from("lead_sites").select("*"),_=e?x:x.eq("is_active",!0);let T;if(t)T=await _.eq("subdomain_slug",t).maybeSingle();else if(n)T=await _.ilike("custom_domain",n).maybeSingle();else if(i)T=await _.ilike("custom_domain",r).maybeSingle();else return null;const{data:E,error:C}=T;if(C)throw C;if(!E)return null;const{data:N}=await De.from("profiles").select("id, name, avatar_url, email, phone, title, bio, areas_served, years_experience, instagram_url, facebook_url, linkedin_url, google_business_url, zillow_profile_url, realtor_profile_url, specialties").eq("id",E.agent_id).single();let L=null;if(E.show_team_logo)if(E.team_logo_url)L=E.team_logo_url;else{const{data:W}=await De.from("team_members").select("team_id, teams(avatar_url, name)").eq("user_id",E.agent_id).limit(1).maybeSingle();W&&((G=W.teams)!=null&&G.avatar_url)&&(L=W.teams.avatar_url)}const M=E.theme_config||{},D=W=>typeof W=="string"&&W.trim()?W.trim():null,B={id:E.id,agentId:E.agent_id,subdomainSlug:E.subdomain_slug,customDomain:E.custom_domain||null,mlsProviderId:E.mls_provider_id,siteTitle:E.site_title,siteTagline:E.site_tagline,leadRegistrationMode:E.lead_registration_mode||"disabled",registrationTriggerCount:E.registration_trigger_count??1,themeConfig:E.theme_config||{},themeTier:E.theme_tier||"basic",planTier:E.plan_tier||"paid",ownerType:E.owner_type||"agent",orgTier:E.org_tier||"essential",brokerageId:E.brokerage_id||null,teamId:E.team_id||null,orgName:E.org_name||null,orgLogoUrl:E.org_logo_url||null,orgLogoDarkUrl:E.org_logo_dark_url||null,orgProfile:E.org_profile||{},brandColor:E.brand_color||void 0,accentColor:E.accent_color||void 0,mlsServiceCities:Array.isArray(E.mls_service_cities)?E.mls_service_cities:[],isActive:E.is_active,brokerageLegalName:E.brokerage_legal_name||null,brokerageLicenseNumber:E.brokerage_license_number||null,agentLicenseNumber:E.agent_license_number||null,licenseState:E.license_state||null,mlsDisclaimerText:E.mls_disclaimer_text||null,mlsLogoUrl:E.mls_logo_url||null,equalHousingEnabled:E.equal_housing_enabled??!0,faviconUrl:E.favicon_url||null,ogImageUrl:E.og_image_url||null,showTeamLogo:E.show_team_logo??!1,teamLogoUrl:L,headerLogoSize:JH(M.headerLogoSize),valuationLabel:D(M.valuationLabel),noMlsMode:E.no_mls_mode===!0,bookingUrl:E.booking_url||null,pageSubtitles:E.page_subtitles||{},agent:N?{id:N.id,full_name:N.name||"",avatar_url:D(M.agentHeadshotUrl)||N.avatar_url,email:N.email,phone:N.phone,title:D(M.agentTitle)||N.title,bio:D(M.agentBio)||N.bio,areas_served:N.areas_served||null,years_experience:N.years_experience??null,instagram_url:N.instagram_url||null,facebook_url:N.facebook_url||null,linkedin_url:N.linkedin_url||null,google_business_url:N.google_business_url||null,zillow_profile_url:N.zillow_profile_url||null,realtor_profile_url:N.realtor_profile_url||null,specialties:N.specialties||null}:void 0,testimonials:Array.isArray(E.testimonials)?E.testimonials.filter(W=>W&&typeof W=="object"&&W.text).map(W=>({name:String(W.name||"Client"),text:String(W.text),rating:typeof W.rating=="number"?W.rating:5,location:W.location?String(W.location):void 0})):[],seoMetaTitle:E.seo_meta_title||null,seoMetaDescription:E.seo_meta_description||null,googleSearchConsoleVerification:E.google_search_console_verification||null},V=ePt(E);return{siteConfig:B,themeConfig:V}},enabled:!!a,staleTime:5*60*1e3,gcTime:30*60*1e3,refetchOnWindowFocus:!1}),m=n||(i?r:null);return{siteConfig:(c==null?void 0:c.siteConfig)??null,themeConfig:(c==null?void 0:c.themeConfig)??null,isLoading:s,error:f,slug:t??(c==null?void 0:c.siteConfig.subdomainSlug)??null,customDomain:m}}async function cPt(t,e){try{await De.functions.invoke("lead-site-notify",{body:{lead:e,lead_site_id:t}})}catch(r){console.warn("Lead notification failed:",r)}}const dEe=P.createContext(null);function n3(){const t=P.useContext(dEe);if(!t)throw new Error("useLeadSiteAuth must be used within LeadSiteAuthProvider");return t}function Aoe({siteConfig:t,children:e}){const[r,n]=P.useState(null),[i,a]=P.useState(null),[c,s]=P.useState(!0);P.useEffect(()=>{let _=!0,T=0;const E=async L=>{const M=++T,{data:D}=await De.from("lead_site_consumer_profiles").select("id, name, phone").eq("user_id",L.id).eq("lead_site_id",t.id).maybeSingle();!_||M!==T||(a(D?{...D,email:L.email||""}:null),s(!1))},{data:{subscription:C}}=De.auth.onAuthStateChange((L,M)=>{const D=(M==null?void 0:M.user)??null;n(D),D?window.setTimeout(()=>void E(D),0):(T+=1,a(null),s(!1))}),N=window.setTimeout(()=>{_&&(console.warn("Lead site auth initialization timed out."),s(!1))},8e3);return()=>{_=!1,window.clearTimeout(N),C.unsubscribe()}},[t.id]);const f=P.useCallback(async _=>{const T=_.email.toLowerCase().trim(),E=_.phone.replace(/\D/g,""),{data:C,error:N}=await De.auth.signUp({email:T,password:E,options:{data:{full_name:_.name,consumer_site_id:t.id},emailRedirectTo:window.location.origin}});if(N){if(N.message.includes("already registered")){await m(T,E);return}throw N}if(C.user){const{error:L}=await De.from("lead_site_consumer_profiles").insert({user_id:C.user.id,lead_site_id:t.id,name:_.name.trim(),phone:_.phone.trim()});L&&console.warn("Consumer profile insert error:",L);const{error:M}=await De.from("lead_site_leads").insert({lead_site_id:t.id,name:_.name.trim(),email:T,phone:_.phone.trim(),message:"Created account on website",source_page:window.location.pathname,lead_type:"website_registration",metadata:{registered:!0,has_account:!0}});M&&console.error("Lead insert error (CRM sync may not trigger):",M),cPt(t.id,{name:_.name.trim(),email:T,phone:_.phone.trim(),lead_type:"website_registration",message:"Created account on website",source_page:window.location.pathname})}},[t.id]),m=P.useCallback(async(_,T)=>{const E=T.replace(/\D/g,""),{error:C}=await De.auth.signInWithPassword({email:_.toLowerCase().trim(),password:E});if(C)throw C},[]),x=P.useCallback(async()=>{await De.auth.signOut(),n(null),a(null)},[]);return o.jsx(dEe.Provider,{value:{user:r,profile:i,isLoading:c,signUp:f,signIn:m,signOut:x},children:e})}const hEe=new Set(["7605cc2e-ce21-4f4f-8bb1-4c0f217b1109"]),fEe=new Set(["tomlois"]);function Ky(t,e){var r;return t?(e==null?void 0:e.referralMode)===!0||((r=t.themeConfig)==null?void 0:r.referralMode)===!0||t.noMlsMode===!0||hEe.has(t.id||"")||fEe.has((t.subdomainSlug||"").toLowerCase())||!t.mlsProviderId:!1}function uPt(t,e){var r;return t?((r=t.themeConfig)==null?void 0:r.referralMode)===!0||hEe.has(t.id||"")||fEe.has((t.subdomainSlug||"").toLowerCase()):!1}function d8t(t,e){return uPt(t)?"referral":Ky(t,e)?"direct":"idx"}function h8t(t){return`Contact ${t.split(" ")[0]||"Me"}`}const dPt="free_luxury",hPt="free_beta";function pEe(t){const e=t==null?void 0:t.planTier;return e===dPt||e===hPt}const f8t={idx_search:{title:"MLS / IDX Home Search",description:"Let visitors search every active MLS listing in your market, with saved searches and instant alerts."},mls_listings:{title:"MLS Listing Feeds",description:"Automatically feature live MLS listings, new listings and sold comps on your homepage and city pages."},cma_reports:{title:"Professional Home Value Reports",description:"Build branded home value reports (CMAs) with live MLS comps and share them with sellers."},custom_domain:{title:"Custom Branded Domain",description:"Point your own web address at your site instead of the free subdomain."},ai_content:{title:"AI Content Creation",description:"Auto-written blog posts, city guides and monthly market updates published to your site."}},$S="#c9a96e",fPt="Schedule a Free Consultation",pPt={sm:"px-5 py-2.5 text-[11px]",md:"px-7 py-3.5 text-xs",lg:"px-9 py-4 text-xs"};function wm({bookingUrl:t,label:e=fPt,className:r="",variant:n="solid",color:i=$S,size:a="md",onDark:c=!0,source:s}){if(!t)return null;const f=`inline-flex items-center justify-center gap-2.5 font-semibold tracking-[0.18em] uppercase rounded-full transition-all duration-300 ${pPt[a]}`,m=n==="solid"?{backgroundColor:i,color:"#0d0b0a",boxShadow:`0 10px 30px -12px ${i}`}:{borderColor:i,color:i,borderWidth:1};return o.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer","data-schedule-source":s,className:`${f} ${n==="solid"?"hover:brightness-110":`border hover:bg-[${i}]/10`} ${n==="outline"&&!c?"bg-white/0":""} ${r}`,style:m,children:[o.jsx(iG,{className:"h-4 w-4 flex-shrink-0"}),o.jsx("span",{children:e})]})}function p8t({bookingUrl:t,agentName:e,accentColor:r=$S,config:n={},luxury:i=!0}){const a=n.bookingUrl||t;if(!a)return null;const c=n.eyebrow||"No Cost. No Obligation.",s=n.sectionTitle||"Schedule a Free Consultation",f=n.subtitle||`Pick a time that works for you and ${e.split(" ")[0]} will personally call you for a free 30-minute real estate consultation.`,m=n.buttonLabel||"Book My Free Consultation",x=[{icon:pc,title:n.point1Title||"30 Minutes",text:n.point1Text||"A focused conversation about your goals, timeline, and options."},{icon:KRe,title:n.point2Title||"A Personal Call",text:n.point2Text||`${e.split(" ")[0]} calls you at the time you choose — no phone tag.`},{icon:gc,title:n.point3Title||"Real Answers",text:n.point3Text||"Pricing, strategy, and next steps for buying or selling — free of charge."}],_=i?"bg-[#12100e]":"bg-gray-950";return o.jsxs("section",{className:`relative py-24 ${_} overflow-hidden`,children:[o.jsx("div",{className:"absolute inset-0 opacity-[0.07] pointer-events-none",style:{background:`radial-gradient(circle at 50% 0%, ${r}, transparent 60%)`}}),o.jsx("div",{className:"relative max-w-5xl mx-auto px-6 text-center",children:o.jsxs(hr.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.7},children:[o.jsxs("div",{className:"flex items-center justify-center gap-4 mb-5",children:[o.jsx("div",{className:"h-px w-12 bg-white/10"}),o.jsx("span",{className:"text-[11px] tracking-[0.4em] uppercase",style:{color:r},children:c}),o.jsx("div",{className:"h-px w-12 bg-white/10"})]}),o.jsx("h2",{className:"text-3xl md:text-5xl text-white tracking-tight",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:s}),o.jsx("p",{className:"text-white/50 mt-5 text-lg max-w-2xl mx-auto leading-relaxed",style:{fontFamily:"'Playfair Display', Georgia, serif",fontStyle:"italic"},children:f}),o.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-14 text-left",children:x.map((T,E)=>o.jsxs("div",{className:"border border-white/10 bg-white/[0.03] p-6",children:[o.jsx(T.icon,{className:"h-5 w-5 mb-4",style:{color:r}}),o.jsx("p",{className:"text-white text-sm tracking-[0.15em] uppercase mb-2",children:T.title}),o.jsx("p",{className:"text-white/45 text-sm leading-relaxed",children:T.text})]},E))}),o.jsxs("div",{className:"mt-12 flex flex-col items-center gap-4",children:[o.jsx(wm,{bookingUrl:a,label:m,size:"lg",color:r,source:"home_section"}),o.jsx("p",{className:"text-white/30 text-xs tracking-[0.2em] uppercase",children:"Opens in a new tab · Free 30-minute consultation"})]})]})})]})}function m8t({bookingUrl:t,accentColor:e=$S,headline:r="Prefer to talk it through?",subtext:n="Book a free 30-minute consultation at a time that works for you.",dark:i=!0,className:a="",source:c}){return t?o.jsxs("div",{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-5 p-6 md:p-8 border ${i?"border-white/10 bg-white/[0.03]":"border-gray-200 bg-gray-50 rounded-2xl"} ${a}`,children:[o.jsxs("div",{children:[o.jsx("p",{className:`text-lg ${i?"text-white":"text-gray-900"}`,style:{fontFamily:"'Playfair Display', Georgia, serif"},children:r}),o.jsx("p",{className:`text-sm mt-1 ${i?"text-white/45":"text-gray-600"}`,children:n})]}),o.jsx(wm,{bookingUrl:t,label:"Schedule Now",color:e,size:"sm",className:"flex-shrink-0",source:c})]}):null}function mPt({bookingUrl:t,accentColor:e=$S}){const[r,n]=P.useState(!1),[i,a]=P.useState(!1);if(P.useEffect(()=>{sessionStorage.getItem("schedule-cta-dismissed")==="1"&&a(!0);const s=()=>n(window.scrollY>260);return s(),window.addEventListener("scroll",s,{passive:!0}),()=>window.removeEventListener("scroll",s)},[]),!t||i)return null;const c=()=>{sessionStorage.setItem("schedule-cta-dismissed","1"),a(!0)};return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:`md:hidden fixed inset-x-0 bottom-0 z-[60] transition-transform duration-300 ${r?"translate-y-0":"translate-y-full"}`,style:{paddingBottom:"env(safe-area-inset-bottom)"},children:o.jsxs("div",{className:"bg-[#0d0b0a]/95 backdrop-blur-lg border-t border-white/10 px-4 py-3 flex items-center gap-3",children:[o.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"flex-1 inline-flex items-center justify-center gap-2 rounded-full py-3 text-[11px] font-semibold tracking-[0.18em] uppercase",style:{backgroundColor:e,color:"#0d0b0a"},children:[o.jsx(iG,{className:"h-4 w-4"}),"Schedule Free Consultation"]}),o.jsx("button",{onClick:c,"aria-label":"Dismiss",className:"p-2 text-white/40 hover:text-white",children:o.jsx(Zs,{className:"h-4 w-4"})})]})}),o.jsx("div",{className:`hidden md:flex fixed bottom-6 left-6 z-[60] items-center gap-2 transition-all duration-300 ${r?"opacity-100 translate-y-0":"opacity-0 translate-y-4 pointer-events-none"}`,children:o.jsx(wm,{bookingUrl:t,label:"Schedule a Free Consultation",size:"sm",color:e,source:"sticky"})})]})}function gPt({bookingUrl:t,agentName:e}){return P.useEffect(()=>{if(t){const r=setTimeout(()=>window.location.replace(t),400);return()=>clearTimeout(r)}},[t]),o.jsx("div",{className:"min-h-[70vh] flex items-center justify-center bg-[#0d0b0a] px-6 text-center",children:o.jsxs("div",{children:[o.jsx(iG,{className:"h-8 w-8 mx-auto mb-6",style:{color:$S}}),o.jsx("h1",{className:"text-3xl md:text-4xl text-white tracking-tight",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:"Free 30-Minute Real Estate Consultation"}),o.jsx("p",{className:"text-white/45 mt-4",style:{fontFamily:"'Playfair Display', Georgia, serif",fontStyle:"italic"},children:t?`Taking you to ${e}'s booking calendar…`:"Online booking is not available yet — please use the contact page."}),t&&o.jsx("div",{className:"mt-8",children:o.jsx(wm,{bookingUrl:t,label:"Open Booking Calendar",size:"lg",source:"schedule_page"})})]})})}const eW=` id, slug, property_address, city, state, neighborhood, price, property_type, status, bedrooms, bathrooms, square_footage, lot_size, year_built, description, video_link, mls_link, co_agent_name, co_agent_brokerage, co_agent_phone, co_agent_email, co_agent_photo_url, photos:listing_photos(id, photo_url, is_primary, sort_order) `;function i3(t){return br({queryKey:["lead-site-exchange-listings",t],enabled:!!t,staleTime:5*60*1e3,queryFn:async()=>{const{data:e,error:r}=await De.from("listings").select(eW).eq("agent_id",t).eq("show_on_lead_site",!0).eq("is_approved",!0).not("status","in","(sold,temp_off_market,withdrawn)").order("created_at",{ascending:!1});if(r)throw r;return e||[]}})}function tW(t){return br({queryKey:["lead-site-sold-listings",t],enabled:!!t,staleTime:5*60*1e3,queryFn:async()=>{const{data:e,error:r}=await De.from("listings").select(eW).eq("agent_id",t).eq("show_on_lead_site",!0).eq("is_approved",!0).eq("status","sold").order("created_at",{ascending:!1});if(r)throw r;return e||[]}})}function g8t(t,e){return br({queryKey:["lead-site-exchange-listing",t,e],enabled:!!t&&!!e,queryFn:async()=>{const r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e);let n=De.from("listings").select(eW).eq("agent_id",t).eq("show_on_lead_site",!0).eq("is_approved",!0);n=r?n.eq("id",e):n.eq("slug",e);const{data:i,error:a}=await n.maybeSingle();if(a)throw a;return i??null}})}function y8t(t){var e;return(e=t==null?void 0:t.photos)!=null&&e.length?[...t.photos].sort((r,n)=>Number(n.is_primary)-Number(r.is_primary)||(r.sort_order??0)-(n.sort_order??0)).map(r=>r.photo_url):[]}function x8t(t){return t?`$${t.toLocaleString()}`:"Price upon request"}function rW({open:t,mode:e,siteConfig:r,onComplete:n,onSkip:i,theme:a="default",accentColor:c}){var Te;const{signUp:s,signIn:f}=n3(),[m,x]=P.useState(!1),[_,T]=P.useState(""),[E,C]=P.useState(""),[N,L]=P.useState(""),[M,D]=P.useState(!1),[B,V]=P.useState(""),G=e==="required",W=a==="luxury",Z=c||(W?"#c9a96e":"#2563eb"),Q=((Te=r.agent)==null?void 0:Te.full_name)||"the agent",se={borderColor:`${Z}66`,"--tw-ring-color":`${Z}66`},ie=async we=>{var Ae;if(we.preventDefault(),V(""),!E.trim()||!N.trim()){V("Email and phone number are required.");return}if(!m&&!_.trim()){V("Name is required.");return}if(N.replace(/\D/g,"").length<7){V("Please enter a valid phone number.");return}D(!0);try{m?await f(E,N):await s({name:_,email:E,phone:N}),n()}catch(Se){(Ae=Se==null?void 0:Se.message)!=null&&Ae.includes("Invalid login")?V("Invalid email or phone number. Please try again."):V((Se==null?void 0:Se.message)||"Something went wrong. Please try again.")}finally{D(!1)}},ue=W?"w-full px-3 py-2.5 border rounded-lg text-sm focus:outline-none focus:ring-2":"w-full px-3 py-2.5 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500",be=W?se:void 0;return o.jsx(ro,{open:t,onOpenChange:G?void 0:we=>{we||i()},children:o.jsxs(za,{className:`sm:max-w-md ${W?"border-white/10 bg-[#f7f1e7] text-[#201915]":""}`,onPointerDownOutside:G?we=>we.preventDefault():void 0,onEscapeKeyDown:G?we=>we.preventDefault():void 0,children:[o.jsxs(cl,{children:[o.jsx(qo,{className:"text-xl",style:W?{fontFamily:"'Playfair Display', Georgia, serif"}:void 0,children:m?"Welcome Back":G?"Create a Free Account to Continue":"Save Your Search & Get Updates"}),o.jsx(ad,{className:W?"text-[#5f5145]":void 0,children:m?"Sign in with your email and phone number.":`Create a free account to save favorites, get alerts, and connect with ${Q}.`})]}),o.jsxs("form",{onSubmit:ie,className:"space-y-3 mt-2",children:[!m&&o.jsx("input",{type:"text",required:!0,placeholder:"Your name",value:_,onChange:we=>T(we.target.value),className:ue,style:be}),o.jsx("input",{type:"email",required:!0,placeholder:"Email address",value:E,onChange:we=>C(we.target.value),className:ue,style:be}),o.jsxs("div",{children:[o.jsx("input",{type:"tel",required:!0,placeholder:"Phone number",value:N,onChange:we=>L(we.target.value),className:ue,style:be}),o.jsx("p",{className:`text-xs mt-1 ${W?"text-[#8a7869]":"text-gray-400"}`,children:m?"Your phone number is your password":"Your phone number will be used as your password"})]}),B&&o.jsx("p",{className:"text-red-600 text-sm",children:B}),o.jsx("button",{type:"submit",disabled:M,className:`w-full py-2.5 font-medium rounded-lg disabled:opacity-50 transition-colors ${W?"text-black hover:opacity-90 tracking-wider uppercase text-sm":"bg-blue-600 text-white hover:bg-blue-700"}`,style:W?{backgroundColor:Z}:void 0,children:M?m?"Signing in...":"Creating account...":m?"Sign In":"Create Account"}),o.jsx("button",{type:"button",onClick:()=>{x(!m),V("")},className:"w-full text-center text-sm hover:opacity-80 transition-opacity",style:{color:Z},children:m?"Don't have an account? Sign up":"Already have an account? Sign in"}),!G&&!m&&o.jsx("button",{type:"button",onClick:i,className:`w-full py-2 text-sm transition-colors ${W?"text-[#7a6758] hover:text-[#201915]":"text-gray-500 hover:text-gray-700"}`,children:"Skip for now"})]}),o.jsx("p",{className:`text-xs text-center mt-1 ${W?"text-[#8a7869]":"text-gray-400"}`,children:"By registering you agree to receive property updates. You can unsubscribe anytime."})]})})}function nW(t,e){const r=(e||"").trim(),n=(t||"").trim(),i=n.split(/\s+[|–—-]\s+/)[0].trim();return i&&i.length<=40?r&&i.toLowerCase()===r.toLowerCase()?`${r} Real Estate`:i:r?`${r} Real Estate`:n||"Real Estate"}function yPt(t,e){const r=nW(t,e),n=(e||"").trim(),i=[n,n?`${n} Realtor`:"",(t||"").trim()].map(a=>a.trim()).filter(a=>a&&a.toLowerCase()!==r.toLowerCase());return Array.from(new Set(i))}function iW({siteConfig:t,pagePath:e}){const r=t.agent;if(!r)return null;const n=t.customDomain?`https://${t.customDomain}`:`https://${t.subdomainSlug}.thelocalmove.com`,i=t.id==="7605cc2e-ce21-4f4f-8bb1-4c0f217b1109",a=!Ky(t),s=(r.areas_served||"").split(/,|;|\|/).map(Q=>Q.trim()).filter(Boolean),f=s[0]||"",[m,x]=f.split(/,\s*/),_=(r.bio||"").match(/\b(CRS|GRI|ABR|CNE|SRES|SRS|RENE|MRP|PSA|AHWD|C2EX|CIPS|CRB|e-?PRO)\b/gi)||[],T=[...new Set(_.map(Q=>Q.toUpperCase()))],E=t.testimonials||[],C=E.length?{"@type":"AggregateRating",ratingValue:(E.reduce((Q,se)=>Q+(se.rating||5),0)/E.length).toFixed(1),reviewCount:E.length,bestRating:5,worstRating:1}:void 0,N=[r.google_business_url,r.zillow_profile_url,r.realtor_profile_url,r.linkedin_url,r.facebook_url,r.instagram_url].filter(Boolean),L=(r.specialties||"").split(/,|;|\n/).map(Q=>Q.trim()).filter(Boolean),M={"@context":"https://schema.org","@type":["RealEstateAgent","LocalBusiness"],"@id":`${n}/#agent`,name:r.full_name,url:n,image:r.avatar_url||t.ogImageUrl||void 0,logo:t.ogImageUrl||r.avatar_url||void 0,email:r.email,telephone:r.phone||void 0,jobTitle:i?"Personal Real Estate Advisor":r.title||"Real Estate Agent",description:r.bio||`${r.full_name} is a trusted local real estate professional${f?` serving ${f}`:""}.`,priceRange:"$$",...N.length&&{sameAs:N},...t.brokerageLegalName&&{worksFor:{"@type":"RealEstateAgent",name:t.brokerageLegalName,...t.brokerageLicenseNumber&&{identifier:t.brokerageLicenseNumber}}},...t.agentLicenseNumber&&{identifier:t.agentLicenseNumber},...m&&{address:{"@type":"PostalAddress",addressLocality:m,...x&&{addressRegion:x},addressCountry:"US"}},...s.length&&{areaServed:s.map(Q=>{const[se,ie]=Q.split(/,\s*/);return{"@type":"City",name:se,...ie&&{containedInPlace:{"@type":"State",name:ie}}}})},...C&&{aggregateRating:C},...E.length&&{review:E.slice(0,10).map(Q=>({"@type":"Review",author:{"@type":"Person",name:Q.name},reviewBody:Q.text,reviewRating:{"@type":"Rating",ratingValue:Q.rating||5,bestRating:5,worstRating:1},...Q.location&&{locationCreated:{"@type":"Place",name:Q.location}}}))}},D={"@context":"https://schema.org","@type":"Person","@id":`${n}/#person`,name:r.full_name,jobTitle:i?"Personal Real Estate Advisor":r.title||"Real Estate Agent",description:r.bio||void 0,image:r.avatar_url||void 0,url:n,email:r.email,telephone:r.phone||void 0,...i&&{email:"Tom@TomLois.com",telephone:"520-271-2716",address:{"@type":"PostalAddress",addressLocality:"Columbia",addressRegion:"Missouri",addressCountry:"US"}},...N.length&&{sameAs:N},knowsAbout:[...new Set([...L,"Residential Real Estate","Home Buying","Home Selling",...s.map(Q=>`${Q} Real Estate`)])].filter(Boolean).slice(0,25),...L.length&&{makesOffer:L.slice(0,12).map(Q=>({"@type":"Offer",itemOffered:{"@type":"Service",name:Q,serviceType:"Real Estate Service"}}))},...T.length&&{hasCredential:T.map(Q=>({"@type":"EducationalOccupationalCredential",credentialCategory:"designation",name:Q}))},...t.brokerageLegalName&&{worksFor:{"@type":"Organization",name:t.brokerageLegalName}}},B=nW(t.siteTitle,r.full_name),V=yPt(t.siteTitle,r.full_name),G={"@context":"https://schema.org","@type":"WebSite","@id":`${n}/#website`,name:B,...V.length?{alternateName:V}:{},url:n,publisher:{"@id":`${n}/#agent`},...a&&{potentialAction:{"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:`${n}/search?q={search_term_string}`},"query-input":"required name=search_term_string"}}},W=[...a?[{name:"Search Homes",description:`Browse all current MLS listings${f?` in ${f}`:""}.`,path:"/search"}]:[],{name:"Featured Areas",description:"Explore featured neighborhoods, cities, and communities.",path:"/areas"},...a?[{name:"Sold Properties",description:"See recently sold homes and local market activity.",path:"/sold"}]:[],{name:"Home Valuation",description:"Get a free, no-obligation estimate of what your home is worth.",path:"/sell"},{name:"About",description:`Learn more about ${r.full_name}${t.brokerageLegalName?` and ${t.brokerageLegalName}`:""}.`,path:"/about"},{name:"Contact",description:`Get in touch with ${r.full_name} for buying, selling, or relocation help.`,path:"/contact"}],Z={"@context":"https://schema.org","@type":"ItemList","@id":`${n}/#nav`,name:"Main Navigation",itemListElement:W.map((Q,se)=>({"@type":"SiteNavigationElement",position:se+1,name:Q.name,description:Q.description,url:`${n}${Q.path}`}))};return o.jsxs(Il,{children:[o.jsx("script",{type:"application/ld+json",children:JSON.stringify(M)}),o.jsx("script",{type:"application/ld+json",children:JSON.stringify(D)}),o.jsx("script",{type:"application/ld+json",children:JSON.stringify(G)}),o.jsx("script",{type:"application/ld+json",children:JSON.stringify(Z)})]})}function _8t({items:t,siteConfig:e}){const r=e.customDomain?`https://${e.customDomain}`:`https://${e.subdomainSlug}.thelocalmove.com`,n={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:t.map((i,a)=>({"@type":"ListItem",position:a+1,name:i.name,item:`${r}${i.path}`}))};return o.jsx(Il,{children:o.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})})}function v8t({listing:t,siteConfig:e}){var i;const r=e.customDomain?`https://${e.customDomain}`:`https://${e.subdomainSlug}.thelocalmove.com`,n={"@context":"https://schema.org","@type":"SingleFamilyResidence",name:`${t.address}, ${t.city}, ${t.state} ${t.zip}`,url:`${r}/listing/${t.mlsNumber}`,image:((i=t.photos)==null?void 0:i[0])||void 0,numberOfRooms:t.bedrooms,numberOfBathroomsTotal:t.bathrooms,floorSize:t.sqft?{"@type":"QuantitativeValue",value:t.sqft,unitCode:"FTK"}:void 0,address:{"@type":"PostalAddress",streetAddress:t.address,addressLocality:t.city,addressRegion:t.state,postalCode:t.zip},...t.latitude&&t.longitude&&{geo:{"@type":"GeoCoordinates",latitude:t.latitude,longitude:t.longitude}},offers:{"@type":"Offer",price:t.price,priceCurrency:"USD",availability:t.status==="Active"?"https://schema.org/InStock":"https://schema.org/SoldOut"},...t.yearBuilt&&{yearBuilt:t.yearBuilt}};return o.jsx(Il,{children:o.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})})}function xPt({faqs:t}){if(!t.length)return null;const e={"@context":"https://schema.org","@type":"FAQPage",mainEntity:t.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))};return o.jsx(Il,{children:o.jsx("script",{type:"application/ld+json",children:JSON.stringify(e)})})}function b8t({title:t,description:e,publishedAt:r,imageUrl:n,slug:i,siteConfig:a}){const c=a.customDomain?`https://${a.customDomain}`:`https://${a.subdomainSlug}.thelocalmove.com`,s=a.agent,f={"@context":"https://schema.org","@type":"Article",headline:t,description:e,url:`${c}/blog/${i}`,datePublished:r,...n&&{image:n},author:s?{"@type":"Person",name:s.full_name,url:c}:void 0,publisher:{"@type":"Organization",name:a.siteTitle||(s==null?void 0:s.full_name)||"Agent",url:c}};return o.jsx(Il,{children:o.jsx("script",{type:"application/ld+json",children:JSON.stringify(f)})})}function w8t({videoId:t,title:e,description:r,thumbnailUrl:n,uploadDate:i,durationSeconds:a}){const c=a&&a>0?a:null,s=c?`PT${Math.floor(c/3600)?`${Math.floor(c/3600)}H`:""}${Math.floor(c%3600/60)}M${c%60}S`:void 0,f={"@context":"https://schema.org","@type":"VideoObject",name:e,description:r,thumbnailUrl:n||`https://i.ytimg.com/vi/${t}/maxresdefault.jpg`,...i&&{uploadDate:i},...s&&{duration:s},embedUrl:`https://www.youtube.com/embed/${t}`,contentUrl:`https://www.youtube.com/watch?v=${t}`};return o.jsx(Il,{children:o.jsx("script",{type:"application/ld+json",children:JSON.stringify(f)})})}const _Pt="Home Valuation";function vPt(t){return(t.valuationLabel||"").trim()||_Pt}function bPt(t){return t.split(" ").map(e=>e.length>1&&e===e.toUpperCase()?e:e.toLowerCase()).join(" ")}function sW({siteConfig:t}){var L;const e=Ji(),r=t.agent,n=/faq|frequently-asked/i.test(e.pathname);if(!r||!n)return null;const i=r.full_name,a=t.brokerageLegalName||"their brokerage",c=r.areas_served||"the local market",s=((L=c.split(/,|;|\|/)[0])==null?void 0:L.trim())||"the local area",f=r.years_experience,m=r.phone||"",x=r.email,_=t.agentLicenseNumber,T=!Ky(t),E=(r.bio||"").match(/\b(CRS|GRI|ABR|CNE|SRES|SRS|RENE|MRP|PSA|AHWD|C2EX|CIPS|CRB|e-?PRO)\b/gi)||[],C=[...new Set(E.map(M=>M.toUpperCase()))],N=[{question:`Who is ${i}?`,answer:`${i} is a ${r.title||"REALTOR®"} with ${a}${f?`, with ${f}+ years of local real estate experience`:""} serving ${c}. ${r.bio||""}`.trim()},{question:`What areas does ${i} serve?`,answer:`${i} serves ${c} and surrounding communities. Whether you're buying, selling, relocating, or downsizing, ${i.split(" ")[0]} provides expert local guidance.`},{question:`How can I contact ${i}?`,answer:`You can reach ${i} by ${m?`phone at ${m}, `:""}email at ${x}, or by booking a consultation directly through this website.`},...C.length?[{question:`What real estate designations does ${i} hold?`,answer:`${i} holds the following professional designations: ${C.join(", ")}. These designations represent advanced training in specialized areas of real estate.`}]:[],..._?[{question:`Is ${i} a licensed real estate agent?`,answer:`Yes, ${i} is a fully licensed real estate professional (License #${_}) with ${a}.`}]:[],...T?[{question:`How do I search for homes for sale in ${s}?`,answer:`Use the property search on this site to view current MLS listings in ${s}. You can filter by price, bedrooms, neighborhood, and more, and save searches to receive email alerts when new homes match your criteria.`}]:[],{question:`What is the home buying process like in ${s}?`,answer:T?`${i} guides buyers through every step: getting pre-approved, searching MLS listings, touring homes, writing competitive offers, navigating inspections and appraisals, and closing on schedule. Contact ${i.split(" ")[0]} for a buyer consultation.`:`${i} guides buyers through every step: getting pre-approved, identifying suitable properties, touring homes, writing competitive offers, navigating inspections and appraisals, and closing on schedule. Contact ${i.split(" ")[0]} for a buyer consultation.`},{question:`How do I find out what my home is worth in ${s}?`,answer:`Request a free, no-obligation ${bPt(vPt(t))} from ${i}. ${i.split(" ")[0]} reviews recent local sales and current market conditions in ${s} to give you a realistic picture of your home's value.`}];return o.jsx(xPt,{faqs:N})}const koe="ls_visitor_geo",wPt=1e3*60*60,Wz="lu_lc_attrib_v1",SPt=1e3*60*60*24*90;function TPt(t){return t==="/"?"home":t==="/search"?"search":t==="/sell"?"sell":t==="/blog"?"blog":t.startsWith("/listing/")?"listing":t.startsWith("/homes-for-sale-in-")?"city":t.startsWith("/homes-in-")?"subdivision":t==="/dashboard"?"dashboard":"other"}function EPt(t,e){switch(e){case"home":return"Home";case"search":return"Search";case"sell":return"Sell Your Home";case"blog":return"Blog";case"listing":return`Listing ${t.split("/listing/")[1]||""}`;case"city":return t.replace("/homes-for-sale-in-","").split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ");case"subdivision":return t.replace("/homes-in-","").split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ");case"dashboard":return"My Dashboard";default:return t}}async function APt(){try{const t=localStorage.getItem(koe);if(t){const e=JSON.parse(t);if(Date.now()-e.ts{a.current||(a.current=!0,APt().then(c=>{i.current=c}))},[]),P.useEffect(()=>{if(!(t!=null&&t.id))return;const c=r.pathname;if(c===n.current)return;n.current=c;const s=TPt(c),f=EPt(c,s),m=localStorage.getItem(`ls_visitor_fp_${t.id}`)||null,x=i.current;(async()=>{const T=new URLSearchParams(r.search),E=T.get("luc");if(E&&/^[0-9a-f-]{36}$/i.test(E)){try{localStorage.setItem(Wz,JSON.stringify({contact_id:E,ts:Date.now()}))}catch{}return E}const C=T.get("lc");if(C&&/^[0-9a-f-]{36}$/i.test(C)){const{data:N}=await De.from("listing_email_recipients").select("contact_id").eq("id",C).maybeSingle(),L=N==null?void 0:N.contact_id;if(L){try{localStorage.setItem(Wz,JSON.stringify({contact_id:L,ts:Date.now()}))}catch{}return L}}try{const N=localStorage.getItem(Wz);if(N){const L=JSON.parse(N);if(L!=null&&L.contact_id&&Date.now()-(L.ts||0){De.from("lead_site_page_views").insert({lead_site_id:t.id,page_type:s,page_path:c,page_title:f,visitor_fingerprint:m,auth_user_id:e||null,contact_id:T,visitor_city:(x==null?void 0:x.city)||null,visitor_region:(x==null?void 0:x.region)||null,visitor_country:(x==null?void 0:x.country)||null,visitor_lat:(x==null?void 0:x.lat)||null,visitor_lng:(x==null?void 0:x.lng)||null}).then(({error:E})=>{E&&console.error("[PageTracking] insert failed:",E.message)})})},[r.pathname,r.search,t==null?void 0:t.id,e])}const kPt=3e4;function oW(t,e){const r=Ji(),n=P.useRef(null),i=P.useRef(null),a=P.useRef(0),c=r.pathname,s=CPt(c),f=IPt(c,s),m=s==="listing"&&c.split("/listing/")[1]||null;P.useEffect(()=>{if(!(t!=null&&t.id)||!e)return;s==="listing"&&(a.current+=1);const x=localStorage.getItem(`ls_visitor_fp_${t.id}`)||null,_=async()=>{const{data:T,error:E}=await De.from("lead_site_active_visitors").upsert({lead_site_id:t.id,auth_user_id:e,visitor_fingerprint:x,current_page_path:c,current_page_title:f,current_mls_number:m,last_seen_at:new Date().toISOString(),listing_views_count:a.current},{onConflict:"lead_site_id,session_key"}).select("id, notified_agent").single();!E&&T&&(n.current=T.id,a.current>=2&&!T.notified_agent&&De.functions.invoke("lead-site-presence-notify",{body:{visitor_id:T.id,lead_site_id:t.id}}).catch(()=>{}))};return _(),i.current&&clearInterval(i.current),i.current=setInterval(_,kPt),()=>{i.current&&clearInterval(i.current)}},[t==null?void 0:t.id,e,c]),P.useEffect(()=>{if(!(t!=null&&t.id)||!e)return;const x=()=>{n.current&&De.from("lead_site_active_visitors").delete().eq("id",n.current).then(()=>{})};return window.addEventListener("beforeunload",x),()=>window.removeEventListener("beforeunload",x)},[t==null?void 0:t.id,e])}function CPt(t){return t==="/"?"home":t==="/search"?"search":t.startsWith("/listing/")?"listing":t.startsWith("/homes-for-sale-in-")?"city":t.startsWith("/homes-in-")?"subdivision":"other"}function IPt(t,e){switch(e){case"home":return"Home";case"search":return"Search";case"listing":return`Listing ${t.split("/listing/")[1]||""}`;case"city":return t.replace("/homes-for-sale-in-","").split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ");case"subdivision":return t.replace("/homes-in-","").split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ");default:return t}}const dn=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},jPt=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=PPt},PPt=Number.MAX_SAFE_INTEGER||9007199254740991;let jn=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),Zt=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",t.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",t.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.ASSET_LIST_LOAD_ERROR="assetListLoadError",t.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",t.ASSET_LIST_PARSING_ERROR="assetListParsingError",t.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.ATTACH_MEDIA_ERROR="attachMediaError",t.UNKNOWN="unknown",t}({}),ke=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.MEDIA_ENDED="hlsMediaEnded",t.STALL_RESOLVED="hlsStallResolved",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFERED_TO_END="hlsBufferedToEnd",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t.ASSET_LIST_LOADING="hlsAssetListLoading",t.ASSET_LIST_LOADED="hlsAssetListLoaded",t.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",t.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",t.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",t.INTERSTITIAL_STARTED="hlsInterstitialStarted",t.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",t.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",t.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",t.INTERSTITIAL_ENDED="hlsInterstitialEnded",t.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",t.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",t.EVENT_CUE_ENTER="hlsEventCueEnter",t}({});var Gi={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},_n={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"};class $b{constructor(e,r=0,n=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=r,this.totalWeight_=n}sample(e,r){const n=Math.pow(this.alpha_,e);this.estimate_=r*(1-n)+n*this.estimate_,this.totalWeight_+=e}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){const e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}}class NPt{constructor(e,r,n,i=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=n,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new $b(e),this.fast_=new $b(r),this.defaultTTFB_=i,this.ttfb_=new $b(e)}update(e,r){const{slow_:n,fast_:i,ttfb_:a}=this;n.halfLife!==e&&(this.slow_=new $b(e,n.getEstimate(),n.getTotalWeight())),i.halfLife!==r&&(this.fast_=new $b(r,i.getEstimate(),i.getTotalWeight())),a.halfLife!==e&&(this.ttfb_=new $b(e,a.getEstimate(),a.getTotalWeight()))}sample(e,r){e=Math.max(e,this.minDelayMs_);const n=8*r,i=e/1e3,a=n/i;this.fast_.sample(i,a),this.slow_.sample(i,a)}sampleTTFB(e){const r=e/1e3,n=Math.sqrt(2)*Math.exp(-Math.pow(r,2)/2);this.ttfb_.sample(n,Math.max(e,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function RPt(t,e,r){return(e=DPt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Xs(){return Xs=Object.assign?Object.assign.bind():function(t){for(var e=1;e`):Xg}function Ioe(t,e,r){return e[t]?e[t].bind(e):OPt(t,r)}const F8=O8();function FPt(t,e,r){const n=O8();if(typeof console=="object"&&t===!0||typeof t=="object"){const i=["debug","log","info","warn","error"];i.forEach(a=>{n[a]=Ioe(a,t,r)});try{n.log(`Debug logs enabled for "${e}" in hls.js version 1.6.16`)}catch{return O8()}i.forEach(a=>{F8[a]=Ioe(a,t)})}else Xs(F8,n);return n}const Us=F8;function Yy(t=!0){return typeof self>"u"?void 0:(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function BPt(t){return typeof self<"u"&&t===self.ManagedMediaSource}function mEe(t,e){const r=Object.keys(t),n=Object.keys(e),i=r.length,a=n.length;return!i||!a||i===a&&!r.some(c=>n.indexOf(c)===-1)}function nd(t,e=!1){if(typeof TextDecoder<"u"){const m=new TextDecoder("utf-8").decode(t);if(e){const x=m.indexOf("\0");return x!==-1?m.substring(0,x):m}return m.replace(/\0/g,"")}const r=t.length;let n,i,a,c="",s=0;for(;s>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c+=String.fromCharCode(n);break;case 12:case 13:i=t[s++],c+=String.fromCharCode((n&31)<<6|i&63);break;case 14:i=t[s++],a=t[s++],c+=String.fromCharCode((n&15)<<12|(i&63)<<6|(a&63)<<0);break}}return c}function Ul(t){let e="";for(let r=0;r1||i===1&&(r=this.levelkeys[n[0]])!=null&&r.encrypted)return!0}return!1}get programDateTime(){return this._programDateTime===null&&this.rawProgramDateTime&&(this.programDateTime=Date.parse(this.rawProgramDateTime)),this._programDateTime}set programDateTime(e){if(!dn(e)){this._programDateTime=this.rawProgramDateTime=null;return}this._programDateTime=e}get ref(){return To(this)?(this._ref||(this._ref={base:this.base,start:this.start,duration:this.duration,sn:this.sn,programDateTime:this.programDateTime}),this._ref):null}addStart(e){this.setStart(this.start+e)}setStart(e){this.start=e,this._ref&&(this._ref.start=e)}setDuration(e){this.duration=e,this._ref&&(this._ref.duration=e)}setKeyFormat(e){const r=this.levelkeys;if(r){var n;const i=r[e];i&&!((n=this._decryptdata)!=null&&n.keyId)&&(this._decryptdata=i.getDecryptData(this.sn,r))}}abortRequests(){var e,r;(e=this.loader)==null||e.abort(),(r=this.keyLoader)==null||r.abort()}setElementaryStreamInfo(e,r,n,i,a,c=!1){const{elementaryStreams:s}=this,f=s[e];if(!f){s[e]={startPTS:r,endPTS:n,startDTS:i,endDTS:a,partial:c};return}f.startPTS=Math.min(f.startPTS,r),f.endPTS=Math.max(f.endPTS,n),f.startDTS=Math.min(f.startDTS,i),f.endDTS=Math.max(f.endDTS,a)}}class UPt extends yEe{constructor(e,r,n,i,a){super(n),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.duration=e.decimalFloatingPoint("DURATION"),this.gap=e.bool("GAP"),this.independent=e.bool("INDEPENDENT"),this.relurl=e.enumeratedString("URI"),this.fragment=r,this.index=i;const c=e.enumeratedString("BYTERANGE");c&&this.setByteRange(c,a),a&&(this.fragOffset=a.fragOffset+a.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){const{elementaryStreams:e}=this;return!!(e.audio||e.video||e.audiovideo)}}function xEe(t,e){const r=Object.getPrototypeOf(t);if(r){const n=Object.getOwnPropertyDescriptor(r,e);return n||xEe(r,e)}}function VPt(t,e){const r=xEe(t,e);r&&(r.enumerable=!0,Object.defineProperty(t,e,r))}const Poe=Math.pow(2,32)-1,qPt=[].push,_Ee={video:1,audio:2,id3:3,text:4};function rl(t){return String.fromCharCode.apply(null,t)}function vEe(t,e){const r=t[e]<<8|t[e+1];return r<0?65536+r:r}function hi(t,e){const r=bEe(t,e);return r<0?4294967296+r:r}function Noe(t,e){let r=hi(t,e);return r*=Math.pow(2,32),r+=hi(t,e+4),r}function bEe(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function GPt(t){const e=t.byteLength;for(let r=0;r8&&t[r+4]===109&&t[r+5]===111&&t[r+6]===111&&t[r+7]===102)return!0;r=n>1?r+n:e}return!1}function qi(t,e){const r=[];if(!e.length)return r;const n=t.byteLength;for(let i=0;i1?i+a:n;if(c===e[0])if(e.length===1)r.push(t.subarray(i+8,s));else{const f=qi(t.subarray(i+8,s),e.slice(1));f.length&&qPt.apply(r,f)}i=s}return r}function HPt(t){const e=[],r=t[0];let n=8;const i=hi(t,n);n+=4;let a=0,c=0;r===0?(a=hi(t,n),c=hi(t,n+4),n+=8):(a=Noe(t,n),c=Noe(t,n+8),n+=16),n+=2;let s=t.length+c;const f=vEe(t,n);n+=2;for(let m=0;m>>31===1)return Us.warn("SIDX has hierarchical references (not supported)"),null;const C=hi(t,x);x+=4,e.push({referenceSize:T,subsegmentDuration:C,info:{duration:C/i,start:s,end:s+T-1}}),s+=T,x+=4,n=x}return{earliestPresentationTime:a,timescale:i,version:r,referencesCount:f,references:e}}function wEe(t){const e=[],r=qi(t,["moov","trak"]);for(let i=0;i{const a=hi(i,4),c=e[a];c&&(c.default={duration:hi(i,12),flags:hi(i,20)})}),e}function WPt(t){const e=t.subarray(8),r=e.subarray(86),n=rl(e.subarray(4,8));let i=n,a;const c=n==="enca"||n==="encv";if(c){const m=qi(e,[n])[0].subarray(n==="enca"?28:78);qi(m,["sinf"]).forEach(_=>{const T=qi(_,["schm"])[0];if(T){const E=rl(T.subarray(4,8));if(E==="cbcs"||E==="cenc"){const C=qi(_,["frma"])[0];C&&(i=rl(C))}}})}const s=i;switch(i){case"avc1":case"avc2":case"avc3":case"avc4":{const f=qi(r,["avcC"])[0];f&&f.length>3&&(i+="."+VN(f[1])+VN(f[2])+VN(f[3]),a=UN(s==="avc1"?"dva1":"dvav",r));break}case"mp4a":{const f=qi(e,[n])[0],m=qi(f.subarray(28),["esds"])[0];if(m&&m.length>7){let x=4;if(m[x++]!==3)break;x=Zz(m,x),x+=2;const _=m[x++];if(_&128&&(x+=2),_&64&&(x+=m[x++]),m[x++]!==4)break;x=Zz(m,x);const T=m[x++];if(T===64)i+="."+VN(T);else break;if(x+=12,m[x++]!==5)break;x=Zz(m,x);const E=m[x++];let C=(E&248)>>3;C===31&&(C+=1+((E&7)<<3)+((m[x]&224)>>5)),i+="."+C}break}case"hvc1":case"hev1":{const f=qi(r,["hvcC"])[0];if(f&&f.length>12){const m=f[1],x=["","A","B","C"][m>>6],_=m&31,T=hi(f,2),E=(m&32)>>5?"H":"L",C=f[12],N=f.subarray(6,12);i+="."+x+_,i+="."+KPt(T).toString(16).toUpperCase(),i+="."+E+C;let L="";for(let M=N.length;M--;){const D=N[M];(D||L)&&(L="."+D.toString(16).toUpperCase()+L)}i+=L}a=UN(s=="hev1"?"dvhe":"dvh1",r);break}case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":{i=UN(i,r)||i;break}case"vp09":{const f=qi(r,["vpcC"])[0];if(f&&f.length>6){const m=f[4],x=f[5],_=f[6]>>4&15;i+="."+Lf(m)+"."+Lf(x)+"."+Lf(_)}break}case"av01":{const f=qi(r,["av1C"])[0];if(f&&f.length>2){const m=f[1]>>>5,x=f[1]&31,_=f[2]>>>7?"H":"M",T=(f[2]&64)>>6,E=(f[2]&32)>>5,C=m===2&&T?E?12:10:T?10:8,N=(f[2]&16)>>4,L=(f[2]&8)>>3,M=(f[2]&4)>>2,D=f[2]&3;i+="."+m+"."+Lf(x)+_+"."+Lf(C)+"."+N+"."+L+M+D+"."+Lf(1)+"."+Lf(1)+"."+Lf(1)+"."+0,a=UN("dav1",r)}break}}return{codec:i,encrypted:c,supplemental:a}}function UN(t,e){const r=qi(e,["dvvC"]),n=r.length?r[0]:qi(e,["dvcC"])[0];if(n){const i=n[2]>>1&127,a=n[2]<<5&32|n[3]>>3&31;return t+"."+Lf(i)+"."+Lf(a)}}function KPt(t){let e=0;for(let r=0;r<32;r++)e|=(t>>r&1)<<31-r;return e>>>0}function Zz(t,e){const r=e+5;for(;t[e++]&128&&e{const a=n.subarray(8,24);a.some(c=>c!==0)||(Us.log(`[eme] Patching keyId in 'enc${i?"a":"v"}>sinf>>tenc' box: ${Ul(a)} -> ${Ul(r)}`),n.set(r,8))})}function ZPt(t){const e=[];return SEe(t,r=>e.push(r.subarray(8,24))),e}function SEe(t,e){qi(t,["moov","trak"]).forEach(n=>{const i=qi(n,["mdia","minf","stbl","stsd"])[0];if(!i)return;const a=i.subarray(8);let c=qi(a,["enca"]);const s=c.length>0;s||(c=qi(a,["encv"])),c.forEach(f=>{const m=s?f.subarray(28):f.subarray(78);qi(m,["sinf"]).forEach(_=>{const T=TEe(_);T&&e(T,s)})})})}function TEe(t){const e=qi(t,["schm"])[0];if(e){const r=rl(e.subarray(4,8));if(r==="cbcs"||r==="cenc"){const n=qi(t,["schi","tenc"])[0];if(n)return n}}}function XPt(t,e,r){const n={},i=qi(t,["moof","traf"]);for(let a=0;an[a].duration)){let a=1/0,c=0;const s=qi(t,["sidx"]);for(let f=0;f_+T.info.duration||0,0);c=Math.max(c,x+m.earliestPresentationTime/m.timescale)}}c&&dn(c)&&Object.keys(n).forEach(f=>{n[f].duration||(n[f].duration=c*n[f].timescale-n[f].start)})}return n}function QPt(t){const e={valid:null,remainder:null},r=qi(t,["moof"]);if(r.length<2)return e.remainder=t,e;const n=r[r.length-1];return e.valid=t.slice(0,n.byteOffset-8),e.remainder=t.slice(n.byteOffset-8),e}function eh(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function Roe(t,e){const r=[],n=e.samples,i=e.timescale,a=e.id;let c=!1;return qi(n,["moof"]).map(f=>{const m=f.byteOffset-8;qi(f,["traf"]).map(_=>{const T=qi(_,["tfdt"]).map(E=>{const C=E[0];let N=hi(E,4);return C===1&&(N*=Math.pow(2,32),N+=hi(E,8)),N/i})[0];return T!==void 0&&(t=T),qi(_,["tfhd"]).map(E=>{const C=hi(E,4),N=hi(E,0)&16777215,L=(N&1)!==0,M=(N&2)!==0,D=(N&8)!==0;let B=0;const V=(N&16)!==0;let G=0;const W=(N&32)!==0;let Z=8;C===a&&(L&&(Z+=8),M&&(Z+=4),D&&(B=hi(E,Z),Z+=4),V&&(G=hi(E,Z),Z+=4),W&&(Z+=4),e.type==="video"&&(c=s3(e.codec)),qi(_,["trun"]).map(Q=>{const se=Q[0],ie=hi(Q,0)&16777215,ue=(ie&1)!==0;let be=0;const Te=(ie&4)!==0,we=(ie&256)!==0;let Oe=0;const Ae=(ie&512)!==0;let Se=0;const ge=(ie&1024)!==0,je=(ie&2048)!==0;let _e=0;const xe=hi(Q,4);let Pe=8;ue&&(be=hi(Q,Pe),Pe+=4),Te&&(Pe+=4);let Ze=be+m;for(let at=0;at>1&63;return r===39||r===40}else return(e&31)===6}function uW(t,e,r,n){const i=EEe(t);let a=0;a+=e;let c=0,s=0,f=0;for(;a=i.length)break;f=i[a++],c+=f}while(f===255);s=0;do{if(a>=i.length)break;f=i[a++],s+=f}while(f===255);const m=i.length-a;let x=a;if(sm){Us.error(`Malformed SEI payload. ${s} is too small, only ${m} bytes left to parse.`);break}if(c===4){if(i[x++]===181){const T=vEe(i,x);if(x+=2,T===49){const E=hi(i,x);if(x+=4,E===1195456820){const C=i[x++];if(C===3){const N=i[x++],L=31&N,M=64&N,D=M?2+L*3:0,B=new Uint8Array(D);if(M){B[0]=N;for(let V=1;V16){const _=[];for(let C=0;C<16;C++){const N=i[x++].toString(16);_.push(N.length==1?"0"+N:N),(C===3||C===5||C===7||C===9)&&_.push("-")}const T=s-16,E=new Uint8Array(T);for(let C=0;C>24&255,a[1]=n>>16&255,a[2]=n>>8&255,a[3]=n&255,a.set(t,4),i=0,n=8;i0?(a=new Uint8Array(4),e.length>0&&new DataView(a.buffer).setUint32(0,e.length,!1)):a=new Uint8Array;const c=new Uint8Array(4);return r.byteLength>0&&new DataView(c.buffer).setUint32(0,r.byteLength,!1),tNt([112,115,115,104],new Uint8Array([n,0,0,0]),t,a,i,c,r)}function nNt(t){const e=[];if(t instanceof ArrayBuffer){const r=t.byteLength;let n=0;for(;n+32>>24;if(a!==0&&a!==1)return{offset:r,size:e};const c=t.buffer,s=Ul(new Uint8Array(c,r+12,16));let f=null,m=null,x=0;if(a===0)x=28;else{const T=t.getUint32(28);if(!T||n<32+T*16)return{offset:r,size:e};f=[];for(let E=0;E/\(Windows.+Firefox\//i.test(navigator.userAgent),X1={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,dav1:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function dW(t,e){const r=X1[e];return!!r&&!!r[t.slice(0,4)]}function tC(t,e,r=!0){return!t.split(",").some(n=>!hW(n,e,r))}function hW(t,e,r=!0){var n;const i=Yy(r);return(n=i==null?void 0:i.isTypeSupported(rC(t,e)))!=null?n:!1}function rC(t,e){return`${e}/mp4;codecs=${t}`}function Loe(t){if(t){const e=t.substring(0,4);return X1.video[e]}return 2}function pM(t){const e=AEe();return t.split(",").reduce((r,n)=>{const a=e&&s3(n)?9:X1.video[n];return a?(a*2+r)/(r?3:2):(X1.audio[n]+r)/(r?2:1)},0)}const Xz={};function sNt(t,e=!0){if(Xz[t])return Xz[t];const r={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[t];for(let i=0;isNt(r.toLowerCase(),e))}function oNt(t,e){const r=[];if(t){const n=t.split(",");for(let i=0;i4||["ac-3","ec-3","alac","fLaC","Opus"].indexOf(t)!==-1)&&(Doe(t,"audio")||Doe(t,"video")))return t;if(e){const r=e.split(",");if(r.length>1){if(t){for(let n=r.length;n--;)if(r[n].substring(0,4)===t.substring(0,4))return r[n]}return r[0]}}return e||t}function Doe(t,e){return dW(t,e)&&hW(t,e)}function lNt(t){const e=t.split(",");for(let r=0;r2&&n[0]==="avc1"&&(e[r]=`avc1.${parseInt(n[1]).toString(16)}${("000"+parseInt(n[2]).toString(16)).slice(-4)}`)}return e.join(",")}function cNt(t){if(t.startsWith("av01.")){const e=t.split("."),r=["0","111","01","01","01","0"];for(let n=e.length;n>4&&n<10;n++)e[n]=r[n-4];return e.join(".")}return t}function Moe(t){const e=Yy(t)||{isTypeSupported:()=>!1};return{mpeg:e.isTypeSupported("audio/mpeg"),mp3:e.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:e.isTypeSupported('audio/mp4; codecs="ac-3"')}}function B8(t){return t.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}const uNt={supported:!0,powerEfficient:!0,smooth:!0},dNt={supported:!1,smooth:!1,powerEfficient:!1},kEe={supported:!0,configurations:[],decodingInfoResults:[uNt]};function CEe(t,e){return{supported:!1,configurations:e,decodingInfoResults:[dNt],error:t}}function hNt(t,e,r,n,i,a){const c=t.videoCodec,s=t.audioCodec?t.audioGroups:null,f=a==null?void 0:a.audioCodec,m=a==null?void 0:a.channels,x=m?parseInt(m):f?1/0:2;let _=null;if(s!=null&&s.length)try{s.length===1&&s[0]?_=e.groups[s[0]].channels:_=s.reduce((T,E)=>{if(E){const C=e.groups[E];if(!C)throw new Error(`Audio track group ${E} not found`);Object.keys(C.channels).forEach(N=>{T[N]=(T[N]||0)+C.channels[N]})}return T},{2:0})}catch{return!0}return c!==void 0&&(c.split(",").some(T=>s3(T))||t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(n,30)||t.videoRange!=="SDR"&&t.videoRange!==r||t.bitrate>Math.max(i,8e6))||!!_&&dn(x)&&Object.keys(_).some(T=>parseInt(T)>x)}function IEe(t,e,r,n={}){const i=t.videoCodec;if(!i&&!t.audioCodec||!r)return Promise.resolve(kEe);const a=[],c=fNt(t),s=c.length,f=pNt(t,e,s>0),m=f.length;for(let x=s||1*m||1;x--;){const _={type:"media-source"};if(s&&(_.video=c[x%s]),m){_.audio=f[x%m];const T=_.audio.bitrate;_.video&&T&&(_.video.bitrate-=T)}a.push(_)}if(i){const x=navigator.userAgent;if(i.split(",").some(_=>s3(_))&&AEe())return Promise.resolve(CEe(new Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${x})`),a))}return Promise.all(a.map(x=>{const _=gNt(x);return n[_]||(n[_]=r.decodingInfo(x))})).then(x=>({supported:!x.some(_=>!_.supported),configurations:a,decodingInfoResults:x})).catch(x=>({supported:!1,configurations:a,decodingInfoResults:[],error:x}))}function fNt(t){var e;const r=(e=t.videoCodec)==null?void 0:e.split(","),n=jEe(t),i=t.width||640,a=t.height||480,c=t.frameRate||30,s=t.videoRange.toLowerCase();return r?r.map(f=>{const m={contentType:rC(cNt(f),"video"),width:i,height:a,bitrate:n,framerate:c};return s!=="sdr"&&(m.transferFunction=s),m}):[]}function pNt(t,e,r){var n;const i=(n=t.audioCodec)==null?void 0:n.split(","),a=jEe(t);return i&&t.audioGroups?t.audioGroups.reduce((c,s)=>{var f;const m=s?(f=e.groups[s])==null?void 0:f.tracks:null;return m?m.reduce((x,_)=>{if(_.groupId===s){const T=parseFloat(_.channels||"");i.forEach(E=>{const C={contentType:rC(E,"audio"),bitrate:r?mNt(E,a):a};T&&(C.channels=""+T),x.push(C)})}return x},c):c},[]):[]}function mNt(t,e){if(e<=1)return 1;let r=128e3;return t==="ec-3"?r=768e3:t==="ac-3"&&(r=64e4),Math.min(e/2,r)}function jEe(t){return Math.ceil(Math.max(t.bitrate*.9,t.averageBitrate)/1e3)*1e3||1}function gNt(t){let e="";const{audio:r,video:n}=t;if(n){const i=B8(n.contentType);e+=`${i}_r${n.height}x${n.width}f${Math.ceil(n.framerate)}${n.transferFunction||"sd"}_${Math.ceil(n.bitrate/1e5)}`}if(r){const i=B8(r.contentType);e+=`${n?"_":""}${i}_c${r.channels}`}return e}const z8=["NONE","TYPE-0","TYPE-1",null];function yNt(t){return z8.indexOf(t)>-1}const gM=["SDR","PQ","HLG"];function xNt(t){return!!t&&gM.indexOf(t)>-1}var qR={No:"",Yes:"YES",v2:"v2"};function Ooe(t){const{canSkipUntil:e,canSkipDateRanges:r,age:n}=t,i=n!!n).map(n=>n.substring(0,4)).join(","),"supplemental"in e){var r;this.supplemental=e.supplemental;const n=(r=e.supplemental)==null?void 0:r.videoCodec;n&&n!==e.videoCodec&&(this.codecSet+=`,${n.substring(0,4)}`)}this.addGroupId("audio",e.attrs.AUDIO),this.addGroupId("text",e.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(e){return Boe(this._audioGroups,e)}hasSubtitleGroup(e){return Boe(this._subtitleGroups,e)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(e,r){if(r){if(e==="audio"){let n=this._audioGroups;n||(n=this._audioGroups=[]),n.indexOf(r)===-1&&n.push(r)}else if(e==="text"){let n=this._subtitleGroups;n||(n=this._subtitleGroups=[]),n.indexOf(r)===-1&&n.push(r)}}}get urlId(){return 0}set urlId(e){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var e;return(e=this.audioGroups)==null?void 0:e[0]}get textGroupId(){var e;return(e=this.subtitleGroups)==null?void 0:e[0]}addFallback(){}}function Boe(t,e){return!e||!t?!1:t.indexOf(e)!==-1}function _Nt(){if(typeof matchMedia=="function"){const t=matchMedia("(dynamic-range: high)"),e=matchMedia("bad query");if(t.media!==e.media)return t.matches===!0}return!1}function vNt(t,e){let r=!1,n=[];if(t&&(r=t!=="SDR",n=[t]),e){n=e.allowedVideoRanges||gM.slice(0);const i=n.join("")!=="SDR"&&!e.videoCodec;r=e.preferHDR!==void 0?e.preferHDR:i&&_Nt(),r||(n=["SDR"])}return{preferHDR:r,allowedVideoRanges:n}}const bNt=t=>{const e=new WeakSet;return(r,n)=>{if(t&&(n=t(r,n)),typeof n=="object"&&n!==null){if(e.has(n))return;e.add(n)}return n}},ia=(t,e)=>JSON.stringify(t,bNt(e));function wNt(t,e,r,n,i){const a=Object.keys(t),c=n==null?void 0:n.channels,s=n==null?void 0:n.audioCodec,f=i==null?void 0:i.videoCodec,m=c&&parseInt(c)===2;let x=!1,_=!1,T=1/0,E=1/0,C=1/0,N=1/0,L=0,M=[];const{preferHDR:D,allowedVideoRanges:B}=vNt(e,i);for(let Q=a.length;Q--;){const se=t[a[Q]];x||(x=se.channels[2]>0),T=Math.min(T,se.minHeight),E=Math.min(E,se.minFramerate),C=Math.min(C,se.minBitrate),B.filter(ue=>se.videoRanges[ue]>0).length>0&&(_=!0)}T=dn(T)?T:0,E=dn(E)?E:0;const V=Math.max(1080,T),G=Math.max(30,E);C=dn(C)?C:r,r=Math.max(C,r),_||(e=void 0);const W=a.length>1;return{codecSet:a.reduce((Q,se)=>{const ie=t[se];if(se===Q)return Q;if(M=_?B.filter(ue=>ie.videoRanges[ue]>0):[],W){if(ie.minBitrate>r)return Cf(se,`min bitrate of ${ie.minBitrate} > current estimate of ${r}`),Q;if(!ie.hasDefaultAudio)return Cf(se,"no renditions with default or auto-select sound found"),Q;if(s&&se.indexOf(s.substring(0,4))%5!==0)return Cf(se,`audio codec preference "${s}" not found`),Q;if(c&&!m){if(!ie.channels[c])return Cf(se,`no renditions with ${c} channel sound found (channels options: ${Object.keys(ie.channels)})`),Q}else if((!s||m)&&x&&ie.channels[2]===0)return Cf(se,"no renditions with stereo sound found"),Q;if(ie.minHeight>V)return Cf(se,`min resolution of ${ie.minHeight} > maximum of ${V}`),Q;if(ie.minFramerate>G)return Cf(se,`min framerate of ${ie.minFramerate} > maximum of ${G}`),Q;if(!M.some(ue=>ie.videoRanges[ue]>0))return Cf(se,`no variants with VIDEO-RANGE of ${ia(M)} found`),Q;if(f&&se.indexOf(f.substring(0,4))%5!==0)return Cf(se,`video codec preference "${f}" not found`),Q;if(ie.maxScore=pM(Q)||ie.fragmentError>t[Q].fragmentError)?Q:(N=ie.minIndex,L=ie.maxScore,se)},void 0),videoRanges:M,preferHDR:D,minFramerate:E,minBitrate:C,minIndex:N}}function Cf(t,e){Us.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function PEe(t){return t.reduce((e,r)=>{let n=e.groups[r.groupId];n||(n=e.groups[r.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),n.tracks.push(r);const i=r.channels||"2";return n.channels[i]=(n.channels[i]||0)+1,n.hasDefault=n.hasDefault||r.default,n.hasAutoSelect=n.hasAutoSelect||r.autoselect,n.hasDefault&&(e.hasDefaultAudio=!0),n.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function SNt(t,e,r,n){return t.slice(r,n+1).reduce((i,a,c)=>{if(!a.codecSet)return i;const s=a.audioGroups;let f=i[a.codecSet];f||(i[a.codecSet]=f={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:c,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!s,fragmentError:0}),f.minBitrate=Math.min(f.minBitrate,a.bitrate);const m=Math.min(a.height,a.width);return f.minHeight=Math.min(f.minHeight,m),f.minFramerate=Math.min(f.minFramerate,a.frameRate),f.minIndex=Math.min(f.minIndex,c),f.maxScore=Math.max(f.maxScore,a.score),f.fragmentError+=a.fragmentError,f.videoRanges[a.videoRange]=(f.videoRanges[a.videoRange]||0)+1,s&&s.forEach(x=>{if(!x)return;const _=e.groups[x];_&&(f.hasDefaultAudio=f.hasDefaultAudio||e.hasDefaultAudio?_.hasDefault:_.hasAutoSelect||!e.hasDefaultAudio&&!e.hasAutoSelectAudio,Object.keys(_.channels).forEach(T=>{f.channels[T]=(f.channels[T]||0)+_.channels[T]}))}),i},{})}function zoe(t){if(!t)return t;const{lang:e,assocLang:r,characteristics:n,channels:i,audioCodec:a}=t;return{lang:e,assocLang:r,characteristics:n,channels:i,audioCodec:a}}function Wf(t,e,r){if("attrs"in t){const n=e.indexOf(t);if(n!==-1)return n}for(let n=0;nn.indexOf(i)===-1)}function O0(t,e){const{audioCodec:r,channels:n}=t;return(r===void 0||(e.audioCodec||"").substring(0,4)===r.substring(0,4))&&(n===void 0||n===(e.channels||"2"))}function ANt(t,e,r,n,i){const a=e[n],s=e.reduce((T,E,C)=>{const N=E.uri;return(T[N]||(T[N]=[])).push(C),T},{})[a.uri];s.length>1&&(n=Math.max.apply(Math,s));const f=a.videoRange,m=a.frameRate,x=a.codecSet.substring(0,4),_=$oe(e,n,T=>{if(T.videoRange!==f||T.frameRate!==m||T.codecSet.substring(0,4)!==x)return!1;const E=T.audioGroups,C=r.filter(N=>!E||E.indexOf(N.groupId)!==-1);return Wf(t,C,i)>-1});return _>-1?_:$oe(e,n,T=>{const E=T.audioGroups,C=r.filter(N=>!E||E.indexOf(N.groupId)!==-1);return Wf(t,C,i)>-1})}function $oe(t,e,r){for(let n=e;n>-1;n--)if(r(t[n]))return n;for(let n=e+1;n{var n;const{fragCurrent:i,partCurrent:a,hls:c}=this,{autoLevelEnabled:s,media:f}=c;if(!i||!f)return;const m=performance.now(),x=a?a.stats:i.stats,_=a?a.duration:i.duration,T=m-x.loading.start,E=c.minAutoLevel,C=i.level,N=this._nextAutoLevel;if(x.aborted||x.loaded&&x.loaded===x.total||C<=E){this.clearTimer(),this._nextAutoLevel=-1;return}if(!s)return;const L=N>-1&&N!==C,M=!!r||L;if(!M&&(f.paused||!f.playbackRate||!f.readyState))return;const D=c.mainForwardBufferInfo;if(!M&&D===null)return;const B=this.bwEstimator.getEstimateTTFB(),V=Math.abs(f.playbackRate);if(T<=Math.max(B,1e3*(_/(V*2))))return;const G=D?D.len/V:0,W=x.loading.first?x.loading.first-x.loading.start:-1,Z=x.loaded&&W>-1,Q=this.getBwEstimate(),se=c.levels,ie=se[C],ue=Math.max(x.loaded,Math.round(_*(i.bitrate||ie.averageBitrate)/8));let be=Z?T-W:T;be<1&&Z&&(be=Math.min(T,x.loaded*8/Q));const Te=Z?x.loaded*1e3/be:0,we=B/1e3,Oe=Te?(ue-x.loaded)/Te:ue*8/Q+we;if(Oe<=G)return;const Ae=Te?Te*8:Q,Se=((n=(r==null?void 0:r.details)||this.hls.latestLevelDetails)==null?void 0:n.live)===!0,ge=this.hls.config.abrBandWidthUpFactor;let je=Number.POSITIVE_INFINITY,_e;for(_e=C-1;_e>E;_e--){const at=se[_e].maxBitrate,lt=!se[_e].details||Se;if(je=this.getTimeToLoadFrag(we,Ae,_*at,lt),je=Oe||je>_*10)return;Z?this.bwEstimator.sample(T-Math.min(B,W),x.loaded):this.bwEstimator.sampleTTFB(T);const xe=se[_e].maxBitrate;this.getBwEstimate()*ge>xe&&this.resetEstimator(xe);const Pe=this.findBestLevel(xe,E,_e,0,G,1,1);Pe>-1&&(_e=Pe),this.warn(`Fragment ${i.sn}${a?" part "+a.index:""} of level ${C} is loading too slowly; Fragment duration: ${i.duration.toFixed(3)} Time to underbuffer: ${G.toFixed(3)} s Estimated load time for current fragment: ${Oe.toFixed(3)} s Estimated load time for down switch fragment: ${je.toFixed(3)} s TTFB estimate: ${W|0} ms Current BW estimate: ${dn(Q)?Q|0:"Unknown"} bps New BW estimate: ${this.getBwEstimate()|0} bps Switching to level ${_e} @ ${xe|0} bps`),c.nextLoadLevel=c.nextAutoLevel=_e,this.clearTimer();const Ze=()=>{if(this.clearTimer(),this.fragCurrent===i&&this.hls.loadLevel===_e&&_e>0){const at=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${_e>0?"and switching down":""} Fragment duration: ${i.duration.toFixed(3)} s Time to underbuffer: ${at.toFixed(3)} s`),i.abortRequests(),this.fragCurrent=this.partCurrent=null,_e>E){let lt=this.findBestLevel(this.hls.levels[E].bitrate,E,_e,0,at,1,1);lt===-1&&(lt=E),this.hls.nextLoadLevel=this.hls.nextAutoLevel=lt,this.resetEstimator(this.hls.levels[lt].bitrate)}}};L||Oe>je*2?Ze():this.timer=self.setInterval(Ze,je*1e3),c.trigger(ke.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:a,stats:x})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(this.log(`setting initial bwe to ${e}`),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){const e=this.hls.config;return new NPt(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){const{hls:e}=this;e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.FRAG_LOADING,this.onFragLoading,this),e.on(ke.FRAG_LOADED,this.onFragLoaded,this),e.on(ke.FRAG_BUFFERED,this.onFragBuffered,this),e.on(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.on(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(ke.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e&&(e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.FRAG_LOADING,this.onFragLoading,this),e.off(ke.FRAG_LOADED,this.onFragLoaded,this),e.off(ke.FRAG_BUFFERED,this.onFragBuffered,this),e.off(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.off(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(ke.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(ke.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,r){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,r){const n=r.frag;if(!this.ignoreFragment(n)){if(!n.bitrateTest){var i;this.fragCurrent=n,this.partCurrent=(i=r.part)!=null?i:null}this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,r){this.clearTimer()}onError(e,r){if(!r.fatal)switch(r.details){case Zt.BUFFER_ADD_CODEC_ERROR:case Zt.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case Zt.FRAG_LOAD_TIMEOUT:{const n=r.frag,{fragCurrent:i,partCurrent:a}=this;if(n&&i&&n.sn===i.sn&&n.level===i.level){const c=performance.now(),s=a?a.stats:n.stats,f=c-s.loading.start,m=s.loading.first?s.loading.first-s.loading.start:-1;if(s.loaded&&m>-1){const _=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(f-Math.min(_,m),s.loaded)}else this.bwEstimator.sampleTTFB(f)}break}}}getTimeToLoadFrag(e,r,n,i){const a=e+n/r,c=i?e+this.lastLevelLoadSec:0;return a+c}onLevelLoaded(e,r){const n=this.hls.config,{loading:i}=r.stats,a=i.end-i.first;dn(a)&&(this.lastLevelLoadSec=a/1e3),r.details.live?this.bwEstimator.update(n.abrEwmaSlowLive,n.abrEwmaFastLive):this.bwEstimator.update(n.abrEwmaSlowVoD,n.abrEwmaFastVoD),this.timer>-1&&this._abandonRulesCheck(r.levelInfo)}onFragLoaded(e,{frag:r,part:n}){const i=n?n.stats:r.stats;if(r.type===_n.MAIN&&this.bwEstimator.sampleTTFB(i.loading.first-i.loading.start),!this.ignoreFragment(r)){if(this.clearTimer(),r.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){const a=n?n.duration:r.duration,c=this.hls.levels[r.level],s=(c.loaded?c.loaded.bytes:0)+i.loaded,f=(c.loaded?c.loaded.duration:0)+a;c.loaded={bytes:s,duration:f},c.realBitrate=Math.round(8*s/f)}if(r.bitrateTest){const a={stats:i,frag:r,part:n,id:r.type};this.onFragBuffered(ke.FRAG_BUFFERED,a),r.bitrateTest=!1}else this.lastLoadedFragLevel=r.level}}onFragBuffered(e,r){const{frag:n,part:i}=r,a=i!=null&&i.stats.loaded?i.stats:n.stats;if(a.aborted||this.ignoreFragment(n))return;const c=a.parsing.end-a.loading.start-Math.min(a.loading.first-a.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(c,a.loaded),a.bwEstimate=this.getBwEstimate(),n.bitrateTest?this.bitrateTestDelay=c/1e3:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==_n.MAIN||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){const{maxAutoLevel:e,minAutoLevel:r}=this.hls,n=this.getBwEstimate(),i=this.hls.config.maxStarvationDelay,a=this.findBestLevel(n,r,e,0,i,1,1);if(a>-1)return a;const c=this.hls.firstLevel,s=Math.min(Math.max(c,r),e);return this.warn(`Could not find best starting auto level. Defaulting to first in playlist ${c} clamped to ${s}`),s}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){const e=this.forcedAutoLevel,n=this.bwEstimator.canEstimate(),i=this.lastLoadedFragLevel>-1;if(e!==-1&&(!n||!i||this.nextAutoLevelKey===this.getAutoLevelKey()))return e;const a=n&&i?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){const c=this.hls.levels;if(c.length>Math.max(e,a)&&c[e].loadError<=c[a].loadError)return e}return this._nextAutoLevel=a,this.nextAutoLevelKey=this.getAutoLevelKey(),a}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){const{fragCurrent:e,partCurrent:r,hls:n}=this;if(n.levels.length<=1)return n.loadLevel;const{maxAutoLevel:i,config:a,minAutoLevel:c}=n,s=r?r.duration:e?e.duration:0,f=this.getBwEstimate(),m=this.getStarvationDelay();let x=a.abrBandWidthFactor,_=a.abrBandWidthUpFactor;if(m){const L=this.findBestLevel(f,c,i,m,0,x,_);if(L>=0)return this.rebufferNotice=-1,L}let T=s?Math.min(s,a.maxStarvationDelay):a.maxStarvationDelay;if(!m){const L=this.bitrateTestDelay;L&&(T=(s?Math.min(s,a.maxLoadingDelay):a.maxLoadingDelay)-L,this.info(`bitrate test took ${Math.round(1e3*L)}ms, set first fragment max fetchDuration to ${Math.round(1e3*T)} ms`),x=_=1)}const E=this.findBestLevel(f,c,i,m,T,x,_);if(this.rebufferNotice!==E&&(this.rebufferNotice=E,this.info(`${m?"rebuffering expected":"buffer is empty"}, optimal quality level ${E}`)),E>-1)return E;const C=n.levels[c],N=n.loadLevelObj;return N&&(C==null?void 0:C.bitrate)=r;Ae--){var Oe;const Se=C[Ae],ge=Ae>_;if(!Se)continue;if(M.useMediaCapabilities&&!Se.supportedResult&&!Se.supportedPromise){const lt=navigator.mediaCapabilities;typeof(lt==null?void 0:lt.decodingInfo)=="function"&&hNt(Se,ie,W,Z,e,Q)?(Se.supportedPromise=IEe(Se,ie,lt,this.supportedCache),Se.supportedPromise.then(xt=>{if(!this.hls)return;Se.supportedResult=xt;const St=this.hls.levels,Xt=St.indexOf(Se);xt.error?this.warn(`MediaCapabilities decodingInfo error: "${xt.error}" for level ${Xt} ${ia(xt)}`):xt.supported?xt.decodingInfoResults.some(_t=>_t.smooth===!1||_t.powerEfficient===!1)&&this.log(`MediaCapabilities decodingInfo for level ${Xt} not smooth or powerEfficient: ${ia(xt)}`):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${Xt} ${ia(xt)}`),Xt>-1&&St.length>1&&(this.log(`Removing unsupported level ${Xt}`),this.hls.removeLevel(Xt),this.hls.loadLevel===-1&&(this.hls.nextLoadLevel=0)))}).catch(xt=>{this.warn(`Error handling MediaCapabilities decodingInfo: ${xt}`)})):Se.supportedResult=kEe}if((G&&Se.codecSet!==G||W&&Se.videoRange!==W||ge&&Z>Se.frameRate||!ge&&Z>0&&Zlt.smooth===!1))&&(!V||Ae!==ue)){we.push(Ae);continue}const je=Se.details,_e=(E?je==null?void 0:je.partTarget:je==null?void 0:je.averagetargetduration)||be;let xe;ge?xe=s*e:xe=c*e;const Pe=be&&i>=be*2&&a===0?Se.averageBitrate:Se.maxBitrate,Ze=this.getTimeToLoadFrag(Te,xe,Pe*_e,je===void 0);if(xe>=Pe&&(Ae===x||Se.loadError===0&&Se.fragmentError===0)&&(Ze<=Te||!dn(Ze)||B&&!this.bitrateTestDelay||Ze${Ae} adjustedbw(${Math.round(xe)})-bitrate=${Math.round(xe-Pe)} ttfb:${Te.toFixed(1)} avgDuration:${_e.toFixed(1)} maxFetchDuration:${m.toFixed(1)} fetchDuration:${Ze.toFixed(1)} firstSelection:${V} codecSet:${Se.codecSet} videoRange:${Se.videoRange} hls.loadLevel:${L}`)),V&&(this.firstSelection=Ae),Ae}}return-1}set nextAutoLevel(e){const r=this.deriveNextAutoLevel(e);this._nextAutoLevel!==r&&(this.nextAutoLevelKey="",this._nextAutoLevel=r)}deriveNextAutoLevel(e){const{maxAutoLevel:r,minAutoLevel:n}=this.hls;return Math.min(Math.max(e,n),r)}}const NEe={search:function(t,e){let r=0,n=t.length-1,i=null,a=null;for(;r<=n;){i=(r+n)/2|0,a=t[i];const c=e(a);if(c>0)r=i+1;else if(c<0)n=i-1;else return a}return null}};function CNt(t,e,r){if(e===null||!Array.isArray(t)||!t.length||!dn(e))return null;const n=t[0].programDateTime;if(e<(n||0))return null;const i=t[t.length-1].endProgramDateTime;if(e>=(i||0))return null;for(let a=0;a0&&s<15e-7&&(r+=15e-7),a&&t.level!==a.level&&a.end<=t.end&&(a=e[2+t.sn-e[0].sn]||null)}else r===0&&e[0].start===0&&(a=e[0]);if(a&&((!t||t.level===a.level)&&Uoe(r,n,a)===0||INt(a,t,Math.min(i,n))))return a;const c=NEe.search(e,Uoe.bind(null,r,n));return c&&(c!==t||!a)?c:a}function INt(t,e,r){if(e&&e.start===0&&e.level0){const n=e.tagList.reduce((i,a)=>(a[0]==="INF"&&(i+=parseFloat(a[1])),i),r);return t.start<=n}return!1}function Uoe(t=0,e=0,r){if(r.start<=t&&r.start+r.duration>t)return 0;const n=Math.min(e,r.duration+(r.deltaPTS?r.deltaPTS:0));return r.start+r.duration-n<=t?1:r.start-n>t&&r.start?-1:0}function jNt(t,e,r){const n=Math.min(e,r.duration+(r.deltaPTS?r.deltaPTS:0))*1e3;return(r.endProgramDateTime||0)-n>t}function REe(t,e,r){if(t&&t.startCC<=e&&t.endCC>=e){let n=t.fragments;const{fragmentHint:i}=t;i&&(n=n.concat(i));let a;return NEe.search(n,c=>c.cce?-1:(a=c,c.end<=r?1:c.start>r?-1:0)),a||null}return null}function xM(t){switch(t.details){case Zt.FRAG_LOAD_TIMEOUT:case Zt.KEY_LOAD_TIMEOUT:case Zt.LEVEL_LOAD_TIMEOUT:case Zt.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function LEe(t){return t.details.startsWith("key")}function DEe(t){return LEe(t)&&!!t.frag&&!t.frag.decryptdata}function Voe(t,e){const r=xM(e);return t.default[`${r?"timeout":"error"}Retry`]}function fW(t,e){const r=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(r*t.retryDelayMs,t.maxRetryDelayMs)}function qoe(t){return zs(zs({},t),{errorRetry:null,timeoutRetry:null})}function _M(t,e,r,n){if(!t)return!1;const i=n==null?void 0:n.code,a=e499)}function $8(t){return t===0&&navigator.onLine===!1}var Bl={DoNothing:0,SendEndCallback:1,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,InsertDiscontinuity:4,RetryRequest:5},Vu={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,MoveAllAlternatesMatchingKey:4,SwitchToSDR:8};class NNt extends ah{constructor(e){super("error-controller",e.logger),this.hls=void 0,this.playlistError=0,this.hls=e,this.registerListeners()}registerListeners(){const e=this.hls;e.on(ke.ERROR,this.onError,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){const e=this.hls;e&&(e.off(ke.ERROR,this.onError,this),e.off(ke.ERROR,this.onErrorOut,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===_n.MAIN?e.level:this.getVariantIndex()}getVariantIndex(){var e;const r=this.hls,n=r.currentLevel;return(e=r.loadLevelObj)!=null&&e.details||n===-1?r.loadLevel:n}variantHasKey(e,r){if(e){var n;if((n=e.details)!=null&&n.hasKey(r))return!0;const i=e.audioGroups;if(i)return this.hls.allAudioTracks.filter(c=>i.indexOf(c.groupId)>=0).some(c=>{var s;return(s=c.details)==null?void 0:s.hasKey(r)})}return!1}onManifestLoading(){this.playlistError=0}onLevelUpdated(){this.playlistError=0}onError(e,r){var n;if(r.fatal)return;const i=this.hls,a=r.context;switch(r.details){case Zt.FRAG_LOAD_ERROR:case Zt.FRAG_LOAD_TIMEOUT:case Zt.KEY_LOAD_ERROR:case Zt.KEY_LOAD_TIMEOUT:r.errorAction=this.getFragRetryOrSwitchAction(r);return;case Zt.FRAG_PARSING_ERROR:if((n=r.frag)!=null&&n.gap){r.errorAction=Fw();return}case Zt.FRAG_GAP:case Zt.FRAG_DECRYPT_ERROR:{r.errorAction=this.getFragRetryOrSwitchAction(r),r.errorAction.action=Bl.SendAlternateToPenaltyBox;return}case Zt.LEVEL_EMPTY_ERROR:case Zt.LEVEL_PARSING_ERROR:{var c;const f=r.parent===_n.MAIN?r.level:i.loadLevel;r.details===Zt.LEVEL_EMPTY_ERROR&&((c=r.context)!=null&&(c=c.levelDetails)!=null&&c.live)?r.errorAction=this.getPlaylistRetryOrSwitchAction(r,f):(r.levelRetry=!1,r.errorAction=this.getLevelSwitchAction(r,f))}return;case Zt.LEVEL_LOAD_ERROR:case Zt.LEVEL_LOAD_TIMEOUT:typeof(a==null?void 0:a.level)=="number"&&(r.errorAction=this.getPlaylistRetryOrSwitchAction(r,a.level));return;case Zt.AUDIO_TRACK_LOAD_ERROR:case Zt.AUDIO_TRACK_LOAD_TIMEOUT:case Zt.SUBTITLE_LOAD_ERROR:case Zt.SUBTITLE_TRACK_LOAD_TIMEOUT:if(a){const f=i.loadLevelObj;if(f&&(a.type===Gi.AUDIO_TRACK&&f.hasAudioGroup(a.groupId)||a.type===Gi.SUBTITLE_TRACK&&f.hasSubtitleGroup(a.groupId))){r.errorAction=this.getPlaylistRetryOrSwitchAction(r,i.loadLevel),r.errorAction.action=Bl.SendAlternateToPenaltyBox,r.errorAction.flags=Vu.MoveAllAlternatesMatchingHost;return}}return;case Zt.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:r.errorAction={action:Bl.SendAlternateToPenaltyBox,flags:Vu.MoveAllAlternatesMatchingHDCP};return;case Zt.KEY_SYSTEM_SESSION_UPDATE_FAILED:case Zt.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case Zt.KEY_SYSTEM_NO_SESSION:r.errorAction={action:Bl.SendAlternateToPenaltyBox,flags:Vu.MoveAllAlternatesMatchingKey};return;case Zt.BUFFER_ADD_CODEC_ERROR:case Zt.REMUX_ALLOC_ERROR:case Zt.BUFFER_APPEND_ERROR:if(!r.errorAction){var s;r.errorAction=this.getLevelSwitchAction(r,(s=r.level)!=null?s:i.loadLevel)}return;case Zt.INTERNAL_EXCEPTION:case Zt.BUFFER_APPENDING_ERROR:case Zt.BUFFER_FULL_ERROR:case Zt.LEVEL_SWITCH_ERROR:case Zt.BUFFER_STALLED_ERROR:case Zt.BUFFER_SEEK_OVER_HOLE:case Zt.BUFFER_NUDGE_ON_STALL:r.errorAction=Fw();return}r.type===jn.KEY_SYSTEM_ERROR&&(r.levelRetry=!1,r.errorAction=Fw())}getPlaylistRetryOrSwitchAction(e,r){const n=this.hls,i=Voe(n.config.playlistLoadPolicy,e),a=this.playlistError++;if(_M(i,a,xM(e),e.response))return{action:Bl.RetryRequest,flags:Vu.None,retryConfig:i,retryCount:a};const s=this.getLevelSwitchAction(e,r);return i&&(s.retryConfig=i,s.retryCount=a),s}getFragRetryOrSwitchAction(e){const r=this.hls,n=this.getVariantLevelIndex(e.frag),i=r.levels[n],{fragLoadPolicy:a,keyLoadPolicy:c}=r.config,s=Voe(LEe(e)?c:a,e),f=r.levels.reduce((x,_)=>x+_.fragmentError,0);if(i&&(e.details!==Zt.FRAG_GAP&&i.fragmentError++,!DEe(e)&&_M(s,f,xM(e),e.response)))return{action:Bl.RetryRequest,flags:Vu.None,retryConfig:s,retryCount:f};const m=this.getLevelSwitchAction(e,n);return s&&(m.retryConfig=s,m.retryCount=f),m}getLevelSwitchAction(e,r){const n=this.hls;r==null&&(r=n.loadLevel);const i=this.hls.levels[r];if(i){var a,c;const m=e.details;i.loadError++,m===Zt.BUFFER_APPEND_ERROR&&i.fragmentError++;let x=-1;const{levels:_,loadLevel:T,minAutoLevel:E,maxAutoLevel:C}=n;!n.autoLevelEnabled&&!n.config.preserveManualLevelOnError&&(n.loadLevel=-1);const N=(a=e.frag)==null?void 0:a.type,M=(N===_n.AUDIO&&m===Zt.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(m===Zt.BUFFER_ADD_CODEC_ERROR||m===Zt.BUFFER_APPEND_ERROR))&&_.some(({audioCodec:W})=>i.audioCodec!==W),B=e.sourceBufferName==="video"&&(m===Zt.BUFFER_ADD_CODEC_ERROR||m===Zt.BUFFER_APPEND_ERROR)&&_.some(({codecSet:W,audioCodec:Z})=>i.codecSet!==W&&i.audioCodec===Z),{type:V,groupId:G}=(c=e.context)!=null?c:{};for(let W=_.length;W--;){const Z=(W+T)%_.length;if(Z!==T&&Z>=E&&Z<=C&&_[Z].loadError===0){var s,f;const Q=_[Z];if(m===Zt.FRAG_GAP&&N===_n.MAIN&&e.frag){const se=_[Z].details;if(se){const ie=L_(e.frag,se.fragments,e.frag.start);if(ie!=null&&ie.gap)continue}}else{if(V===Gi.AUDIO_TRACK&&Q.hasAudioGroup(G)||V===Gi.SUBTITLE_TRACK&&Q.hasSubtitleGroup(G))continue;if(N===_n.AUDIO&&(s=i.audioGroups)!=null&&s.some(se=>Q.hasAudioGroup(se))||N===_n.SUBTITLE&&(f=i.subtitleGroups)!=null&&f.some(se=>Q.hasSubtitleGroup(se))||M&&i.audioCodec===Q.audioCodec||B&&i.codecSet===Q.codecSet||!M&&i.codecSet!==Q.codecSet)continue}x=Z;break}}if(x>-1&&n.loadLevel!==x)return e.levelRetry=!0,this.playlistError=0,{action:Bl.SendAlternateToPenaltyBox,flags:Vu.None,nextAutoLevel:x}}return{action:Bl.SendAlternateToPenaltyBox,flags:Vu.MoveAllAlternatesMatchingHost}}onErrorOut(e,r){var n;switch((n=r.errorAction)==null?void 0:n.action){case Bl.DoNothing:break;case Bl.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(r),!r.errorAction.resolved&&r.details!==Zt.FRAG_GAP?r.fatal=!0:/MediaSource readyState: ended/.test(r.error.message)&&(this.warn(`MediaSource ended after "${r.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError());break}if(r.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(e){const r=this.hls,n=e.errorAction;if(!n)return;const{flags:i}=n,a=n.nextAutoLevel;switch(i){case Vu.None:this.switchLevel(e,a);break;case Vu.MoveAllAlternatesMatchingHDCP:{const f=this.getVariantLevelIndex(e.frag),m=r.levels[f],x=m==null?void 0:m.attrs["HDCP-LEVEL"];if(n.hdcpLevel=x,x==="NONE")this.warn("HDCP policy resticted output with HDCP-LEVEL=NONE");else if(x){r.maxHdcpLevel=z8[z8.indexOf(x)-1],n.resolved=!0,this.warn(`Restricting playback to HDCP-LEVEL of "${r.maxHdcpLevel}" or lower`);break}}case Vu.MoveAllAlternatesMatchingKey:{const f=e.decryptdata;if(f){const m=this.hls.levels,x=m.length;for(let T=x;T--;)if(this.variantHasKey(m[T],f)){var c,s;this.log(`Banned key found in level ${T} (${m[T].bitrate}bps) or audio group "${(c=m[T].audioGroups)==null?void 0:c.join(",")}" (${(s=e.frag)==null?void 0:s.type} fragment) ${Ul(f.keyId||[])}`),m[T].fragmentError++,m[T].loadError++,this.log(`Removing level ${T} with key error (${e.error})`),this.hls.removeLevel(T)}const _=e.frag;if(this.hls.levels.length{const f=this.fragments[s];if(!f||c>=f.body.sn)return;if(!f.buffered&&(!f.loaded||a)){f.body.type===n&&this.removeFragment(f.body);return}const m=f.range[e];if(m){if(m.time.length===0){this.removeFragment(f.body);return}m.time.some(x=>{const _=!this.isTimeBuffered(x.startPTS,x.endPTS,r);return _&&this.removeFragment(f.body),_})}})}detectPartialFragments(e){const r=this.timeRanges;if(!r||e.frag.sn==="initSegment")return;const n=e.frag,i=Ub(n),a=this.fragments[i];if(!a||a.buffered&&n.gap)return;const c=!n.relurl;Object.keys(r).forEach(s=>{const f=n.elementaryStreams[s];if(!f)return;const m=r[s],x=c||f.partial===!0;a.range[s]=this.getBufferedTimes(n,e.part,x,m)}),a.loaded=null,Object.keys(a.range).length?(this.bufferedEnd(a,n),qN(a)||this.removeParts(n.sn-1,n.type)):this.removeFragment(a.body)}bufferedEnd(e,r){e.buffered=!0,(e.body.endList=r.endList||e.body.endList)&&(this.endListFragments[e.body.type]=e)}removeParts(e,r){const n=this.activePartLists[r];n&&(this.activePartLists[r]=Goe(n,i=>i.fragment.sn>=e))}fragBuffered(e,r){const n=Ub(e);let i=this.fragments[n];!i&&r&&(i=this.fragments[n]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap&&(this.hasGaps=!0)),i&&(i.loaded=null,this.bufferedEnd(i,e))}getBufferedTimes(e,r,n,i){const a={time:[],partial:n},c=e.start,s=e.end,f=e.minEndPTS||s,m=e.maxStartPTS||c;for(let x=0;x=_&&f<=T){a.time.push({startPTS:Math.max(c,i.start(x)),endPTS:Math.min(s,i.end(x))});break}else if(c_){const E=Math.max(c,i.start(x)),C=Math.min(s,i.end(x));C>E&&(a.partial=!0,a.time.push({startPTS:E,endPTS:C}))}else if(s<=_)break}return a}getPartialFragment(e){let r=null,n,i,a,c=0;const{bufferPadding:s,fragments:f}=this;return Object.keys(f).forEach(m=>{const x=f[m];x&&qN(x)&&(i=x.body.start-s,a=x.body.end+s,e>=i&&e<=a&&(n=Math.min(e-i,a-e),c<=n&&(r=x.body,c=n)))}),r}isEndListAppended(e){const r=this.endListFragments[e];return r!==void 0&&(r.buffered||qN(r))}getState(e){const r=Ub(e),n=this.fragments[r];return n?n.buffered?qN(n)?il.PARTIAL:il.OK:il.APPENDING:il.NOT_LOADED}isTimeBuffered(e,r,n){let i,a;for(let c=0;c=i&&r<=a)return!0;if(r<=i)return!1}return!1}onManifestLoading(){this.removeAllFragments()}onFragLoaded(e,r){if(r.frag.sn==="initSegment"||r.frag.bitrateTest)return;const n=r.frag,i=r.part?null:r,a=Ub(n);this.fragments[a]={body:n,appendedPTS:null,loaded:i,buffered:!1,range:Object.create(null)}}onBufferAppended(e,r){const{frag:n,part:i,timeRanges:a,type:c}=r;if(n.sn==="initSegment")return;const s=n.type;if(i){let m=this.activePartLists[s];m||(this.activePartLists[s]=m=[]),m.push(i)}this.timeRanges=a;const f=a[c];this.detectEvictedFragments(c,f,s,i)}onFragBuffered(e,r){this.detectPartialFragments(r)}hasFragment(e){const r=Ub(e);return!!this.fragments[r]}hasFragments(e){const{fragments:r}=this,n=Object.keys(r);if(!e)return n.length>0;for(let i=n.length;i--;){const a=r[n[i]];if((a==null?void 0:a.body.type)===e)return!0}return!1}hasParts(e){var r;return!!((r=this.activePartLists[e])!=null&&r.length)}removeFragmentsInRange(e,r,n,i,a){i&&!this.hasGaps||Object.keys(this.fragments).forEach(c=>{const s=this.fragments[c];if(!s)return;const f=s.body;f.type!==n||i&&!f.gap||f.starte&&(s.buffered||a)&&this.removeFragment(f)})}removeFragment(e){const r=Ub(e);e.clearElementaryStreamInfo();const n=this.activePartLists[e.type];if(n){const i=e.sn;this.activePartLists[e.type]=Goe(n,a=>a.fragment.sn!==i)}delete this.fragments[r],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){var e;this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;const r=(e=this.hls)==null||(e=e.latestLevelDetails)==null?void 0:e.partList;r&&r.forEach(n=>n.clearElementaryStreamInfo())}}function qN(t){var e,r,n;return t.buffered&&!!(t.body.gap||(e=t.range.video)!=null&&e.partial||(r=t.range.audio)!=null&&r.partial||(n=t.range.audiovideo)!=null&&n.partial)}function Ub(t){return`${t.type}_${t.level}_${t.sn}`}function Goe(t,e){return t.filter(r=>{const n=e(r);return n||r.clearElementaryStreamInfo(),n})}var Zy={cbc:0,ctr:1};class LNt{constructor(e,r,n){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=e,this.aesIV=r,this.aesMode=n}decrypt(e,r){switch(this.aesMode){case Zy.cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},r,e);case Zy.ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},r,e);default:throw new Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}}function DNt(t){const e=t.byteLength,r=e&&new DataView(t.buffer).getUint8(e-1);return r?t.slice(0,e-r):t}class MNt{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(e){const r=new DataView(e),n=new Uint32Array(4);for(let i=0;i<4;i++)n[i]=r.getUint32(i*4);return n}initTable(){const e=this.sBox,r=this.invSBox,n=this.subMix,i=n[0],a=n[1],c=n[2],s=n[3],f=this.invSubMix,m=f[0],x=f[1],_=f[2],T=f[3],E=new Uint32Array(256);let C=0,N=0,L=0;for(L=0;L<256;L++)L<128?E[L]=L<<1:E[L]=L<<1^283;for(L=0;L<256;L++){let M=N^N<<1^N<<2^N<<3^N<<4;M=M>>>8^M&255^99,e[C]=M,r[M]=C;const D=E[C],B=E[D],V=E[B];let G=E[M]*257^M*16843008;i[C]=G<<24|G>>>8,a[C]=G<<16|G>>>16,c[C]=G<<8|G>>>24,s[C]=G,G=V*16843009^B*65537^D*257^C*16843008,m[M]=G<<24|G>>>8,x[M]=G<<16|G>>>16,_[M]=G<<8|G>>>24,T[M]=G,C?(C=D^E[E[E[V^D]]],N^=E[E[N]]):C=N=1}}expandKey(e){const r=this.uint8ArrayToUint32Array_(e);let n=!0,i=0;for(;i{const s=ArrayBuffer.isView(e)?e:new Uint8Array(e);this.softwareDecrypt(s,r,n,i);const f=this.flush();f?a(f.buffer):c(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(e),r,n,i)}softwareDecrypt(e,r,n,i){const{currentIV:a,currentResult:c,remainderData:s}=this;if(i!==Zy.cbc||r.byteLength!==16)return Us.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),s&&(e=eh(s,e),this.remainderData=null);const f=this.getValidChunk(e);if(!f.length)return null;a&&(n=a);let m=this.softwareDecrypter;m||(m=this.softwareDecrypter=new MNt),m.expandKey(r);const x=c;return this.currentResult=m.decrypt(f.buffer,0,n),this.currentIV=f.slice(-16).buffer,x||null}webCryptoDecrypt(e,r,n,i){if(this.key!==r||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(e,r,n,i));this.key=r,this.fastAesKey=new ONt(this.subtle,r,i)}return this.fastAesKey.expandKey().then(a=>this.subtle?(this.logOnce("WebCrypto AES decrypt"),new LNt(this.subtle,new Uint8Array(n),i).decrypt(e.buffer,a)):Promise.reject(new Error("web crypto not initialized"))).catch(a=>(Us.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${a.name}: ${a.message}`),this.onWebCryptoError(e,r,n,i)))}onWebCryptoError(e,r,n,i){const a=this.enableSoftwareAES;if(a){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,r,n,i);const c=this.flush();if(c)return c.buffer}throw new Error("WebCrypto"+(a?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(e){let r=e;const n=e.length-e.length%BNt;return n!==e.length&&(r=e.slice(0,n),this.remainderData=e.slice(n)),r}logOnce(e){this.logEnabled&&(Us.log(`[decrypter]: ${e}`),this.logEnabled=!1)}}const Hoe=Math.pow(2,17);class zNt{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(e,r){const n=e.url;if(!n)return Promise.reject(new im({type:jn.NETWORK_ERROR,details:Zt.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error(`Fragment does not have a ${n?"part list":"url"}`),networkDetails:null}));this.abort();const i=this.config,a=i.fLoader,c=i.loader;return new Promise((s,f)=>{if(this.loader&&this.loader.destroy(),e.gap)if(e.tagList.some(C=>C[0]==="GAP")){f(Koe(e));return}else e.gap=!1;const m=this.loader=a?new a(i):new c(i),x=Woe(e);e.loader=m;const _=qoe(i.fragLoadPolicy.default),T={loadPolicy:_,timeout:_.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:e.sn==="initSegment"?1/0:Hoe};e.stats=m.stats;const E={onSuccess:(C,N,L,M)=>{this.resetLoader(e,m);let D=C.data;L.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(D.slice(0,16)),D=D.slice(16)),s({frag:e,part:null,payload:D,networkDetails:M})},onError:(C,N,L,M)=>{this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:zs({url:n,data:void 0},C),error:new Error(`HTTP Error ${C.code} ${C.text}`),networkDetails:L,stats:M}))},onAbort:(C,N,L)=>{this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:L,stats:C}))},onTimeout:(C,N,L)=>{this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error(`Timeout after ${T.timeout}ms`),networkDetails:L,stats:C}))}};r&&(E.onProgress=(C,N,L,M)=>r({frag:e,part:null,payload:L,networkDetails:M})),m.load(x,T,E)})}loadPart(e,r,n){this.abort();const i=this.config,a=i.fLoader,c=i.loader;return new Promise((s,f)=>{if(this.loader&&this.loader.destroy(),e.gap||r.gap){f(Koe(e,r));return}const m=this.loader=a?new a(i):new c(i),x=Woe(e,r);e.loader=m;const _=qoe(i.fragLoadPolicy.default),T={loadPolicy:_,timeout:_.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:Hoe};r.stats=m.stats,m.load(x,T,{onSuccess:(E,C,N,L)=>{this.resetLoader(e,m),this.updateStatsFromPart(e,r);const M={frag:e,part:r,payload:E.data,networkDetails:L};n(M),s(M)},onError:(E,C,N,L)=>{this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:r,response:zs({url:x.url,data:void 0},E),error:new Error(`HTTP Error ${E.code} ${E.text}`),networkDetails:N,stats:L}))},onAbort:(E,C,N)=>{e.stats.aborted=r.stats.aborted,this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.INTERNAL_ABORTED,fatal:!1,frag:e,part:r,error:new Error("Aborted"),networkDetails:N,stats:E}))},onTimeout:(E,C,N)=>{this.resetLoader(e,m),f(new im({type:jn.NETWORK_ERROR,details:Zt.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:r,error:new Error(`Timeout after ${T.timeout}ms`),networkDetails:N,stats:E}))}})})}updateStatsFromPart(e,r){const n=e.stats,i=r.stats,a=i.total;if(n.loaded+=i.loaded,a){const f=Math.round(e.duration/r.duration),m=Math.min(Math.round(n.loaded/a),f),_=(f-m)*Math.round(n.loaded/m);n.total=n.loaded+_}else n.total=Math.max(n.loaded,n.total);const c=n.loading,s=i.loading;c.start?c.first+=s.first-s.start:(c.start=s.start,c.first=s.first),c.end=s.end}resetLoader(e,r){e.loader=null,this.loader===r&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),r.destroy()}}function Woe(t,e=null){const r=e||t,n={frag:t,part:e,responseType:"arraybuffer",url:r.url,headers:{},rangeStart:0,rangeEnd:0},i=r.byteRangeStartOffset,a=r.byteRangeEndOffset;if(dn(i)&&dn(a)){var c;let s=i,f=a;if(t.sn==="initSegment"&&$Nt((c=t.decryptdata)==null?void 0:c.method)){const m=a-i;m%16&&(f=a+(16-m%16)),i!==0&&(n.resetIV=!0,s=i-16)}n.rangeStart=s,n.rangeEnd=f}return n}function Koe(t,e){const r=new Error(`GAP ${t.gap?"tag":"attribute"} found`),n={type:jn.MEDIA_ERROR,details:Zt.FRAG_GAP,fatal:!1,frag:t,error:r,networkDetails:null};return e&&(n.part=e),(e||t).stats.aborted=!0,new im(n)}function $Nt(t){return t==="AES-128"||t==="AES-256"}class im extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}}class MEe extends ah{constructor(e,r){super(e,r),this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return this._tickInterval?!1:(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,!0):!1}clearNextTick(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0):!1}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}class mW{constructor(e,r,n,i=0,a=-1,c=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing=GN(),this.buffering={audio:GN(),video:GN(),audiovideo:GN()},this.level=e,this.sn=r,this.id=n,this.size=i,this.part=a,this.partial=c}}function GN(){return{start:0,executeStart:0,executeEnd:0,end:0}}const Yoe={length:0,start:()=>0,end:()=>0};class yi{static isBuffered(e,r){if(e){const n=yi.getBuffered(e);for(let i=n.length;i--;)if(r>=n.start(i)&&r<=n.end(i))return!0}return!1}static bufferedRanges(e){if(e){const r=yi.getBuffered(e);return yi.timeRangesToArray(r)}return[]}static timeRangesToArray(e){const r=[];for(let n=0;n1&&e.sort((x,_)=>x.start-_.start||_.end-x.end);let i=-1,a=[];if(n)for(let x=0;x=e[x].start&&r<=e[x].end&&(i=x);const _=a.length;if(_){const T=a[_-1].end;e[x].start-TT&&(a[_-1].end=e[x].end):a.push(e[x])}else a.push(e[x])}else a=e;let c=0,s,f=r,m=r;for(let x=0;x=_&&r<=T&&(i=x),r+n>=_&&r{const i=n.substring(2,n.length-1),a=r==null?void 0:r[i];return a===void 0?(t.playlistParsingError||(t.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${i}"`)),n):a})}return e}function Xoe(t,e,r){let n=t.variableList;n||(t.variableList=n={});let i,a;if("QUERYPARAM"in e){i=e.QUERYPARAM;try{const c=new self.URL(r).searchParams;if(c.has(i))a=c.get(i);else throw new Error(`"${i}" does not match any query parameter in URI: "${r}"`)}catch(c){t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${c.message}`))}}else i=e.NAME,a=e.VALUE;i in n?t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${i}"`)):n[i]=a||""}function UNt(t,e,r){const n=e.IMPORT;if(r&&n in r){let i=t.variableList;i||(t.variableList=i={}),i[n]=r[n]}else t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${n}"`))}const VNt=/^(\d+)x(\d+)$/,Qoe=/(.+?)=(".*?"|.*?)(?:,|$)/g;class Ka{constructor(e,r){typeof e=="string"&&(e=Ka.parseAttrList(e,r)),Xs(this,e)}get clientAttrs(){return Object.keys(this).filter(e=>e.substring(0,2)==="X-")}decimalInteger(e){const r=parseInt(this[e],10);return r>Number.MAX_SAFE_INTEGER?1/0:r}hexadecimalInteger(e){if(this[e]){let r=(this[e]||"0x").slice(2);r=(r.length&1?"0":"")+r;const n=new Uint8Array(r.length/2);for(let i=0;iNumber.MAX_SAFE_INTEGER?1/0:r}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,r){const n=this[e];return n?parseFloat(n):r}enumeratedString(e){return this[e]}enumeratedStringList(e,r){const n=this[e];return(n?n.split(/[ ,]+/):[]).reduce((i,a)=>(i[a.toLowerCase()]=!0,i),r)}bool(e){return this[e]==="YES"}decimalResolution(e){const r=VNt.exec(this[e]);if(r!==null)return{width:parseInt(r[1],10),height:parseInt(r[2],10)}}static parseAttrList(e,r){let n;const i={},a='"';for(Qoe.lastIndex=0;(n=Qoe.exec(e))!==null;){const c=n[1].trim();let s=n[2];const f=s.indexOf(a)===0&&s.lastIndexOf(a)===s.length-1;let m=!1;if(f)s=s.slice(1,-1);else switch(c){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":m=!0}if(r&&(f||m))s=U8(r,s);else if(!m&&!f)switch(c){case"CLOSED-CAPTIONS":if(s==="NONE")break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":Us.warn(`${e}: attribute ${c} is missing quotes`)}i[c]=s}return i}}const qNt="com.apple.hls.interstitial";function GNt(t){return t!=="ID"&&t!=="CLASS"&&t!=="CUE"&&t!=="START-DATE"&&t!=="DURATION"&&t!=="END-DATE"&&t!=="END-ON-NEXT"}function HNt(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"||t==="SCTE35-CMD"}class FEe{constructor(e,r,n=0){var i;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(r==null?void 0:r.tagAnchor)||null,this.tagOrder=(i=r==null?void 0:r.tagOrder)!=null?i:n,r){const a=r.attr;for(const c in a)if(Object.prototype.hasOwnProperty.call(e,c)&&e[c]!==a[c]){Us.warn(`DATERANGE tag attribute: "${c}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=c;break}e=Xs(new Ka({}),a,e)}if(this.attr=e,r?(this._startDate=r._startDate,this._cue=r._cue,this._endDate=r._endDate,this._dateAtEnd=r._dateAtEnd):this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){const a=(r==null?void 0:r.endDate)||new Date(this.attr["END-DATE"]);dn(a.getTime())&&(this._endDate=a)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){const e=this._cue;return e===void 0?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}get startTime(){const{tagAnchor:e}=this;return e===null||e.programDateTime===null?(Us.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": ${e}`),NaN):e.start+(this.startDate.getTime()-e.programDateTime)/1e3}get startDate(){return this._startDate}get endDate(){const e=this._endDate||this._dateAtEnd;if(e)return e;const r=this.duration;return r!==null?this._dateAtEnd=new Date(this._startDate.getTime()+r*1e3):null}get duration(){if("DURATION"in this.attr){const e=this.attr.decimalFloatingPoint("DURATION");if(dn(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isInterstitial(){return this.class===qNt}get isValid(){return!!this.id&&!this._badValueForSameId&&dn(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}const WNt=10;class KNt{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){if(!e){this.advanced=!0,this.updated=!0;return}const r=this.lastPartSn-e.lastPartSn,n=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!n||!!r||!this.live,this.advanced=this.endSN>e.endSN||r>0||r===0&&n>0,this.updated||this.advanced?this.misses=Math.floor(e.misses*.6):this.misses=e.misses+1}hasKey(e){return this.encryptedFragments.some(r=>{let n=r.decryptdata;return n||(r.setKeyFormat(e.keyFormat),n=r.decryptdata),!!n&&e.matches(n)})}get hasProgramDateTime(){return this.fragments.length?dn(this.fragments[this.fragments.length-1].programDateTime):!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||WNt}get drift(){const e=this.driftEndTime-this.driftStartTime;return e>0?(this.driftEnd-this.driftStart)*1e3/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){return this.fragments.length?this.fragments[this.fragments.length-1].end:0}get fragmentStart(){return this.fragments.length?this.fragments[0].start:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].index:-1}get maxPartIndex(){const e=this.partList;if(e){const r=this.lastPartIndex;if(r!==-1){for(let n=e.length;n--;)if(e[n].index>r)return e[n].index;return r}}return 0}get lastPartSn(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}get expired(){if(this.live&&this.age&&this.misses<3){const e=this.partEnd-this.fragmentStart;return this.age>Math.max(e,this.totalduration)+this.levelTargetDuration}return!1}}function vM(t,e){return t.length===e.length?!t.some((r,n)=>r!==e[n]):!1}function Joe(t,e){return!t&&!e?!0:!t||!e?!1:vM(t,e)}function Bw(t){return t==="AES-128"||t==="AES-256"||t==="AES-256-CTR"}function gW(t){switch(t){case"AES-128":case"AES-256":return Zy.cbc;case"AES-256-CTR":return Zy.ctr;default:throw new Error(`invalid full segment method ${t}`)}}function yW(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}function V8(t){return Uint8Array.from(unescape(encodeURIComponent(t)),e=>e.charCodeAt(0))}function YNt(t){const e=V8(t).subarray(0,16),r=new Uint8Array(16);return r.set(e,16-e.length),r}function BEe(t){const e=function(n,i,a){const c=n[i];n[i]=n[a],n[a]=c};e(t,0,3),e(t,1,2),e(t,4,5),e(t,6,7)}function zEe(t){const e=t.split(":");let r=null;if(e[0]==="data"&&e.length===2){const n=e[1].split(";"),i=n[n.length-1].split(",");if(i.length===2){const a=i[0]==="base64",c=i[1];a?(n.splice(-1,1),r=yW(c)):r=YNt(c)}}return r}const bM=typeof self<"u"?self:void 0;var Xa={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Vl={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function GR(t){switch(t){case Vl.FAIRPLAY:return Xa.FAIRPLAY;case Vl.PLAYREADY:return Xa.PLAYREADY;case Vl.WIDEVINE:return Xa.WIDEVINE;case Vl.CLEARKEY:return Xa.CLEARKEY}}function Qz(t){switch(t){case Xa.FAIRPLAY:return Vl.FAIRPLAY;case Xa.PLAYREADY:return Vl.PLAYREADY;case Xa.WIDEVINE:return Vl.WIDEVINE;case Xa.CLEARKEY:return Vl.CLEARKEY}}function K2(t){const{drmSystems:e,widevineLicenseUrl:r}=t,n=e?[Xa.FAIRPLAY,Xa.WIDEVINE,Xa.PLAYREADY,Xa.CLEARKEY].filter(i=>!!e[i]):[];return!n[Xa.WIDEVINE]&&r&&n.push(Xa.WIDEVINE),n}const $Ee=function(t){return bM!=null&&(t=bM.navigator)!=null&&t.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null}();function ZNt(t,e,r,n){let i;switch(t){case Xa.FAIRPLAY:i=["cenc","sinf"];break;case Xa.WIDEVINE:case Xa.PLAYREADY:i=["cenc"];break;case Xa.CLEARKEY:i=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${t}`)}return XNt(i,e,r,n)}function XNt(t,e,r,n){return[{initDataTypes:t,persistentState:n.persistentState||"optional",distinctiveIdentifier:n.distinctiveIdentifier||"optional",sessionTypes:n.sessionTypes||[n.sessionType||"temporary"],audioCapabilities:e.map(a=>({contentType:`audio/mp4; codecs=${a}`,robustness:n.audioRobustness||"",encryptionScheme:n.audioEncryptionScheme||null})),videoCapabilities:r.map(a=>({contentType:`video/mp4; codecs=${a}`,robustness:n.videoRobustness||"",encryptionScheme:n.videoEncryptionScheme||null}))}]}function QNt(t){var e;return!!t&&(t.sessionType==="persistent-license"||!!((e=t.sessionTypes)!=null&&e.some(r=>r==="persistent-license")))}function UEe(t){const e=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),r=String.fromCharCode.apply(null,Array.from(e)),n=r.substring(r.indexOf("<"),r.length),c=new DOMParser().parseFromString(n,"text/xml").getElementsByTagName("KID")[0];if(c){const s=c.childNodes[0]?c.childNodes[0].nodeValue:c.getAttribute("VALUE");if(s){const f=yW(s).subarray(0,16);return BEe(f),f}}return null}let Vb={};class Ry{static clearKeyUriToKeyIdMap(){Vb={}}static setKeyIdForUri(e,r){Vb[e]=r}static addKeyIdForUri(e){const r=Object.keys(Vb).length%Number.MAX_SAFE_INTEGER,n=new Uint8Array(16);return new DataView(n.buffer,12,4).setUint32(0,r),Vb[e]=n,n}constructor(e,r,n,i=[1],a=null,c){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=r,this.keyFormat=n,this.keyFormatVersions=i,this.iv=a,this.encrypted=e?e!=="NONE":!1,this.isCommonEncryption=this.encrypted&&!Bw(e),c!=null&&c.startsWith("0x")&&(this.keyId=new Uint8Array(gEe(c)))}matches(e){return e.uri===this.uri&&e.method===this.method&&e.encrypted===this.encrypted&&e.keyFormat===this.keyFormat&&vM(e.keyFormatVersions,this.keyFormatVersions)&&Joe(e.iv,this.iv)&&Joe(e.keyId,this.keyId)}isSupported(){if(this.method){if(Bw(this.method)||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case Vl.FAIRPLAY:case Vl.WIDEVINE:case Vl.PLAYREADY:case Vl.CLEARKEY:return["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(e,r){if(!this.encrypted||!this.uri)return null;if(Bw(this.method)){let a=this.iv;return a||(typeof e!="number"&&(Us.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0),a=eRt(e)),new Ry(this.method,this.uri,"identity",this.keyFormatVersions,a)}if(this.keyId){const a=Vb[this.uri];if(a&&!vM(this.keyId,a)&&Ry.setKeyIdForUri(this.uri,this.keyId),this.pssh)return this}const n=zEe(this.uri);if(n)switch(this.keyFormat){case Vl.WIDEVINE:if(this.pssh=n,!this.keyId){const a=nNt(n.buffer);if(a.length){var i;const c=a[0];this.keyId=(i=c.kids)!=null&&i.length?c.kids[0]:null}}this.keyId||(this.keyId=ele(r));break;case Vl.PLAYREADY:{const a=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=rNt(a,null,n),this.keyId=UEe(n);break}default:{let a=n.subarray(0,16);if(a.length!==16){const c=new Uint8Array(16);c.set(a,16-a.length),a=c}this.keyId=a;break}}if(!this.keyId||this.keyId.byteLength!==16){let a;a=JNt(r),a||(a=ele(r),a||(a=Vb[this.uri])),a&&(this.keyId=a,Ry.setKeyIdForUri(this.uri,a))}return this}}function JNt(t){const e=t==null?void 0:t[Vl.WIDEVINE];return e?e.keyId:null}function ele(t){const e=t==null?void 0:t[Vl.PLAYREADY];if(e){const r=zEe(e.uri);if(r)return UEe(r)}return null}function eRt(t){const e=new Uint8Array(16);for(let r=12;r<16;r++)e[r]=t>>8*(15-r)&255;return e}const tle=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,rle=/#EXT-X-MEDIA:(.*)/g,tRt=/^#EXT(?:INF|-X-TARGETDURATION):/m,Jz=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),rRt=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class Kf{static findGroup(e,r){for(let n=0;n0&&a.length({id:m.attrs.AUDIO,audioCodec:m.audioCodec})),SUBTITLES:c.map(m=>({id:m.attrs.SUBTITLES,textCodec:m.textCodec})),"CLOSED-CAPTIONS":[]};let f=0;for(rle.lastIndex=0;(i=rle.exec(e))!==null;){const m=new Ka(i[1],n),x=m.TYPE;if(x){const _=s[x],T=a[x]||[];a[x]=T;const E=m.LANGUAGE,C=m["ASSOC-LANGUAGE"],N=m.CHANNELS,L=m.CHARACTERISTICS,M=m["INSTREAM-ID"],D={attrs:m,bitrate:0,id:f++,groupId:m["GROUP-ID"]||"",name:m.NAME||E||"",type:x,default:m.bool("DEFAULT"),autoselect:m.bool("AUTOSELECT"),forced:m.bool("FORCED"),lang:E,url:m.URI?Kf.resolve(m.URI,r):""};if(C&&(D.assocLang=C),N&&(D.channels=N),L&&(D.characteristics=L),M&&(D.instreamId=M),_!=null&&_.length){const B=Kf.findGroup(_,D.groupId)||_[0];ale(D,B,"audioCodec"),ale(D,B,"textCodec")}T.push(D)}}return a}static parseLevelPlaylist(e,r,n,i,a,c){var s;const f={url:r},m=new KNt(r),x=m.fragments,_=[];let T=null,E=0,C=0,N=0,L=0,M=0,D=null,B=new Yz(i,f),V,G,W,Z=-1,Q=!1,se=null,ie;if(Jz.lastIndex=0,m.m3u8=e,m.hasVariableRefs=Zoe(e),((s=Jz.exec(e))==null?void 0:s[0])!=="#EXTM3U")return m.playlistParsingError=new Error("Missing format identifier #EXTM3U"),m;for(;(V=Jz.exec(e))!==null;){Q&&(Q=!1,B=new Yz(i,f),B.playlistOffset=N,B.setStart(N),B.sn=E,B.cc=L,M&&(B.bitrate=M),B.level=n,T&&(B.initSegment=T,T.rawProgramDateTime&&(B.rawProgramDateTime=T.rawProgramDateTime,T.rawProgramDateTime=null),se&&(B.setByteRange(se),se=null)));const we=V[1];if(we){B.duration=parseFloat(we);const Oe=(" "+V[2]).slice(1);B.title=Oe||null,B.tagList.push(Oe?["INF",we,Oe]:["INF",we])}else if(V[3]){if(dn(B.duration)){B.playlistOffset=N,B.setStart(N),W&&lle(B,W,m),B.sn=E,B.level=n,B.cc=L,x.push(B);const Oe=(" "+V[3]).slice(1);B.relurl=U8(m,Oe),q8(B,D,_),D=B,N+=B.duration,E++,C=0,Q=!0}}else{if(V=V[0].match(rRt),!V){Us.warn("No matches on slow regex match for level playlist!");continue}for(G=1;G0&&cle(m,Oe,V),E=m.startSN=parseInt(Ae);break;case"SKIP":{m.skippedSegments&&Qp(m,Oe,V);const ge=new Ka(Ae,m),je=ge.decimalInteger("SKIPPED-SEGMENTS");if(dn(je)){m.skippedSegments+=je;for(let xe=je;xe--;)x.push(null);E+=je}const _e=ge.enumeratedString("RECENTLY-REMOVED-DATERANGES");_e&&(m.recentlyRemovedDateranges=(m.recentlyRemovedDateranges||[]).concat(_e.split(" ")));break}case"TARGETDURATION":m.targetduration!==0&&Qp(m,Oe,V),m.targetduration=Math.max(parseInt(Ae),1);break;case"VERSION":m.version!==null&&Qp(m,Oe,V),m.version=parseInt(Ae);break;case"INDEPENDENT-SEGMENTS":break;case"ENDLIST":m.live||Qp(m,Oe,V),m.live=!1;break;case"#":(Ae||Se)&&B.tagList.push(Se?[Ae,Se]:[Ae]);break;case"DISCONTINUITY":L++,B.tagList.push(["DIS"]);break;case"GAP":B.gap=!0,B.tagList.push([Oe]);break;case"BITRATE":B.tagList.push([Oe,Ae]),M=parseInt(Ae)*1e3,dn(M)?B.bitrate=M:M=0;break;case"DATERANGE":{const ge=new Ka(Ae,m),je=new FEe(ge,m.dateRanges[ge.ID],m.dateRangeTagCount);m.dateRangeTagCount++,je.isValid||m.skippedSegments?m.dateRanges[je.id]=je:Us.warn(`Ignoring invalid DATERANGE tag: "${Ae}"`),B.tagList.push(["EXT-X-DATERANGE",Ae]);break}case"DEFINE":{{const ge=new Ka(Ae,m);"IMPORT"in ge?UNt(m,ge,c):Xoe(m,ge,r)}break}case"DISCONTINUITY-SEQUENCE":m.startCC!==0?Qp(m,Oe,V):x.length>0&&cle(m,Oe,V),m.startCC=L=parseInt(Ae);break;case"KEY":{const ge=nle(Ae,r,m);if(ge.isSupported()){if(ge.method==="NONE"){W=void 0;break}W||(W={});const je=W[ge.keyFormat];je!=null&&je.matches(ge)||(je&&(W=Xs({},W)),W[ge.keyFormat]=ge)}else Us.warn(`[Keys] Ignoring unsupported EXT-X-KEY tag: "${Ae}"`);break}case"START":m.startTimeOffset=ile(Ae);break;case"MAP":{const ge=new Ka(Ae,m);if(B.duration){const je=new Yz(i,f);ole(je,ge,n,W),T=je,B.initSegment=T,T.rawProgramDateTime&&!B.rawProgramDateTime&&(B.rawProgramDateTime=T.rawProgramDateTime)}else{const je=B.byteRangeEndOffset;if(je){const _e=B.byteRangeStartOffset;se=`${je-_e}@${_e}`}else se=null;ole(B,ge,n,W),T=B,Q=!0}T.cc=L;break}case"SERVER-CONTROL":{ie&&Qp(m,Oe,V),ie=new Ka(Ae),m.canBlockReload=ie.bool("CAN-BLOCK-RELOAD"),m.canSkipUntil=ie.optionalFloat("CAN-SKIP-UNTIL",0),m.canSkipDateRanges=m.canSkipUntil>0&&ie.bool("CAN-SKIP-DATERANGES"),m.partHoldBack=ie.optionalFloat("PART-HOLD-BACK",0),m.holdBack=ie.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{m.partTarget&&Qp(m,Oe,V);const ge=new Ka(Ae);m.partTarget=ge.decimalFloatingPoint("PART-TARGET");break}case"PART":{let ge=m.partList;ge||(ge=m.partList=[]);const je=C>0?ge[ge.length-1]:void 0,_e=C++,xe=new Ka(Ae,m),Pe=new UPt(xe,B,f,_e,je);ge.push(Pe),B.duration+=Pe.duration;break}case"PRELOAD-HINT":{const ge=new Ka(Ae,m);m.preloadHint=ge;break}case"RENDITION-REPORT":{const ge=new Ka(Ae,m);m.renditionReports=m.renditionReports||[],m.renditionReports.push(ge);break}default:Us.warn(`line parsed but not handled: ${V}`);break}}}D&&!D.relurl?(x.pop(),N-=D.duration,m.partList&&(m.fragmentHint=D)):m.partList&&(q8(B,D,_),B.cc=L,m.fragmentHint=B,W&&lle(B,W,m)),m.targetduration||(m.playlistParsingError=new Error("Missing Target Duration"));const ue=x.length,be=x[0],Te=x[ue-1];if(N+=m.skippedSegments*m.targetduration,N>0&&ue&&Te){m.averagetargetduration=N/ue;const we=Te.sn;m.endSN=we!=="initSegment"?we:0,m.live||(Te.endList=!0),Z>0&&(iRt(x,Z),be&&_.unshift(be))}return m.fragmentHint&&(N+=m.fragmentHint.duration),m.totalduration=N,_.length&&m.dateRangeTagCount&&be&&VEe(_,m),m.endCC=L,m}}function VEe(t,e){let r=t.length;if(!r)if(e.hasProgramDateTime){const s=e.fragments[e.fragments.length-1];t.push(s),r++}else return;const n=t[r-1],i=e.live?1/0:e.totalduration,a=Object.keys(e.dateRanges);for(let s=a.length;s--;){const f=e.dateRanges[a[s]],m=f.startDate.getTime();f.tagAnchor=n.ref;for(let x=r;x--;){var c;if(((c=t[x])==null?void 0:c.sn)=s||n===0){var c;const f=(((c=r[n+1])==null?void 0:c.start)||i)-a.start;if(e<=s+f*1e3){const m=r[n].sn-t.startSN;if(m<0)return-1;const x=t.fragments;if(x.length>r.length){const T=(r[n+1]||x[x.length-1]).sn-t.startSN;for(let E=T;E>m;E--){const C=x[E].programDateTime;if(e>=C&&en);["video","audio","text"].forEach(n=>{const i=r.filter(a=>dW(a,n));i.length&&(e[`${n}Codec`]=i.map(a=>a.split("/")[0]).join(","),r=r.filter(a=>i.indexOf(a)===-1))}),e.unknownCodecs=r}function ale(t,e,r){const n=e[r];n&&(t[r]=n)}function iRt(t,e){let r=t[e];for(let n=e;n--;){const i=t[n];if(!i)return;i.programDateTime=r.programDateTime-i.duration*1e3,r=i}}function q8(t,e,r){t.rawProgramDateTime?r.push(t):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime)}function ole(t,e,r,n){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=r,t.sn="initSegment",n&&(t.levelkeys=n),t.initSegment=null}function lle(t,e,r){t.levelkeys=e;const{encryptedFragments:n}=r;(!n.length||n[n.length-1].levelkeys!==e)&&Object.keys(e).some(i=>e[i].isCommonEncryption)&&n.push(t)}function Qp(t,e,r){t.playlistParsingError=new Error(`#EXT-X-${e} must not appear more than once (${r[0]})`)}function cle(t,e,r){t.playlistParsingError=new Error(`#EXT-X-${e} must appear before the first Media Segment (${r[0]})`)}function e$(t,e){const r=e.startPTS;if(dn(r)){let n=0,i;e.sn>t.sn?(n=r-t.start,i=t):(n=t.start-r,i=e),i.duration!==n&&i.setDuration(n)}else e.sn>t.sn?t.cc===e.cc&&t.minEndPTS?e.setStart(t.start+(t.minEndPTS-t.start)):e.setStart(t.start+t.duration):e.setStart(Math.max(t.start-e.duration,0))}function qEe(t,e,r,n,i,a,c){n-r<=0&&(c.warn("Fragment should have a positive duration",e),n=r+e.duration,a=i+e.duration);let f=r,m=n;const x=e.startPTS,_=e.endPTS;if(dn(x)){const M=Math.abs(x-r);t&&M>t.totalduration?c.warn(`media timestamps and playlist times differ by ${M}s for level ${e.level} ${t.url}`):dn(e.deltaPTS)?e.deltaPTS=Math.max(M,e.deltaPTS):e.deltaPTS=M,f=Math.max(r,x),r=Math.min(r,x),i=e.startDTS!==void 0?Math.min(i,e.startDTS):i,m=Math.min(n,_),n=Math.max(n,_),a=e.endDTS!==void 0?Math.max(a,e.endDTS):a}const T=r-e.start;e.start!==0&&e.setStart(r),e.setDuration(n-e.start),e.startPTS=r,e.maxStartPTS=f,e.startDTS=i,e.endPTS=n,e.minEndPTS=m,e.endDTS=a;const E=e.sn;if(!t||Et.endSN)return 0;let C;const N=E-t.startSN,L=t.fragments;for(L[N]=e,C=N;C>0;C--)e$(L[C],L[C-1]);for(C=N;C=0;x--){const _=i[x].initSegment;if(_){n=_;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let a;lRt(t,e,(x,_,T,E)=>{if((!e.startCC||e.skippedSegments)&&_.cc!==x.cc){const C=x.cc-_.cc;for(let N=T;N{var _;x&&(!x.initSegment||x.initSegment.relurl===((_=n)==null?void 0:_.relurl))&&(x.initSegment=n)}),e.skippedSegments){if(e.deltaUpdateFailed=c.some(x=>!x),e.deltaUpdateFailed){r.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let x=e.skippedSegments;x--;)c.shift();e.startSN=c[0].sn}else{e.canSkipDateRanges&&(e.dateRanges=aRt(t.dateRanges,e,r));const x=t.fragments.filter(_=>_.rawProgramDateTime);if(t.hasProgramDateTime&&!e.hasProgramDateTime)for(let _=1;_{_.elementaryStreams=x.elementaryStreams,_.stats=x.stats}),a?qEe(e,a,a.startPTS,a.endPTS,a.startDTS,a.endDTS,r):GEe(t,e),c.length&&(e.totalduration=e.edge-c[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;const m=e.advancedDateTime;if(e.advanced&&m){const x=e.edge;e.driftStart||(e.driftStartTime=m,e.driftStart=x),e.driftEndTime=m,e.driftEnd=x}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime;e.requestScheduled===-1&&(e.requestScheduled=t.requestScheduled)}function aRt(t,e,r){const{dateRanges:n,recentlyRemovedDateranges:i}=e,a=Xs({},t);i&&i.forEach(f=>{delete a[f]});const s=Object.keys(a).length;return s?(Object.keys(n).forEach(f=>{const m=a[f],x=new FEe(n[f].attr,m);x.isValid?(a[f]=x,m||(x.tagOrder+=s)):r.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${ia(n[f].attr)}"`)}),a):n}function oRt(t,e,r){if(t&&e){let n=0;for(let i=0,a=t.length;i<=a;i++){const c=t[i],s=e[i+n];c&&s&&c.index===s.index&&c.fragment.sn===s.fragment.sn?r(c,s):n--}}}function lRt(t,e,r){const n=e.skippedSegments,i=Math.max(t.startSN,e.startSN)-e.startSN,a=(t.fragmentHint?1:0)+(n?e.endSN:Math.min(t.endSN,e.endSN))-e.startSN,c=e.startSN-t.startSN,s=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,f=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments;for(let m=i;m<=a;m++){const x=f[c+m];let _=s[m];if(n&&!_&&x&&(_=e.fragments[m]=x),x&&_){r(x,_,m,s);const T=x.relurl,E=_.relurl;if(T&&cRt(T,E)){e.playlistParsingError=ule(`media sequence mismatch ${_.sn}:`,t,e,x,_);return}else if(x.cc!==_.cc){e.playlistParsingError=ule(`discontinuity sequence mismatch (${x.cc}!=${_.cc})`,t,e,x,_);return}}}}function ule(t,e,r,n,i){return new Error(`${t} ${i.url} Playlist starting @${e.startSN} ${e.m3u8} Playlist starting @${r.startSN} ${r.m3u8}`)}function GEe(t,e,r=!0){const n=e.startSN+e.skippedSegments-t.startSN,i=t.fragments,a=n>=0;let c=0;if(a&&ne){const a=n[n.length-1].duration*1e3;a{var n;(n=e.details)==null||n.fragments.forEach(i=>{i.level=r,i.initSegment&&(i.initSegment.level=r)})})}function cRt(t,e){return t!==e&&e?hle(t)!==hle(e):!1}function hle(t){return t.replace(/\?[^?]*$/,"")}function EA(t,e){for(let n=0,i=t.length;nt.startCC)}function fle(t,e){const r=t.start+e;t.startPTS=r,t.setStart(r),t.endPTS=r+t.duration}function ZEe(t,e){const r=e.fragments;for(let n=0,i=r.length;n{const{config:c,fragCurrent:s,media:f,mediaBuffer:m,state:x}=this,_=f?f.currentTime:0,T=yi.bufferInfo(m||f,_,c.maxBufferHole),E=!T.len;if(this.log(`Media seeking to ${dn(_)?_.toFixed(3):_}, state: ${x}, ${E?"out of":"in"} buffer`),this.state===vr.ENDED)this.resetLoadingState();else if(s){const C=c.maxFragLookUpTolerance,N=s.start-C,L=s.start+s.duration+C;if(E||LT.end){const M=_>L;(_C&&(this.lastCurrentTime=_),!this.loadingParts){const N=Math.max(T.end,_),L=this.shouldLoadParts(this.getLevelDetails(),N);L&&(this.log(`LL-Part loading ON after seeking to ${_.toFixed(2)} with buffer @${N.toFixed(2)}`),this.loadingParts=L)}}this.hls.hasEnoughToStart||(this.log(`Setting ${E?"startPosition":"nextLoadPosition"} to ${_} for seek without enough to start`),this.nextLoadPosition=_,E&&(this.startPosition=_)),E&&this.state===vr.IDLE&&this.tickImmediate()},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=a,this.hls=e,this.fragmentLoader=new zNt(e.config),this.keyLoader=n,this.fragmentTracker=r,this.config=e.config,this.decrypter=new pW(e.config)}registerListeners(){const{hls:e}=this;e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(ke.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){if(this.state===vr.STOPPED)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);const e=this.fragCurrent;e!=null&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=vr.STOPPED}get startPositionValue(){const{nextLoadPosition:e,startPosition:r}=this;return r===-1&&e?e:r}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(e,r){if(r.live||!this.media)return!1;const n=e.end||0,i=this.config.timelineOffset||0;if(n<=i)return!1;const a=e.buffered;this.config.maxBufferHole&&a&&a.length>1&&(e=yi.bufferedInfo(a,e.start,0));const c=e.nextStart;if(c&&c>i&&c{const c=a.frag;if(this.fragContextChanged(c)){this.warn(`${c.type} sn: ${c.sn}${a.part?" part: "+a.part.index:""} of ${this.fragInfo(c,!1,a.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(c);return}c.stats.chunkCount++,this._handleFragmentLoadProgress(a)};this._doFragLoad(e,r,n,i).then(a=>{if(!a)return;const c=this.state,s=a.frag;if(this.fragContextChanged(s)){(c===vr.FRAG_LOADING||!this.fragCurrent&&c===vr.PARSING)&&(this.fragmentTracker.removeFragment(s),this.state=vr.IDLE);return}"payload"in a&&(this.log(`Loaded ${s.type} sn: ${s.sn} of ${this.playlistLabel()} ${s.level}`),this.hls.trigger(ke.FRAG_LOADED,a)),this._handleFragmentLoadComplete(a)}).catch(a=>{this.state===vr.STOPPED||this.state===vr.ERROR||(this.warn(`Frag error: ${(a==null?void 0:a.message)||a}`),this.resetFragmentLoading(e))})}clearTrackerIfNeeded(e){var r;const{fragmentTracker:n}=this;if(n.getState(e)===il.APPENDING){const a=e.type,c=this.getFwdBufferInfo(this.mediaBuffer,a),s=Math.max(e.duration,c?c.len:this.config.maxBufferLength),f=this.backtrackFragment;((f?e.sn-f.sn:0)===1||this.reduceMaxBufferLength(s,e.duration))&&n.removeFragment(e)}else((r=this.mediaBuffer)==null?void 0:r.buffered.length)===0?n.removeAllFragments():n.hasParts(e.type)&&(n.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),n.getState(e)===il.PARTIAL&&n.removeFragment(e))}checkLiveUpdate(e){if(e.updated&&!e.live){const r=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:r,part:null,stats:r.stats,id:r.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)}waitForLive(e){const r=e.details;return(r==null?void 0:r.live)&&r.type!=="EVENT"&&(this.levelLastLoaded!==e||r.expired)}flushMainBuffer(e,r,n=null){if(!(e-r))return;const i={startOffset:e,endOffset:r,type:n};this.hls.trigger(ke.BUFFER_FLUSHING,i)}_loadInitSegment(e,r){this._doFragLoad(e,r).then(n=>{const i=n==null?void 0:n.frag;if(!i||this.fragContextChanged(i)||!this.levels)throw new Error("init load aborted");return n}).then(n=>{const{hls:i}=this,{frag:a,payload:c}=n,s=a.decryptdata;if(c&&c.byteLength>0&&s!=null&&s.key&&s.iv&&Bw(s.method)){const f=self.performance.now();return this.decrypter.decrypt(new Uint8Array(c),s.key.buffer,s.iv.buffer,gW(s.method)).catch(m=>{throw i.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_DECRYPT_ERROR,fatal:!1,error:m,reason:m.message,frag:a}),m}).then(m=>{const x=self.performance.now();return i.trigger(ke.FRAG_DECRYPTED,{frag:a,payload:m,stats:{tstart:f,tdecrypt:x}}),n.payload=m,this.completeInitSegmentLoad(n)})}return this.completeInitSegmentLoad(n)}).catch(n=>{this.state===vr.STOPPED||this.state===vr.ERROR||(this.warn(n),this.resetFragmentLoading(e))})}completeInitSegmentLoad(e){const{levels:r}=this;if(!r)throw new Error("init load aborted, missing levels");const n=e.frag.stats;this.state!==vr.STOPPED&&(this.state=vr.IDLE),e.frag.data=new Uint8Array(e.payload),n.parsing.start=n.buffering.start=self.performance.now(),n.parsing.end=n.buffering.end=self.performance.now(),this.tick()}unhandledEncryptionError(e,r){var n,i;const a=e.tracks;if(a&&!r.encrypted&&((n=a.audio)!=null&&n.encrypted||(i=a.video)!=null&&i.encrypted)&&(!this.config.emeEnabled||!this.keyLoader.emeController)){const c=this.media,s=new Error(`Encrypted track with no key in ${this.fragInfo(r)} (media ${c?"attached mediaKeys: "+c.mediaKeys:"detached"})`);return this.warn(s.message),!c||c.mediaKeys?!1:(this.hls.trigger(ke.ERROR,{type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_NO_KEYS,fatal:!1,error:s,frag:r}),this.resetTransmuxer(),!0)}return!1}fragContextChanged(e){const{fragCurrent:r}=this;return!e||!r||e.sn!==r.sn||e.level!==r.level}fragBufferedComplete(e,r){const n=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${e.type} sn: ${e.sn}${r?" part: "+r.index:""} of ${this.fragInfo(e,!1,r)} > buffer:${n?hRt.toString(yi.getBuffered(n)):"(detached)"})`),To(e)){var i;if(e.type!==_n.SUBTITLE){const c=e.elementaryStreams;if(!Object.keys(c).some(s=>!!c[s])){this.state=vr.IDLE;return}}const a=(i=this.levels)==null?void 0:i[e.level];a!=null&&a.fragmentError&&(this.log(`Resetting level fragment error count of ${a.fragmentError} on frag buffered`),a.fragmentError=0)}this.state=vr.IDLE}_handleFragmentLoadComplete(e){const{transmuxer:r}=this;if(!r)return;const{frag:n,part:i,partsLoaded:a}=e,c=!a||a.length===0||a.some(f=>!f),s=new mW(n.level,n.sn,n.stats.chunkCount+1,0,i?i.index:-1,!c);r.flush(s)}_handleFragmentLoadProgress(e){}_doFragLoad(e,r,n=null,i){var a;this.fragCurrent=e;const c=r.details;if(!this.levels||!c)throw new Error(`frag load aborted, missing level${c?"":" detail"}s`);let s=null;if(e.encrypted&&!((a=e.decryptdata)!=null&&a.key)){if(this.log(`Loading key for ${e.sn} of [${c.startSN}-${c.endSN}], ${this.playlistLabel()} ${e.level}`),this.state=vr.KEY_LOADING,this.fragCurrent=e,s=this.keyLoader.load(e).then(T=>{if(!this.fragContextChanged(T.frag))return this.hls.trigger(ke.KEY_LOADED,T),this.state===vr.KEY_LOADING&&(this.state=vr.IDLE),T}),this.hls.trigger(ke.KEY_LOADING,{frag:e}),this.fragCurrent===null)return this.log("context changed in KEY_LOADING"),Promise.resolve(null)}else e.encrypted||(s=this.keyLoader.loadClear(e,c.encryptedFragments,this.startFragRequested),s&&this.log("[eme] blocking frag load until media-keys acquired"));const f=this.fragPrevious;if(To(e)&&(!f||e.sn!==f.sn)){const T=this.shouldLoadParts(r.details,e.end);T!==this.loadingParts&&(this.log(`LL-Part loading ${T?"ON":"OFF"} loading sn ${f==null?void 0:f.sn}->${e.sn}`),this.loadingParts=T)}if(n=Math.max(e.start,n||0),this.loadingParts&&To(e)){const T=c.partList;if(T&&i){n>c.fragmentEnd&&c.fragmentHint&&(e=c.fragmentHint);const E=this.getNextPart(T,e,n);if(E>-1){const C=T[E];e=this.fragCurrent=C.fragment,this.log(`Loading ${e.type} sn: ${e.sn} part: ${C.index} (${E}/${T.length-1}) of ${this.fragInfo(e,!1,C)}) cc: ${e.cc} [${c.startSN}-${c.endSN}], target: ${parseFloat(n.toFixed(3))}`),this.nextLoadPosition=C.start+C.duration,this.state=vr.FRAG_LOADING;let N;return s?N=s.then(L=>!L||this.fragContextChanged(L.frag)?null:this.doFragPartsLoad(e,C,r,i)).catch(L=>this.handleFragLoadError(L)):N=this.doFragPartsLoad(e,C,r,i).catch(L=>this.handleFragLoadError(L)),this.hls.trigger(ke.FRAG_LOADING,{frag:e,part:C,targetBufferTime:n}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):N}else if(!e.url||this.loadedEndOfParts(T,n))return Promise.resolve(null)}}if(To(e)&&this.loadingParts){var m;this.log(`LL-Part loading OFF after next part miss @${n.toFixed(2)} Check buffer at sn: ${e.sn} loaded parts: ${(m=c.partList)==null?void 0:m.filter(T=>T.loaded).map(T=>`[${T.start}-${T.end}]`)}`),this.loadingParts=!1}else if(!e.url)return Promise.resolve(null);this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e,!1)}) cc: ${e.cc} ${"["+c.startSN+"-"+c.endSN+"]"}, target: ${parseFloat(n.toFixed(3))}`),dn(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=vr.FRAG_LOADING;const x=this.config.progressive&&e.type!==_n.SUBTITLE;let _;return x&&s?_=s.then(T=>!T||this.fragContextChanged(T.frag)?null:this.fragmentLoader.load(e,i)).catch(T=>this.handleFragLoadError(T)):_=Promise.all([this.fragmentLoader.load(e,x?i:void 0),s]).then(([T])=>(!x&&i&&i(T),T)).catch(T=>this.handleFragLoadError(T)),this.hls.trigger(ke.FRAG_LOADING,{frag:e,targetBufferTime:n}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):_}doFragPartsLoad(e,r,n,i){return new Promise((a,c)=>{var s;const f=[],m=(s=n.details)==null?void 0:s.partList,x=_=>{this.fragmentLoader.loadPart(e,_,i).then(T=>{f[_.index]=T;const E=T.part;this.hls.trigger(ke.FRAG_LOADED,T);const C=dle(n.details,e.sn,_.index+1)||KEe(m,e.sn,_.index+1);if(C)x(C);else return a({frag:e,part:E,partsLoaded:f})}).catch(c)};x(r)})}handleFragLoadError(e){if("data"in e){const r=e.data;r.frag&&r.details===Zt.INTERNAL_ABORTED?this.handleFragLoadAborted(r.frag,r.part):r.frag&&r.type===jn.KEY_SYSTEM_ERROR?(r.frag.abortRequests(),this.resetStartWhenNotLoaded(),this.resetFragmentLoading(r.frag)):this.hls.trigger(ke.ERROR,r)}else this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}_handleTransmuxerFlush(e){const r=this.getCurrentContext(e);if(!r||this.state!==vr.PARSING){!this.fragCurrent&&this.state!==vr.STOPPED&&this.state!==vr.ERROR&&(this.state=vr.IDLE);return}const{frag:n,part:i,level:a}=r,c=self.performance.now();n.stats.parsing.end=c,i&&(i.stats.parsing.end=c);const s=this.getLevelDetails(),m=s&&n.sn>s.endSN||this.shouldLoadParts(s,n.end);m!==this.loadingParts&&(this.log(`LL-Part loading ${m?"ON":"OFF"} after parsing segment ending @${n.end.toFixed(2)}`),this.loadingParts=m),this.updateLevelTiming(n,i,a,e.partial)}shouldLoadParts(e,r){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(e.partList){var n;const a=e.partList[0];if(a.fragment.type===_n.SUBTITLE)return!1;const c=a.end+(((n=e.fragmentHint)==null?void 0:n.duration)||0);if(r>=c){var i;if((this.hls.hasEnoughToStart?((i=this.media)==null?void 0:i.currentTime)||this.lastCurrentTime:this.getLoadPosition())>a.start-a.fragment.duration)return!0}}}return!1}getCurrentContext(e){const{levels:r,fragCurrent:n}=this,{level:i,sn:a,part:c}=e;if(!(r!=null&&r[i]))return this.warn(`Levels object was unset while buffering fragment ${a} of ${this.playlistLabel()} ${i}. The current chunk will not be buffered.`),null;const s=r[i],f=s.details,m=c>-1?dle(f,a,c):null,x=m?m.fragment:WEe(f,a,n);return x?(n&&n!==x&&(x.stats=n.stats),{frag:x,part:m,level:s}):null}bufferFragmentData(e,r,n,i,a){if(this.state!==vr.PARSING)return;const{data1:c,data2:s}=e;let f=c;if(s&&(f=eh(c,s)),!f.length)return;const m=this.initPTS[r.cc],x=m?-m.baseTime/m.timescale:void 0,_={type:e.type,frag:r,part:n,chunkMeta:i,offset:x,parent:r.type,data:f};if(this.hls.trigger(ke.BUFFER_APPENDING,_),e.dropped&&e.independent&&!n){if(a)return;this.flushBufferGap(r)}}flushBufferGap(e){const r=this.media;if(!r)return;if(!yi.isBuffered(r,r.currentTime)){this.flushMainBuffer(0,e.start);return}const n=r.currentTime,i=yi.bufferInfo(r,n,0),a=e.duration,c=Math.min(this.config.maxFragLookUpTolerance*2,a*.25),s=Math.max(Math.min(e.start-c,i.end-c),n+c);e.start-s>c&&this.flushMainBuffer(s,e.start)}getFwdBufferInfo(e,r){var n;const i=this.getLoadPosition();if(!dn(i))return null;const c=this.lastCurrentTime>i||(n=this.media)!=null&&n.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,i,r,c)}getFwdBufferInfoAtPos(e,r,n,i){const a=yi.bufferInfo(e,r,i);if(a.len===0&&a.nextStart!==void 0){const c=this.fragmentTracker.getBufferedFrag(r,n);if(c&&(a.nextStart<=c.end||c.gap)){const s=Math.max(Math.min(a.nextStart,c.end)-r,i);return yi.bufferInfo(e,r,s)}}return a}getMaxBufferLength(e){const{config:r}=this;let n;return e?n=Math.max(8*r.maxBufferSize/e,r.maxBufferLength):n=r.maxBufferLength,Math.min(n,r.maxMaxBufferLength)}exceedsMaxBuffer(e,r,n){const i=e.nextStart;if(i&&n.start>i){const a=e.buffered;if(a){let c=e.len;const s=e.bufferedIndex;for(let f=a.length-1;f>s;f--)a[f].start=r}}return!1}reduceMaxBufferLength(e,r){const n=this.config,i=Math.max(Math.min(e-r,n.maxBufferLength),r),a=Math.max(e-r*3,n.maxMaxBufferLength/2,i);return a>=i?(n.maxMaxBufferLength=a,this.warn(`Reduce max buffer length to ${a}s`),!0):!1}getAppendedFrag(e,r=_n.MAIN){const n=this.fragmentTracker?this.fragmentTracker.getAppendedFrag(e,r):null;return n&&"fragment"in n?n.fragment:n}getNextFragment(e,r){const n=r.fragments,i=n.length;if(!i)return null;const{config:a}=this,c=r.fragmentStart,s=a.lowLatencyMode&&!!r.partList;let f=null;if(r.live){const _=a.initialLiveManifestSize;if(i<_)return this.warn(`Not enough fragments to start playback (have: ${i}, need: ${_})`),null;if(!r.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||e=c?(L=E,M=E===T?"config":"next load start"):C!==null?(L=C,M="live edge"):(L=e,M="buffer pos"),L=a){const f=c.sn;return this.loopSn!==f&&(this.log(`buffer full after gaps in "${i}" playlist starting at sn: ${f}`),this.loopSn=f),null}}return this.loopSn=void 0,c}get primaryPrefetch(){if(ple(this.config)){var e;if((e=this.hls.interstitialsManager)==null||(e=e.playingItem)==null?void 0:e.event)return!0}return!1}filterReplacedPrimary(e,r){if(!e)return e;if(ple(this.config)&&e.type!==_n.SUBTITLE){const n=this.hls.interstitialsManager,i=n==null?void 0:n.bufferingItem;if(i){const c=i.event;if(c){if(c.appendInPlace||Math.abs(e.start-i.start)>1||i.start===0)return null}else if(e.end<=i.start&&(r==null?void 0:r.live)===!1||e.start>i.end&&i.nextEvent&&(i.nextEvent.appendInPlace||e.start-i.end>1))return null}const a=n==null?void 0:n.playerQueue;if(a)for(let c=a.length;c--;){const s=a[c].interstitial;if(s.appendInPlace&&e.start>=s.startTime&&e.end<=s.resumeTime)return null}}return e}mapToInitFragWhenRequired(e){return e!=null&&e.initSegment&&!e.initSegment.data&&!this.bitrateTest?e.initSegment:e}getNextPart(e,r,n){let i=-1,a=!1,c=!0;for(let s=0,f=e.length;s-1&&nn.start)return!0}return!1}getInitialLiveFragment(e){const r=e.fragments,n=this.fragPrevious;let i=null;if(n){if(e.hasProgramDateTime&&(i=CNt(r,n.endProgramDateTime,this.config.maxFragLookUpTolerance),i&&this.log(`Live playlist, switching playlist, load frag with same PDT: ${n.programDateTime}`)),!i){const a=n.sn+1;if(a>=e.startSN&&a<=e.endSN){const c=r[a-e.startSN];n.cc===c.cc&&(i=c,this.log(`Live playlist, switching playlist, load frag with next SN: ${i.sn}`))}i||(i=REe(e,n.cc,n.end),i&&this.log(`Live playlist, switching playlist, load frag with same CC: ${i.sn}`))}}else{const a=this.hls.liveSyncPosition;a!==null&&(i=this.getFragmentAtPosition(a,this.bitrateTest?e.fragmentEnd:e.edge,e))}return i}getFragmentAtPosition(e,r,n){const{config:i}=this;let{fragPrevious:a}=this,{fragments:c,endSN:s}=n;const{fragmentHint:f}=n,{maxFragLookUpTolerance:m}=i,x=n.partList,_=!!(this.loadingParts&&x!=null&&x.length&&f);_&&!this.bitrateTest&&x[x.length-1].fragment.sn===f.sn&&(c=c.concat(f),s=f.sn);let T;if(er-m||(E=this.media)!=null&&E.paused||!this.startFragRequested?0:m;T=L_(a,c,e,N)}else T=c[c.length-1];if(T){const C=T.sn-n.startSN,N=this.fragmentTracker.getState(T);if((N===il.OK||N===il.PARTIAL&&T.gap)&&(a=T),a&&T.sn===a.sn&&(!_||x[0].fragment.sn>T.sn||!n.live)&&T.level===a.level){const M=c[C+1];T.sn${e.startSN} fragments: ${i}`),f}return a}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,e.partTarget*3)}setStartPosition(e,r){let n=this.startPosition;n=0&&(n=this.nextLoadPosition),n}handleFragLoadAborted(e,r){this.transmuxer&&e.type===this.playlistType&&To(e)&&e.stats.aborted&&(this.log(`Fragment ${e.sn}${r?" part "+r.index:""} of ${this.playlistLabel()} ${e.level} was aborted`),this.resetFragmentLoading(e))}resetFragmentLoading(e){(!this.fragCurrent||!this.fragContextChanged(e)&&this.state!==vr.FRAG_LOADING_WAITING_RETRY)&&(this.state=vr.IDLE)}onFragmentOrKeyLoadError(e,r){var n;if(r.chunkMeta&&!r.frag){const M=this.getCurrentContext(r.chunkMeta);M&&(r.frag=M.frag)}const i=r.frag;if(!i||i.type!==e||!this.levels)return;if(this.fragContextChanged(i)){var a;this.warn(`Frag load error must match current frag to retry ${i.url} > ${(a=this.fragCurrent)==null?void 0:a.url}`);return}const c=r.details===Zt.FRAG_GAP;c&&this.fragmentTracker.fragBuffered(i,!0);const s=r.errorAction;if(!s){this.state=vr.ERROR;return}const{action:f,flags:m,retryCount:x=0,retryConfig:_}=s,T=!!_,E=T&&f===Bl.RetryRequest,C=T&&!s.resolved&&m===Vu.MoveAllAlternatesMatchingHost,N=(n=this.hls.latestLevelDetails)==null?void 0:n.live;if(!E&&C&&To(i)&&!i.endList&&N&&!DEe(r))this.resetFragmentErrors(e),this.treatAsGap(i),s.resolved=!0;else if((E||C)&&x<_.maxNumRetry){var L;const M=$8((L=r.response)==null?void 0:L.code),D=fW(_,x);if(this.resetStartWhenNotLoaded(),this.retryDate=self.performance.now()+D,this.state=vr.FRAG_LOADING_WAITING_RETRY,s.resolved=!0,M){this.log("Waiting for connection (offline)"),this.retryDate=1/0,r.reason="offline";return}this.warn(`Fragment ${i.sn} of ${e} ${i.level} errored with ${r.details}, retrying loading ${x+1}/${_.maxNumRetry} in ${D}ms`)}else if(_)if(this.resetFragmentErrors(e),x<_.maxNumRetry)!c&&f!==Bl.RemoveAlternatePermanently&&(s.resolved=!0);else{this.warn(`${r.details} reached or exceeded max retry (${x})`);return}else f===Bl.SendAlternateToPenaltyBox?this.state=vr.WAITING_LEVEL:this.state=vr.ERROR;this.tickImmediate()}checkRetryDate(){const e=self.performance.now(),r=this.retryDate,n=r===1/0;(!r||e>=r||n&&!$8(0))&&(n&&this.log("Connection restored (online)"),this.resetStartWhenNotLoaded(),this.state=vr.IDLE)}reduceLengthAndFlushBuffer(e){if(this.state===vr.PARSING||this.state===vr.PARSED){const r=e.frag,n=e.parent,i=this.getFwdBufferInfo(this.mediaBuffer,n),a=i&&i.len>.5;a&&this.reduceMaxBufferLength(i.len,(r==null?void 0:r.duration)||10);const c=!a;return c&&this.warn(`Buffer full error while media.currentTime (${this.getLoadPosition()}) is not buffered, flush ${n} buffer`),r&&(this.fragmentTracker.removeFragment(r),this.nextLoadPosition=r.start),this.resetLoadingState(),c}return!1}resetFragmentErrors(e){e===_n.AUDIO&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==vr.STOPPED&&(this.state=vr.IDLE)}afterBufferFlushed(e,r,n){if(!e)return;const i=yi.getBuffered(e);this.fragmentTracker.detectEvictedFragments(r,i,n),this.state===vr.ENDED&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==vr.STOPPED&&(this.state=vr.IDLE)}resetStartWhenNotLoaded(){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;const e=this.levelLastLoaded,r=e?e.details:null;r!=null&&r.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(r,r.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(e){this.log(`Loading context changed while buffering sn ${e.sn} of ${this.playlistLabel()} ${e.level===-1?"":e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(e,r,n,i){const a=n.details;if(!a){this.warn("level.details undefined");return}if(!Object.keys(e.elementaryStreams).reduce((f,m)=>{const x=e.elementaryStreams[m];if(x){const _=x.endPTS-x.startPTS;if(_<=0)return this.warn(`Could not parse fragment ${e.sn} ${m} duration reliably (${_})`),f||!1;const T=i?0:qEe(a,e,x.startPTS,x.endPTS,x.startDTS,x.endDTS,this);return this.hls.trigger(ke.LEVEL_PTS_UPDATED,{details:a,level:n,drift:T,type:m,frag:e,start:x.startPTS,end:x.endPTS}),!0}return f},!1)){var s;const f=((s=this.transmuxer)==null?void 0:s.error)===null;if((n.fragmentError===0||f&&(n.fragmentError<2||e.endList))&&this.treatAsGap(e,n),f){const m=new Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(m.message),this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_PARSING_ERROR,fatal:!1,error:m,frag:e,reason:`Found no media in msn ${e.sn} of ${this.playlistLabel()} "${n.url}"`}),!this.hls)return;this.resetTransmuxer()}}this.state=vr.PARSED,this.log(`Parsed ${e.type} sn: ${e.sn}${r?" part: "+r.index:""} of ${this.fragInfo(e,!1,r)})`),this.hls.trigger(ke.FRAG_PARSED,{frag:e,part:r})}playlistLabel(){return this.playlistType===_n.MAIN?"level":"track"}fragInfo(e,r=!0,n){var i,a;return`${this.playlistLabel()} ${e.level} (${n?"part":"frag"}:[${((i=r&&!n?e.startPTS:(n||e).start)!=null?i:NaN).toFixed(3)}-${((a=r&&!n?e.endPTS:(n||e).end)!=null?a:NaN).toFixed(3)}]${n&&e.type==="main"?"INDEPENDENT="+(n.independent?"YES":"NO"):""}`}treatAsGap(e,r){r&&r.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}resetTransmuxer(){var e;(e=this.transmuxer)==null||e.reset()}recoverWorkerError(e){e.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(),this.resetLoadingState())}set state(e){const r=this._state;r!==e&&(this._state=e,this.log(`${r}->${e}`))}get state(){return this._state}}function ple(t){return!!t.interstitialsController&&t.enableInterstitialPlayback!==!1}class QEe{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){const{chunks:e,dataLength:r}=this;let n;if(e.length)e.length===1?n=e[0]:n=fRt(e,r);else return new Uint8Array(0);return this.reset(),n}reset(){this.chunks.length=0,this.dataLength=0}}function fRt(t,e){const r=new Uint8Array(e);let n=0;for(let i=0;i0)return t.subarray(r,r+n)}function vRt(t,e,r,n){const i=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],a=e[r+2],c=a>>2&15;if(c>12){const E=new Error(`invalid ADTS sampling index:${c}`);t.emit(ke.ERROR,ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_PARSING_ERROR,fatal:!0,error:E,reason:E.message});return}const s=(a>>6&3)+1,f=e[r+3]>>6&3|(a&1)<<2,m="mp4a.40."+s,x=i[c];let _=c;(s===5||s===29)&&(_-=3);const T=[s<<3|(_&14)>>1,(_&1)<<7|f<<3];return Us.log(`manifest codec:${n}, parsed codec:${m}, channels:${f}, rate:${x} (ADTS object type:${s} sampling index:${c})`),{config:T,samplerate:x,channelCount:f,codec:m,parsedCodec:m,manifestCodec:n}}function e2e(t,e){return t[e]===255&&(t[e+1]&246)===240}function t2e(t,e){return t[e+1]&1?7:9}function bW(t,e){return(t[e+3]&3)<<11|t[e+4]<<3|(t[e+5]&224)>>>5}function bRt(t,e){return e+5=t.length)return!1;const n=bW(t,e);if(n<=r)return!1;const i=e+n;return i===t.length||SM(t,i)}return!1}function r2e(t,e,r,n,i){if(!t.samplerate){const a=vRt(e,r,n,i);if(!a)return;Xs(t,a)}}function n2e(t){return 1024*9e4/t}function TRt(t,e){const r=t2e(t,e);if(e+r<=t.length){const n=bW(t,e)-r;if(n>0)return{headerLength:r,frameLength:n}}}function i2e(t,e,r,n,i){const a=n2e(t.samplerate),c=n+i*a,s=TRt(e,r);let f;if(s){const{frameLength:_,headerLength:T}=s,E=T+_,C=Math.max(0,r+E-e.length);C?(f=new Uint8Array(E-T),f.set(e.subarray(r+T,e.length),0)):f=e.subarray(r+T,r+E);const N={unit:f,pts:c};return C||t.samples.push(N),{sample:N,length:E,missing:C}}const m=e.length-r;return f=new Uint8Array(m),f.set(e.subarray(r,e.length),0),{sample:{unit:f,pts:c},length:m,missing:-1}}function ERt(t,e){return vW(t,e)&&a3(t,e+6)+10<=t.length-e}function ARt(t){return t instanceof ArrayBuffer?t:t.byteOffset==0&&t.byteLength==t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}function r$(t,e=0,r=1/0){return kRt(t,e,r,Uint8Array)}function kRt(t,e,r,n){const i=CRt(t);let a=1;"BYTES_PER_ELEMENT"in n&&(a=n.BYTES_PER_ELEMENT);const c=IRt(t)?t.byteOffset:0,s=(c+t.byteLength)/a,f=(c+e)/a,m=Math.floor(Math.max(0,Math.min(f,s))),x=Math.floor(Math.min(m+Math.max(r,0),s));return new n(i,m,x-m)}function CRt(t){return t instanceof ArrayBuffer?t:t.buffer}function IRt(t){return t&&t.buffer instanceof ArrayBuffer&&t.byteLength!==void 0&&t.byteOffset!==void 0}function jRt(t){const e={key:t.type,description:"",data:"",mimeType:null,pictureType:null},r=3;if(t.size<2)return;if(t.data[0]!==r){console.log("Ignore frame with unrecognized character encoding");return}const n=t.data.subarray(1).indexOf(0);if(n===-1)return;const i=nd(r$(t.data,1,n)),a=t.data[2+n],c=t.data.subarray(3+n).indexOf(0);if(c===-1)return;const s=nd(r$(t.data,3+n,c));let f;return i==="-->"?f=nd(r$(t.data,4+n+c)):f=ARt(t.data.subarray(4+n+c)),e.mimeType=i,e.pictureType=a,e.description=s,e.data=f,e}function PRt(t){if(t.size<2)return;const e=nd(t.data,!0),r=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:r.buffer}}function NRt(t){if(t.size<2)return;if(t.type==="TXXX"){let r=1;const n=nd(t.data.subarray(r),!0);r+=n.length+1;const i=nd(t.data.subarray(r));return{key:t.type,info:n,data:i}}const e=nd(t.data.subarray(1));return{key:t.type,info:"",data:e}}function RRt(t){if(t.type==="WXXX"){if(t.size<2)return;let r=1;const n=nd(t.data.subarray(r),!0);r+=n.length+1;const i=nd(t.data.subarray(r));return{key:t.type,info:n,data:i}}const e=nd(t.data);return{key:t.type,info:"",data:e}}function LRt(t){return t.type==="PRIV"?PRt(t):t.type[0]==="W"?RRt(t):t.type==="APIC"?jRt(t):NRt(t)}function DRt(t){const e=String.fromCharCode(t[0],t[1],t[2],t[3]),r=a3(t,4),n=10;return{type:e,size:r,data:t.subarray(n,n+r)}}const HN=10,MRt=10;function s2e(t){let e=0;const r=[];for(;vW(t,e);){const n=a3(t,e+6);t[e+5]>>6&1&&(e+=HN),e+=HN;const i=e+n;for(;e+MRt0&&s.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:Yu.audioId3,duration:Number.POSITIVE_INFINITY});i{if(dn(t))return t*90;const n=r?r.baseTime*9e4/r.timescale:0;return e*9e4+n};let WN=null;const BRt=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],zRt=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],$Rt=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],URt=[0,1,1,4];function o2e(t,e,r,n,i){if(r+24>e.length)return;const a=l2e(e,r);if(a&&r+a.frameLength<=e.length){const c=a.samplesPerFrame*9e4/a.sampleRate,s=n+i*c,f={unit:e.subarray(r,r+a.frameLength),pts:s,dts:s};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(f),{sample:f,length:a.frameLength,missing:0}}}function l2e(t,e){const r=t[e+1]>>3&3,n=t[e+1]>>1&3,i=t[e+2]>>4&15,a=t[e+2]>>2&3;if(r!==1&&i!==0&&i!==15&&a!==3){const c=t[e+2]>>1&1,s=t[e+3]>>6,f=r===3?3-n:n===3?3:4,m=BRt[f*14+i-1]*1e3,_=zRt[(r===3?0:r===2?1:2)*3+a],T=s===3?1:2,E=$Rt[r][n],C=URt[n],N=E*8*C,L=Math.floor(E*m/_+c)*C;if(WN===null){const B=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);WN=B?parseInt(B[1]):0}return!!WN&&WN<=87&&n===2&&m>=224e3&&s===0&&(t[e+3]=t[e+3]|128),{sampleRate:_,channelCount:T,frameLength:L,samplesPerFrame:N}}}function TW(t,e){return t[e]===255&&(t[e+1]&224)===224&&(t[e+1]&6)!==0}function c2e(t,e){return e+1{let r=0,n=5;e+=n;const i=new Uint32Array(1),a=new Uint32Array(1),c=new Uint8Array(1);for(;n>0;){c[0]=t[e];const s=Math.min(n,8),f=8-s;a[0]=4278190080>>>24+f<>f,r=r?r<e.length||e[r]!==11||e[r+1]!==119)return-1;const a=e[r+4]>>6;if(a>=3)return-1;const s=[48e3,44100,32e3][a],f=e[r+4]&63,x=[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][f*3+a]*2;if(r+x>e.length)return-1;const _=e[r+6]>>5;let T=0;_===2?T+=2:(_&1&&_!==1&&(T+=2),_&4&&(T+=2));const E=(e[r+6]<<8|e[r+7])>>12-T&1,N=[2,1,2,3,3,4,4,5][_]+E,L=e[r+5]>>3,M=e[r+5]&7,D=new Uint8Array([a<<6|L<<1|M>>2,(M&3)<<6|_<<3|E<<2|f>>4,f<<4&224]),B=1536/s*9e4,V=n+i*B,G=e.subarray(r,r+x);return t.config=D,t.channelCount=N,t.samplerate=s,t.samples.push({unit:G,pts:V}),x}class HRt extends SW{resetInitSegment(e,r,n,i){super.resetInitSegment(e,r,n,i),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:r,duration:i,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;const r=sC(e,0);let n=(r==null?void 0:r.length)||0;if(r&&e[n]===11&&e[n+1]===119&&wW(r)!==void 0&&d2e(e,n)<=16)return!1;for(let i=e.length;n{const c=eNt(a);if(WRt.test(c.schemeIdUri)){const s=gle(c,r);let f=c.eventDuration===4294967295?Number.POSITIVE_INFINITY:c.eventDuration/c.timeScale;f<=.001&&(f=Number.POSITIVE_INFINITY);const m=c.payload;n.samples.push({data:m,len:m.byteLength,dts:s,pts:s,type:Yu.emsg,duration:f})}else if(this.config.enableEmsgKLVMetadata&&c.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){const s=gle(c,r);n.samples.push({data:c.payload,len:c.payload.byteLength,dts:s,pts:s,type:Yu.misbklv,duration:Number.POSITIVE_INFINITY})}})}return n}demuxSampleAes(e,r,n){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}}function gle(t,e){return dn(t.presentationTime)?t.presentationTime/t.timeScale:e+t.presentationTimeDelta/t.timeScale}class YRt{constructor(e,r,n){this.keyData=void 0,this.decrypter=void 0,this.keyData=n,this.decrypter=new pW(r,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,Zy.cbc)}decryptAacSample(e,r,n){const i=e[r].unit;if(i.length<=16)return;const a=i.subarray(16,i.length-i.length%16),c=a.buffer.slice(a.byteOffset,a.byteOffset+a.length);this.decryptBuffer(c).then(s=>{const f=new Uint8Array(s);i.set(f,16),this.decrypter.isSync()||this.decryptAacSamples(e,r+1,n)}).catch(n)}decryptAacSamples(e,r,n){for(;;r++){if(r>=e.length){n();return}if(!(e[r].unit.length<32)&&(this.decryptAacSample(e,r,n),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){const r=Math.floor((e.length-48)/160)*16+16,n=new Int8Array(r);let i=0;for(let a=32;a{a.data=this.getAvcDecryptedUnit(c,f),this.decrypter.isSync()||this.decryptAvcSamples(e,r,n+1,i)}).catch(i)}decryptAvcSamples(e,r,n,i){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;r++,n=0){if(r>=e.length){i();return}const a=e[r].units;for(;!(n>=a.length);n++){const c=a[n];if(!(c.data.length<=48||c.type!==1&&c.type!==5)&&(this.decryptAvcSample(e,r,n,i,c),!this.decrypter.isSync()))return}}}}class f2e{constructor(){this.VideoSample=null}createVideoSample(e,r,n){return{key:e,frame:!1,pts:r,dts:n,units:[],length:0}}getLastNalUnit(e){var r;let n=this.VideoSample,i;if((!n||n.units.length===0)&&(n=e[e.length-1]),(r=n)!=null&&r.units){const a=n.units;i=a[a.length-1]}return i}pushAccessUnit(e,r){if(e.units.length&&e.frame){if(e.pts===void 0){const n=r.samples,i=n.length;if(i){const a=n[i-1];e.pts=a.pts,e.dts=a.dts}else{r.dropped++;return}}r.samples.push(e)}}parseNALu(e,r,n){const i=r.byteLength;let a=e.naluState||0;const c=a,s=[];let f=0,m,x,_,T=-1,E=0;for(a===-1&&(T=0,E=this.getNALuType(r,0),a=0,f=1);f=0){const C={data:r.subarray(T,x),type:E};s.push(C)}else{const C=this.getLastNalUnit(e.samples);C&&(c&&f<=4-c&&C.state&&(C.data=C.data.subarray(0,C.data.byteLength-c)),x>0&&(C.data=eh(C.data,r.subarray(0,x)),C.state=0))}f=0&&a>=0){const C={data:r.subarray(T,i),type:E,state:a};s.push(C)}if(s.length===0){const C=this.getLastNalUnit(e.samples);C&&(C.data=eh(C.data,r))}return e.naluState=a,s}}class AA{constructor(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){const e=this.data,r=this.bytesAvailable,n=e.byteLength-r,i=new Uint8Array(4),a=Math.min(4,r);if(a===0)throw new Error("no bytes available");i.set(e.subarray(n,n+a)),this.word=new DataView(i.buffer).getUint32(0),this.bitsAvailable=a*8,this.bytesAvailable-=a}skipBits(e){let r;e=Math.min(e,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,r=e>>3,e-=r<<3,this.bytesAvailable-=r,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}readBits(e){let r=Math.min(this.bitsAvailable,e);const n=this.word>>>32-r;if(e>32&&Us.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=r,this.bitsAvailable>0)this.word<<=r;else if(this.bytesAvailable>0)this.loadWord();else throw new Error("no bits available");return r=e-r,r>0&&this.bitsAvailable?n<>>e)return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){const e=this.skipLZ();return this.readBits(e+1)-1}readEG(){const e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}}class ZRt extends f2e{parsePES(e,r,n,i){const a=this.parseNALu(e,n.data,i);let c=this.VideoSample,s,f=!1;n.data=null,c&&a.length&&!e.audFound&&(this.pushAccessUnit(c,e),c=this.VideoSample=this.createVideoSample(!1,n.pts,n.dts)),a.forEach(m=>{var x,_;switch(m.type){case 1:{let N=!1;s=!0;const L=m.data;if(f&&L.length>4){const M=this.readSliceType(L);(M===2||M===4||M===7||M===9)&&(N=!0)}if(N){var T;(T=c)!=null&&T.frame&&!c.key&&(this.pushAccessUnit(c,e),c=this.VideoSample=null)}c||(c=this.VideoSample=this.createVideoSample(!0,n.pts,n.dts)),c.frame=!0,c.key=N;break}case 5:s=!0,(x=c)!=null&&x.frame&&!c.key&&(this.pushAccessUnit(c,e),c=this.VideoSample=null),c||(c=this.VideoSample=this.createVideoSample(!0,n.pts,n.dts)),c.key=!0,c.frame=!0;break;case 6:{s=!0,uW(m.data,1,n.pts,r.samples);break}case 7:{var E,C;s=!0,f=!0;const N=m.data,L=this.readSPS(N);if(!e.sps||e.width!==L.width||e.height!==L.height||((E=e.pixelRatio)==null?void 0:E[0])!==L.pixelRatio[0]||((C=e.pixelRatio)==null?void 0:C[1])!==L.pixelRatio[1]){e.width=L.width,e.height=L.height,e.pixelRatio=L.pixelRatio,e.sps=[N];const M=N.subarray(1,4);let D="avc1.";for(let B=0;B<3;B++){let V=M[B].toString(16);V.length<2&&(V="0"+V),D+=V}e.codec=D}break}case 8:s=!0,e.pps=[m.data];break;case 9:s=!0,e.audFound=!0,(_=c)!=null&&_.frame&&(this.pushAccessUnit(c,e),c=null),c||(c=this.VideoSample=this.createVideoSample(!1,n.pts,n.dts));break;case 12:s=!0;break;default:s=!1;break}c&&s&&c.units.push(m)}),i&&c&&(this.pushAccessUnit(c,e),this.VideoSample=null)}getNALuType(e,r){return e[r]&31}readSliceType(e){const r=new AA(e);return r.readUByte(),r.readUEG(),r.readUEG()}skipScalingList(e,r){let n=8,i=8,a;for(let c=0;c{var x,_;switch(m.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:c||(c=this.VideoSample=this.createVideoSample(!1,n.pts,n.dts)),c.frame=!0,s=!0;break;case 16:case 17:case 18:case 21:if(s=!0,f){var T;(T=c)!=null&&T.frame&&!c.key&&(this.pushAccessUnit(c,e),c=this.VideoSample=null)}c||(c=this.VideoSample=this.createVideoSample(!0,n.pts,n.dts)),c.key=!0,c.frame=!0;break;case 19:case 20:s=!0,(x=c)!=null&&x.frame&&!c.key&&(this.pushAccessUnit(c,e),c=this.VideoSample=null),c||(c=this.VideoSample=this.createVideoSample(!0,n.pts,n.dts)),c.key=!0,c.frame=!0;break;case 39:s=!0,uW(m.data,2,n.pts,r.samples);break;case 32:s=!0,e.vps||(typeof e.params!="object"&&(e.params={}),e.params=Xs(e.params,this.readVPS(m.data)),this.initVPS=m.data),e.vps=[m.data];break;case 33:if(s=!0,f=!0,e.vps!==void 0&&e.vps[0]!==this.initVPS&&e.sps!==void 0&&!this.matchSPS(e.sps[0],m.data)&&(this.initVPS=e.vps[0],e.sps=e.pps=void 0),!e.sps){const E=this.readSPS(m.data);e.width=E.width,e.height=E.height,e.pixelRatio=E.pixelRatio,e.codec=E.codecString,e.sps=[],typeof e.params!="object"&&(e.params={});for(const C in E.params)e.params[C]=E.params[C]}this.pushParameterSet(e.sps,m.data,e.vps),c||(c=this.VideoSample=this.createVideoSample(!0,n.pts,n.dts)),c.key=!0;break;case 34:if(s=!0,typeof e.params=="object"){if(!e.pps){e.pps=[];const E=this.readPPS(m.data);for(const C in E)e.params[C]=E[C]}this.pushParameterSet(e.pps,m.data,e.vps)}break;case 35:s=!0,e.audFound=!0,(_=c)!=null&&_.frame&&(this.pushAccessUnit(c,e),c=null),c||(c=this.VideoSample=this.createVideoSample(!1,n.pts,n.dts));break;default:s=!1;break}c&&s&&c.units.push(m)}),i&&c&&(this.pushAccessUnit(c,e),this.VideoSample=null)}pushParameterSet(e,r,n){(n&&n[0]===this.initVPS||!n&&!e.length)&&e.push(r)}getNALuType(e,r){return(e[r]&126)>>>1}ebsp2rbsp(e){const r=new Uint8Array(e.byteLength);let n=0;for(let i=0;i=2&&e[i]===3&&e[i-1]===0&&e[i-2]===0||(r[n]=e[i],n++);return new Uint8Array(r.buffer,0,n)}pushAccessUnit(e,r){super.pushAccessUnit(e,r),this.initVPS&&(this.initVPS=null)}readVPS(e){const r=new AA(e);r.readUByte(),r.readUByte(),r.readBits(4),r.skipBits(2),r.readBits(6);const n=r.readBits(3),i=r.readBoolean();return{numTemporalLayers:n+1,temporalIdNested:i}}readSPS(e){const r=new AA(this.ebsp2rbsp(e));r.readUByte(),r.readUByte(),r.readBits(4);const n=r.readBits(3);r.readBoolean();const i=r.readBits(2),a=r.readBoolean(),c=r.readBits(5),s=r.readUByte(),f=r.readUByte(),m=r.readUByte(),x=r.readUByte(),_=r.readUByte(),T=r.readUByte(),E=r.readUByte(),C=r.readUByte(),N=r.readUByte(),L=r.readUByte(),M=r.readUByte(),D=[],B=[];for(let or=0;or0)for(let or=n;or<8;or++)r.readBits(2);for(let or=0;or1&&r.readEG();for(let Tt=0;Tt0&&Dt<16?(Pe=cr[Dt-1],Ze=lr[Dt-1]):Dt===255&&(Pe=r.readBits(16),Ze=r.readBits(16))}if(r.readBoolean()&&r.readBoolean(),r.readBoolean()&&(r.readBits(3),r.readBoolean(),r.readBoolean()&&(r.readUByte(),r.readUByte(),r.readUByte())),r.readBoolean()&&(r.readUEG(),r.readUEG()),r.readBoolean(),r.readBoolean(),r.readBoolean(),St=r.readBoolean(),St&&(r.skipUEG(),r.skipUEG(),r.skipUEG(),r.skipUEG()),r.readBoolean()&&(lt=r.readBits(32),xt=r.readBits(32),r.readBoolean()&&r.readUEG(),r.readBoolean())){const lr=r.readBoolean(),ur=r.readBoolean();let Rr=!1;(lr||ur)&&(Rr=r.readBoolean(),Rr&&(r.readUByte(),r.readBits(5),r.readBoolean(),r.readBits(5)),r.readBits(4),r.readBits(4),Rr&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5));for(let Pn=0;Pn<=n;Pn++){at=r.readBoolean();const Yn=at||r.readBoolean();let ki=!1;Yn?r.readEG():ki=r.readBoolean();const wi=ki?1:r.readUEG()+1;if(lr)for(let Ci=0;Ci>or&1)<<31-or)>>>0;let _r=xr.toString(16);return c===1&&_r==="2"&&(_r="6"),{codecString:`hvc1.${er}${c}.${_r}.${a?"H":"L"}${M}.B0`,params:{general_tier_flag:a,general_profile_idc:c,general_profile_space:i,general_profile_compatibility_flags:[s,f,m,x],general_constraint_indicator_flags:[_,T,E,C,N,L],general_level_idc:M,bit_depth:be+8,bit_depth_luma_minus8:be,bit_depth_chroma_minus8:Te,min_spatial_segmentation_idc:xe,chroma_format_idc:V,frame_rate:{fixed:at,fps:xt/lt}},width:_t,height:Rt,pixelRatio:[Pe,Ze]}}readPPS(e){const r=new AA(this.ebsp2rbsp(e));r.readUByte(),r.readUByte(),r.skipUEG(),r.skipUEG(),r.skipBits(2),r.skipBits(3),r.skipBits(2),r.skipUEG(),r.skipUEG(),r.skipEG(),r.skipBits(2),r.readBoolean()&&r.skipUEG(),r.skipEG(),r.skipEG(),r.skipBits(4);const i=r.readBoolean(),a=r.readBoolean();let c=1;return a&&i?c=0:a?c=3:i&&(c=2),{parallelismType:c}}matchSPS(e,r){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,r).substr(3)}}const _l=188;class Qg{constructor(e,r,n,i){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=e,this.config=r,this.typeSupported=n,this.logger=i,this.videoParser=null}static probe(e,r){const n=Qg.syncOffset(e);return n>0&&r.warn(`MPEG2-TS detected but first sync word found @ offset ${n}`),n!==-1}static syncOffset(e){const r=e.length;let n=Math.min(_l*5,r-_l)+1,i=0;for(;i1&&(c===0&&s>2||f+_l>n))return c}else{if(s)return-1;break}i++}return-1}static createTrack(e,r){return{container:e==="video"||e==="audio"?"video/mp2t":void 0,type:e,id:_Ee[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:e==="audio"?r:void 0}}resetInitSegment(e,r,n,i){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=Qg.createTrack("video"),this._videoTrack.duration=i,this._audioTrack=Qg.createTrack("audio",i),this._id3Track=Qg.createTrack("id3"),this._txtTrack=Qg.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=r,this.videoCodec=n}resetTimeStamp(){}resetContiguity(){const{_audioTrack:e,_videoTrack:r,_id3Track:n}=this;e&&(e.pesData=null),r&&(r.pesData=null),n&&(n.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(e,r,n=!1,i=!1){n||(this.sampleAes=null);let a;const c=this._videoTrack,s=this._audioTrack,f=this._id3Track,m=this._txtTrack;let x=c.pid,_=c.pesData,T=s.pid,E=f.pid,C=s.pesData,N=f.pesData,L=null,M=this.pmtParsed,D=this._pmtId,B=e.length;if(this.remainderData&&(e=eh(this.remainderData,e),B=e.length,this.remainderData=null),B<_l&&!i)return this.remainderData=e,{audioTrack:s,videoTrack:c,id3Track:f,textTrack:m};const V=Math.max(0,Qg.syncOffset(e));B-=(B-V)%_l,B>4;let ue;if(ie>1){if(ue=Z+5+e[Z+4],ue===Z+_l)continue}else ue=Z+4;switch(se){case x:Q&&(_&&(a=qb(_,this.logger))&&(this.readyVideoParser(c.segmentCodec),this.videoParser!==null&&this.videoParser.parsePES(c,m,a,!1)),_={data:[],size:0}),_&&(_.data.push(e.subarray(ue,Z+_l)),_.size+=Z+_l-ue);break;case T:if(Q){if(C&&(a=qb(C,this.logger)))switch(s.segmentCodec){case"aac":this.parseAACPES(s,a);break;case"mp3":this.parseMPEGPES(s,a);break;case"ac3":this.parseAC3PES(s,a);break}C={data:[],size:0}}C&&(C.data.push(e.subarray(ue,Z+_l)),C.size+=Z+_l-ue);break;case E:Q&&(N&&(a=qb(N,this.logger))&&this.parseID3PES(f,a),N={data:[],size:0}),N&&(N.data.push(e.subarray(ue,Z+_l)),N.size+=Z+_l-ue);break;case 0:Q&&(ue+=e[ue]+1),D=this._pmtId=QRt(e,ue);break;case D:{Q&&(ue+=e[ue]+1);const be=JRt(e,ue,this.typeSupported,n,this.observer,this.logger);x=be.videoPid,x>0&&(c.pid=x,c.segmentCodec=be.segmentVideoCodec),T=be.audioPid,T>0&&(s.pid=T,s.segmentCodec=be.segmentAudioCodec),E=be.id3Pid,E>0&&(f.pid=E),L!==null&&!M&&(this.logger.warn(`MPEG-TS PMT found at ${Z} after unknown PID '${L}'. Backtracking to sync byte @${V} to parse all TS packets.`),L=null,Z=V-188),M=this.pmtParsed=!0;break}case 17:case 8191:break;default:L=se;break}}else G++;G>0&&W8(this.observer,new Error(`Found ${G} TS packet/s that do not start with 0x47`),void 0,this.logger),c.pesData=_,s.pesData=C,f.pesData=N;const W={audioTrack:s,videoTrack:c,id3Track:f,textTrack:m};return i&&this.extractRemainingSamples(W),W}flush(){const{remainderData:e}=this;this.remainderData=null;let r;return e?r=this.demux(e,-1,!1,!0):r={videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(r),this.sampleAes?this.decrypt(r,this.sampleAes):r}extractRemainingSamples(e){const{audioTrack:r,videoTrack:n,id3Track:i,textTrack:a}=e,c=n.pesData,s=r.pesData,f=i.pesData;let m;if(c&&(m=qb(c,this.logger))?(this.readyVideoParser(n.segmentCodec),this.videoParser!==null&&(this.videoParser.parsePES(n,a,m,!0),n.pesData=null)):n.pesData=c,s&&(m=qb(s,this.logger))){switch(r.segmentCodec){case"aac":this.parseAACPES(r,m);break;case"mp3":this.parseMPEGPES(r,m);break;case"ac3":this.parseAC3PES(r,m);break}r.pesData=null}else s!=null&&s.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),r.pesData=s;f&&(m=qb(f,this.logger))?(this.parseID3PES(i,m),i.pesData=null):i.pesData=f}demuxSampleAes(e,r,n){const i=this.demux(e,n,!0,!this.config.progressive),a=this.sampleAes=new YRt(this.observer,this.config,r);return this.decrypt(i,a)}readyVideoParser(e){this.videoParser===null&&(e==="avc"?this.videoParser=new ZRt:e==="hevc"&&(this.videoParser=new XRt))}decrypt(e,r){return new Promise(n=>{const{audioTrack:i,videoTrack:a}=e;i.samples&&i.segmentCodec==="aac"?r.decryptAacSamples(i.samples,0,()=>{a.samples?r.decryptAvcSamples(a.samples,0,0,()=>{n(e)}):n(e)}):a.samples&&r.decryptAvcSamples(a.samples,0,0,()=>{n(e)})})}destroy(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(e,r){let n=0;const i=this.aacOverFlow;let a=r.data;if(i){this.aacOverFlow=null;const _=i.missing,T=i.sample.unit.byteLength;if(_===-1)a=eh(i.sample.unit,a);else{const E=T-_;i.sample.unit.set(a.subarray(0,_),E),e.samples.push(i.sample),n=i.missing}}let c,s;for(c=n,s=a.length;c0;)s+=f}}parseID3PES(e,r){if(r.pts===void 0){this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");return}const n=Xs({},r,{type:this._videoTrack?Yu.emsg:Yu.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(n)}}function H8(t,e){return((t[e+1]&31)<<8)+t[e+2]}function QRt(t,e){return(t[e+10]&31)<<8|t[e+11]}function JRt(t,e,r,n,i,a){const c={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},s=(t[e+1]&15)<<8|t[e+2],f=e+3+s-4,m=(t[e+10]&15)<<8|t[e+11];for(e+=12+m;e0){let T=e+5,E=_;for(;E>2;){switch(t[T]){case 106:r.ac3!==!0?a.log("AC-3 audio found, not supported in this browser for now"):(c.audioPid=x,c.segmentAudioCodec="ac3");break}const N=t[T+1]+2;T+=N,E-=N}}break;case 194:case 135:return W8(i,new Error("Unsupported EC-3 in M2TS found"),void 0,a),c;case 36:c.videoPid===-1&&(c.videoPid=x,c.segmentVideoCodec="hevc",a.log("HEVC in M2TS found"));break}e+=_+5}return c}function W8(t,e,r,n){n.warn(`parsing error: ${e.message}`),t.emit(ke.ERROR,ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_PARSING_ERROR,fatal:!1,levelRetry:r,error:e,reason:e.message})}function n$(t,e){e.log(`${t} with AES-128-CBC encryption found in unencrypted stream`)}function qb(t,e){let r=0,n,i,a,c,s;const f=t.data;if(!t||t.size===0)return null;for(;f[0].length<19&&f.length>1;)f[0]=eh(f[0],f[1]),f.splice(1,1);if(n=f[0],(n[0]<<16)+(n[1]<<8)+n[2]===1){if(i=(n[4]<<8)+n[5],i&&i>t.size-6)return null;const x=n[7];x&192&&(c=(n[9]&14)*536870912+(n[10]&255)*4194304+(n[11]&254)*16384+(n[12]&255)*128+(n[13]&254)/2,x&64?(s=(n[14]&14)*536870912+(n[15]&255)*4194304+(n[16]&254)*16384+(n[17]&255)*128+(n[18]&254)/2,c-s>60*9e4&&(e.warn(`${Math.round((c-s)/9e4)}s delta between PTS and DTS, align them`),c=s)):s=c),a=n[8];let _=a+9;if(t.size<=_)return null;t.size-=_;const T=new Uint8Array(t.size);for(let E=0,C=f.length;EN){_-=N;continue}else n=n.subarray(_),N-=_,_=0;T.set(n,r),r+=N}return i&&(i-=a+3),{data:T,pts:c,dts:s,len:i}}return null}class eLt{static getSilentFrame(e,r){switch(e){case"mp4a.40.2":if(r===1)return new Uint8Array([0,200,0,128,35,128]);if(r===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(r===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(r===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(r===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(r===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(r===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(r===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(r===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}}}const Fg=Math.pow(2,32)-1;class Wt{static init(){Wt.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let e;for(e in Wt.types)Wt.types.hasOwnProperty(e)&&(Wt.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);const r=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),n=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);Wt.HDLR_TYPES={video:r,audio:n};const i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),a=new Uint8Array([0,0,0,0,0,0,0,0]);Wt.STTS=Wt.STSC=Wt.STCO=a,Wt.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),Wt.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),Wt.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),Wt.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);const c=new Uint8Array([105,115,111,109]),s=new Uint8Array([97,118,99,49]),f=new Uint8Array([0,0,0,1]);Wt.FTYP=Wt.box(Wt.types.ftyp,c,f,c,s),Wt.DINF=Wt.box(Wt.types.dinf,Wt.box(Wt.types.dref,i))}static box(e,...r){let n=8,i=r.length;const a=i;for(;i--;)n+=r[i].byteLength;const c=new Uint8Array(n);for(c[0]=n>>24&255,c[1]=n>>16&255,c[2]=n>>8&255,c[3]=n&255,c.set(e,4),i=0,n=8;i>24&255,e>>16&255,e>>8&255,e&255,n>>24,n>>16&255,n>>8&255,n&255,i>>24,i>>16&255,i>>8&255,i&255,85,196,0,0]))}static mdia(e){return Wt.box(Wt.types.mdia,Wt.mdhd(e.timescale||0,e.duration||0),Wt.hdlr(e.type),Wt.minf(e))}static mfhd(e){return Wt.box(Wt.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,e&255]))}static minf(e){return e.type==="audio"?Wt.box(Wt.types.minf,Wt.box(Wt.types.smhd,Wt.SMHD),Wt.DINF,Wt.stbl(e)):Wt.box(Wt.types.minf,Wt.box(Wt.types.vmhd,Wt.VMHD),Wt.DINF,Wt.stbl(e))}static moof(e,r,n){return Wt.box(Wt.types.moof,Wt.mfhd(e),Wt.traf(n,r))}static moov(e){let r=e.length;const n=[];for(;r--;)n[r]=Wt.trak(e[r]);return Wt.box.apply(null,[Wt.types.moov,Wt.mvhd(e[0].timescale||0,e[0].duration||0)].concat(n).concat(Wt.mvex(e)))}static mvex(e){let r=e.length;const n=[];for(;r--;)n[r]=Wt.trex(e[r]);return Wt.box.apply(null,[Wt.types.mvex,...n])}static mvhd(e,r){r*=e;const n=Math.floor(r/(Fg+1)),i=Math.floor(r%(Fg+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,n>>24,n>>16&255,n>>8&255,n&255,i>>24,i>>16&255,i>>8&255,i&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return Wt.box(Wt.types.mvhd,a)}static sdtp(e){const r=e.samples||[],n=new Uint8Array(4+r.length);let i,a;for(i=0;i>>8&255),r.push(c&255),r=r.concat(Array.prototype.slice.call(a));for(i=0;i>>8&255),n.push(c&255),n=n.concat(Array.prototype.slice.call(a));const s=Wt.box(Wt.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(n))),f=e.width,m=e.height,x=e.pixelRatio[0],_=e.pixelRatio[1];return Wt.box(Wt.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,f>>8&255,f&255,m>>8&255,m&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,Wt.box(Wt.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),Wt.box(Wt.types.pasp,new Uint8Array([x>>24,x>>16&255,x>>8&255,x&255,_>>24,_>>16&255,_>>8&255,_&255])))}static esds(e){const r=e.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...r,6,1,2])}static audioStsd(e){const r=e.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount||0,0,16,0,0,0,0,r>>8&255,r&255,0,0])}static mp4a(e){return Wt.box(Wt.types.mp4a,Wt.audioStsd(e),Wt.box(Wt.types.esds,Wt.esds(e)))}static mp3(e){return Wt.box(Wt.types[".mp3"],Wt.audioStsd(e))}static ac3(e){return Wt.box(Wt.types["ac-3"],Wt.audioStsd(e),Wt.box(Wt.types.dac3,e.config))}static stsd(e){const{segmentCodec:r}=e;if(e.type==="audio"){if(r==="aac")return Wt.box(Wt.types.stsd,Wt.STSD,Wt.mp4a(e));if(r==="ac3"&&e.config)return Wt.box(Wt.types.stsd,Wt.STSD,Wt.ac3(e));if(r==="mp3"&&e.codec==="mp3")return Wt.box(Wt.types.stsd,Wt.STSD,Wt.mp3(e))}else if(e.pps&&e.sps){if(r==="avc")return Wt.box(Wt.types.stsd,Wt.STSD,Wt.avc1(e));if(r==="hevc"&&e.vps)return Wt.box(Wt.types.stsd,Wt.STSD,Wt.hvc1(e))}else throw new Error("video track missing pps or sps");throw new Error(`unsupported ${e.type} segment codec (${r}/${e.codec})`)}static tkhd(e){const r=e.id,n=(e.duration||0)*(e.timescale||0),i=e.width||0,a=e.height||0,c=Math.floor(n/(Fg+1)),s=Math.floor(n%(Fg+1));return Wt.box(Wt.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,r>>24&255,r>>16&255,r>>8&255,r&255,0,0,0,0,c>>24,c>>16&255,c>>8&255,c&255,s>>24,s>>16&255,s>>8&255,s&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,i>>8&255,i&255,0,0,a>>8&255,a&255,0,0]))}static traf(e,r){const n=Wt.sdtp(e),i=e.id,a=Math.floor(r/(Fg+1)),c=Math.floor(r%(Fg+1));return Wt.box(Wt.types.traf,Wt.box(Wt.types.tfhd,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,i&255])),Wt.box(Wt.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,a&255,c>>24,c>>16&255,c>>8&255,c&255])),Wt.trun(e,n.length+16+20+8+16+8+8),n)}static trak(e){return e.duration=e.duration||4294967295,Wt.box(Wt.types.trak,Wt.tkhd(e),Wt.mdia(e))}static trex(e){const r=e.id;return Wt.box(Wt.types.trex,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,r&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,r){const n=e.samples||[],i=n.length,a=12+16*i,c=new Uint8Array(a);let s,f,m,x,_,T;for(r+=8+a,c.set([e.type==="video"?1:0,0,15,1,i>>>24&255,i>>>16&255,i>>>8&255,i&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255],0),s=0;s>>24&255,m>>>16&255,m>>>8&255,m&255,x>>>24&255,x>>>16&255,x>>>8&255,x&255,_.isLeading<<2|_.dependsOn,_.isDependedOn<<6|_.hasRedundancy<<4|_.paddingValue<<1|_.isNonSync,_.degradPrio&61440,_.degradPrio&15,T>>>24&255,T>>>16&255,T>>>8&255,T&255],12+16*s);return Wt.box(Wt.types.trun,c)}static initSegment(e){Wt.types||Wt.init();const r=Wt.moov(e);return eh(Wt.FTYP,r)}static hvc1(e){const r=e.params,n=[e.vps,e.sps,e.pps],i=4,a=new Uint8Array([1,r.general_profile_space<<6|(r.general_tier_flag?32:0)|r.general_profile_idc,r.general_profile_compatibility_flags[0],r.general_profile_compatibility_flags[1],r.general_profile_compatibility_flags[2],r.general_profile_compatibility_flags[3],r.general_constraint_indicator_flags[0],r.general_constraint_indicator_flags[1],r.general_constraint_indicator_flags[2],r.general_constraint_indicator_flags[3],r.general_constraint_indicator_flags[4],r.general_constraint_indicator_flags[5],r.general_level_idc,240|r.min_spatial_segmentation_idc>>8,255&r.min_spatial_segmentation_idc,252|r.parallelismType,252|r.chroma_format_idc,248|r.bit_depth_luma_minus8,248|r.bit_depth_chroma_minus8,0,parseInt(r.frame_rate.fps),i-1|r.temporal_id_nested<<2|r.num_temporal_layers<<3|(r.frame_rate.fixed?64:0),n.length]);let c=a.length;for(let C=0;C>8,n[C][N].length&255]),c),c+=2,s.set(n[C][N],c),c+=n[C][N].length}const m=Wt.box(Wt.types.hvcC,s),x=e.width,_=e.height,T=e.pixelRatio[0],E=e.pixelRatio[1];return Wt.box(Wt.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,x>>8&255,x&255,_>>8&255,_&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),m,Wt.box(Wt.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),Wt.box(Wt.types.pasp,new Uint8Array([T>>24,T>>16&255,T>>8&255,T&255,E>>24,E>>16&255,E>>8&255,E&255])))}}Wt.types=void 0;Wt.HDLR_TYPES=void 0;Wt.STTS=void 0;Wt.STSC=void 0;Wt.STCO=void 0;Wt.STSZ=void 0;Wt.VMHD=void 0;Wt.SMHD=void 0;Wt.STSD=void 0;Wt.FTYP=void 0;Wt.DINF=void 0;const p2e=9e4;function EW(t,e,r=1,n=!1){const i=t*e*r;return n?Math.round(i):i}function tLt(t,e,r=1,n=!1){return EW(t,e,1/r,n)}function L2(t,e=!1){return EW(t,1e3,1/p2e,e)}function rLt(t,e=1){return EW(t,p2e,1/e)}function yle(t){const{baseTime:e,timescale:r,trackId:n}=t;return`${e/r} (${e}/${r}) trackId: ${n}`}const nLt=10*1e3,iLt=1024,sLt=1152,aLt=1536;let Gb=null,i$=null;function xle(t,e,r,n){return{duration:e,size:r,cts:n,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}class HR extends ah{constructor(e,r,n,i){if(super("mp4-remuxer",i),this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=e,this.config=r,this.typeSupported=n,this.ISGenerated=!1,Gb===null){const c=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Gb=c?parseInt(c[1]):0}if(i$===null){const a=navigator.userAgent.match(/Safari\/(\d+)/i);i$=a?parseInt(a[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(e){const r=this._initPTS;(!r||!e||e.trackId!==r.trackId||e.baseTime!==r.baseTime||e.timescale!==r.timescale)&&this.log(`Reset initPTS: ${r&&yle(r)} > ${e&&yle(e)}`),this._initPTS=this._initDTS=e}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(e){let r=!1;const n=e[0].pts,i=e.reduce((a,c)=>{let s=c.pts,f=s-a;return f<-4294967296&&(r=!0,s=qu(s,n),f=s-a),f>0?a:s},n);return r&&this.debug("PTS rollover detected"),i}remux(e,r,n,i,a,c,s,f){let m,x,_,T,E,C,N=a,L=a;const M=e.pid>-1,D=r.pid>-1,B=r.samples.length,V=e.samples.length>0,G=s&&B>0||B>1;if((!M||V)&&(!D||G)||this.ISGenerated||s){if(this.ISGenerated){var Z,Q,se,ie;const we=this.videoTrackConfig;(we&&(r.width!==we.width||r.height!==we.height||((Z=r.pixelRatio)==null?void 0:Z[0])!==((Q=we.pixelRatio)==null?void 0:Q[0])||((se=r.pixelRatio)==null?void 0:se[1])!==((ie=we.pixelRatio)==null?void 0:ie[1]))||!we&&G||this.nextAudioTs===null&&V)&&this.resetInitSegment()}this.ISGenerated||(_=this.generateIS(e,r,a,c));const ue=this.isVideoContiguous;let be=-1,Te;if(G&&(be=oLt(r.samples),!ue&&this.config.forceKeyFrameOnDiscontinuity))if(C=!0,be>0){this.warn(`Dropped ${be} out of ${B} video samples due to a missing keyframe`);const we=this.getVideoStartPts(r.samples);r.samples=r.samples.slice(be),r.dropped+=be,L+=(r.samples[0].pts-we)/r.inputTimeScale,Te=L}else be===-1&&(this.warn(`No keyframe found out of ${B} video samples`),C=!1);if(this.ISGenerated){if(V&&G){const we=this.getVideoStartPts(r.samples),Ae=(qu(e.samples[0].pts,we)-we)/r.inputTimeScale;N+=Math.max(0,Ae),L+=Math.max(0,-Ae)}if(V){if(e.samplerate||(this.warn("regenerate InitSegment as audio detected"),_=this.generateIS(e,r,a,c)),x=this.remuxAudio(e,N,this.isAudioContiguous,c,D||G||f===_n.AUDIO?L:void 0),G){const we=x?x.endPTS-x.startPTS:0;r.inputTimeScale||(this.warn("regenerate InitSegment as video detected"),_=this.generateIS(e,r,a,c)),m=this.remuxVideo(r,L,ue,we)}}else G&&(m=this.remuxVideo(r,L,ue,0));m&&(m.firstKeyFrame=be,m.independent=be!==-1,m.firstKeyFramePTS=Te)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(n.samples.length&&(E=m2e(n,a,this._initPTS,this._initDTS)),i.samples.length&&(T=g2e(i,a,this._initPTS))),{audio:x,video:m,initSegment:_,independent:C,text:T,id3:E}}computeInitPts(e,r,n,i){const a=Math.round(n*r);let c=qu(e,a);if(c0?xe-1:xe].dts&&(D=!0)}D&&c.sort(function(xe,Pe){const Ze=xe.dts-Pe.dts,at=xe.pts-Pe.pts;return Ze||at}),C=c[0].dts,N=c[c.length-1].dts;const V=N-C,G=V?Math.round(V/(f-1)):E||e.inputTimeScale/30;if(n){const xe=C-B,Pe=xe>G,Ze=xe<-1;if((Pe||Ze)&&(Pe?this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${L2(xe,!0)} ms (${xe}dts) hole between fragments detected at ${r.toFixed(3)}`):this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${L2(-xe,!0)} ms (${xe}dts) overlapping between fragments detected at ${r.toFixed(3)}`),!Ze||B>=c[0].pts||Gb)){C=B;const at=c[0].pts-xe;if(Pe)c[0].dts=C,c[0].pts=at;else{let lt=!0;for(let xt=0;xtat&<);xt++){const St=c[xt].pts;if(c[xt].dts-=xe,c[xt].pts-=xe,xt0?Pe.dts-c[xe-1].dts:G;if(lt=xe>0?Pe.pts-c[xe-1].pts:G,St.stretchShortVideoTrack&&this.nextAudioTs!==null){const _t=Math.floor(St.maxBufferHole*a),Rt=(i?L+i*a:this.nextAudioTs+x)-Pe.pts;Rt>_t?(E=Rt-Xt,E<0?E=Xt:be=!0,this.log(`It is approximately ${Rt/90} ms to the next segment; using duration ${E/90} ms for the last video frame.`)):E=Xt}else E=Xt}const xt=Math.round(Pe.pts-Pe.dts);Te=Math.min(Te,E),Oe=Math.max(Oe,E),we=Math.min(we,lt),Ae=Math.max(Ae,lt),s.push(xle(Pe.key,E,at,xt))}if(s.length){if(Gb){if(Gb<70){const xe=s[0].flags;xe.dependsOn=2,xe.isNonSync=0}}else if(i$&&Ae-we0&&(i&&Math.abs(B-(M+D))<9e3||Math.abs(qu(N[0].pts,B)-(M+D))<20*x),N.forEach(function(Ae){Ae.pts=qu(Ae.pts,B)}),!n||M<0){const Ae=N.length;if(N=N.filter(Se=>Se.pts>=0),Ae!==N.length&&this.warn(`Removed ${N.length-Ae} of ${Ae} samples (initPTS ${D} / ${c})`),!N.length)return;a===0?M=0:i&&!C?M=Math.max(0,B-D):M=N[0].pts-D}if(e.segmentCodec==="aac"){const Ae=this.config.maxAudioFramesDrift;for(let Se=0,ge=M+D;Se=Ae*x&&Pe0){Z+=L;try{W=new Uint8Array(Z)}catch(Pe){this.observer.emit(ke.ERROR,ke.ERROR,{type:jn.MUX_ERROR,details:Zt.REMUX_ALLOC_ERROR,fatal:!1,error:Pe,bytes:Z,reason:`fail allocating audio mdat ${Z}`});return}T||(new DataView(W.buffer).setUint32(0,Z),W.set(Wt.types.mdat,4))}else return;W.set(je,L);const xe=je.byteLength;L+=xe,E.push(xle(!0,m,xe,0)),G=_e}const se=E.length;if(!se)return;const ie=E[E.length-1];M=G-D,this.nextAudioTs=M+f*ie.duration;const ue=T?new Uint8Array(0):Wt.moof(e.sequenceNumber++,V/f,Xs({},e,{samples:E}));e.samples=[];const be=(V-D)/c,Te=this.nextAudioTs/c,Oe={data1:ue,data2:W,startPTS:be,endPTS:Te,startDTS:be,endDTS:Te,type:"audio",hasAudio:!0,hasVideo:!1,nb:se};return this.isAudioContiguous=!0,Oe}}function qu(t,e){let r;if(e===null)return t;for(e4294967296;)t+=r;return t}function oLt(t){for(let e=0;ec.pts-s.pts);const a=t.samples;return t.samples=[],{samples:a}}class lLt extends ah{constructor(e,r,n,i){super("passthrough-remuxer",i),this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(e){this.lastEndTime=null;const r=this.initPTS;r&&e&&r.baseTime===e.baseTime&&r.timescale===e.timescale||(this.initPTS=e)}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(e,r,n,i){this.audioCodec=r,this.videoCodec=n,this.generateInitSegment(e,i),this.emitInitSegment=!0}generateInitSegment(e,r){let{audioCodec:n,videoCodec:i}=this;if(!(e!=null&&e.byteLength)){this.initTracks=void 0,this.initData=void 0;return}const{audio:a,video:c}=this.initData=wEe(e);if(r)YPt(e,r);else{const f=a||c;f!=null&&f.encrypted&&this.warn(`Init segment with encrypted track with has no key ("${f.codec}")!`)}a&&(n=_le(a,ta.AUDIO,this)),c&&(i=_le(c,ta.VIDEO,this));const s={};a&&c?s.audiovideo={container:"video/mp4",codec:n+","+i,supplemental:c.supplemental,encrypted:c.encrypted,initSegment:e,id:"main"}:a?s.audio={container:"audio/mp4",codec:n,encrypted:a.encrypted,initSegment:e,id:"audio"}:c?s.video={container:"video/mp4",codec:i,supplemental:c.supplemental,encrypted:c.encrypted,initSegment:e,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=s}remux(e,r,n,i,a,c){var s,f;let{initPTS:m,lastEndTime:x}=this;const _={audio:void 0,video:void 0,text:i,id3:n,initSegment:void 0};dn(x)||(x=this.lastEndTime=a||0);const T=r.samples;if(!T.length)return _;const E={initPTS:void 0,timescale:void 0,trackId:void 0};let C=this.initData;if((s=C)!=null&&s.length||(this.generateInitSegment(T),C=this.initData),!((f=C)!=null&&f.length))return this.warn("Failed to generate initSegment."),_;this.emitInitSegment&&(E.tracks=this.initTracks,this.emitInitSegment=!1);const N=XPt(T,C,this),L=C.audio?N[C.audio.id]:null,M=C.video?N[C.video.id]:null,D=KN(M,1/0),B=KN(L,1/0),V=KN(M,0,!0),G=KN(L,0,!0);let W=a,Z=0;const Q=L&&(!M||!m&&B0?this.lastEndTime=ue:(this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());const be=!!C.audio,Te=!!C.video;let we="";be&&(we+="audio"),Te&&(we+="video");const Oe=(C.audio?C.audio.encrypted:!1)||(C.video?C.video.encrypted:!1),Ae={data1:T,startPTS:ie,startDTS:ie,endPTS:ue,endDTS:ue,type:we,hasAudio:be,hasVideo:Te,nb:1,dropped:0,encrypted:Oe};_.audio=be&&!Te?Ae:void 0,_.video=Te?Ae:void 0;const Se=M==null?void 0:M.sampleCount;if(Se){const ge=M.keyFrameIndex,je=ge!==-1;Ae.nb=Se,Ae.dropped=ge===0||this.isVideoContiguous?0:je?ge:Se,Ae.independent=je,Ae.firstKeyFrame=ge,je&&M.keyFrameStart&&(Ae.firstKeyFramePTS=(M.keyFrameStart-m.baseTime)/m.timescale),this.isVideoContiguous||(_.independent=je),this.isVideoContiguous||(this.isVideoContiguous=je),Ae.dropped&&this.warn(`fmp4 does not start with IDR: firstIDR ${ge}/${Se} dropped: ${Ae.dropped} start: ${Ae.firstKeyFramePTS||"NA"}`)}return _.initSegment=E,_.id3=m2e(n,a,m,m),i.samples.length&&(_.text=g2e(i,a,m)),_}}function KN(t,e,r=!1){return(t==null?void 0:t.start)!==void 0?(t.start+(r?t.duration:0))/t.timescale:e}function cLt(t,e,r,n){if(t===null)return!0;const i=Math.max(n,1),a=e-t.baseTime/t.timescale;return Math.abs(a-r)>i}function _le(t,e,r){const n=t.codec;return n&&n.length>4?n:e===ta.AUDIO?n==="ec-3"||n==="ac-3"||n==="alac"?n:n==="fLaC"||n==="Opus"?mM(n,!1):(r.warn(`Unhandled audio codec "${n}" in mp4 MAP`),n||"mp4a"):(r.warn(`Unhandled video codec "${n}" in mp4 MAP`),n||"avc1")}let sm;try{sm=self.performance.now.bind(self.performance)}catch{sm=Date.now}const WR=[{demux:KRt,remux:lLt},{demux:Qg,remux:HR},{demux:qRt,remux:HR},{demux:HRt,remux:HR}];WR.splice(2,0,{demux:GRt,remux:HR});class vle{constructor(e,r,n,i,a,c){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=e,this.typeSupported=r,this.config=n,this.id=a,this.logger=c}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}push(e,r,n,i){const a=n.transmuxing;a.executeStart=sm();let c=new Uint8Array(e);const{currentTransmuxState:s,transmuxConfig:f}=this;i&&(this.currentTransmuxState=i);const{contiguous:m,discontinuity:x,trackSwitch:_,accurateTimeOffset:T,timeOffset:E,initSegmentChange:C}=i||s,{audioCodec:N,videoCodec:L,defaultInitPts:M,duration:D,initSegmentData:B}=f,V=uLt(c,r);if(V&&Bw(V.method)){const Q=this.getDecrypter(),se=gW(V.method);if(Q.isSync()){let ie=Q.softwareDecrypt(c,V.key.buffer,V.iv.buffer,se);if(n.part>-1){const be=Q.flush();ie=be&&be.buffer}if(!ie)return a.executeEnd=sm(),s$(n);c=new Uint8Array(ie)}else return this.asyncResult=!0,this.decryptionPromise=Q.webCryptoDecrypt(c,V.key.buffer,V.iv.buffer,se).then(ie=>{const ue=this.push(ie,null,n);return this.decryptionPromise=null,ue}),this.decryptionPromise}const G=this.needsProbing(x,_);if(G){const Q=this.configureTransmuxer(c);if(Q)return this.logger.warn(`[transmuxer] ${Q.message}`),this.observer.emit(ke.ERROR,ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_PARSING_ERROR,fatal:!1,error:Q,reason:Q.message}),a.executeEnd=sm(),s$(n)}(x||_||C||G)&&this.resetInitSegment(B,N,L,D,r),(x||C||G)&&this.resetInitialTimestamp(M),m||this.resetContiguity();const W=this.transmux(c,V,E,T,n);this.asyncResult=aC(W);const Z=this.currentTransmuxState;return Z.contiguous=!0,Z.discontinuity=!1,Z.trackSwitch=!1,a.executeEnd=sm(),W}flush(e){const r=e.transmuxing;r.executeStart=sm();const{decrypter:n,currentTransmuxState:i,decryptionPromise:a}=this;if(a)return this.asyncResult=!0,a.then(()=>this.flush(e));const c=[],{timeOffset:s}=i;if(n){const _=n.flush();_&&c.push(this.push(_.buffer,null,e))}const{demuxer:f,remuxer:m}=this;if(!f||!m){r.executeEnd=sm();const _=[s$(e)];return this.asyncResult?Promise.resolve(_):_}const x=f.flush(s);return aC(x)?(this.asyncResult=!0,x.then(_=>(this.flushRemux(c,_,e),c))):(this.flushRemux(c,x,e),this.asyncResult?Promise.resolve(c):c)}flushRemux(e,r,n){const{audioTrack:i,videoTrack:a,id3Track:c,textTrack:s}=r,{accurateTimeOffset:f,timeOffset:m}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${n.sn}${n.part>-1?" part: "+n.part:""} of ${this.id===_n.MAIN?"level":"track"} ${n.level}`);const x=this.remuxer.remux(i,a,c,s,m,f,!0,this.id);e.push({remuxResult:x,chunkMeta:n}),n.transmuxing.executeEnd=sm()}resetInitialTimestamp(e){const{demuxer:r,remuxer:n}=this;!r||!n||(r.resetTimeStamp(e),n.resetTimeStamp(e))}resetContiguity(){const{demuxer:e,remuxer:r}=this;!e||!r||(e.resetContiguity(),r.resetNextTimestamp())}resetInitSegment(e,r,n,i,a){const{demuxer:c,remuxer:s}=this;!c||!s||(c.resetInitSegment(e,r,n,i),s.resetInitSegment(e,r,n,a))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(e,r,n,i,a){let c;return r&&r.method==="SAMPLE-AES"?c=this.transmuxSampleAes(e,r,n,i,a):c=this.transmuxUnencrypted(e,n,i,a),c}transmuxUnencrypted(e,r,n,i){const{audioTrack:a,videoTrack:c,id3Track:s,textTrack:f}=this.demuxer.demux(e,r,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(a,c,s,f,r,n,!1,this.id),chunkMeta:i}}transmuxSampleAes(e,r,n,i,a){return this.demuxer.demuxSampleAes(e,r,n).then(c=>({remuxResult:this.remuxer.remux(c.audioTrack,c.videoTrack,c.id3Track,c.textTrack,n,i,!1,this.id),chunkMeta:a}))}configureTransmuxer(e){const{config:r,observer:n,typeSupported:i}=this;let a;for(let _=0,T=WR.length;_0&&(e==null?void 0:e.key)!=null&&e.iv!==null&&e.method!=null&&(r=e),r}const s$=t=>({remuxResult:{},chunkMeta:t});function aC(t){return"then"in t&&t.then instanceof Function}class dLt{constructor(e,r,n,i,a){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=r,this.initSegmentData=n,this.duration=i,this.defaultInitPts=a||null}}class hLt{constructor(e,r,n,i,a,c){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=r,this.accurateTimeOffset=n,this.trackSwitch=i,this.timeOffset=a,this.initSegmentChange=c}}let ble=0;class y2e{constructor(e,r,n,i){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=ble++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=f=>{const m=f.data,x=this.hls;if(!(!x||!(m!=null&&m.event)||m.instanceNo!==this.instanceNo))switch(m.event){case"init":{var _;const T=(_=this.workerContext)==null?void 0:_.objectURL;T&&self.URL.revokeObjectURL(T);break}case"transmuxComplete":{this.handleTransmuxComplete(m.data);break}case"flush":{this.onFlush(m.data);break}case"workerLog":{x.logger[m.data.logType]&&x.logger[m.data.logType](m.data.message);break}default:{m.data=m.data||{},m.data.frag=this.frag,m.data.part=this.part,m.data.id=this.id,x.trigger(m.event,m.data);break}}},this.onWorkerError=f=>{if(!this.hls)return;const m=new Error(`${f.message} (${f.filename}:${f.lineno})`);this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:m})};const a=e.config;this.hls=e,this.id=r,this.useWorker=!!a.enableWorker,this.onTransmuxComplete=n,this.onFlush=i;const c=(f,m)=>{m=m||{},m.frag=this.frag||void 0,f===ke.ERROR&&(m=m,m.parent=this.id,m.part=this.part,this.error=m.error),this.hls.trigger(f,m)};this.observer=new _W,this.observer.on(ke.FRAG_DECRYPTED,c),this.observer.on(ke.ERROR,c);const s=Moe(a.preferManagedMediaSource);if(this.useWorker&&typeof Worker<"u"){const f=this.hls.logger;if(a.workerPath||gRt()){try{a.workerPath?(f.log(`loading Web Worker ${a.workerPath} for "${r}"`),this.workerContext=xRt(a.workerPath)):(f.log(`injecting Web Worker for "${r}"`),this.workerContext=yRt());const{worker:x}=this.workerContext;x.addEventListener("message",this.onWorkerMessage),x.addEventListener("error",this.onWorkerError),x.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:s,id:r,config:ia(a)})}catch(x){f.warn(`Error setting up "${r}" Web Worker, fallback to inline`,x),this.terminateWorker(),this.error=null,this.transmuxer=new vle(this.observer,s,a,"",r,e.logger)}return}}this.transmuxer=new vle(this.observer,s,a,"",r,e.logger)}reset(){if(this.frag=null,this.part=null,this.workerContext){const e=this.instanceNo;this.instanceNo=ble++;const r=this.hls.config,n=Moe(r.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupported:n,id:this.id,config:ia(r)})}}terminateWorker(){if(this.workerContext){const{worker:e}=this.workerContext;this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),_Rt(this.hls.config.workerPath)}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{const r=this.transmuxer;r&&(r.destroy(),this.transmuxer=null)}const e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null}push(e,r,n,i,a,c,s,f,m,x){var _,T;m.transmuxing.start=self.performance.now();const{instanceNo:E,transmuxer:C}=this,N=c?c.start:a.start,L=a.decryptdata,M=this.frag,D=!(M&&a.cc===M.cc),B=!(M&&m.level===M.level),V=M?m.sn-M.sn:-1,G=this.part?m.part-this.part.index:-1,W=V===0&&m.id>1&&m.id===(M==null?void 0:M.stats.chunkCount),Z=!B&&(V===1||V===0&&(G===1||W&&G<=0)),Q=self.performance.now();(B||V||a.stats.parsing.start===0)&&(a.stats.parsing.start=Q),c&&(G||!Z)&&(c.stats.parsing.start=Q);const se=!(M&&((_=a.initSegment)==null?void 0:_.url)===((T=M.initSegment)==null?void 0:T.url)),ie=new hLt(D,Z,f,B,N,se);if(!Z||D||se){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${a.type} sn: ${m.sn}${m.part>-1?" part: "+m.part:""} ${this.id===_n.MAIN?"level":"track"}: ${m.level} id: ${m.id} discontinuity: ${D} trackSwitch: ${B} contiguous: ${Z} accurateTimeOffset: ${f} timeOffset: ${N} initSegmentChange: ${se}`);const ue=new dLt(n,i,r,s,x);this.configureTransmuxer(ue)}if(this.frag=a,this.part=c,this.workerContext)this.workerContext.worker.postMessage({instanceNo:E,cmd:"demux",data:e,decryptdata:L,chunkMeta:m,state:ie},e instanceof ArrayBuffer?[e]:[]);else if(C){const ue=C.push(e,L,m,ie);aC(ue)?ue.then(be=>{this.handleTransmuxComplete(be)}).catch(be=>{this.transmuxerError(be,m,"transmuxer-interface push error")}):this.handleTransmuxComplete(ue)}}flush(e){e.transmuxing.start=self.performance.now();const{instanceNo:r,transmuxer:n}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:r,cmd:"flush",chunkMeta:e});else if(n){const i=n.flush(e);aC(i)?i.then(a=>{this.handleFlushResult(a,e)}).catch(a=>{this.transmuxerError(a,e,"transmuxer-interface flush error")}):this.handleFlushResult(i,e)}}transmuxerError(e,r,n){this.hls&&(this.error=e,this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_PARSING_ERROR,chunkMeta:r,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:n}))}handleFlushResult(e,r){e.forEach(n=>{this.handleTransmuxComplete(n)}),this.onFlush(r)}configureTransmuxer(e){const{instanceNo:r,transmuxer:n}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:r,cmd:"configure",config:e}):n&&n.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}}const wle=100;class fLt extends xW{constructor(e,r,n){super(e,r,n,"audio-stream-controller",_n.AUDIO),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.on(ke.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(ke.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(ke.BUFFER_RESET,this.onBufferReset,this),e.on(ke.BUFFER_CREATED,this.onBufferCreated,this),e.on(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(ke.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(ke.FRAG_LOADING,this.onFragLoading,this),e.on(ke.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){const{hls:e}=this;e&&(super.unregisterListeners(),e.off(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.off(ke.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(ke.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(ke.BUFFER_RESET,this.onBufferReset,this),e.off(ke.BUFFER_CREATED,this.onBufferCreated,this),e.off(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(ke.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(ke.FRAG_LOADING,this.onFragLoading,this),e.off(ke.FRAG_BUFFERED,this.onFragBuffered,this))}onInitPtsFound(e,{frag:r,id:n,initPTS:i,timescale:a,trackId:c}){if(n===_n.MAIN){const s=r.cc,f=this.fragCurrent;if(this.initPTS[s]={baseTime:i,timescale:a,trackId:c},this.log(`InitPTS for cc: ${s} found from main: ${i/a} (${i}/${a}) trackId: ${c}`),this.mainAnchor=r,this.state===vr.WAITING_INIT_PTS){const m=this.waitingData;(!m&&!this.loadingParts||m&&m.frag.cc!==s)&&this.syncWithAnchor(r,m==null?void 0:m.frag)}else!this.hls.hasEnoughToStart&&f&&f.cc!==s?(f.abortRequests(),this.syncWithAnchor(r,f)):this.state===vr.IDLE&&this.tick()}}getLoadPosition(){return!this.startFragRequested&&this.nextLoadPosition>=0?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(e,r){var n;const i=((n=this.mainFragLoading)==null?void 0:n.frag)||null;if(r&&(i==null?void 0:i.cc)===r.cc)return;const a=(i||e).cc,c=this.getLevelDetails(),s=this.getLoadPosition(),f=REe(c,a,s);f&&(this.log(`Syncing with main frag at ${f.start} cc ${f.cc}`),this.startFragRequested=!1,this.nextLoadPosition=f.start,this.resetLoadingState(),this.state===vr.IDLE&&this.doTickIdle())}startLoad(e,r){if(!this.levels){this.startPosition=e,this.state=vr.STOPPED;return}const n=this.lastCurrentTime;this.stopLoad(),this.setInterval(wle),n>0&&e===-1?(this.log(`Override startPosition with lastCurrentTime @${n.toFixed(3)}`),e=n,this.state=vr.IDLE):this.state=vr.WAITING_TRACK,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=r?-1:e,this.tick()}doTick(){switch(this.state){case vr.IDLE:this.doTickIdle();break;case vr.WAITING_TRACK:{const{levels:e,trackId:r}=this,n=e==null?void 0:e[r],i=n==null?void 0:n.details;if(i&&!this.waitForLive(n)){if(this.waitForCdnTuneIn(i))break;this.state=vr.WAITING_INIT_PTS}break}case vr.FRAG_LOADING_WAITING_RETRY:{this.checkRetryDate();break}case vr.WAITING_INIT_PTS:{const e=this.waitingData;if(e){const{frag:r,part:n,cache:i,complete:a}=e,c=this.mainAnchor;if(this.initPTS[r.cc]!==void 0){this.waitingData=null,this.state=vr.FRAG_LOADING;const s=i.flush().buffer,f={frag:r,part:n,payload:s,networkDetails:null};this._handleFragmentLoadProgress(f),a&&super._handleFragmentLoadComplete(f)}else c&&c.cc!==e.frag.cc&&this.syncWithAnchor(c,e.frag)}else this.state=vr.IDLE}}this.onTickEnd()}resetLoadingState(){const e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null),super.resetLoadingState()}onTickEnd(){const{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){var e;const{hls:r,levels:n,media:i,trackId:a}=this,c=r.config;if(!this.buffering||!i&&!this.primaryPrefetch&&(this.startFragRequested||!c.startFragPrefetch)||!(n!=null&&n[a]))return;const s=n[a],f=s.details;if(!f||this.waitForLive(s)||this.waitForCdnTuneIn(f)){this.state=vr.WAITING_TRACK,this.startFragRequested=!1;return}const m=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&m&&(this.bufferFlushed=!1,this.afterBufferFlushed(m,ta.AUDIO,_n.AUDIO));const x=this.getFwdBufferInfo(m,_n.AUDIO);if(x===null)return;if(!this.switchingTrack&&this._streamEnded(x,f)){r.trigger(ke.BUFFER_EOS,{type:"audio"}),this.state=vr.ENDED;return}const _=x.len,T=r.maxBufferLength,E=f.fragments,C=E[0].start,N=this.getLoadPosition(),L=this.flushing?N:x.end;if(this.switchingTrack&&i){const B=N;f.PTSKnown&&BC||x.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=C+.05)}if(_>=T&&!this.switchingTrack&&LD.end){const V=this.fragmentTracker.getFragAtPos(L,_n.MAIN);V&&V.end>D.end&&(D=V,this.mainFragLoading={frag:V,targetBufferTime:null})}if(M.start>D.end)return}this.loadFragment(M,s,L)}onMediaDetaching(e,r){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(e,r)}onAudioTracksUpdated(e,{audioTracks:r}){this.resetTransmuxer(),this.levels=r.map(n=>new nC(n))}onAudioTrackSwitching(e,r){const n=!!r.url;this.trackId=r.id;const{fragCurrent:i}=this;i&&(i.abortRequests(),this.removeUnbufferedFrags(i.start)),this.resetLoadingState(),n?(this.switchingTrack=r,this.flushAudioIfNeeded(r),this.state!==vr.STOPPED&&(this.setInterval(wle),this.state=vr.IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=r,this.clearInterval())}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(e,r){this.mainDetails=r.details;const n=this.cachedTrackLoadedData;n&&(this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(ke.AUDIO_TRACK_LOADED,n))}onAudioTrackLoaded(e,r){var n;const{levels:i}=this,{details:a,id:c,groupId:s,track:f}=r;if(!i){this.warn(`Audio tracks reset while loading track ${c} "${f.name}" of "${s}"`);return}const m=this.mainDetails;if(!m||a.endCC>m.endCC||m.expired){this.cachedTrackLoadedData=r,this.state!==vr.STOPPED&&(this.state=vr.WAITING_TRACK);return}this.cachedTrackLoadedData=null,this.log(`Audio track ${c} "${f.name}" of "${s}" loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`);const x=i[c];let _=0;if(a.live||(n=x.details)!=null&&n.live){if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;if(x.details){var T;_=this.alignPlaylists(a,x.details,(T=this.levelLastLoaded)==null?void 0:T.details)}a.alignedSliding||(XEe(a,m),a.alignedSliding||wM(a,m),_=a.fragmentStart)}x.details=a,this.levelLastLoaded=x,this.startFragRequested||this.setStartPosition(m,_),this.hls.trigger(ke.AUDIO_TRACK_UPDATED,{details:a,id:c,groupId:r.groupId}),this.state===vr.WAITING_TRACK&&!this.waitForCdnTuneIn(a)&&(this.state=vr.IDLE),this.tick()}_handleFragmentLoadProgress(e){var r;const n=e.frag,{part:i,payload:a}=e,{config:c,trackId:s,levels:f}=this;if(!f){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${n.sn} of level ${n.level} will not be buffered`);return}const m=f[s];if(!m){this.warn("Audio track is undefined on fragment load progress");return}const x=m.details;if(!x){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(n.start);return}const _=c.defaultAudioCodec||m.audioCodec||"mp4a.40.2";let T=this.transmuxer;T||(T=this.transmuxer=new y2e(this.hls,_n.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));const E=this.initPTS[n.cc],C=(r=n.initSegment)==null?void 0:r.data;if(E!==void 0){const L=i?i.index:-1,M=L!==-1,D=new mW(n.level,n.sn,n.stats.chunkCount,a.byteLength,L,M);T.push(a,C,_,"",n,i,x.totalduration,!1,D,E)}else{this.log(`Unknown video PTS for cc ${n.cc}, waiting for video PTS before demuxing audio frag ${n.sn} of [${x.startSN} ,${x.endSN}],track ${s}`);const{cache:N}=this.waitingData=this.waitingData||{frag:n,part:i,cache:new QEe,complete:!1};N.push(new Uint8Array(a)),this.state!==vr.STOPPED&&(this.state=vr.WAITING_INIT_PTS)}}_handleFragmentLoadComplete(e){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(e,r){this.bufferFlushed=this.flushing=!1;const n=r.tracks.audio;n&&(this.mediaBuffer=n.buffer||null)}onFragLoading(e,r){!this.audioOnly&&r.frag.type===_n.MAIN&&To(r.frag)&&(this.mainFragLoading=r,this.state===vr.IDLE&&this.tick())}onFragBuffered(e,r){const{frag:n,part:i}=r;if(n.type!==_n.AUDIO){!this.audioOnly&&n.type===_n.MAIN&&!n.elementaryStreams.video&&!n.elementaryStreams.audiovideo&&(this.audioOnly=!0,this.mainFragLoading=null);return}if(this.fragContextChanged(n)){this.warn(`Fragment ${n.sn}${i?" p: "+i.index:""} of level ${n.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(To(n)){this.fragPrevious=n;const a=this.switchingTrack;a&&(this.bufferedTrack=a,this.switchingTrack=null,this.hls.trigger(ke.AUDIO_TRACK_SWITCHED,zs({},a)))}this.fragBufferedComplete(n,i),this.media&&this.tick()}onError(e,r){var n;if(r.fatal){this.state=vr.ERROR;return}switch(r.details){case Zt.FRAG_GAP:case Zt.FRAG_PARSING_ERROR:case Zt.FRAG_DECRYPT_ERROR:case Zt.FRAG_LOAD_ERROR:case Zt.FRAG_LOAD_TIMEOUT:case Zt.KEY_LOAD_ERROR:case Zt.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(_n.AUDIO,r);break;case Zt.AUDIO_TRACK_LOAD_ERROR:case Zt.AUDIO_TRACK_LOAD_TIMEOUT:case Zt.LEVEL_PARSING_ERROR:!r.levelRetry&&this.state===vr.WAITING_TRACK&&((n=r.context)==null?void 0:n.type)===Gi.AUDIO_TRACK&&(this.state=vr.IDLE);break;case Zt.BUFFER_ADD_CODEC_ERROR:case Zt.BUFFER_APPEND_ERROR:if(r.parent!=="audio")return;this.reduceLengthAndFlushBuffer(r)||this.resetLoadingState();break;case Zt.BUFFER_FULL_ERROR:if(r.parent!=="audio")return;this.reduceLengthAndFlushBuffer(r)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case Zt.INTERNAL_EXCEPTION:this.recoverWorkerError(r);break}}onBufferFlushing(e,{type:r}){r!==ta.VIDEO&&(this.flushing=!0)}onBufferFlushed(e,{type:r}){if(r!==ta.VIDEO){this.flushing=!1,this.bufferFlushed=!0,this.state===vr.ENDED&&(this.state=vr.IDLE);const n=this.mediaBuffer||this.media;n&&(this.afterBufferFlushed(n,r,_n.AUDIO),this.tick())}}_handleTransmuxComplete(e){var r;const n="audio",{hls:i}=this,{remuxResult:a,chunkMeta:c}=e,s=this.getCurrentContext(c);if(!s){this.resetWhenMissingContext(c);return}const{frag:f,part:m,level:x}=s,{details:_}=x,{audio:T,text:E,id3:C,initSegment:N}=a;if(this.fragContextChanged(f)||!_){this.fragmentTracker.removeFragment(f);return}if(this.state=vr.PARSING,this.switchingTrack&&T&&this.completeAudioSwitch(this.switchingTrack),N!=null&&N.tracks){const L=f.initSegment||f;if(this.unhandledEncryptionError(N,f))return;this._bufferInitSegment(x,N.tracks,L,c),i.trigger(ke.FRAG_PARSING_INIT_SEGMENT,{frag:L,id:n,tracks:N.tracks})}if(T){const{startPTS:L,endPTS:M,startDTS:D,endDTS:B}=T;m&&(m.elementaryStreams[ta.AUDIO]={startPTS:L,endPTS:M,startDTS:D,endDTS:B}),f.setElementaryStreamInfo(ta.AUDIO,L,M,D,B),this.bufferFragmentData(T,f,m,c)}if(C!=null&&(r=C.samples)!=null&&r.length){const L=Xs({id:n,frag:f,details:_},C);i.trigger(ke.FRAG_PARSING_METADATA,L)}if(E){const L=Xs({id:n,frag:f,details:_},E);i.trigger(ke.FRAG_PARSING_USERDATA,L)}}_bufferInitSegment(e,r,n,i){if(this.state!==vr.PARSING||(r.video&&delete r.video,r.audiovideo&&delete r.audiovideo,!r.audio))return;const a=r.audio;a.id=_n.AUDIO;const c=e.audioCodec;this.log(`Init audio buffer, container:${a.container}, codecs[level/parsed]=[${c}/${a.codec}]`),c&&c.split(",").length===1&&(a.levelCodec=c),this.hls.trigger(ke.BUFFER_CODECS,r);const s=a.initSegment;if(s!=null&&s.byteLength){const f={type:"audio",frag:n,part:null,chunkMeta:i,parent:n.type,data:s};this.hls.trigger(ke.BUFFER_APPENDING,f)}this.tickImmediate()}loadFragment(e,r,n){const i=this.fragmentTracker.getState(e);if(this.switchingTrack||i===il.NOT_LOADED||i===il.PARTIAL){var a;if(!To(e))this._loadInitSegment(e,r);else if((a=r.details)!=null&&a.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=vr.WAITING_INIT_PTS;const c=this.mainDetails;c&&c.fragmentStart!==r.details.fragmentStart&&wM(r.details,c)}else super.loadFragment(e,r,n)}else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){if(this.media&&this.bufferedTrack){const{name:r,lang:n,assocLang:i,characteristics:a,audioCodec:c,channels:s}=this.bufferedTrack;h_({name:r,lang:n,assocLang:i,characteristics:a,audioCodec:c,channels:s},e,O0)||(yM(e.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null):this.bufferedTrack=e)}}completeAudioSwitch(e){const{hls:r}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,r.trigger(ke.AUDIO_TRACK_SWITCHED,zs({},e))}}class AW extends ah{constructor(e,r){super(r,e.logger),this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(e,r,n){const i=r==null?void 0:r.renditionReports;if(i){let a=-1;for(let c=0;c=0&&x>r.partTarget&&(f+=1)}const m=n&&Ooe(n);return new Foe(s,f>=0?f:void 0,m)}}}loadPlaylist(e){this.clearTimer()}loadingPlaylist(e,r){this.clearTimer()}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}getUrlWithDirectives(e,r){if(r)try{return r.addDirectives(e)}catch(n){this.warn(`Could not construct new URL with HLS Delivery Directives: ${n}`)}return e}playlistLoaded(e,r,n){const{details:i,stats:a}=r,c=self.performance.now(),s=a.loading.first?Math.max(0,c-a.loading.first):0;i.advancedDateTime=Date.now()-s;const f=this.hls.config.timelineOffset;if(f!==i.appliedTimelineOffset){const x=Math.max(f||0,0);i.appliedTimelineOffset=x,i.fragments.forEach(_=>{_.setStart(_.playlistOffset+x)})}if(i.live||n!=null&&n.live){const x="levelInfo"in r?r.levelInfo:r.track;if(i.reloaded(n),n&&i.fragments.length>0){sRt(n,i,this);const D=i.playlistParsingError;if(D){this.warn(D);const B=this.hls;if(!B.config.ignorePlaylistParsingErrors){var m;const{networkDetails:V}=r;B.trigger(ke.ERROR,{type:jn.NETWORK_ERROR,details:Zt.LEVEL_PARSING_ERROR,fatal:!1,url:i.url,error:D,reason:D.message,level:r.level||void 0,parent:(m=i.fragments[0])==null?void 0:m.type,networkDetails:V,stats:a});return}i.playlistParsingError=null}}i.requestScheduled===-1&&(i.requestScheduled=a.loading.start);const _=this.hls.mainForwardBufferInfo,T=_?_.end-_.len:0,E=(i.edge-T)*1e3,C=HEe(i,E);if(i.requestScheduled+C0){if(se>i.targetduration*3)this.log(`Playlist last advanced ${Q.toFixed(2)}s ago. Omitting segment and part directives.`),L=void 0,M=void 0;else if(n!=null&&n.tuneInGoal&&se-i.partTarget>n.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${n.tuneInGoal} to: ${ie} with playlist age: ${i.age}`),ie=0;else{const ue=Math.floor(ie/i.targetduration);if(L+=ue,M!==void 0){const be=Math.round(ie%i.targetduration/i.partTarget);M+=be}this.log(`CDN Tune-in age: ${i.ageHeader}s last advanced ${Q.toFixed(2)}s goal: ${ie} skip sn ${ue} to part ${M}`)}i.tuneInGoal=ie}if(N=this.getDeliveryDirectives(i,r.deliveryDirectives,L,M),D||!Z){i.requestScheduled=c,this.loadingPlaylist(x,N);return}}else(i.canBlockReload||i.canSkipUntil)&&(N=this.getDeliveryDirectives(i,r.deliveryDirectives,L,M));N&&L!==void 0&&i.canBlockReload&&(i.requestScheduled=a.loading.first+Math.max(C-s*2,C/2)),this.scheduleLoading(x,N,i)}else this.clearTimer()}scheduleLoading(e,r,n){const i=n||e.details;if(!i){this.loadingPlaylist(e,r);return}const a=self.performance.now(),c=i.requestScheduled;if(a>=c){this.loadingPlaylist(e,r);return}const s=c-a;this.log(`reload live playlist ${e.name||e.bitrate+"bps"} in ${Math.round(s)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(e,r),s)}getDeliveryDirectives(e,r,n,i){let a=Ooe(e);return r!=null&&r.skip&&e.deltaUpdateFailed&&(n=r.msn,i=r.part,a=qR.No),new Foe(n,i,a)}checkRetry(e){const r=e.details,n=xM(e),i=e.errorAction,{action:a,retryCount:c=0,retryConfig:s}=i||{},f=!!i&&!!s&&(a===Bl.RetryRequest||!i.resolved&&a===Bl.SendAlternateToPenaltyBox);if(f){var m;if(c>=s.maxNumRetry)return!1;if(n&&(m=e.context)!=null&&m.deliveryDirectives)this.warn(`Retrying playlist loading ${c+1}/${s.maxNumRetry} after "${r}" without delivery-directives`),this.loadPlaylist();else{const x=fW(s,c);this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),x),this.warn(`Retrying playlist loading ${c+1}/${s.maxNumRetry} after "${r}" in ${x}ms`)}e.levelRetry=!0,i.resolved=!0}return f}}function x2e(t,e){if(t.length!==e.length)return!1;for(let r=0;rt[i]!==e[i])}function K8(t,e){return e.label.toLowerCase()===t.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(t.lang||"").toLowerCase())}class pLt extends AW{constructor(e){super(e,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){const{hls:e}=this;e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.LEVEL_LOADING,this.onLevelLoading,this),e.on(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(ke.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.LEVEL_LOADING,this.onLevelLoading,this),e.off(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(ke.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(ke.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,r){this.tracks=r.audioTracks||[]}onAudioTrackLoaded(e,r){const{id:n,groupId:i,details:a}=r,c=this.tracksInGroup[n];if(!c||c.groupId!==i){this.warn(`Audio track with id:${n} and group:${i} not found in active group ${c==null?void 0:c.groupId}`);return}const s=c.details;c.details=r.details,this.log(`Audio track ${n} "${c.name}" lang:${c.lang} group:${i} loaded [${a.startSN}-${a.endSN}]`),n===this.trackId&&this.playlistLoaded(n,r,s)}onLevelLoading(e,r){this.switchLevel(r.level)}onLevelSwitching(e,r){this.switchLevel(r.level)}switchLevel(e){const r=this.hls.levels[e];if(!r)return;const n=r.audioGroups||null,i=this.groupIds;let a=this.currentTrack;if(!n||(i==null?void 0:i.length)!==(n==null?void 0:n.length)||n!=null&&n.some(s=>(i==null?void 0:i.indexOf(s))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;const s=this.tracks.filter(T=>!n||n.indexOf(T.groupId)!==-1);if(s.length)this.selectDefaultTrack&&!s.some(T=>T.default)&&(this.selectDefaultTrack=!1),s.forEach((T,E)=>{T.id=E});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=s;const f=this.hls.config.audioPreference;if(!a&&f){const T=Wf(f,s,O0);if(T>-1)a=s[T];else{const E=Wf(f,this.tracks);a=this.tracks[E]}}let m=this.findTrackId(a);m===-1&&a&&(m=this.findTrackId(null));const x={audioTracks:s};this.log(`Updating audio tracks, ${s.length} track(s) found in group(s): ${n==null?void 0:n.join(",")}`),this.hls.trigger(ke.AUDIO_TRACKS_UPDATED,x);const _=this.trackId;if(m!==-1&&_===-1)this.setAudioTrack(m);else if(s.length&&_===-1){var c;const T=new Error(`No audio track selected for current audio group-ID(s): ${(c=this.groupIds)==null?void 0:c.join(",")} track count: ${s.length}`);this.warn(T.message),this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:T})}}}onError(e,r){r.fatal||!r.context||r.context.type===Gi.AUDIO_TRACK&&r.context.id===this.trackId&&(!this.groupIds||this.groupIds.indexOf(r.context.groupId)!==-1)&&this.checkRetry(r)}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){const r=this.hls;if(r.config.audioPreference=e,e){const n=this.allAudioTracks;if(this.selectDefaultTrack=!1,n.length){const i=this.currentTrack;if(i&&h_(e,i,O0))return i;const a=Wf(e,this.tracksInGroup,O0);if(a>-1){const c=this.tracksInGroup[a];return this.setAudioTrack(a),c}else if(i){let c=r.loadLevel;c===-1&&(c=r.firstAutoLevel);const s=ANt(e,r.levels,n,c,O0);if(s===-1)return null;r.nextLoadLevel=s}if(e.channels||e.audioCodec){const c=Wf(e,n);if(c>-1)return n[c]}}}return null}setAudioTrack(e){const r=this.tracksInGroup;if(e<0||e>=r.length){this.warn(`Invalid audio track id: ${e}`);return}this.selectDefaultTrack=!1;const n=this.currentTrack,i=r[e],a=i.details&&!i.details.live;if(e===this.trackId&&i===n&&a||(this.log(`Switching to audio-track ${e} "${i.name}" lang:${i.lang} group:${i.groupId} channels:${i.channels}`),this.trackId=e,this.currentTrack=i,this.hls.trigger(ke.AUDIO_TRACK_SWITCHING,zs({},i)),a))return;const c=this.switchParams(i.url,n==null?void 0:n.details,i.details);this.loadPlaylist(c)}findTrackId(e){const r=this.tracksInGroup;for(let n=0;n{const n={label:"async-blocker",execute:r,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.append(n,e)})}prependBlocker(e){return new Promise(r=>{if(this.queues){const n={label:"async-blocker-prepend",execute:r,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.queues[e].unshift(n)}})}removeBlockers(){this.queues!==null&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach(e=>{var r;const n=(r=e[0])==null?void 0:r.label;(n==="async-blocker"||n==="async-blocker-prepend")&&(e[0].execute(),e.splice(0,1))})}unblockAudio(e){if(this.queues===null)return;this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio")}executeNext(e){if(this.queues===null||this.tracks===null)return;const r=this.queues[e];if(r.length){const i=r[0];try{i.execute()}catch(a){var n;if(i.onError(a),this.queues===null||this.tracks===null)return;const c=(n=this.tracks[e])==null?void 0:n.buffer;c!=null&&c.updating||this.shiftAndExecuteNext(e)}}}shiftAndExecuteNext(e){this.queues!==null&&(this.queues[e].shift(),this.executeNext(e))}current(e){var r;return((r=this.queues)==null?void 0:r[e][0])||null}toString(){const{queues:e,tracks:r}=this;return e===null||r===null?"":` ${this.list("video")} ${this.list("audio")} ${this.list("audiovideo")}}`}list(e){var r,n;return(r=this.queues)!=null&&r[e]||(n=this.tracks)!=null&&n[e]?`${e}: (${this.listSbInfo(e)}) ${this.listOps(e)}`:""}listSbInfo(e){var r;const n=(r=this.tracks)==null?void 0:r[e],i=n==null?void 0:n.buffer;return i?`SourceBuffer${i.updating?" updating":""}${n.ended?" ended":""}${n.ending?" ending":""}`:"none"}listOps(e){var r;return((r=this.queues)==null?void 0:r[e].map(n=>n.label).join(", "))||""}}const Sle=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,_2e="HlsJsTrackRemovedError";class gLt extends Error{constructor(e){super(e),this.name=_2e}}class yLt extends ah{constructor(e,r){super("buffer-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=n=>{var i;this.hls&&((i=this.mediaSource)==null?void 0:i.readyState)==="open"&&this.hls.pauseBuffering()},this._onStartStreaming=n=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=n=>{const{media:i,mediaSource:a}=this;n&&this.log("Media source opened"),!(!i||!a)&&(a.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(ke.MEDIA_ATTACHED,{media:i,mediaSource:a}),this.mediaSource!==null&&this.checkPendingTracks())},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{const{mediaSrc:n,_objectUrl:i}=this;n!==i&&this.error(`Media element src was set while attaching MediaSource (${i} > ${n})`)},this.hls=e,this.fragmentTracker=r,this.appendSource=BPt(Yy(e.config.preferManagedMediaSource)),this.initTracks(),this.registerListeners()}hasSourceTypes(){return Object.keys(this.tracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue&&(this.operationQueue.destroy(),this.operationQueue=null),this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}registerListeners(){const{hls:e}=this;e.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.BUFFER_RESET,this.onBufferReset,this),e.on(ke.BUFFER_APPENDING,this.onBufferAppending,this),e.on(ke.BUFFER_CODECS,this.onBufferCodecs,this),e.on(ke.BUFFER_EOS,this.onBufferEos,this),e.on(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(ke.FRAG_PARSED,this.onFragParsed,this),e.on(ke.FRAG_CHANGED,this.onFragChanged,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.BUFFER_RESET,this.onBufferReset,this),e.off(ke.BUFFER_APPENDING,this.onBufferAppending,this),e.off(ke.BUFFER_CODECS,this.onBufferCodecs,this),e.off(ke.BUFFER_EOS,this.onBufferEos,this),e.off(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(ke.FRAG_PARSED,this.onFragParsed,this),e.off(ke.FRAG_CHANGED,this.onFragChanged,this),e.off(ke.ERROR,this.onError,this)}transferMedia(){const{media:e,mediaSource:r}=this;if(!e)return null;const n={};if(this.operationQueue){const a=this.isUpdating();a||this.operationQueue.removeBlockers();const c=this.isQueued();(a||c)&&this.warn(`Transfering MediaSource with${c?" operations in queue":""}${a?" updating SourceBuffer(s)":""} ${this.operationQueue}`),this.operationQueue.destroy()}const i=this.transferData;return!this.sourceBufferCount&&i&&i.mediaSource===r?Xs(n,i.tracks):this.sourceBuffers.forEach(a=>{const[c]=a;c&&(n[c]=Xs({},this.tracks[c]),this.removeBuffer(c)),a[0]=a[1]=null}),{media:e,mediaSource:r,tracks:n}}initTracks(){const e={};this.sourceBuffers=[[null,null],[null,null]],this.tracks=e,this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,r){var n;let i=2;(r.audio&&!r.video||!r.altAudio)&&(i=1),this.bufferCodecEventsTotal=i,this.log(`${i} bufferCodec event(s) expected.`),(n=this.transferData)!=null&&n.mediaSource&&this.sourceBufferCount&&i&&this.bufferCreated()}onMediaAttaching(e,r){const n=this.media=r.media;this.transferData=this.overrides=void 0;const i=Yy(this.appendSource);if(i){const a=!!r.mediaSource;(a||r.overrides)&&(this.transferData=r,this.overrides=r.overrides);const c=this.mediaSource=r.mediaSource||new i;if(this.assignMediaSource(c),a)this._objectUrl=n.src,this.attachTransferred();else{const s=this._objectUrl=self.URL.createObjectURL(c);if(this.appendSource)try{n.removeAttribute("src");const f=self.ManagedMediaSource;n.disableRemotePlayback=n.disableRemotePlayback||f&&c instanceof f,Tle(n),xLt(n,s),n.load()}catch{n.src=s}else n.src=s}n.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(e){var r,n;this.log(`${((r=this.transferData)==null?void 0:r.mediaSource)===e?"transferred":"created"} media source: ${(n=e.constructor)==null?void 0:n.name}`),e.addEventListener("sourceopen",this._onMediaSourceOpen),e.addEventListener("sourceended",this._onMediaSourceEnded),e.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(e.addEventListener("startstreaming",this._onStartStreaming),e.addEventListener("endstreaming",this._onEndStreaming))}attachTransferred(){const e=this.media,r=this.transferData;if(!r||!e)return;const n=this.tracks,i=r.tracks,a=i?Object.keys(i):null,c=a?a.length:0,s=()=>{Promise.resolve().then(()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen()})};if(i&&a&&c){if(!this.tracksReady){this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");return}if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal}) required tracks: ${ia(n,(f,m)=>f==="initSegment"?void 0:m)}; transfer tracks: ${ia(i,(f,m)=>f==="initSegment"?void 0:m)}}`),!mEe(i,n)){r.mediaSource=null,r.tracks=void 0;const f=e.currentTime,m=this.details,x=Math.max(f,(m==null?void 0:m.fragments[0].start)||0);if(x-f>1){this.log(`attachTransferred: waiting for playback to reach new tracks start time ${f} -> ${x}`);return}this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(i)}"->"${Object.keys(n)}") start time: ${x} currentTime: ${f}`),this.onMediaDetaching(ke.MEDIA_DETACHING,{}),this.onMediaAttaching(ke.MEDIA_ATTACHING,r),e.currentTime=x;return}this.transferData=void 0,a.forEach(f=>{const m=f,x=i[m];if(x){const _=x.buffer;if(_){const T=this.fragmentTracker,E=x.id;if(T.hasFragments(E)||T.hasParts(E)){const L=yi.getBuffered(_);T.detectEvictedFragments(m,L,E,null,!0)}const C=a$(m),N=[m,_];this.sourceBuffers[C]=N,_.updating&&this.operationQueue&&this.operationQueue.prependBlocker(m),this.trackSourceBuffer(m,x)}}}),s(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),s()}get mediaSourceOpenOrEnded(){var e;const r=(e=this.mediaSource)==null?void 0:e.readyState;return r==="open"||r==="ended"}onMediaDetaching(e,r){const n=!!r.transferMedia;this.transferData=this.overrides=void 0;const{media:i,mediaSource:a,_objectUrl:c}=this;if(a){if(this.log(`media source ${n?"transferring":"detaching"}`),n)this.sourceBuffers.forEach(([s])=>{s&&this.removeBuffer(s)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){const s=a.readyState==="open";try{const f=a.sourceBuffers;for(let m=f.length;m--;)s&&f[m].abort(),a.removeSourceBuffer(f[m]);s&&a.endOfStream()}catch(f){this.warn(`onMediaDetaching: ${f.message} while calling endOfStream`)}}this.sourceBufferCount&&this.onBufferReset()}a.removeEventListener("sourceopen",this._onMediaSourceOpen),a.removeEventListener("sourceended",this._onMediaSourceEnded),a.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(a.removeEventListener("startstreaming",this._onStartStreaming),a.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}i&&(i.removeEventListener("emptied",this._onMediaEmptied),n||(c&&self.URL.revokeObjectURL(c),this.mediaSrc===c?(i.removeAttribute("src"),this.appendSource&&Tle(i),i.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(ke.MEDIA_DETACHED,r)}onBufferReset(){this.sourceBuffers.forEach(([e])=>{e&&this.resetBuffer(e)}),this.initTracks()}resetBuffer(e){var r;const n=(r=this.tracks[e])==null?void 0:r.buffer;if(this.removeBuffer(e),n)try{var i;(i=this.mediaSource)!=null&&i.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(n)}catch(a){this.warn(`onBufferReset ${e}`,a)}delete this.tracks[e]}removeBuffer(e){this.removeBufferListeners(e),this.sourceBuffers[a$(e)]=[null,null];const r=this.tracks[e];r&&(r.buffer=void 0)}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new mLt(this.tracks)}onBufferCodecs(e,r){var n;const i=this.tracks,a=Object.keys(r);this.log(`BUFFER_CODECS: "${a}" (current SB count ${this.sourceBufferCount})`);const c="audiovideo"in r&&(i.audio||i.video)||i.audiovideo&&("audio"in r||"video"in r),s=!c&&this.sourceBufferCount&&this.media&&a.some(f=>!i[f]);if(c||s){this.warn(`Unsupported transition between "${Object.keys(i)}" and "${a}" SourceBuffers`);return}a.forEach(f=>{var m,x;const _=r[f],{id:T,codec:E,levelCodec:C,container:N,metadata:L,supplemental:M}=_;let D=i[f];const B=(m=this.transferData)==null||(m=m.tracks)==null?void 0:m[f],V=B!=null&&B.buffer?B:D,G=(V==null?void 0:V.pendingCodec)||(V==null?void 0:V.codec),W=V==null?void 0:V.levelCodec;D||(D=i[f]={buffer:void 0,listeners:[],codec:E,supplemental:M,container:N,levelCodec:C,metadata:L,id:T});const Z=VR(G,W),Q=Z==null?void 0:Z.replace(Sle,"$1");let se=VR(E,C);const ie=(x=se)==null?void 0:x.replace(Sle,"$1");se&&Z&&Q!==ie&&(f.slice(0,5)==="audio"&&(se=mM(se,this.appendSource)),this.log(`switching codec ${G} to ${se}`),se!==(D.pendingCodec||D.codec)&&(D.pendingCodec=se),D.container=N,this.appendChangeType(f,N,se))}),(this.tracksReady||this.sourceBufferCount)&&(r.tracks=this.sourceBufferTracks),!this.sourceBufferCount&&(this.bufferCodecEventsTotal>1&&!this.tracks.video&&!r.video&&((n=r.audio)==null?void 0:n.id)==="main"&&(this.log("Main audio-only"),this.bufferCodecEventsTotal=1),this.mediaSourceOpenOrEnded&&this.checkPendingTracks())}get sourceBufferTracks(){return Object.keys(this.tracks).reduce((e,r)=>{const n=this.tracks[r];return e[r]={id:n.id,container:n.container,codec:n.codec,levelCodec:n.levelCodec},e},{})}appendChangeType(e,r,n){const i=`${r};codecs=${n}`,a={label:`change-type=${i}`,execute:()=>{const c=this.tracks[e];if(c){const s=c.buffer;s!=null&&s.changeType&&(this.log(`changing ${e} sourceBuffer type to ${i}`),s.changeType(i),c.codec=n,c.container=r)}this.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:c=>{this.warn(`Failed to change ${e} SourceBuffer type`,c)}};this.append(a,e,this.isPending(this.tracks[e]))}blockAudio(e){var r;const n=e.start,i=n+e.duration*.05;if(((r=this.fragmentTracker.getAppendedFrag(n,_n.MAIN))==null?void 0:r.gap)===!0)return;const c={label:"block-audio",execute:()=>{var s;const f=this.tracks.video;(this.lastVideoAppendEnd>i||f!=null&&f.buffer&&yi.isBuffered(f.buffer,i)||((s=this.fragmentTracker.getAppendedFrag(i,_n.MAIN))==null?void 0:s.gap)===!0)&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"))},onStart:()=>{},onComplete:()=>{},onError:s=>{this.warn("Error executing block-audio operation",s)}};this.blockedAudioAppend={op:c,frag:e},this.append(c,"audio",!0)}unblockAudio(){const{blockedAudioAppend:e,operationQueue:r}=this;e&&r&&(this.blockedAudioAppend=null,r.unblockAudio(e.op))}onBufferAppending(e,r){const{tracks:n}=this,{data:i,type:a,parent:c,frag:s,part:f,chunkMeta:m,offset:x}=r,_=m.buffering[a],{sn:T,cc:E}=s,C=self.performance.now();_.start=C;const N=s.stats.buffering,L=f?f.stats.buffering:null;N.start===0&&(N.start=C),L&&L.start===0&&(L.start=C);const M=n.audio;let D=!1;a==="audio"&&(M==null?void 0:M.container)==="audio/mpeg"&&(D=!this.lastMpegAudioChunk||m.id===1||this.lastMpegAudioChunk.sn!==m.sn,this.lastMpegAudioChunk=m);const B=n.video,V=B==null?void 0:B.buffer;if(V&&T!=="initSegment"){const Z=f||s,Q=this.blockedAudioAppend;if(a==="audio"&&c!=="main"&&!this.blockedAudioAppend&&!(B.ending||B.ended)){const ie=Z.start+Z.duration*.05,ue=V.buffered,be=this.currentOp("video");!ue.length&&!be?this.blockAudio(Z):!be&&!yi.isBuffered(V,ie)&&this.lastVideoAppendEndie||se{var Z;_.executeStart=self.performance.now();const Q=(Z=this.tracks[a])==null?void 0:Z.buffer;Q&&(D?this.updateTimestampOffset(Q,G,.1,a,T,E):x!==void 0&&dn(x)&&this.updateTimestampOffset(Q,x,1e-6,a,T,E)),this.appendExecutor(i,a)},onStart:()=>{},onComplete:()=>{const Z=self.performance.now();_.executeEnd=_.end=Z,N.first===0&&(N.first=Z),L&&L.first===0&&(L.first=Z);const Q={};this.sourceBuffers.forEach(([se,ie])=>{se&&(Q[se]=yi.getBuffered(ie))}),this.appendErrors[a]=0,a==="audio"||a==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(ke.BUFFER_APPENDED,{type:a,frag:s,part:f,chunkMeta:m,parent:s.type,timeRanges:Q})},onError:Z=>{var Q;const se={type:jn.MEDIA_ERROR,parent:s.type,details:Zt.BUFFER_APPEND_ERROR,sourceBufferName:a,frag:s,part:f,chunkMeta:m,error:Z,err:Z,fatal:!1},ie=(Q=this.media)==null?void 0:Q.error;if(Z.code===DOMException.QUOTA_EXCEEDED_ERR||Z.name=="QuotaExceededError"||"quota"in Z)se.details=Zt.BUFFER_FULL_ERROR;else if(Z.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!ie)se.errorAction=Fw(!0);else if(Z.name===_2e&&this.sourceBufferCount===0)se.errorAction=Fw(!0);else{const ue=++this.appendErrors[a];this.warn(`Failed ${ue}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${a}" sourceBuffer (${ie||"no media error"})`),(ue>=this.hls.config.appendErrorMaxRetry||ie)&&(se.fatal=!0)}this.hls.trigger(ke.ERROR,se)}};this.log(`queuing "${a}" append sn: ${T}${f?" p: "+f.index:""} of ${s.type===_n.MAIN?"level":"track"} ${s.level} cc: ${E}`),this.append(W,a,this.isPending(this.tracks[a]))}getFlushOp(e,r,n){return this.log(`queuing "${e}" remove ${r}-${n}`),{label:"remove",execute:()=>{this.removeExecutor(e,r,n)},onStart:()=>{},onComplete:()=>{this.hls.trigger(ke.BUFFER_FLUSHED,{type:e})},onError:i=>{this.warn(`Failed to remove ${r}-${n} from "${e}" SourceBuffer`,i)}}}onBufferFlushing(e,r){const{type:n,startOffset:i,endOffset:a}=r;n?this.append(this.getFlushOp(n,i,a),n):this.sourceBuffers.forEach(([c])=>{c&&this.append(this.getFlushOp(c,i,a),c)})}onFragParsed(e,r){const{frag:n,part:i}=r,a=[],c=i?i.elementaryStreams:n.elementaryStreams;c[ta.AUDIOVIDEO]?a.push("audiovideo"):(c[ta.AUDIO]&&a.push("audio"),c[ta.VIDEO]&&a.push("video"));const s=()=>{const f=self.performance.now();n.stats.buffering.end=f,i&&(i.stats.buffering.end=f);const m=i?i.stats:n.stats;this.hls.trigger(ke.FRAG_BUFFERED,{frag:n,part:i,stats:m,id:n.type})};a.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${n.type} level: ${n.level} sn: ${n.sn}`),this.blockBuffers(s,a).catch(f=>{this.warn(`Fragment buffered callback ${f}`),this.stepOperationQueue(this.sourceBufferTypes)})}onFragChanged(e,r){this.trimBuffers()}get bufferedToEnd(){return this.sourceBufferCount>0&&!this.sourceBuffers.some(([e])=>{if(e){const r=this.tracks[e];if(r)return!r.ended||r.ending}return!1})}onBufferEos(e,r){var n;this.sourceBuffers.forEach(([c])=>{if(c){const s=this.tracks[c];(!r.type||r.type===c)&&(s.ending=!0,s.ended||(s.ended=!0,this.log(`${c} buffer reached EOS`)))}});const i=((n=this.overrides)==null?void 0:n.endOfStream)!==!1;this.sourceBufferCount>0&&!this.sourceBuffers.some(([c])=>{var s;return c&&!((s=this.tracks[c])!=null&&s.ended)})?i?(this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();const{mediaSource:c}=this;if(!c||c.readyState!=="open"){c&&this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${c.readyState}`);return}this.log("Calling mediaSource.endOfStream()"),c.endOfStream(),this.hls.trigger(ke.BUFFERED_TO_END,void 0)})):(this.tracksEnded(),this.hls.trigger(ke.BUFFERED_TO_END,void 0)):r.type==="video"&&this.unblockAudio()}tracksEnded(){this.sourceBuffers.forEach(([e])=>{if(e!==null){const r=this.tracks[e];r&&(r.ending=!1)}})}onLevelUpdated(e,{details:r}){r.fragments.length&&(this.details=r,this.updateDuration())}updateDuration(){this.blockUntilOpen(()=>{const e=this.getDurationAndRange();e&&this.updateMediaSource(e)})}onError(e,r){if(r.details===Zt.BUFFER_APPEND_ERROR&&r.frag){var n;const i=(n=r.errorAction)==null?void 0:n.nextAutoLevel;dn(i)&&i!==r.frag.level&&this.resetAppendErrors()}}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){const{hls:e,details:r,media:n}=this;if(!n||r===null||!this.sourceBufferCount)return;const i=e.config,a=n.currentTime,c=r.levelTargetDuration,s=r.live&&i.liveBackBufferLength!==null?i.liveBackBufferLength:i.backBufferLength;if(dn(s)&&s>=0){const m=Math.max(s,c),x=Math.floor(a/c)*c-m;this.flushBackBuffer(a,c,x)}const f=i.frontBufferFlushThreshold;if(dn(f)&&f>0){const m=Math.max(i.maxBufferLength,f),x=Math.max(m,c),_=Math.floor(a/c)*c+x;this.flushFrontBuffer(a,c,_)}}flushBackBuffer(e,r,n){this.sourceBuffers.forEach(([i,a])=>{if(a){const s=yi.getBuffered(a);if(s.length>0&&n>s.start(0)){var c;this.hls.trigger(ke.BACK_BUFFER_REACHED,{bufferEnd:n});const f=this.tracks[i];if((c=this.details)!=null&&c.live)this.hls.trigger(ke.LIVE_BACK_BUFFER_REACHED,{bufferEnd:n});else if(f!=null&&f.ended){this.log(`Cannot flush ${i} back buffer while SourceBuffer is in ended state`);return}this.hls.trigger(ke.BUFFER_FLUSHING,{startOffset:0,endOffset:n,type:i})}}})}flushFrontBuffer(e,r,n){this.sourceBuffers.forEach(([i,a])=>{if(a){const c=yi.getBuffered(a),s=c.length;if(s<2)return;const f=c.start(s-1),m=c.end(s-1);if(n>f||e>=f&&e<=m)return;this.hls.trigger(ke.BUFFER_FLUSHING,{startOffset:f,endOffset:1/0,type:i})}})}getDurationAndRange(){var e;const{details:r,mediaSource:n}=this;if(!r||!this.media||(n==null?void 0:n.readyState)!=="open")return null;const i=r.edge;if(r.live&&this.hls.config.liveDurationInfinity){if(r.fragments.length&&n.setLiveSeekableRange){const m=Math.max(0,r.fragmentStart),x=Math.max(m,i);return{duration:1/0,start:m,end:x}}return{duration:1/0}}const a=(e=this.overrides)==null?void 0:e.duration;if(a)return dn(a)?{duration:a}:null;const c=this.media.duration,s=dn(n.duration)?n.duration:0;return i>s&&i>c||!dn(c)?{duration:i}:null}updateMediaSource({duration:e,start:r,end:n}){const i=this.mediaSource;!this.media||!i||i.readyState!=="open"||(i.duration!==e&&(dn(e)&&this.log(`Updating MediaSource duration to ${e.toFixed(3)}`),i.duration=e),r!==void 0&&n!==void 0&&(this.log(`MediaSource duration is set to ${i.duration}. Setting seekable range to ${r}-${n}.`),i.setLiveSeekableRange(r,n)))}get tracksReady(){const e=this.pendingTrackCount;return e>0&&(e>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){const{bufferCodecEventsTotal:e,pendingTrackCount:r,tracks:n}=this;if(this.log(`checkPendingTracks (pending: ${r} codec events expected: ${e}) ${ia(n)}`),this.tracksReady){var i;const a=(i=this.transferData)==null?void 0:i.tracks;a&&Object.keys(a).length?this.attachTransferred():this.createSourceBuffers()}}bufferCreated(){if(this.sourceBufferCount){const e={};this.sourceBuffers.forEach(([r,n])=>{if(r){const i=this.tracks[r];e[r]={buffer:n,container:i.container,codec:i.codec,supplemental:i.supplemental,levelCodec:i.levelCodec,id:i.id,metadata:i.metadata}}}),this.hls.trigger(ke.BUFFER_CREATED,{tracks:e}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach(([r])=>{this.executeNext(r)})}else{const e=new Error("could not create source buffer for media codec(s)");this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:e,reason:e.message})}}createSourceBuffers(){const{tracks:e,sourceBuffers:r,mediaSource:n}=this;if(!n)throw new Error("createSourceBuffers called when mediaSource was null");for(const a in e){const c=a,s=e[c];if(this.isPending(s)){const f=this.getTrackCodec(s,c),m=`${s.container};codecs=${f}`;s.codec=f,this.log(`creating sourceBuffer(${m})${this.currentOp(c)?" Queued":""} ${ia(s)}`);try{const x=n.addSourceBuffer(m),_=a$(c),T=[c,x];r[_]=T,s.buffer=x}catch(x){var i;this.error(`error while trying to add sourceBuffer: ${x.message}`),this.shiftAndExecuteNext(c),(i=this.operationQueue)==null||i.removeBlockers(),delete this.tracks[c],this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:x,sourceBufferName:c,mimeType:m,parent:s.id});return}this.trackSourceBuffer(c,s)}}this.bufferCreated()}getTrackCodec(e,r){const n=e.supplemental;let i=e.codec;n&&(r==="video"||r==="audiovideo")&&tC(n,"video")&&(i=oNt(i,n));const a=VR(i,e.levelCodec);return a?r.slice(0,5)==="audio"?mM(a,this.appendSource):a:""}trackSourceBuffer(e,r){const n=r.buffer;if(!n)return;const i=this.getTrackCodec(r,e);this.tracks[e]={buffer:n,codec:i,container:r.container,levelCodec:r.levelCodec,supplemental:r.supplemental,metadata:r.metadata,id:r.id,listeners:[]},this.removeBufferListeners(e),this.addBufferListener(e,"updatestart",this.onSBUpdateStart),this.addBufferListener(e,"updateend",this.onSBUpdateEnd),this.addBufferListener(e,"error",this.onSBUpdateError),this.appendSource&&this.addBufferListener(e,"bufferedchange",(a,c)=>{const s=c.removedRanges;s!=null&&s.length&&this.hls.trigger(ke.BUFFER_FLUSHED,{type:a})})}get mediaSrc(){var e,r;const n=((e=this.media)==null||(r=e.querySelector)==null?void 0:r.call(e,"source"))||this.media;return n==null?void 0:n.src}onSBUpdateStart(e){const r=this.currentOp(e);r&&r.onStart()}onSBUpdateEnd(e){var r;if(((r=this.mediaSource)==null?void 0:r.readyState)==="closed"){this.resetBuffer(e);return}const n=this.currentOp(e);n&&(n.onComplete(),this.shiftAndExecuteNext(e))}onSBUpdateError(e,r){var n;const i=new Error(`${e} SourceBuffer error. MediaSource readyState: ${(n=this.mediaSource)==null?void 0:n.readyState}`);this.error(`${i}`,r),this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:i,fatal:!1});const a=this.currentOp(e);a&&a.onError(i)}updateTimestampOffset(e,r,n,i,a,c){const s=r-e.timestampOffset;Math.abs(s)>=n&&(this.log(`Updating ${i} SourceBuffer timestampOffset to ${r} (sn: ${a} cc: ${c})`),e.timestampOffset=r)}removeExecutor(e,r,n){const{media:i,mediaSource:a}=this,c=this.tracks[e],s=c==null?void 0:c.buffer;if(!i||!a||!s){this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(e);return}const f=dn(i.duration)?i.duration:1/0,m=dn(a.duration)?a.duration:1/0,x=Math.max(0,r),_=Math.min(n,f,m);_>x&&(!c.ending||c.ended)?(c.ended=!1,this.log(`Removing [${x},${_}] from the ${e} SourceBuffer`),s.remove(x,_)):this.shiftAndExecuteNext(e)}appendExecutor(e,r){const n=this.tracks[r],i=n==null?void 0:n.buffer;if(!i)throw new gLt(`Attempting to append to the ${r} SourceBuffer, but it does not exist`);n.ending=!1,n.ended=!1,i.appendBuffer(e)}blockUntilOpen(e){if(this.isUpdating()||this.isQueued())this.blockBuffers(e).catch(r=>{this.warn(`SourceBuffer blocked callback ${r}`),this.stepOperationQueue(this.sourceBufferTypes)});else try{e()}catch(r){this.warn(`Callback run without blocking ${this.operationQueue} ${r}`)}}isUpdating(){return this.sourceBuffers.some(([e,r])=>e&&r.updating)}isQueued(){return this.sourceBuffers.some(([e])=>e&&!!this.currentOp(e))}isPending(e){return!!e&&!e.buffer}blockBuffers(e,r=this.sourceBufferTypes){if(!r.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(e);const{operationQueue:n}=this,i=r.map(c=>this.appendBlocker(c));return r.length>1&&!!this.blockedAudioAppend&&this.unblockAudio(),Promise.all(i).then(c=>{n===this.operationQueue&&(e(),this.stepOperationQueue(this.sourceBufferTypes))})}stepOperationQueue(e){e.forEach(r=>{var n;const i=(n=this.tracks[r])==null?void 0:n.buffer;!i||i.updating||this.shiftAndExecuteNext(r)})}append(e,r,n){this.operationQueue&&this.operationQueue.append(e,r,n)}appendBlocker(e){if(this.operationQueue)return this.operationQueue.appendBlocker(e)}currentOp(e){return this.operationQueue?this.operationQueue.current(e):null}executeNext(e){e&&this.operationQueue&&this.operationQueue.executeNext(e)}shiftAndExecuteNext(e){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(e)}get pendingTrackCount(){return Object.keys(this.tracks).reduce((e,r)=>e+(this.isPending(this.tracks[r])?1:0),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((e,[r])=>e+(r?1:0),0)}get sourceBufferTypes(){return this.sourceBuffers.map(([e])=>e).filter(e=>!!e)}addBufferListener(e,r,n){const i=this.tracks[e];if(!i)return;const a=i.buffer;if(!a)return;const c=n.bind(this,e);i.listeners.push({event:r,listener:c}),a.addEventListener(r,c)}removeBufferListeners(e){const r=this.tracks[e];if(!r)return;const n=r.buffer;n&&(r.listeners.forEach(i=>{n.removeEventListener(i.event,i.listener)}),r.listeners.length=0)}}function Tle(t){const e=t.querySelectorAll("source");[].slice.call(e).forEach(r=>{t.removeChild(r)})}function xLt(t,e){const r=self.document.createElement("source");r.type="video/mp4",r.src=e,t.appendChild(r)}function a$(t){return t==="audio"?1:0}class kW{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){const{hls:e}=this;e.on(ke.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(ke.BUFFER_CODECS,this.onBufferCodecs,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){const{hls:e}=this;e.off(ke.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(ke.BUFFER_CODECS,this.onBufferCodecs,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,r){const n=this.hls.levels[r.droppedLevel];this.isLevelAllowed(n)&&this.restrictedLevels.push({bitrate:n.bitrate,height:n.height,width:n.width})}onMediaAttaching(e,r){this.media=r.media instanceof HTMLVideoElement?r.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(e,r){const n=this.hls;this.restrictedLevels=[],this.firstLevel=r.firstLevel,n.config.capLevelToPlayerSize&&r.video&&this.startCapping()}onLevelsUpdated(e,r){this.timer&&dn(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(e,r){this.hls.config.capLevelToPlayerSize&&r.video&&this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0){this.clientRect=null;return}const e=this.hls.levels;if(e.length){const r=this.hls,n=this.getMaxLevel(e.length-1);n!==this.autoLevelCapping&&r.logger.log(`Setting autoLevelCapping to ${n}: ${e[n].height}p@${e[n].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),r.autoLevelCapping=n,r.autoLevelEnabled&&r.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=r.autoLevelCapping}}}getMaxLevel(e){const r=this.hls.levels;if(!r.length)return-1;const n=r.filter((i,a)=>this.isLevelAllowed(i)&&a<=e);return this.clientRect=null,kW.getMaxLevelByMediaSize(n,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;const e=this.media,r={width:0,height:0};if(e){const n=e.getBoundingClientRect();r.width=n.width,r.height=n.height,!r.width&&!r.height&&(r.width=n.right-n.left||e.width||0,r.height=n.bottom-n.top||e.height||0)}return this.clientRect=r,r}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch{}return Math.min(e,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(e){return!this.restrictedLevels.some(n=>e.bitrate===n.bitrate&&e.width===n.width&&e.height===n.height)}static getMaxLevelByMediaSize(e,r,n){if(!(e!=null&&e.length))return-1;const i=(s,f)=>f?s.width!==f.width||s.height!==f.height:!0;let a=e.length-1;const c=Math.max(r,n);for(let s=0;s=c||f.height>=c)&&i(f,e[s+1])){a=s;break}}return a}}const _Lt={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},fu=_Lt,vLt={HLS:"h"},bLt=vLt;class lp{constructor(e,r){Array.isArray(e)&&(e=e.map(n=>n instanceof lp?n:new lp(n))),this.value=e,this.params=r}}const wLt="Dict";function SLt(t){return Array.isArray(t)?JSON.stringify(t):t instanceof Map?"Map{}":t instanceof Set?"Set{}":typeof t=="object"?JSON.stringify(t):String(t)}function TLt(t,e,r,n){return new Error(`failed to ${t} "${SLt(e)}" as ${r}`,{cause:n})}function cp(t,e,r){return TLt("serialize",t,e,r)}class v2e{constructor(e){this.description=e}}const Ele="Bare Item",ELt="Boolean";function ALt(t){if(typeof t!="boolean")throw cp(t,ELt);return t?"?1":"?0"}function kLt(t){return btoa(String.fromCharCode(...t))}const CLt="Byte Sequence";function ILt(t){if(ArrayBuffer.isView(t)===!1)throw cp(t,CLt);return`:${kLt(t)}:`}const jLt="Integer";function PLt(t){return t<-999999999999999||99999999999999912)throw cp(t,RLt);const r=e.toString();return r.includes(".")?r:`${r}.0`}const DLt="String",MLt=/[\x00-\x1f\x7f]+/;function OLt(t){if(MLt.test(t))throw cp(t,DLt);return`"${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function FLt(t){return t.description||t.toString().slice(7,-1)}const BLt="Token";function Ale(t){const e=FLt(t);if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw cp(e,BLt);return e}function Y8(t){switch(typeof t){case"number":if(!dn(t))throw cp(t,Ele);return Number.isInteger(t)?b2e(t):LLt(t);case"string":return OLt(t);case"symbol":return Ale(t);case"boolean":return ALt(t);case"object":if(t instanceof Date)return NLt(t);if(t instanceof Uint8Array)return ILt(t);if(t instanceof v2e)return Ale(t);default:throw cp(t,Ele)}}const zLt="Key";function Z8(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw cp(t,zLt);return t}function CW(t){return t==null?"":Object.entries(t).map(([e,r])=>r===!0?`;${Z8(e)}`:`;${Z8(e)}=${Y8(r)}`).join("")}function S2e(t){return t instanceof lp?`${Y8(t.value)}${CW(t.params)}`:Y8(t)}function $Lt(t){return`(${t.value.map(S2e).join(" ")})${CW(t.params)}`}function ULt(t,e={whitespace:!0}){if(typeof t!="object"||t==null)throw cp(t,wLt);const r=t instanceof Map?t.entries():Object.entries(t),n=e!=null&&e.whitespace?" ":"";return Array.from(r).map(([i,a])=>{a instanceof lp||(a=new lp(a));let c=Z8(i);return a.value===!0?c+=CW(a.params):(c+="=",Array.isArray(a.value)?c+=$Lt(a):c+=S2e(a)),c}).join(`,${n}`)}function T2e(t,e){return ULt(t,e)}const If="CMCD-Object",ao="CMCD-Request",k0="CMCD-Session",Bg="CMCD-Status",VLt={br:If,ab:If,d:If,ot:If,tb:If,tpb:If,lb:If,tab:If,lab:If,url:If,pb:ao,bl:ao,tbl:ao,dl:ao,ltc:ao,mtp:ao,nor:ao,nrr:ao,rc:ao,sn:ao,sta:ao,su:ao,ttfb:ao,ttfbb:ao,ttlb:ao,cmsdd:ao,cmsds:ao,smrt:ao,df:ao,cs:ao,ts:ao,cid:k0,pr:k0,sf:k0,sid:k0,st:k0,v:k0,msd:k0,bs:Bg,bsd:Bg,cdn:Bg,rtp:Bg,bg:Bg,pt:Bg,ec:Bg,e:Bg},qLt={REQUEST:ao};function GLt(t){return Object.keys(t).reduce((e,r)=>{var n;return(n=t[r])===null||n===void 0||n.forEach(i=>e[i]=r),e},{})}function HLt(t,e){const r={};if(!t)return r;const n=Object.keys(t),i=e?GLt(e):{};return n.reduce((a,c)=>{var s;const f=VLt[c]||i[c]||qLt.REQUEST,m=(s=a[f])!==null&&s!==void 0?s:a[f]={};return m[c]=t[c],a},r)}function WLt(t){return["ot","sf","st","e","sta"].includes(t)}function KLt(t){return typeof t=="number"?dn(t):t!=null&&t!==""&&t!==!1}const E2e="event";function YLt(t,e){const r=new URL(t),n=new URL(e);if(r.origin!==n.origin)return t;const i=r.pathname.split("/").slice(1),a=n.pathname.split("/").slice(1,-1);for(;i[0]===a[0];)i.shift(),a.shift();for(;a.length;)a.shift(),i.unshift("..");return i.join("/")+r.search+r.hash}const KR=t=>Math.round(t),X8=(t,e)=>Array.isArray(t)?t.map(r=>X8(r,e)):t instanceof lp&&typeof t.value=="string"?new lp(X8(t.value,e),t.params):(e.baseUrl&&(t=YLt(t,e.baseUrl)),e.version===1?encodeURIComponent(t):t),YN=t=>KR(t/100)*100,ZLt=(t,e)=>{let r=t;return e.version>=2&&(t instanceof lp&&typeof t.value=="string"?r=new lp([t]):typeof t=="string"&&(r=[t])),X8(r,e)},XLt={br:KR,d:KR,bl:YN,dl:YN,mtp:YN,nor:ZLt,rtp:YN,tb:KR},A2e="request",k2e="response",IW=["ab","bg","bl","br","bs","bsd","cdn","cid","cs","df","ec","lab","lb","ltc","msd","mtp","pb","pr","pt","sf","sid","sn","st","sta","tab","tb","tbl","tpb","ts","v"],QLt=["e"],JLt=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function o3(t){return JLt.test(t)}function eDt(t){return IW.includes(t)||QLt.includes(t)||o3(t)}const C2e=["d","dl","nor","ot","rtp","su"];function tDt(t){return IW.includes(t)||C2e.includes(t)||o3(t)}const rDt=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"];function nDt(t){return IW.includes(t)||C2e.includes(t)||rDt.includes(t)||o3(t)}const iDt=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function sDt(t){return iDt.includes(t)||o3(t)}const aDt={[k2e]:nDt,[E2e]:eDt,[A2e]:tDt};function I2e(t,e={}){const r={};if(t==null||typeof t!="object")return r;const n=e.version||t.v||1,i=e.reportingMode||A2e,a=n===1?sDt:aDt[i];let c=Object.keys(t).filter(a);const s=e.filter;typeof s=="function"&&(c=c.filter(s));const f=i===k2e||i===E2e;f&&!c.includes("ts")&&c.push("ts"),n>1&&!c.includes("v")&&c.push("v");const m=Xs({},XLt,e.formatters),x={version:n,reportingMode:i,baseUrl:e.baseUrl};return c.sort().forEach(_=>{let T=t[_];const E=m[_];if(typeof E=="function"&&(T=E(T,x)),_==="v"){if(n===1)return;T=n}_=="pr"&&T===1||(f&&_==="ts"&&!dn(T)&&(T=Date.now()),KLt(T)&&(WLt(_)&&typeof T=="string"&&(T=new v2e(T)),r[_]=T))}),r}function oDt(t,e={}){const r={};if(!t)return r;const n=I2e(t,e),i=HLt(n,e==null?void 0:e.customHeaderMap);return Object.entries(i).reduce((a,[c,s])=>{const f=T2e(s,{whitespace:!1});return f&&(a[c]=f),a},r)}function lDt(t,e,r){return Xs(t,oDt(e,r))}const cDt="CMCD";function uDt(t,e={}){return t?T2e(I2e(t,e),{whitespace:!1}):""}function dDt(t,e={}){if(!t)return"";const r=uDt(t,e);return encodeURIComponent(r)}function hDt(t,e={}){if(!t)return"";const r=dDt(t,e);return`${cDt}=${r}`}const kle=/CMCD=[^&#]+/;function fDt(t,e,r){const n=hDt(e,r);if(!n)return t;if(kle.test(t))return t.replace(kle,n);const i=t.includes("?")?"&":"?";return`${t}${i}${n}`}class pDt{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=i=>{try{this.apply(i,{ot:fu.MANIFEST,su:!this.initialized})}catch(a){this.hls.logger.warn("Could not generate manifest CMCD data.",a)}},this.applyFragmentData=i=>{try{const{frag:a,part:c}=i,s=this.hls.levels[a.level],f=this.getObjectType(a),m={d:(c||a).duration*1e3,ot:f};(f===fu.VIDEO||f===fu.AUDIO||f==fu.MUXED)&&(m.br=s.bitrate/1e3,m.tb=this.getTopBandwidth(f)/1e3,m.bl=this.getBufferLength(f));const x=c?this.getNextPart(c):this.getNextFrag(a);x!=null&&x.url&&x.url!==a.url&&(m.nor=x.url),this.apply(i,m)}catch(a){this.hls.logger.warn("Could not generate segment CMCD data.",a)}},this.hls=e;const r=this.config=e.config,{cmcd:n}=r;n!=null&&(r.pLoader=this.createPlaylistLoader(),r.fLoader=this.createFragmentLoader(),this.sid=n.sessionId||e.sessionId,this.cid=n.contentId,this.useHeaders=n.useHeaders===!0,this.includeKeys=n.includeKeys,this.registerListeners())}registerListeners(){const e=this.hls;e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHED,this.onMediaDetached,this),e.on(ke.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){const e=this.hls;e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHED,this.onMediaDetached,this),e.off(ke.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}onMediaAttached(e,r){this.media=r.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,r){var n,i;this.audioBuffer=(n=r.tracks.audio)==null?void 0:n.buffer,this.videoBuffer=(i=r.tracks.video)==null?void 0:i.buffer}createData(){var e;return{v:1,sf:bLt.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,r={}){Xs(r,this.createData());const n=r.ot===fu.INIT||r.ot===fu.VIDEO||r.ot===fu.MUXED;this.starved&&n&&(r.bs=!0,r.su=!0,this.starved=!1),r.su==null&&(r.su=this.buffering);const{includeKeys:i}=this;i&&(r=Object.keys(r).reduce((c,s)=>(i.includes(s)&&(c[s]=r[s]),c),{}));const a={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),lDt(e.headers,r,a)):e.url=fDt(e.url,r,a)}getNextFrag(e){var r;const n=(r=this.hls.levels[e.level])==null?void 0:r.details;if(n){const i=e.sn-n.startSN;return n.fragments[i+1]}}getNextPart(e){var r;const{index:n,fragment:i}=e,a=(r=this.hls.levels[i.level])==null||(r=r.details)==null?void 0:r.partList;if(a){const{sn:c}=i;for(let s=a.length-1;s>=0;s--){const f=a[s];if(f.index===n&&f.fragment.sn===c)return a[s+1]}}}getObjectType(e){const{type:r}=e;if(r==="subtitle")return fu.TIMED_TEXT;if(e.sn==="initSegment")return fu.INIT;if(r==="audio")return fu.AUDIO;if(r==="main")return this.hls.audioTracks.length?fu.VIDEO:fu.MUXED}getTopBandwidth(e){let r=0,n;const i=this.hls;if(e===fu.AUDIO)n=i.audioTracks;else{const a=i.maxAutoLevel,c=a>-1?a+1:i.levels.length;n=i.levels.slice(0,c)}return n.forEach(a=>{a.bitrate>r&&(r=a.bitrate)}),r>0?r:NaN}getBufferLength(e){const r=this.media,n=e===fu.AUDIO?this.audioBuffer:this.videoBuffer;return!n||!r?NaN:yi.bufferInfo(n,r.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){const{pLoader:e}=this.config,r=this.applyPlaylistData,n=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new n(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,c,s){r(a),this.loader.load(a,c,s)}}}createFragmentLoader(){const{fLoader:e}=this.config,r=this.applyFragmentData,n=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new n(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,c,s){r(a),this.loader.load(a,c,s)}}}}const mDt=3e5;class gDt extends ah{constructor(e){super("content-steering",e.logger),this.hls=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this._pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.registerListeners()}registerListeners(){const e=this.hls;e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const e=this.hls;e&&(e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.ERROR,this.onError,this))}pathways(){return(this.levels||[]).reduce((e,r)=>(e.indexOf(r.pathwayId)===-1&&e.push(r.pathwayId),e),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(e){this.updatePathwayPriority(e)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){const e=this.timeToLoad*1e3-(performance.now()-this.updated);if(e>0){this.scheduleRefresh(this.uri,e);return}}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){const r=this.levels;r&&(this.levels=r.filter(n=>n!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,r){const{contentSteering:n}=r;n!==null&&(this.pathwayId=n.pathwayId,this.uri=n.uri,this.started&&this.startLoad())}onManifestParsed(e,r){this.audioTracks=r.audioTracks,this.subtitleTracks=r.subtitleTracks}onError(e,r){const{errorAction:n}=r;if((n==null?void 0:n.action)===Bl.SendAlternateToPenaltyBox&&n.flags===Vu.MoveAllAlternatesMatchingHost){const i=this.levels;let a=this._pathwayPriority,c=this.pathwayId;if(r.context){const{groupId:s,pathwayId:f,type:m}=r.context;s&&i?c=this.getPathwayForGroupId(s,m,c):f&&(c=f)}c in this.penalizedPathways||(this.penalizedPathways[c]=performance.now()),!a&&i&&(a=this.pathways()),a&&a.length>1&&(this.updatePathwayPriority(a),n.resolved=this.pathwayId!==c),r.details===Zt.BUFFER_APPEND_ERROR&&!r.fatal?n.resolved=!0:n.resolved||this.warn(`Could not resolve ${r.details} ("${r.error.message}") with content-steering for Pathway: ${c} levels: ${i&&i.length} priorities: ${ia(a)} penalized: ${ia(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let r=this.getLevelsForPathway(this.pathwayId);if(r.length===0){const n=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${n}"`),r=this.getLevelsForPathway(n),this.pathwayId=n}return r.length!==e.length&&this.log(`Found ${r.length}/${e.length} levels in Pathway "${this.pathwayId}"`),r}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter(r=>e===r.pathwayId)}updatePathwayPriority(e){this._pathwayPriority=e;let r;const n=this.penalizedPathways,i=performance.now();Object.keys(n).forEach(a=>{i-n[a]>mDt&&delete n[a]});for(let a=0;a0){this.log(`Setting Pathway to "${c}"`),this.pathwayId=c,YEe(r),this.hls.trigger(ke.LEVELS_UPDATED,{levels:r});const m=this.hls.levels[s];f&&m&&this.levels&&(m.attrs["STABLE-VARIANT-ID"]!==f.attrs["STABLE-VARIANT-ID"]&&m.bitrate!==f.bitrate&&this.log(`Unstable Pathways change from bitrate ${f.bitrate} to ${m.bitrate}`),this.hls.nextLoadLevel=s);break}}}getPathwayForGroupId(e,r,n){const i=this.getLevelsForPathway(n).concat(this.levels||[]);for(let a=0;a{const{ID:c,"BASE-ID":s,"URI-REPLACEMENT":f}=a;if(r.some(x=>x.pathwayId===c))return;const m=this.getLevelsForPathway(s).map(x=>{const _=new Ka(x.attrs);_["PATHWAY-ID"]=c;const T=_.AUDIO&&`${_.AUDIO}_clone_${c}`,E=_.SUBTITLES&&`${_.SUBTITLES}_clone_${c}`;T&&(n[_.AUDIO]=T,_.AUDIO=T),E&&(i[_.SUBTITLES]=E,_.SUBTITLES=E);const C=j2e(x.uri,_["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",f),N=new nC({attrs:_,audioCodec:x.audioCodec,bitrate:x.bitrate,height:x.height,name:x.name,url:C,videoCodec:x.videoCodec,width:x.width});if(x.audioGroups)for(let L=1;L{this.log(`Loaded steering manifest: "${i}"`);const C=x.data;if((C==null?void 0:C.VERSION)!==1){this.log(`Steering VERSION ${C.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=C.TTL;const{"RELOAD-URI":N,"PATHWAY-CLONES":L,"PATHWAY-PRIORITY":M}=C;if(N)try{this.uri=new self.URL(N,i).href}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${N}`);return}this.scheduleRefresh(this.uri||T.url),L&&this.clonePathways(L);const D={steeringManifest:C,url:i.toString()};this.hls.trigger(ke.STEERING_MANIFEST_LOADED,D),M&&this.updatePathwayPriority(M)},onError:(x,_,T,E)=>{if(this.log(`Error loading steering manifest: ${x.code} ${x.text} (${_.url})`),this.stopLoad(),x.code===410){this.enabled=!1,this.log(`Steering manifest ${_.url} no longer available`);return}let C=this.timeToLoad*1e3;if(x.code===429){const N=this.loader;if(typeof(N==null?void 0:N.getResponseHeader)=="function"){const L=N.getResponseHeader("Retry-After");L&&(C=parseFloat(L)*1e3)}this.log(`Steering manifest ${_.url} rate limited`);return}this.scheduleRefresh(this.uri||_.url,C)},onTimeout:(x,_,T)=>{this.log(`Timeout loading steering manifest (${_.url})`),this.scheduleRefresh(this.uri||_.url)}};this.log(`Requesting steering manifest: ${i}`),this.loader.load(a,f,m)}scheduleRefresh(e,r=this.timeToLoad*1e3){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var n;const i=(n=this.hls)==null?void 0:n.media;if(i&&!i.ended){this.loadSteeringManifest(e);return}this.scheduleRefresh(e,this.timeToLoad*1e3)},r)}}function Cle(t,e,r,n){t&&Object.keys(e).forEach(i=>{const a=t.filter(c=>c.groupId===i).map(c=>{const s=Xs({},c);return s.details=void 0,s.attrs=new Ka(s.attrs),s.url=s.attrs.URI=j2e(c.url,c.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",r),s.groupId=s.attrs["GROUP-ID"]=e[i],s.attrs["PATHWAY-ID"]=n,s});t.push(...a)})}function j2e(t,e,r,n){const{HOST:i,PARAMS:a,[r]:c}=n;let s;e&&(s=c==null?void 0:c[e],s&&(t=s));const f=new self.URL(t);return i&&!s&&(f.host=i),a&&Object.keys(a).sort().forEach(m=>{m&&f.searchParams.set(m,a[m])}),f.href}class zw extends ah{constructor(e){super("eme",e.logger),this.hls=void 0,this.config=void 0,this.media=null,this.mediaResolved=void 0,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=zw.CDMCleanupPromise?[zw.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=r=>{const{initDataType:n,initData:i}=r,a=`"${r.type}" event: init data type: "${n}"`;if(this.debug(a),i!==null){if(!this.keyFormatPromise){let c=Object.keys(this.keySystemAccessPromises);c.length||(c=K2(this.config));const s=c.map(Qz).filter(f=>!!f);this.keyFormatPromise=this.getKeyFormatPromise(s)}this.keyFormatPromise.then(c=>{const s=GR(c);if(n!=="sinf"||s!==Xa.FAIRPLAY){this.log(`Ignoring "${r.type}" event with init data type: "${n}" for selected key-system ${s}`);return}let f;try{const E=rl(new Uint8Array(i)),C=yW(JSON.parse(E).sinf),N=TEe(C);if(!N)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");f=new Uint8Array(N.subarray(8,24))}catch(E){this.warn(`${a} Failed to parse sinf: ${E}`);return}const m=Ul(f),{keyIdToKeySessionPromise:x,mediaKeySessions:_}=this;let T=x[m];for(let E=0;E<_.length;E++){const C=_[E],N=C.decryptdata;if(!N.keyId)continue;const L=Ul(N.keyId);if(vM(f,N.keyId)||N.uri.replace(/-/g,"").indexOf(m)!==-1){if(T=x[L],!T)continue;if(N.pssh)break;delete x[L],N.pssh=new Uint8Array(i),N.keyId=f,T=x[m]=T.then(()=>this.generateRequestWithPreferredKeySession(C,n,i,"encrypted-event-key-match")),T.catch(M=>this.handleError(M));break}}T||this.handleError(new Error(`Key ID ${m} not encountered in playlist. Key-system sessions ${_.length}.`))}).catch(c=>this.handleError(c))}},this.onWaitingForKey=r=>{this.log(`"${r.type}" event`)},this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();const e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null}registerListeners(){this.hls.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(ke.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(ke.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(ke.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(ke.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(ke.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(ke.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(e){const{drmSystems:r,widevineLicenseUrl:n}=this.config,i=r==null?void 0:r[e];if(i)return i.licenseUrl;if(e===Xa.WIDEVINE&&n)return n}getLicenseServerUrlOrThrow(e){const r=this.getLicenseServerUrl(e);if(r===void 0)throw new Error(`no license server URL configured for key-system "${e}"`);return r}getServerCertificateUrl(e){const{drmSystems:r}=this.config,n=r==null?void 0:r[e];if(n)return n.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){const r=this.hls.levels,n=(c,s,f)=>!!c&&f.indexOf(c)===s,i=r.map(c=>c.audioCodec).filter(n),a=r.map(c=>c.videoCodec).filter(n);return i.length+a.length===0&&a.push("avc1.42e01e"),new Promise((c,s)=>{const f=m=>{const x=m.shift();this.getMediaKeysPromise(x,i,a).then(_=>c({keySystem:x,mediaKeys:_})).catch(_=>{m.length?f(m):_ instanceof $u?s(_):s(new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_NO_ACCESS,error:_,fatal:!0},_.message))})};f(e)})}requestMediaKeySystemAccess(e,r){const{requestMediaKeySystemAccessFunc:n}=this.config;if(typeof n!="function"){let i=`Configured requestMediaKeySystemAccess is not a function ${n}`;return $Ee===null&&self.location.protocol==="http:"&&(i=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(i))}return n(e,r)}getMediaKeysPromise(e,r,n){var i;const a=ZNt(e,r,n,this.config.drmSystemOptions||{});let c=this.keySystemAccessPromises[e],s=(i=c)==null?void 0:i.keySystemAccess;if(!s){this.log(`Requesting encrypted media "${e}" key-system access with config: ${ia(a)}`),s=this.requestMediaKeySystemAccess(e,a);const f=c=this.keySystemAccessPromises[e]={keySystemAccess:s};return s.catch(m=>{this.log(`Failed to obtain access to key-system "${e}": ${m}`)}),s.then(m=>{this.log(`Access for key-system "${m.keySystem}" obtained`);const x=this.fetchServerCertificate(e);this.log(`Create media-keys for "${e}"`);const _=f.mediaKeys=m.createMediaKeys().then(T=>(this.log(`Media-keys created for "${e}"`),f.hasMediaKeys=!0,x.then(E=>E?this.setMediaKeysServerCertificate(T,e,E):T)));return _.catch(T=>{this.error(`Failed to create media-keys for "${e}"}: ${T}`)}),_})}return s.then(()=>c.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:r,mediaKeys:n}){this.log(`Creating key-system session "${r}" keyId: ${Ul(e.keyId||[])} keyUri: ${e.uri}`);const i=n.createSession(),a={decryptdata:e,keySystem:r,mediaKeys:n,mediaKeysSession:i,keyStatus:"status-pending"};return this.mediaKeySessions.push(a),a}renewKeySession(e){const r=e.decryptdata;if(r.pssh){const n=this.createMediaKeySessionContext(e),i=ZN(r),a="cenc";this.keyIdToKeySessionPromise[i]=this.generateRequestWithPreferredKeySession(n,a,r.pssh.buffer,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}updateKeySession(e,r){const n=e.mediaKeysSession;return this.log(`Updating key-session "${n.sessionId}" for keyId ${Ul(e.decryptdata.keyId||[])} } (data length: ${r.byteLength})`),n.update(r)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map(e=>({keySystem:e,hasMediaKeys:this.keySystemAccessPromises[e].hasMediaKeys})).filter(({hasMediaKeys:e})=>!!e).map(({keySystem:e})=>Qz(e)).filter(e=>!!e)}getKeySystemAccess(e){return this.getKeySystemSelectionPromise(e).then(({keySystem:r,mediaKeys:n})=>this.attemptSetMediaKeys(r,n))}selectKeySystem(e){return new Promise((r,n)=>{this.getKeySystemSelectionPromise(e).then(({keySystem:i})=>{const a=Qz(i);a?r(a):n(new Error(`Unable to find format for key-system "${i}"`))}).catch(n)})}selectKeySystemFormat(e){const r=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats ${r.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(r)),this.keyFormatPromise}getKeyFormatPromise(e){const r=K2(this.config),n=e.map(GR).filter(i=>!!i&&r.indexOf(i)!==-1);return this.selectKeySystem(n)}getKeyStatus(e){const{mediaKeySessions:r}=this;for(let n=0;n(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${a}`),this.attemptSetMediaKeys(f,m).then(()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:f,mediaKeys:m,decryptdata:r}))))).then(f=>{const m="cenc",x=r.pssh?r.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(f,m,x,"playlist-key")});return s.catch(f=>this.handleError(f,e.frag)),this.keyIdToKeySessionPromise[n]=s,s}return c.catch(s=>{if(s instanceof $u){const f=zs({},s.data);this.getKeyStatus(r)==="internal-error"&&(f.decryptdata=r);const m=new $u(f,s.message);this.handleError(m,e.frag)}}),c}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e,r){if(this.hls)if(e instanceof $u){r&&(e.data.frag=r);const n=e.data.decryptdata;this.error(`${e.message}${n?` (${Ul(n.keyId||[])})`:""}`),this.hls.trigger(ke.ERROR,e.data)}else this.error(e.message),this.hls.trigger(ke.ERROR,{type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0})}getKeySystemForKeyPromise(e){const r=ZN(e),n=this.keyIdToKeySessionPromise[r];if(!n){const i=GR(e.keyFormat),a=i?[i]:K2(this.config);return this.attemptKeySystemAccess(a)}return n}getKeySystemSelectionPromise(e){if(e.length||(e=K2(this.config)),e.length===0)throw new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${ia({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}attemptSetMediaKeys(e,r){if(this.mediaResolved=void 0,this.mediaKeys===r)return Promise.resolve();const n=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);const i=Promise.all(n).then(()=>this.media?this.media.setMediaKeys(r):new Promise((a,c)=>{this.mediaResolved=()=>{if(this.mediaResolved=void 0,!this.media)return c(new Error("Attempted to set mediaKeys without media element attached"));this.mediaKeys=r,this.media.setMediaKeys(r).then(a).catch(c)}}));return this.mediaKeys=r,this.setMediaKeysQueue.push(i),i.then(()=>{this.log(`Media-keys set for "${e}"`),n.push(i),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(a=>n.indexOf(a)===-1)})}generateRequestWithPreferredKeySession(e,r,n,i){var a;const c=(a=this.config.drmSystems)==null||(a=a[e.keySystem])==null?void 0:a.generateRequest;if(c)try{const C=c.call(this.hls,r,n,e);if(!C)throw new Error("Invalid response from configured generateRequest filter");r=C.initDataType,n=C.initData?C.initData:null,e.decryptdata.pssh=n?new Uint8Array(n):null}catch(C){if(this.warn(C.message),this.hls&&this.hls.config.debug)throw C}if(n===null)return this.log(`Skipping key-session request for "${i}" (no initData)`),Promise.resolve(e);const s=ZN(e.decryptdata),f=e.decryptdata.uri;this.log(`Generating key-session request for "${i}" keyId: ${s} URI: ${f} (init data type: ${r} length: ${n.byteLength})`);const m=new _W,x=e._onmessage=C=>{const N=e.mediaKeysSession;if(!N){m.emit("error",new Error("invalid state"));return}const{messageType:L,message:M}=C;this.log(`"${L}" message event for session "${N.sessionId}" message size: ${M.byteLength}`),L==="license-request"||L==="license-renewal"?this.renewLicense(e,M).catch(D=>{m.eventNames().length?m.emit("error",D):this.handleError(D)}):L==="license-release"?e.keySystem===Xa.FAIRPLAY&&this.updateKeySession(e,V8("acknowledged")).then(()=>this.removeSession(e)).catch(D=>this.handleError(D)):this.warn(`unhandled media key message type "${L}"`)},_=(C,N)=>{N.keyStatus=C;let L;C.startsWith("usable")?m.emit("resolved"):C==="internal-error"||C==="output-restricted"||C==="output-downscaled"?L=Ile(C,N.decryptdata):C==="expired"?L=new Error(`key expired (keyId: ${s})`):C==="released"?L=new Error("key released"):C==="status-pending"||this.warn(`unhandled key status change "${C}" (keyId: ${s})`),L&&(m.eventNames().length?m.emit("error",L):this.handleError(L))},T=e._onkeystatuseschange=C=>{if(!e.mediaKeysSession){m.emit("error",new Error("invalid state"));return}const L=this.getKeyStatuses(e);if(!Object.keys(L).some(V=>L[V]!=="status-pending"))return;if(L[s]==="expired"){this.log(`Expired key ${ia(L)} in key-session "${e.mediaKeysSession.sessionId}"`),this.renewKeySession(e);return}let D=L[s];if(D)_(D,e);else{var B;e.keyStatusTimeouts||(e.keyStatusTimeouts={}),(B=e.keyStatusTimeouts)[s]||(B[s]=self.setTimeout(()=>{if(!e.mediaKeysSession||!this.mediaKeys)return;const G=this.getKeyStatus(e.decryptdata);if(G&&G!=="status-pending")return this.log(`No status for keyId ${s} in key-session "${e.mediaKeysSession.sessionId}". Using session key-status ${G} from other session.`),_(G,e);this.log(`key status for ${s} in key-session "${e.mediaKeysSession.sessionId}" timed out after 1000ms`),D="internal-error",_(D,e)},1e3)),this.log(`No status for keyId ${s} (${ia(L)}).`)}};Kc(e.mediaKeysSession,"message",x),Kc(e.mediaKeysSession,"keystatuseschange",T);const E=new Promise((C,N)=>{m.on("error",N),m.on("resolved",C)});return e.mediaKeysSession.generateRequest(r,n).then(()=>{this.log(`Request generated for key-session "${e.mediaKeysSession.sessionId}" keyId: ${s} URI: ${f}`)}).catch(C=>{throw new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_NO_SESSION,error:C,decryptdata:e.decryptdata,fatal:!1},`Error generating key-session request: ${C}`)}).then(()=>E).catch(C=>(m.removeAllListeners(),this.removeSession(e).then(()=>{throw C}))).then(()=>(m.removeAllListeners(),e))}getKeyStatuses(e){const r={};return e.mediaKeysSession.keyStatuses.forEach((n,i)=>{if(typeof i=="string"&&typeof n=="object"){const s=i;i=n,n=s}const a="buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i);if(e.keySystem===Xa.PLAYREADY&&a.length===16){const s=Ul(a);r[s]=n,BEe(a)}const c=Ul(a);n==="internal-error"&&(this.bannedKeyIds[c]=n),this.log(`key status change "${n}" for keyStatuses keyId: ${c} key-session "${e.mediaKeysSession.sessionId}"`),r[c]=n}),r}fetchServerCertificate(e){const r=this.config,n=r.loader,i=new n(r),a=this.getServerCertificateUrl(e);return a?(this.log(`Fetching server certificate for "${e}"`),new Promise((c,s)=>{const f={responseType:"arraybuffer",url:a},m=r.certLoadPolicy.default,x={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},_={onSuccess:(T,E,C,N)=>{c(T.data)},onError:(T,E,C,N)=>{s(new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:C,response:zs({url:f.url,data:void 0},T)},`"${e}" certificate request failed (${a}). Status: ${T.code} (${T.text})`))},onTimeout:(T,E,C)=>{s(new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:C,response:{url:f.url,data:void 0}},`"${e}" certificate request timed out (${a})`))},onAbort:(T,E,C)=>{s(new Error("aborted"))}};i.load(f,x,_)})):Promise.resolve()}setMediaKeysServerCertificate(e,r,n){return new Promise((i,a)=>{e.setServerCertificate(n).then(c=>{this.log(`setServerCertificate ${c?"success":"not supported by CDM"} (${n.byteLength}) on "${r}"`),i(e)}).catch(c=>{a(new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:c,fatal:!0},c.message))})})}renewLicense(e,r){return this.requestLicense(e,new Uint8Array(r)).then(n=>this.updateKeySession(e,new Uint8Array(n)).catch(i=>{throw new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:e.decryptdata,error:i,fatal:!1},i.message)}))}unpackPlayReadyKeyMessage(e,r){const n=String.fromCharCode.apply(null,new Uint16Array(r.buffer));if(!n.includes("PlayReadyKeyMessage"))return e.setRequestHeader("Content-Type","text/xml; charset=utf-8"),r;const i=new DOMParser().parseFromString(n,"application/xml"),a=i.querySelectorAll("HttpHeader");if(a.length>0){let x;for(let _=0,T=a.length;_ in key message");return V8(atob(m))}setupLicenseXHR(e,r,n,i){const a=this.config.licenseXhrSetup;return a?Promise.resolve().then(()=>{if(!n.decryptdata)throw new Error("Key removed");return a.call(this.hls,e,r,n,i)}).catch(c=>{if(!n.decryptdata)throw c;return e.open("POST",r,!0),a.call(this.hls,e,r,n,i)}).then(c=>(e.readyState||e.open("POST",r,!0),{xhr:e,licenseChallenge:c||i})):(e.open("POST",r,!0),Promise.resolve({xhr:e,licenseChallenge:i}))}requestLicense(e,r){const n=this.config.keyLoadPolicy.default;return new Promise((i,a)=>{const c=this.getLicenseServerUrlOrThrow(e.keySystem);this.log(`Sending license request to URL: ${c}`);const s=new XMLHttpRequest;s.responseType="arraybuffer",s.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return a(new Error("invalid state"));if(s.readyState===4)if(s.status===200){this._requestLicenseFailureCount=0;let f=s.response;this.log(`License received ${f instanceof ArrayBuffer?f.byteLength:f}`);const m=this.config.licenseResponseCallback;if(m)try{f=m.call(this.hls,s,c,e)}catch(x){this.error(x)}i(f)}else{const f=n.errorRetry,m=f?f.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>m||s.status>=400&&s.status<500)a(new $u({type:jn.KEY_SYSTEM_ERROR,details:Zt.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:e.decryptdata,fatal:!0,networkDetails:s,response:{url:c,data:void 0,code:s.status,text:s.statusText}},`License Request XHR failed (${c}). Status: ${s.status} (${s.statusText})`));else{const x=m-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${x} attempts left`),this.requestLicense(e,r).then(i,a)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=s,this.setupLicenseXHR(s,c,e,r).then(({xhr:f,licenseChallenge:m})=>{e.keySystem==Xa.PLAYREADY&&(m=this.unpackPlayReadyKeyMessage(f,m)),f.send(m)}).catch(a)})}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(e,r){if(!this.config.emeEnabled)return;const n=r.media;this.media=n,Kc(n,"encrypted",this.onMediaEncrypted),Kc(n,"waitingforkey",this.onWaitingForKey);const i=this.mediaResolved;i?i():this.mediaKeys=n.mediaKeys}onMediaDetached(){const e=this.media;e&&(wu(e,"encrypted",this.onMediaEncrypted),wu(e,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null)}_clear(){var e;this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},this.bannedKeyIds={};const r=this.mediaResolved;if(r&&r(),!this.mediaKeys&&!this.mediaKeySessions.length)return;const n=this.media,i=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,Ry.clearKeyUriToKeyIdMap();const a=i.length;zw.CDMCleanupPromise=Promise.all(i.map(c=>this.removeSession(c)).concat((n==null||(e=n.setMediaKeys(null))==null?void 0:e.catch(c=>{this.log(`Could not clear media keys: ${c}`),this.hls&&this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error(`Could not clear media keys: ${c}`)})}))||Promise.resolve())).catch(c=>{this.log(`Could not close sessions and clear media keys: ${c}`),this.hls&&this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close sessions and clear media keys: ${c}`)})}).then(()=>{a&&this.log("finished closing key sessions and clearing media keys")})}onManifestLoading(){this._clear()}onManifestLoaded(e,{sessionKeys:r}){if(!(!r||!this.config.emeEnabled)&&!this.keyFormatPromise){const n=r.reduce((i,a)=>(i.indexOf(a.keyFormat)===-1&&i.push(a.keyFormat),i),[]);this.log(`Selecting key-system from session-keys ${n.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(n)}}removeSession(e){const{mediaKeysSession:r,licenseXhr:n,decryptdata:i}=e;if(r){this.log(`Remove licenses and keys and close session "${r.sessionId}" keyId: ${Ul((i==null?void 0:i.keyId)||[])}`),e._onmessage&&(r.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(r.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),n&&n.readyState!==XMLHttpRequest.DONE&&n.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;const a=this.mediaKeySessions.indexOf(e);a>-1&&this.mediaKeySessions.splice(a,1);const{keyStatusTimeouts:c}=e;c&&Object.keys(c).forEach(m=>self.clearTimeout(c[m]));const{drmSystemOptions:s}=this.config;return(QNt(s)?new Promise((m,x)=>{self.setTimeout(()=>x(new Error("MediaKeySession.remove() timeout")),8e3),r.remove().then(m).catch(x)}):Promise.resolve()).catch(m=>{this.log(`Could not remove session: ${m}`),this.hls&&this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error(`Could not remove session: ${m}`)})}).then(()=>r.close()).catch(m=>{this.log(`Could not close session: ${m}`),this.hls&&this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close session: ${m}`)})})}return Promise.resolve()}}zw.CDMCleanupPromise=void 0;function ZN(t){if(!t)throw new Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw new Error("keyId is null");return Ul(t.keyId)}function yDt(t,e){if(t.keyId&&e.mediaKeysSession.keyStatuses.has(t.keyId))return e.mediaKeysSession.keyStatuses.get(t.keyId);if(t.matches(e.decryptdata))return e.keyStatus}class $u extends Error{constructor(e,r){super(r),this.data=void 0,e.error||(e.error=new Error(r)),this.data=e,e.err=e.error}}function Ile(t,e){const r=t==="output-restricted",n=r?Zt.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:Zt.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new $u({type:jn.KEY_SYSTEM_ERROR,details:n,fatal:!1,decryptdata:e},r?"HDCP level output restricted":`key status changed to "${t}"`)}class xDt{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,r){const n=this.hls.config;if(n.capLevelOnFPSDrop){const i=r.media instanceof self.HTMLVideoElement?r.media:null;this.media=i,i&&typeof i.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),n.fpsDroppedMonitoringPeriod)}}onMediaDetaching(){this.media=null}checkFPS(e,r,n){const i=performance.now();if(r){if(this.lastTime){const a=i-this.lastTime,c=n-this.lastDroppedFrames,s=r-this.lastDecodedFrames,f=1e3*c/a,m=this.hls;if(m.trigger(ke.FPS_DROP,{currentDropped:c,currentDecoded:s,totalDroppedFrames:n}),f>0&&c>m.config.fpsDroppedMonitoringThreshold*s){let x=m.currentLevel;m.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+x),x>0&&(m.autoLevelCapping===-1||m.autoLevelCapping>=x)&&(x=x-1,m.trigger(ke.FPS_DROP_LEVEL_CAPPING,{level:x,droppedLevel:m.currentLevel}),m.autoLevelCapping=x,this.streamController.nextLevelSwitch())}}this.lastTime=i,this.lastDroppedFrames=n,this.lastDecodedFrames=r}}checkFPSInterval(){const e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){const r=e.getVideoPlaybackQuality();this.checkFPS(e,r.totalVideoFrames,r.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}}function P2e(t,e){let r;try{r=new Event("addtrack")}catch{r=document.createEvent("Event"),r.initEvent("addtrack",!1,!1)}r.track=t,e.dispatchEvent(r)}function N2e(t,e){const r=t.mode;if(r==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw new Error(`addCue is failed for: ${e}`)}catch(n){Us.debug(`[texttrack-utils]: ${n}`);try{const i=new self.TextTrackCue(e.startTime,e.endTime,e.text);i.id=e.id,t.addCue(i)}catch(i){Us.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${i}`)}}r==="disabled"&&(t.mode=r)}function _w(t,e){const r=t.mode;if(r==="disabled"&&(t.mode="hidden"),t.cues)for(let n=t.cues.length;n--;)e&&t.cues[n].removeEventListener("enter",e),t.removeCue(t.cues[n]);r==="disabled"&&(t.mode=r)}function Q8(t,e,r,n){const i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){const a=vDt(t.cues,e,r);for(let c=0;ct[r].endTime)return-1;let n=0,i=r,a;for(;n<=i;)if(a=Math.floor((i+n)/2),et[a].startTime&&n-1)for(let a=i,c=t.length;a=e&&s.endTime<=r)n.push(s);else if(s.startTime>r)return n}return n}function YR(t){const e=[];for(let r=0;rthis.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let r=null;const n=YR(this.media.textTracks);for(let a=0;a-1&&this.toggleTrackModes()}registerListeners(){const{hls:e}=this;e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.LEVEL_LOADING,this.onLevelLoading,this),e.on(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(ke.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(ke.ERROR,this.onError,this)}unregisterListeners(){const{hls:e}=this;e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.LEVEL_LOADING,this.onLevelLoading,this),e.off(ke.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(ke.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(ke.ERROR,this.onError,this)}onMediaAttached(e,r){this.media=r.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(e,r){const n=this.media;if(!n)return;const i=!!r.transferMedia;if(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||n.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),this.subtitleTrack=-1,this.media=null,i)return;YR(n.textTracks).forEach(c=>{_w(c)})}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,r){this.tracks=r.subtitleTracks}onSubtitleTrackLoaded(e,r){const{id:n,groupId:i,details:a}=r,c=this.tracksInGroup[n];if(!c||c.groupId!==i){this.warn(`Subtitle track with id:${n} and group:${i} not found in active group ${c==null?void 0:c.groupId}`);return}const s=c.details;c.details=r.details,this.log(`Subtitle track ${n} "${c.name}" lang:${c.lang} group:${i} loaded [${a.startSN}-${a.endSN}]`),n===this.trackId&&this.playlistLoaded(n,r,s)}onLevelLoading(e,r){this.switchLevel(r.level)}onLevelSwitching(e,r){this.switchLevel(r.level)}switchLevel(e){const r=this.hls.levels[e];if(!r)return;const n=r.subtitleGroups||null,i=this.groupIds;let a=this.currentTrack;if(!n||(i==null?void 0:i.length)!==(n==null?void 0:n.length)||n!=null&&n.some(c=>(i==null?void 0:i.indexOf(c))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;const c=this.tracks.filter(x=>!n||n.indexOf(x.groupId)!==-1);if(c.length)this.selectDefaultTrack&&!c.some(x=>x.default)&&(this.selectDefaultTrack=!1),c.forEach((x,_)=>{x.id=_});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=c;const s=this.hls.config.subtitlePreference;if(!a&&s){this.selectDefaultTrack=!1;const x=Wf(s,c);if(x>-1)a=c[x];else{const _=Wf(s,this.tracks);a=this.tracks[_]}}let f=this.findTrackId(a);f===-1&&a&&(f=this.findTrackId(null));const m={subtitleTracks:c};this.log(`Updating subtitle tracks, ${c.length} track(s) found in "${n==null?void 0:n.join(",")}" group-id`),this.hls.trigger(ke.SUBTITLE_TRACKS_UPDATED,m),f!==-1&&this.trackId===-1&&this.setSubtitleTrack(f)}}findTrackId(e){const r=this.tracksInGroup,n=this.selectDefaultTrack;for(let i=0;i-1){const a=this.tracksInGroup[i];return this.setSubtitleTrack(i),a}else{if(n)return null;{const a=Wf(e,r);if(a>-1)return r[a]}}}}return null}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentTrack)&&this.scheduleLoading(this.currentTrack,e)}loadingPlaylist(e,r){super.loadingPlaylist(e,r);const n=e.id,i=e.groupId,a=this.getUrlWithDirectives(e.url,r),c=e.details,s=c==null?void 0:c.age;this.log(`Loading subtitle ${n} "${e.name}" lang:${e.lang} group:${i}${(r==null?void 0:r.msn)!==void 0?" at sn "+r.msn+" part "+r.part:""}${s&&c.live?" age "+s.toFixed(1)+(c.type&&" "+c.type||""):""} ${a}`),this.hls.trigger(ke.SUBTITLE_TRACK_LOADING,{url:a,id:n,groupId:i,deliveryDirectives:r||null,track:e})}toggleTrackModes(){const{media:e}=this;if(!e)return;const r=YR(e.textTracks),n=this.currentTrack;let i;if(n&&(i=r.filter(a=>K8(n,a))[0],i||this.warn(`Unable to find subtitle TextTrack with name "${n.name}" and language "${n.lang}"`)),[].slice.call(r).forEach(a=>{a.mode!=="disabled"&&a!==i&&(a.mode="disabled")}),i){const a=this.subtitleDisplay?"showing":"hidden";i.mode!==a&&(i.mode=a)}}setSubtitleTrack(e){const r=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=e;return}if(e<-1||e>=r.length||!dn(e)){this.warn(`Invalid subtitle track id: ${e}`);return}this.selectDefaultTrack=!1;const n=this.currentTrack,i=r[e]||null;if(this.trackId=e,this.currentTrack=i,this.toggleTrackModes(),!i){this.hls.trigger(ke.SUBTITLE_TRACK_SWITCH,{id:e});return}const a=!!i.details&&!i.details.live;if(e===this.trackId&&i===n&&a)return;this.log(`Switching to subtitle-track ${e}`+(i?` "${i.name}" lang:${i.lang} group:${i.groupId}`:""));const{id:c,groupId:s="",name:f,type:m,url:x}=i;this.hls.trigger(ke.SUBTITLE_TRACK_SWITCH,{id:c,groupId:s,name:f,type:m,url:x});const _=this.switchParams(i.url,n==null?void 0:n.details,i.details);this.loadPlaylist(_)}}function wDt(){try{return crypto.randomUUID()}catch{try{const e=URL.createObjectURL(new Blob),r=e.toString();return URL.revokeObjectURL(e),r.slice(r.lastIndexOf("/")+1)}catch{let r=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{const a=(r+Math.random()*16)%16|0;return r=Math.floor(r/16),(i=="x"?a:a&3|8).toString(16)})}}}function kA(t){let e=5381,r=t.length;for(;r;)e=e*33^t.charCodeAt(--r);return(e>>>0).toString()}const $w=.025;let TM=function(t){return t[t.Point=0]="Point",t[t.Range=1]="Range",t}({});function SDt(t,e,r){return`${t.identifier}-${r+1}-${kA(e)}`}class TDt{constructor(e,r){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=r,this.dateRange=e,this.setDateRange(e)}setDateRange(e){this.dateRange=e,this.resumeOffset=e.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=e.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=e.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=e.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var e;this.appendInPlaceStarted=!1,(e=this.assetListLoader)==null||e.destroy(),this.assetListLoader=void 0,this.supplementsPrimary||(this.assetListResponse=null,this.assetList=[],this._duration=null)}isAssetPastPlayoutLimit(e){var r;if(e>0&&e>=this.assetList.length)return!0;const n=this.playoutLimit;return e<=0||isNaN(n)?!1:n===0?!0:(((r=this.assetList[e])==null?void 0:r.startOffset)||0)>n}findAssetIndex(e){return this.assetList.indexOf(e)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){const e=this.dateRange.startTime;if(this.snapOptions.out){const r=this.dateRange.tagAnchor;if(r)return o$(e,r)}return e}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(this.startTime===0||this.snapOptions.out)return!0;const e=this.dateRange.tagAnchor;if(e){const r=this.dateRange.startTime,n=o$(r,e);return r-n<.1}return!1}get resumptionOffset(){const e=this.resumeOffset,r=dn(e)?e:this.duration;return this.cumulativeDuration+r}get resumeTime(){const e=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){const r=this.resumeAnchor;if(r)return o$(e,r)}return e}get appendInPlace(){return this.appendInPlaceStarted?!0:this.appendInPlaceDisabled?!1:!!(!this.cue.once&&!this.cue.pre&&this.startIsAligned&&(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)<$w))}set appendInPlace(e){if(this.appendInPlaceStarted){this.resetOnResume=!e;return}this.appendInPlaceDisabled=!e}get timelineStart(){return this._timelineStart!==null?this._timelineStart:this.startTime}set timelineStart(e){this._timelineStart=e}get duration(){const e=this.playoutLimit;let r;return this._duration!==null?r=this._duration:this.dateRange.duration?r=this.dateRange.duration:r=this.dateRange.plannedDuration||0,!isNaN(e)&&e0||this.assetListResponse!==null}toString(){return EDt(this)}}function o$(t,e){return t-e.start":t.cue.post?"":""}${t.timelineStart.toFixed(2)}-${t.resumeTime.toFixed(2)}]`}function Xb(t){const e=t.timelineStart,r=t.duration||0;return`["${t.identifier}" ${e.toFixed(2)}-${(e+r).toFixed(2)}]`}class ADt{constructor(e,r,n,i){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetails=!1,this.mediaAttached=null,this._currentTime=void 0,this._bufferedEosTime=void 0,this.checkPlayout=()=>{this.reachedPlayout(this.currentTime)&&this.hls&&this.hls.trigger(ke.PLAYOUT_LIMIT_REACHED,{})};const a=this.hls=new e(r);this.interstitial=n,this.assetItem=i;const c=()=>{this.hasDetails=!0};a.once(ke.LEVEL_LOADED,c),a.once(ke.AUDIO_TRACK_LOADED,c),a.once(ke.SUBTITLE_TRACK_LOADED,c),a.on(ke.MEDIA_ATTACHING,(s,{media:f})=>{this.removeMediaListeners(),this.mediaAttached=f,this.interstitial.playoutLimit&&(f.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace&&a.on(ke.BUFFER_APPENDED,()=>{const x=this.bufferedEnd;this.reachedPlayout(x)&&(this._bufferedEosTime=x,a.trigger(ke.BUFFERED_TO_END,void 0))}))})}get appendInPlace(){return this.interstitial.appendInPlace}loadSource(){const e=this.hls;if(e)if(e.url)e.levels.length&&!e.started&&e.startLoad(-1,!0);else{let r=this.assetItem.uri;try{r=R2e(r,e.config.primarySessionId||"").href}catch{}e.loadSource(r)}}bufferedInPlaceToEnd(e){var r;if(!this.appendInPlace)return!1;if((r=this.hls)!=null&&r.bufferedToEnd)return!0;if(!e)return!1;const n=Math.min(this._bufferedEosTime||1/0,this.duration),i=this.timelineOffset,a=yi.bufferInfo(e,i,0);return this.getAssetTime(a.end)>=n-.02}reachedPlayout(e){const n=this.interstitial.playoutLimit;return this.startOffset+e>=n}get destroyed(){var e;return!((e=this.hls)!=null&&e.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var e;return((e=this.hls)==null?void 0:e.media)||null}get bufferedEnd(){const e=this.media||this.mediaAttached;if(!e)return this._bufferedEosTime?this._bufferedEosTime:this.currentTime;const r=yi.bufferInfo(e,e.currentTime,.001);return this.getAssetTime(r.end)}get currentTime(){const e=this.media||this.mediaAttached;return e?this.getAssetTime(e.currentTime):this._currentTime||0}get duration(){const e=this.assetItem.duration;if(!e)return 0;const r=this.interstitial.playoutLimit;if(r){const n=r-this.startOffset;if(n>0&&n1/9e4&&this.hls){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e}}}getAssetTime(e){const r=this.timelineOffset,n=this.duration;return Math.min(Math.max(0,e-r),n)}removeMediaListeners(){const e=this.mediaAttached;e&&(this._currentTime=e.currentTime,this.bufferSnapShot(),e.removeEventListener("timeupdate",this.checkPlayout))}bufferSnapShot(){if(this.mediaAttached){var e;(e=this.hls)!=null&&e.bufferedToEnd&&(this._bufferedEosTime=this.bufferedEnd)}}destroy(){this.removeMediaListeners(),this.hls&&this.hls.destroy(),this.hls=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(e){var r;this.loadSource(),(r=this.hls)==null||r.attachMedia(e)}detachMedia(){var e;this.removeMediaListeners(),this.mediaAttached=null,(e=this.hls)==null||e.detachMedia()}resumeBuffering(){var e;(e=this.hls)==null||e.resumeBuffering()}pauseBuffering(){var e;(e=this.hls)==null||e.pauseBuffering()}transferMedia(){var e;return this.bufferSnapShot(),((e=this.hls)==null?void 0:e.transferMedia())||null}resetDetails(){const e=this.hls;if(e&&this.hasDetails){e.stopLoad();const r=n=>delete n.details;e.levels.forEach(r),e.allAudioTracks.forEach(r),e.allSubtitleTracks.forEach(r),this.hasDetails=!1}}on(e,r,n){var i;(i=this.hls)==null||i.on(e,r)}once(e,r,n){var i;(i=this.hls)==null||i.once(e,r)}off(e,r,n){var i;(i=this.hls)==null||i.off(e,r)}toString(){var e;return`HlsAssetPlayer: ${Xb(this.assetItem)} ${(e=this.hls)==null?void 0:e.sessionId} ${this.appendInPlace?"append-in-place":""}`}}const jle=.033;class kDt extends ah{constructor(e,r){super("interstitials-sched",r),this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=e}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach(e=>e.reset()),this.events=this.items=null}resetErrorsInRange(e,r){return this.events?this.events.reduce((n,i)=>e<=i.startOffset&&r>i.startOffset?(delete i.error,n+1):n,0):0}get duration(){const e=this.items;return e?e[e.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(e){return e&&this.eventMap[e]||null}hasEvent(e){return e in this.eventMap}findItemIndex(e,r){if(e.event)return this.findEventIndex(e.event.identifier);let n=-1;e.nextEvent?n=this.findEventIndex(e.nextEvent.identifier)-1:e.previousEvent&&(n=this.findEventIndex(e.previousEvent.identifier)+1);const i=this.items;if(i)for(i[n]||(r===void 0&&(r=e.start),n=this.findItemIndexAtTime(r));n>=0&&(a=i[n])!=null&&a.event;){var a;n--}return n}findItemIndexAtTime(e,r){const n=this.items;if(n)for(let i=0;ia.start&&e1)for(let a=0;as&&(r!s.includes(m.identifier)):[];c.length&&c.sort((m,x)=>{const _=m.cue.pre,T=m.cue.post,E=x.cue.pre,C=x.cue.post;if(_&&!E)return-1;if(E&&!_||T&&!C)return 1;if(C&&!T)return-1;if(!_&&!E&&!T&&!C){const N=m.startTime,L=x.startTime;if(N!==L)return N-L}return m.dateRange.tagOrder-x.dateRange.tagOrder}),this.events=c,f.forEach(m=>{this.removeEvent(m)}),this.updateSchedule(e,f)}updateSchedule(e,r=[],n=!1){const i=this.events||[];if(i.length||r.length||this.length<2){const a=this.items,c=this.parseSchedule(i,e);(n||r.length||(a==null?void 0:a.length)!==c.length||c.some((f,m)=>Math.abs(f.playout.start-a[m].playout.start)>.005||Math.abs(f.playout.end-a[m].playout.end)>.005))&&(this.items=c,this.onScheduleUpdate(r,a))}}parseDateRanges(e,r,n){const i=[],a=Object.keys(e);for(let c=0;c!f.error&&!(f.cue.once&&f.hasPlayed)),e.length){this.resolveOffsets(e,r);let f=0,m=0;if(e.forEach((x,_)=>{const T=x.cue.pre,E=x.cue.post,C=e[_-1]||null,N=x.appendInPlace,L=E?a:x.startOffset,M=x.duration,D=x.timelineOccupancy===TM.Range?M:0,B=x.resumptionOffset,V=(C==null?void 0:C.startTime)===L,G=L+x.cumulativeDuration;let W=N?G+M:L+B;if(T||!E&&L<=0){const Q=m;m+=D,x.timelineStart=G;const se=c;c+=M,n.push({event:x,start:G,end:W,playout:{start:se,end:c},integrated:{start:Q,end:m}})}else if(L<=a){if(!V){const ie=L-f;if(ie>jle){const ue=f,be=m;m+=ie;const Te=c;c+=ie;const we={previousEvent:e[_-1]||null,nextEvent:x,start:ue,end:ue+ie,playout:{start:Te,end:c},integrated:{start:be,end:m}};n.push(we)}else ie>0&&C&&(C.cumulativeDuration+=ie,n[n.length-1].end=L)}E&&(W=G),x.timelineStart=G;const Q=m;m+=D;const se=c;c+=M,n.push({event:x,start:G,end:W,playout:{start:se,end:c},integrated:{start:Q,end:m}})}else return;const Z=x.resumeTime;E||Z>a?f=a:f=Z}),f{const m=s.cue.pre,x=s.cue.post,_=m?0:x?i:s.startTime;this.updateAssetDurations(s),c===_?s.cumulativeDuration=a:(a=0,c=_),!x&&s.snapOptions.in&&(s.resumeAnchor=L_(null,n.fragments,s.startOffset+s.resumptionOffset,0,0)||void 0),s.appendInPlace&&!s.appendInPlaceStarted&&(this.primaryCanResumeInPlaceAt(s,r)||(s.appendInPlace=!1)),!s.appendInPlace&&f+1$w?(this.log(`"${e.identifier}" resumption ${n} not aligned with estimated timeline end ${i}`),!1):!Object.keys(r).some(c=>{const s=r[c].details,f=s.edge;if(n>=f)return this.log(`"${e.identifier}" resumption ${n} past ${c} playlist end ${f}`),!1;const m=L_(null,s.fragments,n);if(!m)return this.log(`"${e.identifier}" resumption ${n} does not align with any fragments in ${c} playlist (${s.fragStart}-${s.fragmentEnd})`),!0;const x=c==="audio"?.175:0;return Math.abs(m.start-n)<$w+x||Math.abs(m.end-n)<$w+x?!1:(this.log(`"${e.identifier}" resumption ${n} not aligned with ${c} fragment bounds (${m.start}-${m.end} sn: ${m.sn} cc: ${m.cc})`),!0)})}updateAssetDurations(e){if(!e.assetListLoaded)return;const r=e.timelineStart;let n=0,i=!1,a=!1;for(let c=0;c{const L=T.data,M=L==null?void 0:L.ASSETS;if(!Array.isArray(M)){const D=this.assignAssetListError(e,Zt.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),C.url,E,N);this.hls.trigger(ke.ERROR,D);return}e.assetListResponse=L,this.hls.trigger(ke.ASSET_LIST_LOADED,{event:e,assetListResponse:L,networkDetails:N})},onError:(T,E,C,N)=>{const L=this.assignAssetListError(e,Zt.ASSET_LIST_LOAD_ERROR,new Error(`Error loading X-ASSET-LIST: HTTP status ${T.code} ${T.text} (${E.url})`),E.url,N,C);this.hls.trigger(ke.ERROR,L)},onTimeout:(T,E,C)=>{const N=this.assignAssetListError(e,Zt.ASSET_LIST_LOAD_TIMEOUT,new Error(`Timeout loading X-ASSET-LIST (${E.url})`),E.url,T,C);this.hls.trigger(ke.ERROR,N)}};return s.load(f,x,_),this.hls.trigger(ke.ASSET_LIST_LOADING,{event:e}),s}assignAssetListError(e,r,n,i,a,c){return e.error=n,{type:jn.NETWORK_ERROR,details:r,fatal:!1,interstitial:e,url:i,error:n,networkDetails:c,stats:a}}}function Ple(t){var e;t==null||(e=t.play())==null||e.catch(()=>{})}function Hb(t,e){return`[${t}] Advancing timeline position to ${e}`}class IDt extends ah{constructor(e,r){super("interstitials",e.logger),this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1},this.onSeeking=()=>{const n=this.currentTime;if(n===void 0||this.playbackDisabled||!this.schedule)return;const i=n-this.timelinePos;if(Math.abs(i)<1/7056e5)return;const c=i<=-.01;this.timelinePos===-1&&!this.effectivePlayingItem&&this.checkStart(),this.timelinePos=n,this.bufferedPos=n;const s=this.playingItem;if(!s){this.checkBuffer();return}if(c&&this.schedule.resetErrorsInRange(n,n-i)&&this.updateSchedule(!0),this.checkBuffer(),c&&n=s.end){var f;const E=this.findItemIndex(s);let C=this.schedule.findItemIndexAtTime(n);if(C===-1&&(C=E+(c?-1:1),this.log(`seeked ${c?"back ":""}to position not covered by schedule ${n} (resolving from ${E} to ${C})`)),!this.isInterstitial(s)&&(f=this.media)!=null&&f.paused&&(this.shouldPlay=!1),!c&&C>E){const N=this.schedule.findJumpRestrictedIndex(E+1,C);if(N>E){this.setSchedulePosition(N);return}}this.setSchedulePosition(C);return}const m=this.playingAsset;if(!m){if(this.playingLastItem&&this.isInterstitial(s)){const E=s.event.assetList[0];E&&(this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(n,E))}return}const x=m.timelineStart,_=m.duration||0;if(c&&n=x+_){var T;(T=s.event)!=null&&T.appendInPlace&&(this.clearAssetPlayers(s.event,s),this.flushFrontBuffer(n)),this.setScheduleToAssetAtTime(n,m)}},this.onTimeupdate=()=>{const n=this.currentTime;if(n===void 0||this.playbackDisabled)return;if(this.timelinePos===-1&&!this.effectivePlayingItem&&this.checkStart(),n>this.timelinePos)this.timelinePos=n,n>this.bufferedPos&&this.checkBuffer();else return;const i=this.playingItem;if(!i||this.playingLastItem)return;if(n>=i.end){this.timelinePos=i.end;const s=this.findItemIndex(i);this.setSchedulePosition(s+1)}const a=this.playingAsset;if(!a)return;const c=a.timelineStart+(a.duration||0);n>=c&&this.setScheduleToAssetAtTime(n,a)},this.onScheduleUpdate=(n,i)=>{const a=this.schedule;if(!a)return;const c=this.playingItem,s=a.events||[],f=a.items||[],m=a.durations,x=n.map(N=>N.identifier),_=!!(s.length||x.length);(_||i)&&this.log(`INTERSTITIALS_UPDATED (${s.length}): ${s} Schedule: ${f.map(N=>Ch(N))} pos: ${this.timelinePos}`),x.length&&this.log(`Removed events ${x}`);let T=null,E=null;c&&(T=this.updateItem(c,this.timelinePos),this.itemsMatch(c,T)?this.playingItem=T:this.waitingItem=this.endedItem=null),this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);const C=this.bufferingItem;if(C&&(E=this.updateItem(C,this.bufferedPos),this.itemsMatch(C,E)?this.bufferingItem=E:C.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(C.event,null))),n.forEach(N=>{N.assetList.forEach(L=>{this.clearAssetPlayer(L.identifier,null)})}),this.playerQueue.forEach(N=>{if(N.interstitial.appendInPlace){const L=N.assetItem.timelineStart,M=N.timelineOffset-L;if(M)try{N.timelineOffset=L}catch(D){Math.abs(M)>$w&&this.warn(`${D} ("${N.assetId}" ${N.timelineOffset}->${L})`)}}}),_||i){if(this.hls.trigger(ke.INTERSTITIALS_UPDATED,{events:s.slice(0),schedule:f.slice(0),durations:m,removedIds:x}),this.isInterstitial(c)&&x.includes(c.event.identifier)){this.warn(`Interstitial "${c.event.identifier}" removed while playing`),this.primaryFallback(c.event);return}c&&this.trimInPlace(T,c),C&&E!==T&&this.trimInPlace(E,C),this.checkBuffer()}},this.hls=e,this.HlsPlayerClass=r,this.assetListLoader=new CDt(e),this.schedule=new kDt(this.onScheduleUpdate,e.logger),this.registerListeners()}registerListeners(){const e=this.hls;e&&(e.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(ke.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.on(ke.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(ke.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.on(ke.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.on(ke.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.on(ke.BUFFER_APPENDED,this.onBufferAppended,this),e.on(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(ke.BUFFERED_TO_END,this.onBufferedToEnd,this),e.on(ke.MEDIA_ENDED,this.onMediaEnded,this),e.on(ke.ERROR,this.onError,this),e.on(ke.DESTROYING,this.onDestroying,this))}unregisterListeners(){const e=this.hls;e&&(e.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(ke.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.off(ke.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(ke.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.off(ke.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.off(ke.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.off(ke.BUFFER_CODECS,this.onBufferCodecs,this),e.off(ke.BUFFER_APPENDED,this.onBufferAppended,this),e.off(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(ke.BUFFERED_TO_END,this.onBufferedToEnd,this),e.off(ke.MEDIA_ENDED,this.onMediaEnded,this),e.off(ke.ERROR,this.onError,this),e.off(ke.DESTROYING,this.onDestroying,this))}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var e;(e=this.getBufferingPlayer())==null||e.resumeBuffering()}pauseBuffering(){var e;(e=this.getBufferingPlayer())==null||e.pauseBuffering()}destroy(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.schedule=this.manager=null,this.hls=this.HlsPlayerClass=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){const e=this.primaryMedia||this.media;e&&this.removeMediaListeners(e)}removeMediaListeners(e){wu(e,"play",this.onPlay),wu(e,"pause",this.onPause),wu(e,"seeking",this.onSeeking),wu(e,"timeupdate",this.onTimeupdate)}onMediaAttaching(e,r){const n=this.media=r.media;Kc(n,"seeking",this.onSeeking),Kc(n,"timeupdate",this.onTimeupdate),Kc(n,"play",this.onPlay),Kc(n,"pause",this.onPause)}onMediaAttached(e,r){const n=this.effectivePlayingItem,i=this.detachedData;if(this.detachedData=null,n===null)this.checkStart();else if(!i){this.clearScheduleState();const a=this.findItemIndex(n);this.setSchedulePosition(a)}}clearScheduleState(){this.log("clear schedule state"),this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(e,r){const n=!!r.transferMedia,i=this.media;if(this.media=null,!n&&(i&&this.removeMediaListeners(i),this.detachedData)){const a=this.getBufferingPlayer();a&&(this.log(`Removing schedule state for detachedData and ${a}`),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,a.detachMedia()),this.shouldPlay=!1}}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;const e=this,r=()=>e.bufferingItem||e.waitingItem,n=_=>_&&e.getAssetPlayer(_.identifier),i=(_,T,E,C,N)=>{if(_){let L=_[T].start;const M=_.event;if(M){if(T==="playout"||M.timelineOccupancy!==TM.Point){const D=n(E);(D==null?void 0:D.interstitial)===M&&(L+=D.assetItem.startOffset+D[N])}}else{const D=C==="bufferedPos"?c():e[C];L+=D-_.start}return L}return 0},a=(_,T)=>{var E;if(_!==0&&T!=="primary"&&(E=e.schedule)!=null&&E.length){var C;const N=e.schedule.findItemIndexAtTime(_),L=(C=e.schedule.items)==null?void 0:C[N];if(L){const M=L[T].start-L.start;return _+M}}return _},c=()=>{const _=e.bufferedPos;return _===Number.MAX_VALUE?s("primary"):Math.max(_,0)},s=_=>{var T,E;return(T=e.primaryDetails)!=null&&T.live?e.primaryDetails.edge:((E=e.schedule)==null?void 0:E.durations[_])||0},f=(_,T)=>{var E,C;const N=e.effectivePlayingItem;if(N!=null&&(E=N.event)!=null&&E.restrictions.skip||!e.schedule)return;e.log(`seek to ${_} "${T}"`);const L=e.effectivePlayingItem,M=e.schedule.findItemIndexAtTime(_,T),D=(C=e.schedule.items)==null?void 0:C[M],B=e.getBufferingPlayer(),V=B==null?void 0:B.interstitial,G=V==null?void 0:V.appendInPlace,W=L&&e.itemsMatch(L,D);if(L&&(G||W)){const Z=n(e.playingAsset),Q=(Z==null?void 0:Z.media)||e.primaryMedia;if(Q){const se=T==="primary"?Q.currentTime:i(L,T,e.playingAsset,"timelinePos","currentTime"),ie=_-se,ue=(G?se:Q.currentTime)+ie;if(ue>=0&&(!Z||G||ue<=Z.duration)){Q.currentTime=ue;return}}}if(D){let Z=_;if(T!=="primary"){const se=D[T].start,ie=_-se;Z=D.start+ie}const Q=!e.isInterstitial(D);if((!e.isInterstitial(L)||L.event.appendInPlace)&&(Q||D.event.appendInPlace)){const se=e.media||(G?B==null?void 0:B.media:null);se&&(se.currentTime=Z)}else if(L){const se=e.findItemIndex(L);if(M>se){const ue=e.schedule.findJumpRestrictedIndex(se+1,M);if(ue>se){e.setSchedulePosition(ue);return}}let ie=0;if(Q)e.timelinePos=Z,e.checkBuffer();else{const ue=D.event.assetList,be=_-(D[T]||D).start;for(let Te=ue.length;Te--;){const we=ue[Te];if(we.duration&&be>=we.startOffset&&be{const _=e.effectivePlayingItem;if(e.isInterstitial(_))return _;const T=r();return e.isInterstitial(T)?T:null},x={get bufferedEnd(){const _=r(),T=e.bufferingItem;if(T&&T===_){var E;return i(T,"playout",e.bufferingAsset,"bufferedPos","bufferedEnd")-T.playout.start||((E=e.bufferingAsset)==null?void 0:E.startOffset)||0}return 0},get currentTime(){const _=m(),T=e.effectivePlayingItem;return T&&T===_?i(T,"playout",e.effectivePlayingAsset,"timelinePos","currentTime")-T.playout.start:0},set currentTime(_){const T=m(),E=e.effectivePlayingItem;E&&E===T&&f(_+E.playout.start,"playout")},get duration(){const _=m();return _?_.playout.end-_.playout.start:0},get assetPlayers(){var _;const T=(_=m())==null?void 0:_.event.assetList;return T?T.map(E=>e.getAssetPlayer(E.identifier)):[]},get playingIndex(){var _;const T=(_=m())==null?void 0:_.event;return T&&e.effectivePlayingAsset?T.findAssetIndex(e.effectivePlayingAsset):-1},get scheduleItem(){return m()}};return this.manager={get events(){var _;return((_=e.schedule)==null||(_=_.events)==null?void 0:_.slice(0))||[]},get schedule(){var _;return((_=e.schedule)==null||(_=_.items)==null?void 0:_.slice(0))||[]},get interstitialPlayer(){return m()?x:null},get playerQueue(){return e.playerQueue.slice(0)},get bufferingAsset(){return e.bufferingAsset},get bufferingItem(){return r()},get bufferingIndex(){const _=r();return e.findItemIndex(_)},get playingAsset(){return e.effectivePlayingAsset},get playingItem(){return e.effectivePlayingItem},get playingIndex(){const _=e.effectivePlayingItem;return e.findItemIndex(_)},primary:{get bufferedEnd(){return c()},get currentTime(){const _=e.timelinePos;return _>0?_:0},set currentTime(_){f(_,"primary")},get duration(){return s("primary")},get seekableStart(){var _;return((_=e.primaryDetails)==null?void 0:_.fragmentStart)||0}},integrated:{get bufferedEnd(){return i(r(),"integrated",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return i(e.effectivePlayingItem,"integrated",e.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(_){f(_,"integrated")},get duration(){return s("integrated")},get seekableStart(){var _;return a(((_=e.primaryDetails)==null?void 0:_.fragmentStart)||0,"integrated")}},skip:()=>{const _=e.effectivePlayingItem,T=_==null?void 0:_.event;if(T&&!T.restrictions.skip){const E=e.findItemIndex(_);if(T.appendInPlace){const C=_.playout.start+_.event.duration;f(C+.001,"playout")}else e.advanceAfterAssetEnded(T,E,1/0)}}}}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var e;const r=this.playingItem,n=(e=this.schedule)==null?void 0:e.items;return!this.playbackStarted||!r||!n?!1:this.findItemIndex(r)===n.length-1}get playbackStarted(){return this.effectivePlayingItem!==null}get currentTime(){var e,r;if(this.mediaSelection===null)return;const n=this.waitingItem||this.playingItem;if(this.isInterstitial(n)&&!n.event.appendInPlace)return;let i=this.media;!i&&(e=this.bufferingItem)!=null&&(e=e.event)!=null&&e.appendInPlace&&(i=this.primaryMedia);const a=(r=i)==null?void 0:r.currentTime;if(!(a===void 0||!dn(a)))return a}get primaryMedia(){var e;return this.media||((e=this.detachedData)==null?void 0:e.media)||null}isInterstitial(e){return!!(e!=null&&e.event)}retreiveMediaSource(e,r){const n=this.getAssetPlayer(e);n&&this.transferMediaFromPlayer(n,r)}transferMediaFromPlayer(e,r){const n=e.interstitial.appendInPlace,i=e.media;if(n&&i===this.primaryMedia){if(this.bufferingAsset=null,(!r||this.isInterstitial(r)&&!r.event.appendInPlace)&&r&&i){this.detachedData={media:i};return}const a=e.transferMedia();this.log(`transfer MediaSource from ${e} ${ia(a)}`),this.detachedData=a}else r&&i&&(this.shouldPlay||(this.shouldPlay=!i.paused))}transferMediaTo(e,r){var n,i;if(e.media===r)return;let a=null;const c=this.hls,s=e!==c,f=s&&e.interstitial.appendInPlace,m=(n=this.detachedData)==null?void 0:n.mediaSource;let x;if(c.media)f&&(a=c.transferMedia(),this.detachedData=a),x="Primary";else if(m){const C=this.getBufferingPlayer();C?(a=C.transferMedia(),x=`${C}`):x="detached MediaSource"}else x="detached media";if(!a){if(m)a=this.detachedData,this.log(`using detachedData: MediaSource ${ia(a)}`);else if(!this.detachedData||c.media===r){const C=this.playerQueue;C.length>1&&C.forEach(N=>{if(s&&N.interstitial.appendInPlace!==f){const L=N.interstitial;this.clearInterstitial(N.interstitial,null),L.appendInPlace=!1,L.appendInPlace&&this.warn(`Could not change append strategy for queued assets ${L}`)}}),this.hls.detachMedia(),this.detachedData={media:r}}}const _=a&&"mediaSource"in a&&((i=a.mediaSource)==null?void 0:i.readyState)!=="closed",T=_&&a?a:r;this.log(`${_?"transfering MediaSource":"attaching media"} to ${s?e:"Primary"} from ${x} (media.currentTime: ${r.currentTime})`);const E=this.schedule;if(T===a&&E){const C=s&&e.assetId===E.assetIdAtEnd;T.overrides={duration:E.duration,endOfStream:!s||C,cueRemoval:!s}}e.attachMedia(T)}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){const e=this.schedule,r=e==null?void 0:e.events;if(!r||this.playbackDisabled||!this.media)return;this.bufferedPos===-1&&(this.bufferedPos=0);const n=this.timelinePos,i=this.effectivePlayingItem;if(n===-1){const a=this.hls.startPosition;if(this.timelinePos=a,r.length===0)this.setSchedulePosition(0);else if(r[0].cue.pre){this.log(Hb("checkStart (preroll)",a));const c=e.findEventIndex(r[0].identifier);this.setSchedulePosition(c)}else if(a>=0||!this.primaryLive){this.log(Hb("checkStart",a));const c=this.timelinePos=a>0?a:0,s=e.findItemIndexAtTime(c);this.setSchedulePosition(s)}else this.hls.liveSyncPosition===0?this.setSchedulePosition(0):this.log("[checkStart] waiting for live start")}else if(i&&!this.playingItem){this.log(Hb("checkStart (playing item)",i.start));const a=e.findItemIndex(i);this.setSchedulePosition(a)}}advanceAssetBuffering(e,r){const n=e.event,i=n.findAssetIndex(r),a=l$(n,i);if(!n.isAssetPastPlayoutLimit(a))this.bufferedToEvent(e,a);else if(this.schedule){var c;const s=(c=this.schedule.items)==null?void 0:c[this.findItemIndex(e)+1];s&&this.bufferedToItem(s)}}advanceAfterAssetEnded(e,r,n){const i=l$(e,n);if(e.isAssetPastPlayoutLimit(i)){if(this.schedule){const a=this.schedule.items;if(a){const c=r+1,s=a.length;if(c>=s){this.setSchedulePosition(-1);return}const f=e.resumeTime;this.timelinePos=0?i[e]:null;this.log(`setSchedulePosition ${e}, ${r} (${a&&Ch(a)}) pos: ${this.timelinePos}`);const c=this.waitingItem||this.playingItem,s=this.playingLastItem;if(this.isInterstitial(c)){const x=c.event,_=this.playingAsset,T=_==null?void 0:_.identifier,E=T?this.getAssetPlayer(T):null;if(E&&T&&(!this.eventItemsMatch(c,a)||r!==void 0&&T!==x.assetList[r].identifier)){var f;const C=x.findAssetIndex(_);if(this.log(`INTERSTITIAL_ASSET_ENDED ${C+1}/${x.assetList.length} ${Xb(_)}`),this.endedAsset=_,this.playingAsset=null,this.hls.trigger(ke.INTERSTITIAL_ASSET_ENDED,{asset:_,assetListIndex:C,event:x,schedule:i.slice(0),scheduleIndex:e,player:E}),c!==this.playingItem){this.itemsMatch(c,this.playingItem)&&!this.playingAsset&&this.advanceAfterAssetEnded(x,this.findItemIndex(this.playingItem),C);return}this.retreiveMediaSource(T,a),E.media&&!((f=this.detachedData)!=null&&f.mediaSource)&&E.detachMedia()}if(!this.eventItemsMatch(c,a)&&(this.endedItem=c,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${x} ${Ch(c)}`),x.hasPlayed=!0,this.hls.trigger(ke.INTERSTITIAL_ENDED,{event:x,schedule:i.slice(0),scheduleIndex:e}),x.cue.once)){var m;this.updateSchedule();const C=(m=this.schedule)==null?void 0:m.items;if(a&&C){const N=this.findItemIndex(a);this.advanceSchedule(N,C,r,c,s)}return}}this.advanceSchedule(e,i,r,c,s)}advanceSchedule(e,r,n,i,a){const c=this.schedule;if(!c)return;const s=r[e]||null,f=this.primaryMedia,m=this.playerQueue;if(m.length&&m.forEach(x=>{const _=x.interstitial,T=c.findEventIndex(_.identifier);(Te+1)&&this.clearInterstitial(_,s)}),this.isInterstitial(s)){this.timelinePos=Math.min(Math.max(this.timelinePos,s.start),s.end);const x=s.event;if(n===void 0){n=c.findAssetIndex(x,this.timelinePos);const C=l$(x,n-1);if(x.isAssetPastPlayoutLimit(C)||x.appendInPlace&&this.timelinePos===s.end){this.advanceAfterAssetEnded(x,e,n);return}n=C}const _=this.waitingItem;this.assetsBuffered(s,f)||this.setBufferingItem(s);let T=this.preloadAssets(x,n);if(this.eventItemsMatch(s,_||i)||(this.waitingItem=s,this.log(`INTERSTITIAL_STARTED ${Ch(s)} ${x.appendInPlace?"append in place":""}`),this.hls.trigger(ke.INTERSTITIAL_STARTED,{event:x,schedule:r.slice(0),scheduleIndex:e})),!x.assetListLoaded){this.log(`Waiting for ASSET-LIST to complete loading ${x}`);return}if(x.assetListLoader&&(x.assetListLoader.destroy(),x.assetListLoader=void 0),!f){this.log(`Waiting for attachMedia to start Interstitial ${x}`);return}this.waitingItem=this.endedItem=null,this.playingItem=s;const E=x.assetList[n];if(!E){this.advanceAfterAssetEnded(x,e,n||0);return}if(T||(T=this.getAssetPlayer(E.identifier)),T===null||T.destroyed){const C=x.assetList.length;this.warn(`asset ${n+1}/${C} player destroyed ${x}`),T=this.createAssetPlayer(x,E,n),T.loadSource()}if(!this.eventItemsMatch(s,this.bufferingItem)&&x.appendInPlace&&this.isAssetBuffered(E))return;this.startAssetPlayer(T,n,r,e,f),this.shouldPlay&&Ple(T.media)}else s?(this.resumePrimary(s,e,i),this.shouldPlay&&Ple(this.hls.media)):a&&this.isInterstitial(i)&&(this.endedItem=null,this.playingItem=i,i.event.appendInPlace||this.attachPrimary(c.durations.primary,null))}get playbackDisabled(){return this.hls.config.enableInterstitialPlayback===!1}get primaryDetails(){var e;return(e=this.mediaSelection)==null?void 0:e.main.details}get primaryLive(){var e;return!!((e=this.primaryDetails)!=null&&e.live)}resumePrimary(e,r,n){var i,a;if(this.playingItem=e,this.playingAsset=this.endedAsset=null,this.waitingItem=this.endedItem=null,this.bufferedToItem(e),this.log(`resuming ${Ch(e)}`),!((i=this.detachedData)!=null&&i.mediaSource)){let s=this.timelinePos;(s=e.end)&&(s=this.getPrimaryResumption(e,r),this.log(Hb("resumePrimary",s)),this.timelinePos=s),this.attachPrimary(s,e)}if(!n)return;const c=(a=this.schedule)==null?void 0:a.items;c&&(this.log(`INTERSTITIALS_PRIMARY_RESUMED ${Ch(e)}`),this.hls.trigger(ke.INTERSTITIALS_PRIMARY_RESUMED,{schedule:c.slice(0),scheduleIndex:r}),this.checkBuffer())}getPrimaryResumption(e,r){const n=e.start;if(this.primaryLive){const i=this.primaryDetails;if(r===0)return this.hls.startPosition;if(i&&(ni.edge))return this.hls.liveSyncPosition||-1}return n}isAssetBuffered(e){const r=this.getAssetPlayer(e.identifier);return r!=null&&r.hls?r.hls.bufferedToEnd:yi.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=e.timelineStart+(e.duration||0)}attachPrimary(e,r,n){r?this.setBufferingItem(r):this.bufferingItem=this.playingItem,this.bufferingAsset=null;const i=this.primaryMedia;if(!i)return;const a=this.hls;a.media?this.checkBuffer():(this.transferMediaTo(a,i),n&&this.startLoadingPrimaryAt(e,n)),n||(this.log(Hb("attachPrimary",e)),this.timelinePos=e,this.startLoadingPrimaryAt(e,n))}startLoadingPrimaryAt(e,r){var n;const i=this.hls;!i.loadingEnabled||!i.media||Math.abs((((n=i.mainForwardBufferInfo)==null?void 0:n.start)||i.media.currentTime)-e)>.5?i.startLoad(e,r):i.bufferingEnabled||i.resumeBuffering()}onManifestLoading(){var e;this.stopLoad(),(e=this.schedule)==null||e.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(ke.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(ke.BUFFER_CODECS,this.onBufferCodecs,this)}onLevelUpdated(e,r){if(r.level===-1||!this.schedule)return;const n=this.hls.levels[r.level];if(!n.details)return;const i=zs(zs({},this.mediaSelection||this.altSelection),{},{main:n});this.mediaSelection=i,this.schedule.parseInterstitialDateRanges(i,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items&&this.checkStart()}onAudioTrackUpdated(e,r){const n=this.hls.audioTracks[r.id],i=this.mediaSelection;if(!i){this.altSelection=zs(zs({},this.altSelection),{},{audio:n});return}const a=zs(zs({},i),{},{audio:n});this.mediaSelection=a}onSubtitleTrackUpdated(e,r){const n=this.hls.subtitleTracks[r.id],i=this.mediaSelection;if(!i){this.altSelection=zs(zs({},this.altSelection),{},{subtitles:n});return}const a=zs(zs({},i),{},{subtitles:n});this.mediaSelection=a}onAudioTrackSwitching(e,r){const n=zoe(r);this.playerQueue.forEach(({hls:i})=>i&&(i.setAudioOption(r)||i.setAudioOption(n)))}onSubtitleTrackSwitch(e,r){const n=zoe(r);this.playerQueue.forEach(({hls:i})=>i&&(i.setSubtitleOption(r)||r.id!==-1&&i.setSubtitleOption(n)))}onBufferCodecs(e,r){const n=r.tracks;n&&(this.requiredTracks=n)}onBufferAppended(e,r){this.checkBuffer()}onBufferFlushed(e,r){const n=this.playingItem;if(n&&!this.itemsMatch(n,this.bufferingItem)&&!this.isInterstitial(n)){const i=this.timelinePos;this.bufferedPos=i,this.checkBuffer()}}onBufferedToEnd(e){if(!this.schedule)return;const r=this.schedule.events;if(this.bufferedPos.25){e.event.assetList.forEach((a,c)=>{e.event.isAssetPastPlayoutLimit(c)&&this.clearAssetPlayer(a.identifier,null)});const n=e.end+.25,i=yi.bufferInfo(this.primaryMedia,n,0);(i.end>n||(i.nextStart||0)>n)&&(this.log(`trim buffered interstitial ${Ch(e)} (was ${Ch(r)})`),this.attachPrimary(n,null,!0),this.flushFrontBuffer(n))}}itemsMatch(e,r){return!!r&&(e===r||e.event&&r.event&&this.eventItemsMatch(e,r)||!e.event&&!r.event&&this.findItemIndex(e)===this.findItemIndex(r))}eventItemsMatch(e,r){var n;return!!r&&(e===r||e.event.identifier===((n=r.event)==null?void 0:n.identifier))}findItemIndex(e,r){return e&&this.schedule?this.schedule.findItemIndex(e,r):-1}updateSchedule(e=!1){var r;const n=this.mediaSelection;n&&((r=this.schedule)==null||r.updateSchedule(n,[],e))}checkBuffer(e){var r;const n=(r=this.schedule)==null?void 0:r.items;if(!n)return;const i=yi.bufferInfo(this.primaryMedia,this.timelinePos,0);e&&(this.bufferedPos=this.timelinePos),e||(e=i.len<1),this.updateBufferedPos(i.end,n,e)}updateBufferedPos(e,r,n){const i=this.schedule,a=this.bufferingItem;if(this.bufferedPos>e||!i)return;if(r.length===1&&this.itemsMatch(r[0],a)){this.bufferedPos=e;return}const c=this.playingItem,s=this.findItemIndex(c);let f=i.findItemIndexAtTime(e);if(this.bufferedPos=a.end||(m=T.event)!=null&&m.appendInPlace&&e+.01>=T.start)&&(f=_),this.isInterstitial(a)){const E=a.event;if(_-s>1&&E.appendInPlace===!1||E.assetList.length===0&&E.assetListLoader)return}if(this.bufferedPos=e,f>x&&f>s)this.bufferedToItem(T);else{const E=this.primaryDetails;this.primaryLive&&E&&e>E.edge-E.targetduration&&T.start{const a=this.getAssetPlayer(i.identifier);return!(a!=null&&a.bufferedInPlaceToEnd(r))})}setBufferingItem(e){const r=this.bufferingItem,n=this.schedule;if(!this.itemsMatch(e,r)&&n){const{items:i,events:a}=n;if(!i||!a)return r;const c=this.isInterstitial(e),s=this.getBufferingPlayer();this.bufferingItem=e,this.bufferedPos=Math.max(e.start,Math.min(e.end,this.timelinePos));const f=s?s.remaining:r?r.end-this.timelinePos:0;if(this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${Ch(e)}`+(r?` (${f.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(c){const m=n.findAssetIndex(e.event,this.bufferedPos);e.event.assetList.forEach((x,_)=>{const T=this.getAssetPlayer(x.identifier);T&&(_===m&&T.loadSource(),T.resumeBuffering())})}else this.hls.resumeBuffering(),this.playerQueue.forEach(m=>m.pauseBuffering());this.hls.trigger(ke.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:a.slice(0),schedule:i.slice(0),bufferingIndex:this.findItemIndex(e),playingIndex:this.findItemIndex(this.playingItem)})}else this.bufferingItem!==e&&(this.bufferingItem=e);return r}bufferedToItem(e,r=0){const n=this.setBufferingItem(e);if(!this.playbackDisabled){if(this.isInterstitial(e))this.bufferedToEvent(e,r);else if(n!==null){this.bufferingAsset=null;const i=this.detachedData;i?i.mediaSource?this.attachPrimary(e.start,e,!0):this.preloadPrimary(e):this.preloadPrimary(e)}}}preloadPrimary(e){const r=this.findItemIndex(e),n=this.getPrimaryResumption(e,r);this.startLoadingPrimaryAt(n)}bufferedToEvent(e,r){const n=e.event,i=n.assetList.length===0&&!n.assetListLoader,a=n.cue.once;if(i||!a){const c=this.preloadAssets(n,r);if(c!=null&&c.interstitial.appendInPlace){const s=this.primaryMedia;s&&this.bufferAssetPlayer(c,s)}}}preloadAssets(e,r){const n=e.assetUrl,i=e.assetList.length,a=i===0&&!e.assetListLoader,c=e.cue.once;if(a){const f=e.timelineStart;if(e.appendInPlace){var s;const T=this.playingItem;!this.isInterstitial(T)&&(T==null||(s=T.nextEvent)==null?void 0:s.identifier)===e.identifier&&this.flushFrontBuffer(f+.25)}let m,x=0;if(!this.playingItem&&this.primaryLive&&(x=this.hls.startPosition,x===-1&&(x=this.hls.liveSyncPosition||0)),x&&!(e.cue.pre||e.cue.post)){const T=x-f;T>0&&(m=Math.round(T*1e3)/1e3)}if(this.log(`Load interstitial asset ${r+1}/${n?1:i} ${e}${m?` live-start: ${x} start-offset: ${m}`:""}`),n)return this.createAsset(e,0,0,f,e.duration,n);const _=this.assetListLoader.loadAssetList(e,m);_&&(e.assetListLoader=_)}else if(!c&&i){for(let m=r;m{this.hls.trigger(ke.BUFFER_FLUSHING,{startOffset:e,endOffset:1/0,type:i})})}getAssetPlayerQueueIndex(e){const r=this.playerQueue;for(let n=0;n1){const G=r.duration;G&&V{if(V.live){var G;const Q=new Error(`Interstitials MUST be VOD assets ${e}`),se={fatal:!0,type:jn.OTHER_ERROR,details:Zt.INTERSTITIAL_ASSET_ITEM_ERROR,error:Q},ie=((G=this.schedule)==null?void 0:G.findEventIndex(e.identifier))||-1;this.handleAssetItemError(se,e,ie,n,Q.message);return}const W=V.edge-V.fragmentStart,Z=r.duration;(N||Z===null||W>Z)&&(N=!1,this.log(`Interstitial asset "${_}" duration change ${Z} > ${W}`),r.duration=W,this.updateSchedule())};C.on(ke.LEVEL_UPDATED,(V,{details:G})=>L(G)),C.on(ke.LEVEL_PTS_UPDATED,(V,{details:G})=>L(G)),C.on(ke.EVENT_CUE_ENTER,()=>this.onInterstitialCueEnter());const M=(V,G)=>{const W=this.getAssetPlayer(_);if(W&&G.tracks){W.off(ke.BUFFER_CODECS,M),W.tracks=G.tracks;const Z=this.primaryMedia;this.bufferingAsset===W.assetItem&&Z&&!W.media&&this.bufferAssetPlayer(W,Z)}};C.on(ke.BUFFER_CODECS,M);const D=()=>{var V;const G=this.getAssetPlayer(_);if(this.log(`buffered to end of asset ${G}`),!G||!this.schedule)return;const W=this.schedule.findEventIndex(e.identifier),Z=(V=this.schedule.items)==null?void 0:V[W];this.isInterstitial(Z)&&this.advanceAssetBuffering(Z,r)};C.on(ke.BUFFERED_TO_END,D);const B=V=>()=>{if(!this.getAssetPlayer(_)||!this.schedule)return;this.shouldPlay=!0;const W=this.schedule.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,W,V)};return C.once(ke.MEDIA_ENDED,B(n)),C.once(ke.PLAYOUT_LIMIT_REACHED,B(1/0)),C.on(ke.ERROR,(V,G)=>{if(!this.schedule)return;const W=this.getAssetPlayer(_);if(G.details===Zt.BUFFER_STALLED_ERROR){if(W!=null&&W.appendInPlace){this.handleInPlaceStall(e);return}this.onTimeupdate(),this.checkBuffer(!0);return}this.handleAssetItemError(G,e,this.schedule.findEventIndex(e.identifier),n,`Asset player error ${G.error} ${e}`)}),C.on(ke.DESTROYING,()=>{if(!this.getAssetPlayer(_)||!this.schedule)return;const G=new Error(`Asset player destroyed unexpectedly ${_}`),W={fatal:!0,type:jn.OTHER_ERROR,details:Zt.INTERSTITIAL_ASSET_ITEM_ERROR,error:G};this.handleAssetItemError(W,e,this.schedule.findEventIndex(e.identifier),n,G.message)}),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${Xb(r)}`),this.hls.trigger(ke.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:r,assetListIndex:n,event:e,player:C}),C}clearInterstitial(e,r){this.clearAssetPlayers(e,r),e.reset()}clearAssetPlayers(e,r){e.assetList.forEach(n=>{this.clearAssetPlayer(n.identifier,r)})}resetAssetPlayer(e){const r=this.getAssetPlayerQueueIndex(e);if(r!==-1){this.log(`reset asset player "${e}" after error`);const n=this.playerQueue[r];this.transferMediaFromPlayer(n,null),n.resetDetails()}}clearAssetPlayer(e,r){const n=this.getAssetPlayerQueueIndex(e);if(n!==-1){const i=this.playerQueue[n];this.log(`clear ${i} toSegment: ${r&&Ch(r)}`),this.transferMediaFromPlayer(i,r),this.playerQueue.splice(n,1),i.destroy()}}emptyPlayerQueue(){let e;for(;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[]}startAssetPlayer(e,r,n,i,a){const{interstitial:c,assetItem:s,assetId:f}=e,m=c.assetList.length,x=this.playingAsset;this.endedAsset=null,this.playingAsset=s,(!x||x.identifier!==f)&&(x&&(this.clearAssetPlayer(x.identifier,n[i]),delete x.error),this.log(`INTERSTITIAL_ASSET_STARTED ${r+1}/${m} ${Xb(s)}`),this.hls.trigger(ke.INTERSTITIAL_ASSET_STARTED,{asset:s,assetListIndex:r,event:c,schedule:n.slice(0),scheduleIndex:i,player:e})),this.bufferAssetPlayer(e,a)}bufferAssetPlayer(e,r){var n,i;if(!this.schedule)return;const{interstitial:a,assetItem:c}=e,s=this.schedule.findEventIndex(a.identifier),f=(n=this.schedule.items)==null?void 0:n[s];if(!f)return;e.loadSource(),this.setBufferingItem(f),this.bufferingAsset=c;const m=this.getBufferingPlayer();if(m===e)return;const x=a.appendInPlace;if(x&&(m==null?void 0:m.interstitial.appendInPlace)===!1)return;const _=(m==null?void 0:m.tracks)||((i=this.detachedData)==null?void 0:i.tracks)||this.requiredTracks;if(x&&c!==this.playingAsset){if(!e.tracks){this.log(`Waiting for track info before buffering ${e}`);return}if(_&&!mEe(_,e.tracks)){const T=new Error(`Asset ${Xb(c)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(_)}')`),E={fatal:!0,type:jn.OTHER_ERROR,details:Zt.INTERSTITIAL_ASSET_ITEM_ERROR,error:T},C=a.findAssetIndex(c);this.handleAssetItemError(E,a,s,C,T.message);return}}this.transferMediaTo(e,r)}handleInPlaceStall(e){const r=this.schedule,n=this.primaryMedia;if(!r||!n)return;const i=n.currentTime,a=r.findAssetIndex(e,i),c=e.assetList[a];if(c){const s=this.getAssetPlayer(c.identifier);if(s){const f=s.currentTime||i-c.timelineStart,m=s.duration-f;if(this.warn(`Stalled at ${f} of ${f+m} in ${s} ${e} (media.currentTime: ${i})`),f&&(m/n.playbackRate<.5||s.bufferedInPlaceToEnd(n))&&s.hls){const x=r.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,x,a)}}}}advanceInPlace(e){const r=this.primaryMedia;r&&r.currentTime!N.error))r.error=C;else for(let N=i;N{const M=parseFloat(N.DURATION);this.createAsset(a,L,x,f+x,M,N.URI),x+=M}),a.duration=x,this.log(`Loaded asset-list with duration: ${x} (was: ${m}) ${a}`);const _=this.waitingItem,T=(_==null?void 0:_.event.identifier)===c;this.updateSchedule();const E=(i=this.bufferingItem)==null?void 0:i.event;if(T){var C;const N=this.schedule.findEventIndex(c),L=(C=this.schedule.items)==null?void 0:C[N];if(L){if(!this.playingItem&&this.timelinePos>L.end&&this.schedule.findItemIndexAtTime(this.timelinePos)!==N){a.error=new Error(`Interstitial ${s.length?"no longer within playback range":"asset-list is empty"} ${this.timelinePos} ${a}`),this.log(a.error.message),this.updateSchedule(!0),this.primaryFallback(a);return}this.setBufferingItem(L)}this.setSchedulePosition(N)}else if((E==null?void 0:E.identifier)===c){const N=a.assetList[0];if(N){const L=this.getAssetPlayer(N.identifier);if(E.appendInPlace){const M=this.primaryMedia;L&&M&&this.bufferAssetPlayer(L,M)}else L&&L.loadSource()}}}onError(e,r){if(this.schedule)switch(r.details){case Zt.ASSET_LIST_PARSING_ERROR:case Zt.ASSET_LIST_LOAD_ERROR:case Zt.ASSET_LIST_LOAD_TIMEOUT:{const n=r.interstitial;n&&(this.updateSchedule(!0),this.primaryFallback(n));break}case Zt.BUFFER_STALLED_ERROR:{const n=this.endedItem||this.waitingItem||this.playingItem;if(this.isInterstitial(n)&&n.event.appendInPlace){this.handleInPlaceStall(n.event);return}this.log(`Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`),this.onTimeupdate(),this.checkBuffer(!0);break}}}}const Nle=500;class jDt extends xW{constructor(e,r,n){super(e,r,n,"subtitle-stream-controller",_n.SUBTITLE),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.on(ke.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(ke.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(ke.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(ke.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(ke.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();const{hls:e}=this;e.off(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.off(ke.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(ke.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(ke.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(ke.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(ke.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(e,r){this.stopLoad(),this.state=vr.IDLE,this.setInterval(Nle),this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=r?-1:e,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(e,r){this.tracksBuffered=[],super.onMediaDetaching(e,r)}onLevelLoaded(e,r){this.mainDetails=r.details}onSubtitleFragProcessed(e,r){const{frag:n,success:i}=r;if(this.fragContextChanged(n)||(To(n)&&(this.fragPrevious=n),this.state=vr.IDLE),!i)return;const a=this.tracksBuffered[this.currentTrackId];if(!a)return;let c;const s=n.start;for(let m=0;m=a[m].start&&s<=a[m].end){c=a[m];break}const f=n.start+n.duration;c?c.end=f:(c={start:s,end:f},a.push(c)),this.fragmentTracker.fragBuffered(n),this.fragBufferedComplete(n,null),this.media&&this.tick()}onBufferFlushing(e,r){const{startOffset:n,endOffset:i}=r;if(n===0&&i!==Number.POSITIVE_INFINITY){const a=i-1;if(a<=0)return;r.endOffsetSubtitles=Math.max(0,a),this.tracksBuffered.forEach(c=>{for(let s=0;snew nC(n));return}this.tracksBuffered=[],this.levels=r.map(n=>{const i=new nC(n);return this.tracksBuffered[i.id]=[],i}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,_n.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(e,r){var n;if(this.currentTrackId=r.id,!((n=this.levels)!=null&&n.length)||this.currentTrackId===-1){this.clearInterval();return}const i=this.levels[this.currentTrackId];i!=null&&i.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,i&&this.state!==vr.STOPPED&&this.setInterval(Nle)}onSubtitleTrackLoaded(e,r){var n;const{currentTrackId:i,levels:a}=this,{details:c,id:s}=r;if(!a){this.warn(`Subtitle tracks were reset while loading level ${s}`);return}const f=a[s];if(s>=a.length||!f)return;this.log(`Subtitle track ${s} loaded [${c.startSN},${c.endSN}]${c.lastPartSn?`[part-${c.lastPartSn}-${c.lastPartIndex}]`:""},duration:${c.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let m=0;if(c.live||(n=f.details)!=null&&n.live){if(c.deltaUpdateFailed)return;const _=this.mainDetails;if(!_){this.startFragRequested=!1;return}const T=_.fragments[0];if(!f.details)c.hasProgramDateTime&&_.hasProgramDateTime?(wM(c,_),m=c.fragmentStart):T&&(m=T.start,G8(c,m));else{var x;m=this.alignPlaylists(c,f.details,(x=this.levelLastLoaded)==null?void 0:x.details),m===0&&T&&(m=T.start,G8(c,m))}_&&!this.startFragRequested&&this.setStartPosition(_,m)}f.details=c,this.levelLastLoaded=f,s===i&&(this.hls.trigger(ke.SUBTITLE_TRACK_UPDATED,{details:c,id:s,groupId:r.groupId}),this.tick(),c.live&&!this.fragCurrent&&this.media&&this.state===vr.IDLE&&(L_(null,c.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),f.details=void 0)))}_handleFragmentLoadComplete(e){const{frag:r,payload:n}=e,i=r.decryptdata,a=this.hls;if(!this.fragContextChanged(r)&&n&&n.byteLength>0&&i!=null&&i.key&&i.iv&&Bw(i.method)){const c=performance.now();this.decrypter.decrypt(new Uint8Array(n),i.key.buffer,i.iv.buffer,gW(i.method)).catch(s=>{throw a.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.FRAG_DECRYPT_ERROR,fatal:!1,error:s,reason:s.message,frag:r}),s}).then(s=>{const f=performance.now();a.trigger(ke.FRAG_DECRYPTED,{frag:r,payload:s,stats:{tstart:c,tdecrypt:f}})}).catch(s=>{this.warn(`${s.name}: ${s.message}`),this.state=vr.IDLE})}}doTick(){if(!this.media){this.state=vr.IDLE;return}if(this.state===vr.IDLE){const{currentTrackId:e,levels:r}=this,n=r==null?void 0:r[e];if(!n||!r.length||!n.details||this.waitForLive(n))return;const{config:i}=this,a=this.getLoadPosition(),c=yi.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],a,i.maxBufferHole),{end:s,len:f}=c,m=n.details,x=this.hls.maxBufferLength+m.levelTargetDuration;if(f>x)return;const _=m.fragments,T=_.length,E=m.edge;let C=null;const N=this.fragPrevious;if(sE-D?0:D;C=L_(N,_,Math.max(_[0].start,s),B),!C&&N&&N.start<_[0].start&&(C=_[0])}else C=_[T-1];if(C=this.filterReplacedPrimary(C,n.details),!C)return;const L=C.sn-m.startSN,M=_[L-1];if(M&&M.cc===C.cc&&this.fragmentTracker.getState(M)===il.NOT_LOADED&&(C=M),this.fragmentTracker.getState(C)===il.NOT_LOADED){const D=this.mapToInitFragWhenRequired(C);D&&this.loadFragment(D,n,s)}}}loadFragment(e,r,n){To(e)?super.loadFragment(e,r,n):this._loadInitSegment(e,r)}get mediaBufferTimeRanges(){return new PDt(this.tracksBuffered[this.currentTrackId]||[])}}class PDt{constructor(e){this.buffered=void 0;const r=(n,i,a)=>{if(i=i>>>0,i>a-1)throw new DOMException(`Failed to execute '${n}' on 'TimeRanges': The index provided (${i}) is greater than the maximum bound (${a})`);return e[i][n]};this.buffered={get length(){return e.length},end(n){return r("end",n,e.length)},start(n){return r("start",n,e.length)}}}}const NDt={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},L2e=t=>String.fromCharCode(NDt[t]||t),Ph=15,Jp=100,RDt={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},LDt={17:2,18:4,21:6,22:8,23:10,19:13,20:15},DDt={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},MDt={25:2,26:4,29:6,30:8,31:10,27:13,28:15},ODt=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class FDt{constructor(){this.time=null,this.verboseLevel=0}log(e,r){if(this.verboseLevel>=e){const n=typeof r=="function"?r():r;Us.log(`${this.time} [${e}] ${n}`)}}}const C0=function(e){const r=[];for(let n=0;nJp&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Jp)}moveCursor(e){const r=this.pos+e;if(e>1)for(let n=this.pos+1;n=144&&this.backSpace();const r=L2e(e);if(this.pos>=Jp){this.logger.log(0,()=>"Cannot insert "+e.toString(16)+" ("+r+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(r,this.currPenState),this.moveCursor(1)}clearFromPos(e){let r;for(r=e;r"pacData = "+ia(e));let r=e.row-1;if(this.nrRollUpRows&&r"bkgData = "+ia(e)),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());const e=this.currRow+1-this.nrRollUpRows,r=this.rows.splice(e,1)[0];r.clear(),this.rows.splice(this.currRow,0,r),this.logger.log(2,"Rolling up")}getDisplayText(e){e=e||!1;const r=[];let n="",i=-1;for(let a=0;a0&&(e?n="["+r.join(" | ")+"]":n=r.join(` `)),n}getTextAndFormat(){return this.rows}}class Rle{constructor(e,r,n){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=r,this.mode=null,this.verbose=0,this.displayedMemory=new c$(n),this.nonDisplayedMemory=new c$(n),this.lastOutputScreen=new c$(n),this.currRollUpRow=this.displayedMemory.rows[Ph-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=n}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[Ph-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(e){this.outputFilter=e}setPAC(e){this.writeScreen.setPAC(e)}setBkgData(e){this.writeScreen.setBkgData(e)}setMode(e){e!==this.mode&&(this.mode=e,this.logger.log(2,()=>"MODE="+e),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(e){for(let n=0;nr+": "+this.writeScreen.getDisplayText(!0)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){const e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)}ccMIDROW(e){const r={flash:!1};if(r.underline=e%2===1,r.italics=e>=46,r.italics)r.foreground="white";else{const n=Math.floor(e/2)-16,i=["white","green","blue","cyan","red","yellow","magenta"];r.foreground=i[n]}this.logger.log(2,"MIDROW: "+ia(r)),this.writeScreen.setPen(r)}outputDataUpdate(e=!1){const r=this.logger.time;r!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=r:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,r,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:r),this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}}class Lle{constructor(e,r,n){this.channels=void 0,this.currentChannel=0,this.cmdHistory=UDt(),this.logger=void 0;const i=this.logger=new FDt;this.channels=[null,new Rle(e,r,i),new Rle(e+1,n,i)]}getHandler(e){return this.channels[e].getHandler()}setHandler(e,r){this.channels[e].setHandler(r)}addData(e,r){this.logger.time=e;for(let n=0;n"["+C0([r[n],r[n+1]])+"] -> ("+C0([i,a])+")");const f=this.cmdHistory;if(i>=16&&i<=31){if($Dt(i,a,f)){XN(null,null,f),this.logger.log(3,()=>"Repeated command ("+C0([i,a])+") is dropped");continue}XN(i,a,this.cmdHistory),c=this.parseCmd(i,a),c||(c=this.parseMidrow(i,a)),c||(c=this.parsePAC(i,a)),c||(c=this.parseBackgroundAttributes(i,a))}else XN(null,null,f);if(!c&&(s=this.parseChars(i,a),s)){const x=this.currentChannel;x&&x>0?this.channels[x].insertChars(s):this.logger.log(2,"No channel found yet. TEXT-MODE?")}!c&&!s&&this.logger.log(2,()=>"Couldn't parse cleaned data "+C0([i,a])+" orig: "+C0([r[n],r[n+1]]))}}parseCmd(e,r){const n=(e===20||e===28||e===21||e===29)&&r>=32&&r<=47,i=(e===23||e===31)&&r>=33&&r<=35;if(!(n||i))return!1;const a=e===20||e===21||e===23?1:2,c=this.channels[a];return e===20||e===21||e===28||e===29?r===32?c.ccRCL():r===33?c.ccBS():r===34?c.ccAOF():r===35?c.ccAON():r===36?c.ccDER():r===37?c.ccRU(2):r===38?c.ccRU(3):r===39?c.ccRU(4):r===40?c.ccFON():r===41?c.ccRDC():r===42?c.ccTR():r===43?c.ccRTD():r===44?c.ccEDM():r===45?c.ccCR():r===46?c.ccENM():r===47&&c.ccEOC():c.ccTO(r-32),this.currentChannel=a,!0}parseMidrow(e,r){let n=0;if((e===17||e===25)&&r>=32&&r<=47){if(e===17?n=1:n=2,n!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;const i=this.channels[n];return i?(i.ccMIDROW(r),this.logger.log(3,()=>"MIDROW ("+C0([e,r])+")"),!0):!1}return!1}parsePAC(e,r){let n;const i=(e>=17&&e<=23||e>=25&&e<=31)&&r>=64&&r<=127,a=(e===16||e===24)&&r>=64&&r<=95;if(!(i||a))return!1;const c=e<=23?1:2;r>=64&&r<=95?n=c===1?RDt[e]:DDt[e]:n=c===1?LDt[e]:MDt[e];const s=this.channels[c];return s?(s.setPAC(this.interpretPAC(n,r)),this.currentChannel=c,!0):!1}interpretPAC(e,r){let n;const i={color:null,italics:!1,indent:null,underline:!1,row:e};return r>95?n=r-96:n=r-64,i.underline=(n&1)===1,n<=13?i.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(n/2)]:n<=15?(i.italics=!0,i.color="white"):i.indent=Math.floor((n-16)/2)*4,i}parseChars(e,r){let n,i=null,a=null;if(e>=25?(n=2,a=e-8):(n=1,a=e),a>=17&&a<=19){let c;a===17?c=r+80:a===18?c=r+112:c=r+144,this.logger.log(2,()=>"Special char '"+L2e(c)+"' in channel "+n),i=[c]}else e>=32&&e<=127&&(i=r===0?[e]:[e,r]);return i&&this.logger.log(3,()=>"Char codes = "+C0(i).join(",")),i}parseBackgroundAttributes(e,r){const n=(e===16||e===24)&&r>=32&&r<=47,i=(e===23||e===31)&&r>=45&&r<=47;if(!(n||i))return!1;let a;const c={};e===16||e===24?(a=Math.floor((r-32)/2),c.background=ODt[a],r%2===1&&(c.background=c.background+"_semi")):r===45?c.background="transparent":(c.foreground="black",r===47&&(c.underline=!0));const s=e<=23?1:2;return this.channels[s].setBkgData(c),!0}reset(){for(let e=0;e100)throw new Error("Position must be between 0 and 100.");W=ie,this.hasBeenReset=!0}})),Object.defineProperty(x,"positionAlign",a({},_,{get:function(){return Z},set:function(ie){const ue=i(ie);if(!ue)throw new SyntaxError("An invalid or illegal string was specified.");Z=ue,this.hasBeenReset=!0}})),Object.defineProperty(x,"size",a({},_,{get:function(){return Q},set:function(ie){if(ie<0||ie>100)throw new Error("Size must be between 0 and 100.");Q=ie,this.hasBeenReset=!0}})),Object.defineProperty(x,"align",a({},_,{get:function(){return se},set:function(ie){const ue=i(ie);if(!ue)throw new SyntaxError("An invalid or illegal string was specified.");se=ue,this.hasBeenReset=!0}})),x.displayState=void 0}return c.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},c}();class VDt{decode(e,r){if(!e)return"";if(typeof e!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}function M2e(t){function e(n,i,a,c){return(n|0)*3600+(i|0)*60+(a|0)+parseFloat(c||0)}const r=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return r?parseFloat(r[2])>59?e(r[2],r[3],0,r[4]):e(r[1],r[2],r[3],r[4]):null}class qDt{constructor(){this.values=Object.create(null)}set(e,r){!this.get(e)&&r!==""&&(this.values[e]=r)}get(e,r,n){return n?this.has(e)?this.values[e]:r[n]:this.has(e)?this.values[e]:r}has(e){return e in this.values}alt(e,r,n){for(let i=0;i=0&&n<=100)return this.set(e,n),!0}return!1}}function O2e(t,e,r,n){const i=n?t.split(n):[t];for(const a in i){if(typeof i[a]!="string")continue;const c=i[a].split(r);if(c.length!==2)continue;const s=c[0],f=c[1];e(s,f)}}const J8=new jW(0,0,""),QN=J8.align==="middle"?"middle":"center";function GDt(t,e,r){const n=t;function i(){const s=M2e(t);if(s===null)throw new Error("Malformed timestamp: "+n);return t=t.replace(/^[^\sa-zA-Z-]+/,""),s}function a(s,f){const m=new qDt;O2e(s,function(T,E){let C;switch(T){case"region":for(let N=r.length-1;N>=0;N--)if(r[N].id===E){m.set(T,r[N].region);break}break;case"vertical":m.alt(T,E,["rl","lr"]);break;case"line":C=E.split(","),m.integer(T,C[0]),m.percent(T,C[0])&&m.set("snapToLines",!1),m.alt(T,C[0],["auto"]),C.length===2&&m.alt("lineAlign",C[1],["start",QN,"end"]);break;case"position":C=E.split(","),m.percent(T,C[0]),C.length===2&&m.alt("positionAlign",C[1],["start",QN,"end","line-left","line-right","auto"]);break;case"size":m.percent(T,E);break;case"align":m.alt(T,E,["start",QN,"end","left","right"]);break}},/:/,/\s/),f.region=m.get("region",null),f.vertical=m.get("vertical","");let x=m.get("line","auto");x==="auto"&&J8.line===-1&&(x=-1),f.line=x,f.lineAlign=m.get("lineAlign","start"),f.snapToLines=m.get("snapToLines",!0),f.size=m.get("size",100),f.align=m.get("align",QN);let _=m.get("position","auto");_==="auto"&&J8.position===50&&(_=f.align==="start"||f.align==="left"?0:f.align==="end"||f.align==="right"?100:50),f.position=_}function c(){t=t.replace(/^\s+/,"")}if(c(),e.startTime=i(),c(),t.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+n);t=t.slice(3),c(),e.endTime=i(),c(),a(t,e)}function F2e(t){return t.replace(//gi,` `)}class HDt{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new VDt,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(e){const r=this;e&&(r.buffer+=r.decoder.decode(e,{stream:!0}));function n(){let a=r.buffer,c=0;for(a=F2e(a);c")===-1){r.cue.id=a;continue}case"CUE":if(!r.cue){r.state="BADCUE";continue}try{GDt(a,r.cue,r.regionList)}catch{r.cue=null,r.state="BADCUE";continue}r.state="CUETEXT";continue;case"CUETEXT":{const s=a.indexOf("-->")!==-1;if(!a||s&&(c=!0)){r.oncue&&r.cue&&r.oncue(r.cue),r.cue=null,r.state="ID";continue}if(r.cue===null)continue;r.cue.text&&(r.cue.text+=` `),r.cue.text+=a}continue;case"BADCUE":a||(r.state="ID")}}}catch{r.state==="CUETEXT"&&r.cue&&r.oncue&&r.oncue(r.cue),r.cue=null,r.state=r.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){const e=this;try{if((e.cue||e.state==="HEADER")&&(e.buffer+=` `,e.parse()),e.state==="INITIAL"||e.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(r){e.onparsingerror&&e.onparsingerror(r)}return e.onflush&&e.onflush(),this}}const WDt=/\r\n|\n\r|\n|\r/g,u$=function(e,r,n=0){return e.slice(n,n+r.length)===r},KDt=function(e){let r=parseInt(e.slice(-3));const n=parseInt(e.slice(-6,-4)),i=parseInt(e.slice(-9,-7)),a=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!dn(r)||!dn(n)||!dn(i)||!dn(a))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return r+=1e3*n,r+=60*1e3*i,r+=60*60*1e3*a,r};function PW(t,e,r){return kA(t.toString())+kA(e.toString())+kA(r)}const YDt=function(e,r,n){let i=e[r],a=e[i.prevCC];if(!a||!a.new&&i.new){e.ccOffset=e.presentationOffset=i.start,i.new=!1;return}for(;(c=a)!=null&&c.new;){var c;e.ccOffset+=i.start-a.start,i.new=!1,i=a,a=e[i.prevCC]}e.presentationOffset=n};function ZDt(t,e,r,n,i,a,c){const s=new HDt,f=nd(new Uint8Array(t)).trim().replace(WDt,` `).split(` `),m=[],x=e?rLt(e.baseTime,e.timescale):0;let _="00:00.000",T=0,E=0,C,N=!0;s.oncue=function(L){const M=r[n];let D=r.ccOffset;const B=(T-x)/9e4;if(M!=null&&M.new&&(E!==void 0?D=r.ccOffset=M.start:YDt(r,n,B)),B){if(!e){C=new Error("Missing initPTS for VTT MPEGTS");return}D=B-r.presentationOffset}const V=L.endTime-L.startTime,G=qu((L.startTime+D-E)*9e4,i*9e4)/9e4;L.startTime=Math.max(G,0),L.endTime=Math.max(G+V,0);const W=L.text.trim();L.text=decodeURIComponent(encodeURIComponent(W)),L.id||(L.id=PW(L.startTime,L.endTime,W)),L.endTime>0&&m.push(L)},s.onparsingerror=function(L){C=L},s.onflush=function(){if(C){c(C);return}a(m)},f.forEach(L=>{if(N)if(u$(L,"X-TIMESTAMP-MAP=")){N=!1,L.slice(16).split(",").forEach(M=>{u$(M,"LOCAL:")?_=M.slice(6):u$(M,"MPEGTS:")&&(T=parseInt(M.slice(7)))});try{E=KDt(_)/1e3}catch(M){C=M}return}else L===""&&(N=!1);s.parse(L+` `)}),s.flush()}const d$="stpp.ttml.im1t",B2e=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,z2e=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,XDt={left:"start",center:"center",right:"end",start:"start",end:"end"};function Dle(t,e,r,n){const i=qi(new Uint8Array(t),["mdat"]);if(i.length===0){n(new Error("Could not parse IMSC1 mdat"));return}const a=i.map(s=>nd(s)),c=tLt(e.baseTime,1,e.timescale);try{a.forEach(s=>r(QDt(s,c)))}catch(s){n(s)}}function QDt(t,e){const i=new DOMParser().parseFromString(t,"text/xml").getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");const a={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},c=Object.keys(a).reduce((_,T)=>(_[T]=i.getAttribute(`ttp:${T}`)||a[T],_),{}),s=i.getAttribute("xml:space")!=="preserve",f=Mle(h$(i,"styling","style")),m=Mle(h$(i,"layout","region")),x=h$(i,"body","[begin]");return[].map.call(x,_=>{const T=$2e(_,s);if(!T||!_.hasAttribute("begin"))return null;const E=p$(_.getAttribute("begin"),c),C=p$(_.getAttribute("dur"),c);let N=p$(_.getAttribute("end"),c);if(E===null)throw Ole(_);if(N===null){if(C===null)throw Ole(_);N=E+C}const L=new jW(E-e,N-e,T);L.id=PW(L.startTime,L.endTime,L.text);const M=m[_.getAttribute("region")],D=f[_.getAttribute("style")],B=JDt(M,D,f),{textAlign:V}=B;if(V){const G=XDt[V];G&&(L.lineAlign=G),L.align=V}return Xs(L,B),L}).filter(_=>_!==null)}function h$(t,e,r){const n=t.getElementsByTagName(e)[0];return n?[].slice.call(n.querySelectorAll(r)):[]}function Mle(t){return t.reduce((e,r)=>{const n=r.getAttribute("xml:id");return n&&(e[n]=r),e},{})}function $2e(t,e){return[].slice.call(t.childNodes).reduce((r,n,i)=>{var a;return n.nodeName==="br"&&i?r+` `:(a=n.childNodes)!=null&&a.length?$2e(n,e):e?r+n.textContent.trim().replace(/\s+/g," "):r+n.textContent},"")}function JDt(t,e,r){const n="http://www.w3.org/ns/ttml#styling";let i=null;const a=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],c=t!=null&&t.hasAttribute("style")?t.getAttribute("style"):null;return c&&r.hasOwnProperty(c)&&(i=r[c]),a.reduce((s,f)=>{const m=f$(e,n,f)||f$(t,n,f)||f$(i,n,f);return m&&(s[f]=m),s},{})}function f$(t,e,r){return t&&t.hasAttributeNS(e,r)?t.getAttributeNS(e,r):null}function Ole(t){return new Error(`Could not parse ttml timestamp ${t}`)}function p$(t,e){if(!t)return null;let r=M2e(t);return r===null&&(B2e.test(t)?r=eMt(t,e):z2e.test(t)&&(r=tMt(t,e))),r}function eMt(t,e){const r=B2e.exec(t),n=(r[4]|0)+(r[5]|0)/e.subFrameRate;return(r[1]|0)*3600+(r[2]|0)*60+(r[3]|0)+n/e.frameRate}function tMt(t,e){const r=z2e.exec(t),n=Number(r[1]);switch(r[2]){case"h":return n*3600;case"m":return n*60;case"ms":return n*1e3;case"f":return n/e.frameRate;case"t":return n/e.tickRate}return n}class JN{constructor(e,r){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=r}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,r,n){(this.startTime===null||this.startTime>e)&&(this.startTime=e),this.endTime=r,this.screen=n,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}class rMt{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Ble(),this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(ke.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(ke.FRAG_LOADING,this.onFragLoading,this),e.on(ke.FRAG_LOADED,this.onFragLoaded,this),e.on(ke.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(ke.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(ke.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(ke.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(ke.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){const{hls:e}=this;e.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(ke.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(ke.FRAG_LOADING,this.onFragLoading,this),e.off(ke.FRAG_LOADED,this.onFragLoaded,this),e.off(ke.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(ke.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(ke.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(ke.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){const e=new JN(this,"textTrack1"),r=new JN(this,"textTrack2"),n=new JN(this,"textTrack3"),i=new JN(this,"textTrack4");this.cea608Parser1=new Lle(1,e,r),this.cea608Parser2=new Lle(3,n,i)}addCues(e,r,n,i,a){let c=!1;for(let s=a.length;s--;){const f=a[s],m=nMt(f[0],f[1],r,n);if(m>=0&&(f[0]=Math.min(f[0],r),f[1]=Math.max(f[1],n),c=!0,m/(n-r)>.5))return}if(c||a.push([r,n]),this.config.renderTextTracksNatively){const s=this.captionsTracks[e];this.Cues.newCue(s,r,n,i)}else{const s=this.Cues.newCue(null,r,n,i);this.hls.trigger(ke.CUES_PARSED,{type:"captions",cues:s,track:e})}}onInitPtsFound(e,{frag:r,id:n,initPTS:i,timescale:a,trackId:c}){const{unparsedVttFrags:s}=this;n===_n.MAIN&&(this.initPTS[r.cc]={baseTime:i,timescale:a,trackId:c}),s.length&&(this.unparsedVttFrags=[],s.forEach(f=>{this.initPTS[f.frag.cc]?this.onFragLoaded(ke.FRAG_LOADED,f):this.hls.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:f.frag,error:new Error("Subtitle discontinuity domain does not match main")})}))}getExistingTrack(e,r){const{media:n}=this;if(n)for(let i=0;i{_w(i[a]),delete i[a]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Ble(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){const{media:e}=this;if(!e)return;const r=e.textTracks;if(r)for(let n=0;na.textCodec===d$);if(this.config.enableWebVTT||i&&this.config.enableIMSC1){if(x2e(this.tracks,n)){this.tracks=n;return}if(this.textTracks=[],this.tracks=n,this.config.renderTextTracksNatively){const c=this.media,s=c?YR(c.textTracks):null;if(this.tracks.forEach((f,m)=>{let x;if(s){let _=null;for(let T=0;Tm!==null).map(m=>m.label);f.length&&this.hls.logger.warn(`Media element contains unused subtitle tracks: ${f.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){const c=this.tracks.map(s=>({label:s.name,kind:s.type.toLowerCase(),default:s.default,subtitleTrack:s}));this.hls.trigger(ke.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:c})}}}onManifestLoaded(e,r){this.config.enableCEA708Captions&&r.captions&&r.captions.forEach(n=>{const i=/(?:CC|SERVICE)([1-4])/.exec(n.instreamId);if(!i)return;const a=`textTrack${i[1]}`,c=this.captionsProperties[a];c&&(c.label=n.name,n.lang&&(c.languageCode=n.lang),c.media=n)})}closedCaptionsForLevel(e){const r=this.hls.levels[e.level];return r==null?void 0:r.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,r){if(this.enabled&&r.frag.type===_n.MAIN){var n,i;const{cea608Parser1:a,cea608Parser2:c,lastSn:s}=this,{cc:f,sn:m}=r.frag,x=(n=(i=r.part)==null?void 0:i.index)!=null?n:-1;a&&c&&(m!==s+1||m===s&&x!==this.lastPartIndex+1||f!==this.lastCc)&&(a.reset(),c.reset()),this.lastCc=f,this.lastSn=m,this.lastPartIndex=x}}onFragLoaded(e,r){const{frag:n,payload:i}=r;if(n.type===_n.SUBTITLE)if(i.byteLength){const a=n.decryptdata,c="stats"in r;if(a==null||!a.encrypted||c){const s=this.tracks[n.level],f=this.vttCCs;f[n.cc]||(f[n.cc]={start:n.start,prevCC:this.prevCC,new:!0},this.prevCC=n.cc),s&&s.textCodec===d$?this._parseIMSC1(n,i):this._parseVTTs(r)}}else this.hls.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,r){const n=this.hls;Dle(r,this.initPTS[e.cc],i=>{this._appendCues(i,e.level),n.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},i=>{n.logger.log(`Failed to parse IMSC1: ${i}`),n.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:i})})}_parseVTTs(e){var r;const{frag:n,payload:i}=e,{initPTS:a,unparsedVttFrags:c}=this,s=a.length-1;if(!a[n.cc]&&s===-1){c.push(e);return}const f=this.hls,m=(r=n.initSegment)!=null&&r.data?eh(n.initSegment.data,new Uint8Array(i)).buffer:i;ZDt(m,this.initPTS[n.cc],this.vttCCs,n.cc,n.start,x=>{this._appendCues(x,n.level),f.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:n})},x=>{const _=x.message==="Missing initPTS for VTT MPEGTS";_?c.push(e):this._fallbackToIMSC1(n,i),f.logger.log(`Failed to parse VTT cue: ${x}`),!(_&&s>n.cc)&&f.trigger(ke.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:x})})}_fallbackToIMSC1(e,r){const n=this.tracks[e.level];n.textCodec||Dle(r,this.initPTS[e.cc],()=>{n.textCodec=d$,this._parseIMSC1(e,r)},()=>{n.textCodec="wvtt"})}_appendCues(e,r){const n=this.hls;if(this.config.renderTextTracksNatively){const i=this.textTracks[r];if(!i||i.mode==="disabled")return;e.forEach(a=>N2e(i,a))}else{const i=this.tracks[r];if(!i)return;const a=i.default?"default":"subtitles"+r;n.trigger(ke.CUES_PARSED,{type:"subtitles",cues:e,track:a})}}onFragDecrypted(e,r){const{frag:n}=r;n.type===_n.SUBTITLE&&this.onFragLoaded(ke.FRAG_LOADED,r)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,r){if(!this.enabled||!this.config.enableCEA708Captions)return;const{frag:n,samples:i}=r;if(!(n.type===_n.MAIN&&this.closedCaptionsForLevel(n)==="NONE"))for(let a=0;aQ8(s[f],r,n))}if(this.config.renderTextTracksNatively&&r===0&&i!==void 0){const{textTracks:s}=this;Object.keys(s).forEach(f=>Q8(s[f],r,i))}}}extractCea608Data(e){const r=[[],[]],n=e[0]&31;let i=2;for(let a=0;a=16?f--:f++;const E=F2e(m.trim()),C=PW(e,r,E);t!=null&&(_=t.cues)!=null&&_.getCueById(C)||(c=new x(e,r,E),c.id=C,c.line=T+1,c.align="left",c.position=10+Math.min(80,Math.floor(f*8/32)*10),i.push(c))}return t&&i.length&&(i.sort((T,E)=>T.line==="auto"||E.line==="auto"?0:T.line>8&&E.line>8?E.line-T.line:T.line-E.line),i.forEach(T=>N2e(t,T))),i}};function aMt(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return!1}const oMt=/(\d+)-(\d+)\/(\d+)/;class zle{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||dMt,this.controller=new self.AbortController,this.stats=new cW}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,r,n){const i=this.stats;if(i.loading.start)throw new Error("Loader can only be used once.");i.loading.start=self.performance.now();const a=lMt(e,this.controller.signal),c=e.responseType==="arraybuffer",s=c?"byteLength":"length",{maxTimeToFirstByteMs:f,maxLoadTimeMs:m}=r.loadPolicy;this.context=e,this.config=r,this.callbacks=n,this.request=this.fetchSetup(e,a),self.clearTimeout(this.requestTimeout),r.timeout=f&&dn(f)?f:m,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(i,e,this.response))},r.timeout),(aC(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then(_=>{var T;this.response=this.loader=_;const E=Math.max(self.performance.now(),i.loading.start);if(self.clearTimeout(this.requestTimeout),r.timeout=m,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(i,e,this.response))},m-(E-i.loading.start)),!_.ok){const{status:N,statusText:L}=_;throw new hMt(L||"fetch, bad network response",N,_)}i.loading.first=E,i.total=uMt(_.headers)||i.total;const C=(T=this.callbacks)==null?void 0:T.onProgress;return C&&dn(r.highWaterMark)?this.loadProgressively(_,i,e,r.highWaterMark,C):c?_.arrayBuffer():e.responseType==="json"?_.json():_.text()}).then(_=>{var T,E;const C=this.response;if(!C)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),i.loading.end=Math.max(self.performance.now(),i.loading.first);const N=_[s];N&&(i.loaded=i.total=N);const L={url:C.url,data:_,code:C.status},M=(T=this.callbacks)==null?void 0:T.onProgress;M&&!dn(r.highWaterMark)&&M(i,e,_,C),(E=this.callbacks)==null||E.onSuccess(L,i,e,C)}).catch(_=>{var T;if(self.clearTimeout(this.requestTimeout),i.aborted)return;const E=_&&_.code||0,C=_?_.message:null;(T=this.callbacks)==null||T.onError({code:E,text:C},e,_?_.details:null,i)})}getCacheAge(){let e=null;if(this.response){const r=this.response.headers.get("age");e=r?parseFloat(r):null}return e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(e,r,n,i=0,a){const c=new QEe,s=e.body.getReader(),f=()=>s.read().then(m=>{if(m.done)return c.dataLength&&a(r,n,c.flush().buffer,e),Promise.resolve(new ArrayBuffer(0));const x=m.value,_=x.length;return r.loaded+=_,_=i&&a(r,n,c.flush().buffer,e)):a(r,n,x.buffer,e),f()}).catch(()=>Promise.reject());return f()}}function lMt(t,e){const r={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(Xs({},t.headers))};return t.rangeEnd&&r.headers.set("Range","bytes="+t.rangeStart+"-"+String(t.rangeEnd-1)),r}function cMt(t){const e=oMt.exec(t);if(e)return parseInt(e[2])-parseInt(e[1])+1}function uMt(t){const e=t.get("Content-Range");if(e){const n=cMt(e);if(dn(n))return n}const r=t.get("Content-Length");if(r)return parseInt(r)}function dMt(t,e){return new self.Request(t.url,e)}class hMt extends Error{constructor(e,r,n){super(e),this.code=void 0,this.details=void 0,this.code=r,this.details=n}}const fMt=/^age:\s*[\d.]+\s*$/im;class V2e{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new cW,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){const e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,e.readyState!==4&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,r,n){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=r,this.callbacks=n,this.loadInternal()}loadInternal(){const{config:e,context:r}=this;if(!e||!r)return;const n=this.loader=new self.XMLHttpRequest,i=this.stats;i.loading.first=0,i.loaded=0,i.aborted=!1;const a=this.xhrSetup;a?Promise.resolve().then(()=>{if(!(this.loader!==n||this.stats.aborted))return a(n,r.url)}).catch(c=>{if(!(this.loader!==n||this.stats.aborted))return n.open("GET",r.url,!0),a(n,r.url)}).then(()=>{this.loader!==n||this.stats.aborted||this.openAndSendXhr(n,r,e)}).catch(c=>{var s;(s=this.callbacks)==null||s.onError({code:n.status,text:c.message},r,n,i)}):this.openAndSendXhr(n,r,e)}openAndSendXhr(e,r,n){e.readyState||e.open("GET",r.url,!0);const i=r.headers,{maxTimeToFirstByteMs:a,maxLoadTimeMs:c}=n.loadPolicy;if(i)for(const s in i)e.setRequestHeader(s,i[s]);r.rangeEnd&&e.setRequestHeader("Range","bytes="+r.rangeStart+"-"+(r.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=r.responseType,self.clearTimeout(this.requestTimeout),n.timeout=a&&dn(a)?a:c,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.timeout),e.send()}readystatechange(){const{context:e,loader:r,stats:n}=this;if(!e||!r)return;const i=r.readyState,a=this.config;if(!n.aborted&&i>=2&&(n.loading.first===0&&(n.loading.first=Math.max(self.performance.now(),n.loading.start),a.timeout!==a.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),a.timeout=a.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),a.loadPolicy.maxLoadTimeMs-(n.loading.first-n.loading.start)))),i===4)){self.clearTimeout(this.requestTimeout),r.onreadystatechange=null,r.onprogress=null;const m=r.status,x=r.responseType==="text"?r.responseText:null;if(m>=200&&m<300){const C=x??r.response;if(C!=null){var c,s;n.loading.end=Math.max(self.performance.now(),n.loading.first);const N=r.responseType==="arraybuffer"?C.byteLength:C.length;n.loaded=n.total=N,n.bwEstimate=n.total*8e3/(n.loading.end-n.loading.first);const L=(c=this.callbacks)==null?void 0:c.onProgress;L&&L(n,e,C,r);const M={url:r.responseURL,data:C,code:m};(s=this.callbacks)==null||s.onSuccess(M,n,e,r);return}}const _=a.loadPolicy.errorRetry,T=n.retry,E={url:e.url,data:void 0,code:m};if(_M(_,T,!1,E))this.retry(_);else{var f;Us.error(`${m} while loading ${e.url}`),(f=this.callbacks)==null||f.onError({code:m,text:r.statusText},e,r,n)}}}loadtimeout(){if(!this.config)return;const e=this.config.loadPolicy.timeoutRetry,r=this.stats.retry;if(_M(e,r,!0))this.retry(e);else{var n;Us.warn(`timeout while loading ${(n=this.context)==null?void 0:n.url}`);const i=this.callbacks;i&&(this.abortInternal(),i.onTimeout(this.stats,this.context,this.loader))}}retry(e){const{context:r,stats:n}=this;this.retryDelay=fW(e,n.retry),n.retry++,Us.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${r==null?void 0:r.url}, retrying ${n.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){const r=this.stats;r.loaded=e.loaded,e.lengthComputable&&(r.total=e.total)}getCacheAge(){let e=null;if(this.loader&&fMt.test(this.loader.getAllResponseHeaders())){const r=this.loader.getResponseHeader("age");e=r?parseFloat(r):null}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}}const pMt={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},mMt=zs(zs({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:60*1e3*1e3,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:!1,loader:V2e,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:kNt,bufferController:yLt,capLevelController:kW,errorController:NNt,fpsController:xDt,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:$Ee,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:pMt},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},gMt()),{},{subtitleStreamController:jDt,subtitleTrackController:bDt,timelineController:rMt,audioStreamController:fLt,audioTrackController:pLt,emeController:zw,cmcdController:pDt,contentSteeringController:gDt,interstitialsController:IDt});function gMt(){return{cueHandler:sMt,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function yMt(t,e,r){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(e.liveMaxLatencyDurationCount!==void 0&&(e.liveSyncDurationCount===void 0||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(e.liveMaxLatencyDuration!==void 0&&(e.liveSyncDuration===void 0||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');const n=eq(t),i=["manifest","level","frag"],a=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return i.forEach(c=>{const s=`${c==="level"?"playlist":c}LoadPolicy`,f=e[s]===void 0,m=[];a.forEach(x=>{const _=`${c}Loading${x}`,T=e[_];if(T!==void 0&&f){m.push(_);const E=n[s].default;switch(e[s]={default:E},x){case"TimeOut":E.maxLoadTimeMs=T,E.maxTimeToFirstByteMs=T;break;case"MaxRetry":E.errorRetry.maxNumRetry=T,E.timeoutRetry.maxNumRetry=T;break;case"RetryDelay":E.errorRetry.retryDelayMs=T,E.timeoutRetry.retryDelayMs=T;break;case"MaxRetryTimeout":E.errorRetry.maxRetryDelayMs=T,E.timeoutRetry.maxRetryDelayMs=T;break}}}),m.length&&r.warn(`hls.js config: "${m.join('", "')}" setting(s) are deprecated, use "${s}": ${ia(e[s])}`)}),zs(zs({},n),e)}function eq(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(eq):Object.keys(t).reduce((e,r)=>(e[r]=eq(t[r]),e),{}):t}function xMt(t,e){const r=t.loader;r!==zle&&r!==V2e?(e.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1):aMt()&&(t.loader=zle,t.progressive=!0,t.enableSoftwareAES=!0,e.log("[config]: Progressive streaming enabled, using FetchLoader"))}const ZR=2,_Mt=.1,vMt=.05,bMt=100;class wMt extends MEe{constructor(e,r){super("gap-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var n;(n=this.media)!=null&&n.seeking||(this.waiting=self.performance.now(),this.tick())},this.onMediaEnded=()=>{if(this.hls){var n;this.ended=((n=this.media)==null?void 0:n.currentTime)||1,this.hls.trigger(ke.MEDIA_ENDED,{stalled:!1})}},this.hls=e,this.fragmentTracker=r,this.registerListeners()}registerListeners(){const{hls:e}=this;e&&(e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.BUFFER_APPENDED,this.onBufferAppended,this))}unregisterListeners(){const{hls:e}=this;e&&(e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.BUFFER_APPENDED,this.onBufferAppended,this))}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(e,r){this.setInterval(bMt),this.mediaSource=r.mediaSource;const n=this.media=r.media;Kc(n,"playing",this.onMediaPlaying),Kc(n,"waiting",this.onMediaWaiting),Kc(n,"ended",this.onMediaEnded)}onMediaDetaching(e,r){this.clearInterval();const{media:n}=this;n&&(wu(n,"playing",this.onMediaPlaying),wu(n,"waiting",this.onMediaWaiting),wu(n,"ended",this.onMediaEnded),this.media=null),this.mediaSource=void 0}onBufferAppended(e,r){this.buffered=r.timeRanges}get hasBuffered(){return Object.keys(this.buffered).length>0}tick(){var e;if(!((e=this.media)!=null&&e.readyState)||!this.hasBuffered)return;const r=this.media.currentTime;this.poll(r,this.lastCurrentTime),this.lastCurrentTime=r}poll(e,r){var n,i;const a=(n=this.hls)==null?void 0:n.config;if(!a)return;const c=this.media;if(!c)return;const{seeking:s}=c,f=this.seeking&&!s,m=!this.seeking&&s,x=c.paused&&!s||c.ended||c.playbackRate===0;if(this.seeking=s,e!==r){r&&(this.ended=0),this.moved=!0,s||(this.nudgeRetry=0,a.nudgeOnVideoHole&&!x&&e>r&&this.nudgeOnVideoHole(e,r)),this.waiting===0&&this.stallResolved(e);return}if(m||f){f&&this.stallResolved(e);return}if(x){this.nudgeRetry=0,this.stallResolved(e),!this.ended&&c.ended&&this.hls&&(this.ended=e||1,this.hls.trigger(ke.MEDIA_ENDED,{stalled:!1}));return}if(!yi.getBuffered(c).length){this.nudgeRetry=0;return}const _=yi.bufferInfo(c,e,0),T=_.nextStart||0,E=this.fragmentTracker;if(s&&E&&this.hls){const W=$le(this.hls.inFlightFragments,e),Z=_.len>ZR,Q=!T||W||T-e>ZR&&!E.getPartialFragment(e);if(Z||Q)return;this.moved=!1}const C=(i=this.hls)==null?void 0:i.latestLevelDetails;if(!this.moved&&this.stalled!==null&&E){if(!(_.len>0)&&!T)return;const Z=Math.max(T,_.start||0)-e,se=!!(C!=null&&C.live)?C.targetduration*2:ZR,ie=eR(e,E);if(Z>0&&(Z<=se||ie)){c.paused||this._trySkipBufferHole(ie);return}}const N=a.detectStallWithCurrentTimeMs,L=self.performance.now(),M=this.waiting;let D=this.stalled;if(D===null)if(M>0&&L-M=N||M)&&this.hls){var V;if(((V=this.mediaSource)==null?void 0:V.readyState)==="ended"&&!(C!=null&&C.live)&&Math.abs(e-((C==null?void 0:C.edge)||0))<1){if(this.ended)return;this.ended=e||1,this.hls.trigger(ke.MEDIA_ENDED,{stalled:!0});return}if(this._reportStall(_),!this.media||!this.hls)return}const G=yi.bufferInfo(c,e,a.maxBufferHole);this._tryFixBufferStall(G,B,e)}stallResolved(e){const r=this.stalled;if(r&&this.hls&&(this.stalled=null,this.stallReported)){const n=self.performance.now()-r;this.log(`playback not stuck anymore @${e}, after ${Math.round(n)}ms`),this.stallReported=!1,this.waiting=0,this.hls.trigger(ke.STALL_RESOLVED,{})}}nudgeOnVideoHole(e,r){var n;const i=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&(n=this.buffered.audio)!=null&&n.length&&i&&i.length>1&&e>i.end(0)){const a=yi.bufferedInfo(yi.timeRangesToArray(this.buffered.audio),e,0);if(a.len>1&&r>=a.start){const c=yi.timeRangesToArray(i),s=yi.bufferedInfo(c,r,0).bufferedIndex;if(s>-1&&ss)&&x-m<1&&e-m<2){const _=new Error(`nudging playhead to flush pipeline after video hole. currentTime: ${e} hole: ${m} -> ${x} buffered index: ${f}`);this.warn(_.message),this.media.currentTime+=1e-6;let T=eR(e,this.fragmentTracker);T&&"fragment"in T?T=T.fragment:T||(T=void 0);const E=yi.bufferInfo(this.media,e,0);this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:_,reason:_.message,frag:T,buffer:E.len,bufferInfo:E})}}}}}_tryFixBufferStall(e,r,n){var i,a;const{fragmentTracker:c,media:s}=this,f=(i=this.hls)==null?void 0:i.config;if(!s||!c||!f)return;const m=(a=this.hls)==null?void 0:a.latestLevelDetails,x=eR(n,c);if((x||m!=null&&m.live&&n1&&e.len>f.maxBufferHole||e.nextStart&&(e.nextStart-nf.highBufferWatchdogPeriod*1e3||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(e))}adjacentTraversal(e,r){const n=this.fragmentTracker,i=e.nextStart;if(n&&i){const a=n.getFragAtPos(r,_n.MAIN),c=n.getFragAtPos(i,_n.MAIN);if(a&&c)return c.sn-a.sn<2}return!1}_reportStall(e){const{hls:r,media:n,stallReported:i,stalled:a}=this;if(!i&&a!==null&&n&&r){this.stallReported=!0;const c=new Error(`Playback stalling at @${n.currentTime} due to low buffer (${ia(e)})`);this.warn(c.message),r.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.BUFFER_STALLED_ERROR,fatal:!1,error:c,buffer:e.len,bufferInfo:e,stalled:{start:a}})}}_trySkipBufferHole(e){var r;const{fragmentTracker:n,media:i}=this,a=(r=this.hls)==null?void 0:r.config;if(!i||!n||!a)return 0;const c=i.currentTime,s=yi.bufferInfo(i,c,0),f=c0&&s.len<1&&i.readyState<3,T=f-c;if(T>0&&(x||_)){if(T>a.maxBufferHole){let C=!1;if(c===0){const N=n.getAppendedFrag(0,_n.MAIN);N&&f"u"))return self.VTTCue||self.TextTrackCue}function m$(t,e,r,n,i){let a=new t(e,r,"");try{a.value=n,i&&(a.type=i)}catch{a=new t(e,r,ia(i?zs({type:i},n):n))}return a}const tR=(()=>{const t=tq();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch{return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();class TMt{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.assetCue=void 0,this.onEventCueEnter=()=>{this.hls&&this.hls.trigger(ke.EVENT_CUE_ENTER,{})},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){const{hls:e}=this;e&&(e.on(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(ke.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}_unregisterListeners(){const{hls:e}=this;e&&(e.off(ke.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(ke.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(ke.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}onMediaAttaching(e,r){var n;this.media=r.media,((n=r.overrides)==null?void 0:n.cueRemoval)===!1&&(this.removeCues=!1)}onMediaAttached(){var e;const r=(e=this.hls)==null?void 0:e.latestLevelDetails;r&&this.updateDateRangeCues(r)}onMediaDetaching(e,r){this.media=null,!r.transferMedia&&(this.id3Track&&(this.removeCues&&_w(this.id3Track,this.onEventCueEnter),this.id3Track=null),this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(e){const r=this.getID3Track(e.textTracks);return r.mode="hidden",r}getID3Track(e){if(this.media){for(let r=0;rtR&&(_=tR),_-x<=0&&(_=x+SMt);for(let E=0;Ex.type===Yu.audioId3&&f:i==="video"?m=x=>x.type===Yu.emsg&&s:m=x=>x.type===Yu.audioId3&&f||x.type===Yu.emsg&&s,Q8(a,r,n,m)}}onLevelUpdated(e,{details:r}){this.updateDateRangeCues(r,!0)}onLevelPtsUpdated(e,r){Math.abs(r.drift)>.01&&this.updateDateRangeCues(r.details)}updateDateRangeCues(e,r){if(!this.hls||!this.media)return;const{assetPlayerId:n,timelineOffset:i,enableDateRangeMetadataCues:a,interstitialsController:c}=this.hls.config;if(!a)return;const s=tq();if(n&&i&&!c){const{fragmentStart:N,fragmentEnd:L}=e;let M=this.assetCue;M?(M.startTime=N,M.endTime=L):s&&(M=this.assetCue=m$(s,N,L,{assetPlayerId:this.hls.config.assetPlayerId},"hlsjs.interstitial.asset"),M&&(M.id=n,this.id3Track||(this.id3Track=this.createTrack(this.media)),this.id3Track.addCue(M),M.addEventListener("enter",this.onEventCueEnter)))}if(!e.hasProgramDateTime)return;const{id3Track:f}=this,{dateRanges:m}=e,x=Object.keys(m);let _=this.dateRangeCuesAppended;if(f&&r){var T;if((T=f.cues)!=null&&T.length){const N=Object.keys(_).filter(L=>!x.includes(L));for(let L=N.length;L--;){var E;const M=N[L],D=(E=_[M])==null?void 0:E.cues;delete _[M],D&&Object.keys(D).forEach(B=>{const V=D[B];if(V){V.removeEventListener("enter",this.onEventCueEnter);try{f.removeCue(V)}catch{}}})}}else _=this.dateRangeCuesAppended={}}const C=e.fragments[e.fragments.length-1];if(!(x.length===0||!dn(C==null?void 0:C.programDateTime))){this.id3Track||(this.id3Track=this.createTrack(this.media));for(let N=0;N{if(be!==M.id){const Te=m[be];if(Te.class===M.class&&Te.startDate>M.startDate&&(!ue||M.startDate.01&&(be.startTime=D,be.endTime=W);else if(s){let Te=M.attr[ue];HNt(ue)&&(Te=gEe(Te));const Oe=m$(s,D,W,{key:ue,data:Te},Yu.dateRange);Oe&&(Oe.id=L,this.id3Track.addCue(Oe),V[ue]=Oe,c&&(ue==="X-ASSET-LIST"||ue==="X-ASSET-URL")&&Oe.addEventListener("enter",this.onEventCueEnter))}}_[L]={cues:V,dateRange:M,durationKnown:G}}}}}class EMt{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=()=>{const{media:r}=this,n=this.levelDetails;if(!r||!n)return;this.currentTime=r.currentTime;const i=this.computeLatency();if(i===null)return;this._latency=i;const{lowLatencyMode:a,maxLiveSyncPlaybackRate:c}=this.config;if(!a||c===1||!n.live)return;const s=this.targetLatency;if(s===null)return;const f=i-s,m=Math.min(this.maxLatency,s+n.targetduration);if(f.05&&this.forwardBufferLength>1){const _=Math.min(2,Math.max(1,c)),T=Math.round(2/(1+Math.exp(-.75*f-this.edgeStalled))*20)/20,E=Math.min(_,Math.max(1,T));this.changeMediaPlaybackRate(r,E)}else r.playbackRate!==1&&r.playbackRate!==0&&this.changeMediaPlaybackRate(r,1)},this.hls=e,this.config=e.config,this.registerListeners()}get levelDetails(){var e;return((e=this.hls)==null?void 0:e.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){const{config:e}=this;if(e.liveMaxLatencyDuration!==void 0)return e.liveMaxLatencyDuration;const r=this.levelDetails;return r?e.liveMaxLatencyDurationCount*r.targetduration:0}get targetLatency(){const e=this.levelDetails;if(e===null||this.hls===null)return null;const{holdBack:r,partHoldBack:n,targetduration:i}=e,{liveSyncDuration:a,liveSyncDurationCount:c,lowLatencyMode:s}=this.config,f=this.hls.userConfig;let m=s&&n||r;(this._targetLatencyUpdated||f.liveSyncDuration||f.liveSyncDurationCount||m===0)&&(m=a!==void 0?a:c*i);const x=i;return m+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,x)}set targetLatency(e){this.stallCount=0,this.config.liveSyncDuration=e,this._targetLatencyUpdated=!0}get liveSyncPosition(){const e=this.estimateLiveEdge(),r=this.targetLatency;if(e===null||r===null)return null;const n=this.levelDetails;if(n===null)return null;const i=n.edge,a=e-r-this.edgeStalled,c=i-n.totalduration,s=i-(this.config.lowLatencyMode&&n.partTarget||n.targetduration);return Math.min(Math.max(c,a),s)}get drift(){const e=this.levelDetails;return e===null?1:e.drift}get edgeStalled(){const e=this.levelDetails;if(e===null)return 0;const r=(this.config.lowLatencyMode&&e.partTarget||e.targetduration)*3;return Math.max(e.age-r,0)}get forwardBufferLength(){const{media:e}=this,r=this.levelDetails;if(!e||!r)return 0;const n=e.buffered.length;return(n?e.buffered.end(n-1):r.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.hls=null}registerListeners(){const{hls:e}=this;e&&(e.on(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(ke.ERROR,this.onError,this))}unregisterListeners(){const{hls:e}=this;e&&(e.off(ke.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(ke.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(ke.ERROR,this.onError,this))}onMediaAttached(e,r){this.media=r.media,this.media.addEventListener("timeupdate",this.onTimeupdate)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null)}onManifestLoading(){this._latency=null,this.stallCount=0}onLevelUpdated(e,{details:r}){r.advanced&&this.onTimeupdate(),!r.live&&this.media&&this.media.removeEventListener("timeupdate",this.onTimeupdate)}onError(e,r){var n;r.details===Zt.BUFFER_STALLED_ERROR&&(this.stallCount++,this.hls&&(n=this.levelDetails)!=null&&n.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"))}changeMediaPlaybackRate(e,r){var n,i;e.playbackRate!==r&&((n=this.hls)==null||n.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(i=this.targetLatency)==null?void 0:i.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${e.playbackRate} to ${r}`),e.playbackRate=r)}estimateLiveEdge(){const e=this.levelDetails;return e===null?null:e.edge+e.age}computeLatency(){const e=this.estimateLiveEdge();return e===null?null:e-this.currentTime}}class AMt extends AW{constructor(e,r){super(e,"level-controller"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=r,this._registerListeners()}_registerListeners(){const{hls:e}=this;e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.on(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(ke.FRAG_BUFFERED,this.onFragBuffered,this),e.on(ke.ERROR,this.onError,this)}_unregisterListeners(){const{hls:e}=this;e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.off(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(ke.FRAG_BUFFERED,this.onFragBuffered,this),e.off(ke.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach(r=>{r.loadError=0,r.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(e,r){this.resetLevels()}onManifestLoaded(e,r){const n=this.hls.config.preferManagedMediaSource,i=[],a={},c={};let s=!1,f=!1,m=!1;r.levels.forEach(x=>{const _=x.attrs;let{audioCodec:T,videoCodec:E}=x;T&&(x.audioCodec=T=mM(T,n)||void 0),E&&(E=x.videoCodec=lNt(E));const{width:C,height:N,unknownCodecs:L}=x,M=(L==null?void 0:L.length)||0;if(s||(s=!!(C&&N)),f||(f=!!E),m||(m=!!T),M||T&&!this.isAudioSupported(T)||E&&!this.isVideoSupported(E)){this.log(`Some or all CODECS not supported "${_.CODECS}"`);return}const{CODECS:D,"FRAME-RATE":B,"HDCP-LEVEL":V,"PATHWAY-ID":G,RESOLUTION:W,"VIDEO-RANGE":Z}=_,se=`${`${G||"."}-`}${x.bitrate}-${W}-${B}-${D}-${Z}-${V}`;if(a[se])if(a[se].uri!==x.url&&!x.attrs["PATHWAY-ID"]){const ie=c[se]+=1;x.attrs["PATHWAY-ID"]=new Array(ie+1).join(".");const ue=this.createLevel(x);a[se]=ue,i.push(ue)}else a[se].addGroupId("audio",_.AUDIO),a[se].addGroupId("text",_.SUBTITLES);else{const ie=this.createLevel(x);a[se]=ie,c[se]=1,i.push(ie)}}),this.filterAndSortMediaOptions(i,r,s,f,m)}createLevel(e){const r=new nC(e),n=e.supplemental;if(n!=null&&n.videoCodec&&!this.isVideoSupported(n.videoCodec)){const i=new Error(`SUPPLEMENTAL-CODECS not supported "${n.videoCodec}"`);this.log(i.message),r.supportedResult=CEe(i,[])}return r}isAudioSupported(e){return tC(e,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(e){return tC(e,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(e,r,n,i,a){var c;let s=[],f=[],m=e;const x=((c=r.stats)==null?void 0:c.parsing)||{};if((n||i)&&a&&(m=m.filter(({videoCodec:D,videoRange:B,width:V,height:G})=>(!!D||!!(V&&G))&&xNt(B))),m.length===0){Promise.resolve().then(()=>{if(this.hls){let D="no level with compatible codecs found in manifest",B=D;r.levels.length&&(B=`one or more CODECS in variant not supported: ${ia(r.levels.map(G=>G.attrs.CODECS).filter((G,W,Z)=>Z.indexOf(G)===W))}`,this.warn(B),D+=` (${B})`);const V=new Error(D);this.hls.trigger(ke.ERROR,{type:jn.MEDIA_ERROR,details:Zt.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:r.url,error:V,reason:B})}}),x.end=performance.now();return}r.audioTracks&&(s=r.audioTracks.filter(D=>!D.audioCodec||this.isAudioSupported(D.audioCodec)),Vle(s)),r.subtitles&&(f=r.subtitles,Vle(f));const _=m.slice(0);m.sort((D,B)=>{if(D.attrs["HDCP-LEVEL"]!==B.attrs["HDCP-LEVEL"])return(D.attrs["HDCP-LEVEL"]||"")>(B.attrs["HDCP-LEVEL"]||"")?1:-1;if(n&&D.height!==B.height)return D.height-B.height;if(D.frameRate!==B.frameRate)return D.frameRate-B.frameRate;if(D.videoRange!==B.videoRange)return gM.indexOf(D.videoRange)-gM.indexOf(B.videoRange);if(D.videoCodec!==B.videoCodec){const V=Loe(D.videoCodec),G=Loe(B.videoCodec);if(V!==G)return G-V}if(D.uri===B.uri&&D.codecSet!==B.codecSet){const V=pM(D.codecSet),G=pM(B.codecSet);if(V!==G)return G-V}return D.averageBitrate!==B.averageBitrate?D.averageBitrate-B.averageBitrate:0});let T=_[0];if(this.steering&&(m=this.steering.filterParsedLevels(m),m.length!==_.length)){for(let D=0;D<_.length;D++)if(_[D].pathwayId===m[0].pathwayId){T=_[D];break}}this._levels=m;for(let D=0;DV&&V===this.hls.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=G)}break}const C=a&&!i,N=this.hls.config,L=!!(N.audioStreamController&&N.audioTrackController),M={levels:m,audioTracks:s,subtitleTracks:f,sessionData:r.sessionData,sessionKeys:r.sessionKeys,firstLevel:this._firstLevel,stats:r.stats,audio:a,video:i,altAudio:L&&!C&&s.some(D=>!!D.url)};x.end=performance.now(),this.hls.trigger(ke.MANIFEST_PARSED,M)}get levels(){return this._levels.length===0?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(e){const r=this._levels;if(r.length===0)return;if(e<0||e>=r.length){const x=new Error("invalid level idx"),_=e<0;if(this.hls.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.LEVEL_SWITCH_ERROR,level:e,fatal:_,error:x,reason:x.message}),_)return;e=Math.min(e,r.length-1)}const n=this.currentLevelIndex,i=this.currentLevel,a=i?i.attrs["PATHWAY-ID"]:void 0,c=r[e],s=c.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=c,n===e&&i&&a===s)return;this.log(`Switching to level ${e} (${c.height?c.height+"p ":""}${c.videoRange?c.videoRange+" ":""}${c.codecSet?c.codecSet+" ":""}@${c.bitrate})${s?" with Pathway "+s:""} from level ${n}${a?" with Pathway "+a:""}`);const f={level:e,attrs:c.attrs,details:c.details,bitrate:c.bitrate,averageBitrate:c.averageBitrate,maxBitrate:c.maxBitrate,realBitrate:c.realBitrate,width:c.width,height:c.height,codecSet:c.codecSet,audioCodec:c.audioCodec,videoCodec:c.videoCodec,audioGroups:c.audioGroups,subtitleGroups:c.subtitleGroups,loaded:c.loaded,loadError:c.loadError,fragmentError:c.fragmentError,name:c.name,id:c.id,uri:c.uri,url:c.url,urlId:0,audioGroupIds:c.audioGroupIds,textGroupIds:c.textGroupIds};this.hls.trigger(ke.LEVEL_SWITCHING,f);const m=c.details;if(!m||m.live){const x=this.switchParams(c.uri,i==null?void 0:i.details,m);this.loadPlaylist(x)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,this._startLevel===void 0&&(this._startLevel=e),e!==-1&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(this._startLevel===void 0){const e=this.hls.config.startLevel;return e!==void 0?e:this.hls.firstAutoLevel}return this._startLevel}set startLevel(e){this._startLevel=e}get pathways(){return this.steering?this.steering.pathways():[]}get pathwayPriority(){return this.steering?this.steering.pathwayPriority:null}set pathwayPriority(e){if(this.steering){const r=this.steering.pathways(),n=e.filter(i=>r.indexOf(i)!==-1);if(e.length<1){this.warn(`pathwayPriority ${e} should contain at least one pathway from list: ${r}`);return}this.steering.pathwayPriority=n}}onError(e,r){r.fatal||!r.context||r.context.type===Gi.LEVEL&&r.context.level===this.level&&this.checkRetry(r)}onFragBuffered(e,{frag:r}){if(r!==void 0&&r.type===_n.MAIN){const n=r.elementaryStreams;if(!Object.keys(n).some(a=>!!n[a]))return;const i=this._levels[r.level];i!=null&&i.loadError&&(this.log(`Resetting level error count of ${i.loadError} on frag buffered`),i.loadError=0)}}onLevelLoaded(e,r){var n;const{level:i,details:a}=r,c=r.levelInfo;if(!c){var s;this.warn(`Invalid level index ${i}`),(s=r.deliveryDirectives)!=null&&s.skip&&(a.deltaUpdateFailed=!0);return}if(c===this.currentLevel||r.withoutMultiVariant){c.fragmentError===0&&(c.loadError=0);let f=c.details;f===r.details&&f.advanced&&(f=void 0),this.playlistLoaded(i,r,f)}else(n=r.deliveryDirectives)!=null&&n.skip&&(a.deltaUpdateFailed=!0)}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel)&&this.scheduleLoading(this.currentLevel,e)}loadingPlaylist(e,r){super.loadingPlaylist(e,r);const n=this.getUrlWithDirectives(e.uri,r),i=this.currentLevelIndex,a=e.attrs["PATHWAY-ID"],c=e.details,s=c==null?void 0:c.age;this.log(`Loading level index ${i}${(r==null?void 0:r.msn)!==void 0?" at sn "+r.msn+" part "+r.part:""}${a?" Pathway "+a:""}${s&&c.live?" age "+s.toFixed(1)+(c.type&&" "+c.type||""):""} ${n}`),this.hls.trigger(ke.LEVEL_LOADING,{url:n,level:i,levelInfo:e,pathwayId:e.attrs["PATHWAY-ID"],id:0,deliveryDirectives:r||null})}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=e)}removeLevel(e){var r;if(this._levels.length===1)return;const n=this._levels.filter((a,c)=>c!==e?!0:(this.steering&&this.steering.removeLevel(a),a===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,a.details&&a.details.fragments.forEach(s=>s.level=-1)),!1));YEe(n),this._levels=n,this.currentLevelIndex>-1&&(r=this.currentLevel)!=null&&r.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.manualLevelIndex>-1&&(this.manualLevelIndex=this.currentLevelIndex);const i=n.length-1;this._firstLevel=Math.min(this._firstLevel,i),this._startLevel&&(this._startLevel=Math.min(this._startLevel,i)),this.hls.trigger(ke.LEVELS_UPDATED,{levels:n})}onLevelsUpdated(e,{levels:r}){this._levels=r}checkMaxAutoUpdated(){const{autoLevelCapping:e,maxAutoLevel:r,maxHdcpLevel:n}=this.hls;this._maxAutoLevel!==r&&(this._maxAutoLevel=r,this.hls.trigger(ke.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:e,levels:this.levels,maxAutoLevel:r,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:n}))}}function Vle(t){const e={};t.forEach(r=>{const n=r.groupId||"";r.id=e[n]=e[n]||0,e[n]++})}function q2e(){return self.SourceBuffer||self.WebKitSourceBuffer}function G2e(){if(!Yy())return!1;const e=q2e();return!e||e.prototype&&typeof e.prototype.appendBuffer=="function"&&typeof e.prototype.remove=="function"}function kMt(){if(!G2e())return!1;const t=Yy();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(e=>t.isTypeSupported(rC(e,"video")))||["mp4a.40.2","fLaC"].some(e=>t.isTypeSupported(rC(e,"audio"))))}function CMt(){var t;const e=q2e();return typeof(e==null||(t=e.prototype)==null?void 0:t.changeType)=="function"}const IMt=100;class jMt extends xW{constructor(e,r,n){super(e,r,n,"stream-controller",_n.MAIN),this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{const i=this.media,a=i?i.currentTime:null;if(a===null||!dn(a)||(this.log(`Media seeked to ${a.toFixed(3)}`),!this.getBufferedFrag(a)))return;const c=this.getFwdBufferInfoAtPos(i,a,_n.MAIN,0);if(c===null||c.len===0){this.warn(`Main forward buffer length at ${a} on "seeked" event ${c?c.len:"empty"})`);return}this.tick()},this.registerListeners()}registerListeners(){super.registerListeners();const{hls:e}=this;e.on(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.on(ke.LEVEL_LOADING,this.onLevelLoading,this),e.on(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.on(ke.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(ke.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(ke.BUFFER_CREATED,this.onBufferCreated,this),e.on(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(ke.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();const{hls:e}=this;e.off(ke.MANIFEST_PARSED,this.onManifestParsed,this),e.off(ke.LEVEL_LOADED,this.onLevelLoaded,this),e.off(ke.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(ke.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(ke.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(ke.BUFFER_CREATED,this.onBufferCreated,this),e.off(ke.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(ke.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(ke.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(e,r){if(this.levels){const{lastCurrentTime:n,hls:i}=this;if(this.stopLoad(),this.setInterval(IMt),this.level=-1,!this.startFragRequested){let a=i.startLevel;a===-1&&(i.config.testBandwidth&&this.levels.length>1?(a=0,this.bitrateTest=!0):a=i.firstAutoLevel),i.nextLoadLevel=a,this.level=i.loadLevel,this._hasEnoughToStart=!!r}n>0&&e===-1&&!r&&(this.log(`Override startPosition with lastCurrentTime @${n.toFixed(3)}`),e=n),this.state=vr.IDLE,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=r?-1:e,this.tick()}else this._forceStartLoad=!0,this.state=vr.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case vr.WAITING_LEVEL:{const{levels:e,level:r}=this,n=e==null?void 0:e[r],i=n==null?void 0:n.details;if(i&&(!i.live||this.levelLastLoaded===n&&!this.waitForLive(n))){if(this.waitForCdnTuneIn(i))break;this.state=vr.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=vr.IDLE;break}break}case vr.FRAG_LOADING_WAITING_RETRY:this.checkRetryDate();break}this.state===vr.IDLE&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){var e;super.onTickEnd(),(e=this.media)!=null&&e.readyState&&this.media.seeking===!1&&(this.lastCurrentTime=this.media.currentTime),this.checkFragmentChanged()}doTickIdle(){const{hls:e,levelLastLoaded:r,levels:n,media:i}=this;if(r===null||!i&&!this.primaryPrefetch&&(this.startFragRequested||!e.config.startFragPrefetch)||this.altAudio&&this.audioOnly)return;const a=this.buffering?e.nextLoadLevel:e.loadLevel;if(!(n!=null&&n[a]))return;const c=n[a],s=this.getMainFwdBufferInfo();if(s===null)return;const f=this.getLevelDetails();if(f&&this._streamEnded(s,f)){const N={};this.altAudio===2&&(N.type="video"),this.hls.trigger(ke.BUFFER_EOS,N),this.state=vr.ENDED;return}if(!this.buffering)return;e.loadLevel!==a&&e.manualLevel===-1&&this.log(`Adapting to level ${a} from level ${this.level}`),this.level=e.nextLoadLevel=a;const m=c.details;if(!m||this.state===vr.WAITING_LEVEL||this.waitForLive(c)){this.level=a,this.state=vr.WAITING_LEVEL,this.startFragRequested=!1;return}const x=s.len,_=this.getMaxBufferLength(c.maxBitrate);if(x>=_)return;this.backtrackFragment&&this.backtrackFragment.start>s.end&&(this.backtrackFragment=null);const T=this.backtrackFragment?this.backtrackFragment.start:s.end;let E=this.getNextFragment(T,m);if(this.couldBacktrack&&!this.fragPrevious&&E&&To(E)&&this.fragmentTracker.getState(E)!==il.OK){var C;const L=((C=this.backtrackFragment)!=null?C:E).sn-m.startSN,M=m.fragments[L-1];M&&E.cc===M.cc&&(E=M,this.fragmentTracker.removeFragment(M))}else this.backtrackFragment&&s.len&&(this.backtrackFragment=null);if(E&&this.isLoopLoading(E,T)){if(!E.gap){const L=this.audioOnly&&!this.altAudio?ta.AUDIO:ta.VIDEO,M=(L===ta.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;M&&this.afterBufferFlushed(M,L,_n.MAIN)}E=this.getNextFragmentLoopLoading(E,m,s,_n.MAIN,_)}E&&(this.exceedsMaxBuffer(s,_,E)||(E.initSegment&&!E.initSegment.data&&!this.bitrateTest&&(E=E.initSegment),this.loadFragment(E,c,T)))}loadFragment(e,r,n){const i=this.fragmentTracker.getState(e);i===il.NOT_LOADED||i===il.PARTIAL?To(e)?this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,r)):super.loadFragment(e,r,n):this._loadInitSegment(e,r):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,_n.MAIN)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){if(this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY),this.altAudio!==0){var e;(((e=this.getLevelDetails())==null?void 0:e.fragmentStart)||0)>this.lastCurrentTime&&super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio")}}nextLevelSwitch(){const{levels:e,media:r}=this;if(r!=null&&r.readyState){let n;const i=this.getAppendedFrag(r.currentTime);i&&i.start>1&&this.flushMainBuffer(0,i.start-1);const a=this.getLevelDetails();if(a!=null&&a.live){const s=this.getMainFwdBufferInfo();if(!s||s.len=c-r.maxFragLookUpTolerance&&a<=s;if(i!==null&&n.duration>i&&(a{this.hls&&this.hls.trigger(ke.AUDIO_TRACK_SWITCHED,r)}),n.trigger(ke.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null});return}n.trigger(ke.AUDIO_TRACK_SWITCHED,r)}}onAudioTrackSwitched(e,r){const n=yM(r.url,this.hls);if(n){const i=this.videoBuffer;i&&this.mediaBuffer!==i&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i)}this.altAudio=n?2:0,this.tick()}onBufferCreated(e,r){const n=r.tracks;let i,a,c=!1;for(const s in n){const f=n[s];if(f.id==="main"){if(a=s,i=f,s==="video"){const m=n[s];m&&(this.videoBuffer=m.buffer)}}else c=!0}c&&i?(this.log(`Alternate track found, use ${a}.buffered to schedule main fragment loading`),this.mediaBuffer=i.buffer):this.mediaBuffer=this.media}onFragBuffered(e,r){const{frag:n,part:i}=r,a=n.type===_n.MAIN;if(a){if(this.fragContextChanged(n)){this.warn(`Fragment ${n.sn}${i?" p: "+i.index:""} of level ${n.level} finished buffering, but was aborted. state: ${this.state}`),this.state===vr.PARSED&&(this.state=vr.IDLE);return}const s=i?i.stats:n.stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),To(n)&&(this.fragPrevious=n),this.fragBufferedComplete(n,i)}const c=this.media;c&&(!this._hasEnoughToStart&&yi.getBuffered(c).length&&(this._hasEnoughToStart=!0,this.seekToStartPos()),a&&this.tick())}get hasEnoughToStart(){return this._hasEnoughToStart}onError(e,r){var n;if(r.fatal){this.state=vr.ERROR;return}switch(r.details){case Zt.FRAG_GAP:case Zt.FRAG_PARSING_ERROR:case Zt.FRAG_DECRYPT_ERROR:case Zt.FRAG_LOAD_ERROR:case Zt.FRAG_LOAD_TIMEOUT:case Zt.KEY_LOAD_ERROR:case Zt.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(_n.MAIN,r);break;case Zt.LEVEL_LOAD_ERROR:case Zt.LEVEL_LOAD_TIMEOUT:case Zt.LEVEL_PARSING_ERROR:!r.levelRetry&&this.state===vr.WAITING_LEVEL&&((n=r.context)==null?void 0:n.type)===Gi.LEVEL&&(this.state=vr.IDLE);break;case Zt.BUFFER_ADD_CODEC_ERROR:case Zt.BUFFER_APPEND_ERROR:if(r.parent!=="main")return;this.reduceLengthAndFlushBuffer(r)&&this.resetLoadingState();break;case Zt.BUFFER_FULL_ERROR:if(r.parent!=="main")return;this.reduceLengthAndFlushBuffer(r)&&(!this.config.interstitialsController&&this.config.assetPlayerId?this._hasEnoughToStart=!0:this.flushMainBuffer(0,Number.POSITIVE_INFINITY));break;case Zt.INTERNAL_EXCEPTION:this.recoverWorkerError(r);break}}onFragLoadEmergencyAborted(){this.state=vr.IDLE,this._hasEnoughToStart||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()}onBufferFlushed(e,{type:r}){if(r!==ta.AUDIO||!this.altAudio){const n=(r===ta.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;n&&(this.afterBufferFlushed(n,r,_n.MAIN),this.tick())}}onLevelsUpdated(e,r){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level,this.level===-1&&this.resetWhenMissingContext(this.fragCurrent)),this.levels=r.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){const{media:e}=this;if(!e)return;const r=e.currentTime;let n=this.startPosition;if(n>=0&&r0&&(f{const{hls:i}=this,a=n==null?void 0:n.frag;if(!a||this.fragContextChanged(a))return;r.fragmentError=0,this.state=vr.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;const c=a.stats;c.parsing.start=c.parsing.end=c.buffering.start=c.buffering.end=self.performance.now(),i.trigger(ke.FRAG_LOADED,n),a.bitrateTest=!1}).catch(n=>{this.state===vr.STOPPED||this.state===vr.ERROR||(this.warn(n),this.resetFragmentLoading(e))})}_handleTransmuxComplete(e){const r=this.playlistType,{hls:n}=this,{remuxResult:i,chunkMeta:a}=e,c=this.getCurrentContext(a);if(!c){this.resetWhenMissingContext(a);return}const{frag:s,part:f,level:m}=c,{video:x,text:_,id3:T,initSegment:E}=i,{details:C}=m,N=this.altAudio?void 0:i.audio;if(this.fragContextChanged(s)){this.fragmentTracker.removeFragment(s);return}if(this.state=vr.PARSING,E){const L=E.tracks;if(L){const V=s.initSegment||s;if(this.unhandledEncryptionError(E,s))return;this._bufferInitSegment(m,L,V,a),n.trigger(ke.FRAG_PARSING_INIT_SEGMENT,{frag:V,id:r,tracks:L})}const M=E.initPTS,D=E.timescale,B=this.initPTS[s.cc];if(dn(M)&&(!B||B.baseTime!==M||B.timescale!==D)){const V=E.trackId;this.initPTS[s.cc]={baseTime:M,timescale:D,trackId:V},n.trigger(ke.INIT_PTS_FOUND,{frag:s,id:r,initPTS:M,timescale:D,trackId:V})}}if(x&&C){N&&x.type==="audiovideo"&&this.logMuxedErr(s);const L=C.fragments[s.sn-1-C.startSN],M=s.sn===C.startSN,D=!L||s.cc>L.cc;if(i.independent!==!1){const{startPTS:B,endPTS:V,startDTS:G,endDTS:W}=x;if(f)f.elementaryStreams[x.type]={startPTS:B,endPTS:V,startDTS:G,endDTS:W};else if(x.firstKeyFrame&&x.independent&&a.id===1&&!D&&(this.couldBacktrack=!0),x.dropped&&x.independent){const Z=this.getMainFwdBufferInfo(),Q=(Z?Z.end:this.getLoadPosition())+this.config.maxBufferHole,se=x.firstKeyFramePTS?x.firstKeyFramePTS:B;if(!M&&QZR&&(s.gap=!0);s.setElementaryStreamInfo(x.type,B,V,G,W),this.backtrackFragment&&(this.backtrackFragment=s),this.bufferFragmentData(x,s,f,a,M||D)}else if(M||D)s.gap=!0;else{this.backtrack(s);return}}if(N){const{startPTS:L,endPTS:M,startDTS:D,endDTS:B}=N;f&&(f.elementaryStreams[ta.AUDIO]={startPTS:L,endPTS:M,startDTS:D,endDTS:B}),s.setElementaryStreamInfo(ta.AUDIO,L,M,D,B),this.bufferFragmentData(N,s,f,a)}if(C&&T!=null&&T.samples.length){const L={id:r,frag:s,details:C,samples:T.samples};n.trigger(ke.FRAG_PARSING_METADATA,L)}if(C&&_){const L={id:r,frag:s,details:C,samples:_.samples};n.trigger(ke.FRAG_PARSING_USERDATA,L)}}logMuxedErr(e){this.warn(`${To(e)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${e.url}`)}_bufferInitSegment(e,r,n,i){if(this.state!==vr.PARSING)return;this.audioOnly=!!r.audio&&!r.video,this.altAudio&&!this.audioOnly&&(delete r.audio,r.audiovideo&&this.logMuxedErr(n));const{audio:a,video:c,audiovideo:s}=r;if(a){const m=e.audioCodec;let x=VR(a.codec,m);x==="mp4a"&&(x="mp4a.40.5");const _=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){x&&(x.indexOf("mp4a.40.5")!==-1?x="mp4a.40.2":x="mp4a.40.5");const T=a.metadata;T&&"channelCount"in T&&(T.channelCount||1)!==1&&_.indexOf("firefox")===-1&&(x="mp4a.40.5")}x&&x.indexOf("mp4a.40.5")!==-1&&_.indexOf("android")!==-1&&a.container!=="audio/mpeg"&&(x="mp4a.40.2",this.log(`Android: force audio codec to ${x}`)),m&&m!==x&&this.log(`Swapping manifest audio codec "${m}" for "${x}"`),a.levelCodec=x,a.id=_n.MAIN,this.log(`Init audio buffer, container:${a.container}, codecs[selected/level/parsed]=[${x||""}/${m||""}/${a.codec}]`),delete r.audiovideo}if(c){c.levelCodec=e.videoCodec,c.id=_n.MAIN;const m=c.codec;if((m==null?void 0:m.length)===4)switch(m){case"hvc1":case"hev1":c.codec="hvc1.1.6.L120.90";break;case"av01":c.codec="av01.0.04M.08";break;case"avc1":c.codec="avc1.42e01e";break}this.log(`Init video buffer, container:${c.container}, codecs[level/parsed]=[${e.videoCodec||""}/${m}]${c.codec!==m?" parsed-corrected="+c.codec:""}${c.supplemental?" supplemental="+c.supplemental:""}`),delete r.audiovideo}s&&(this.log(`Init audiovideo buffer, container:${s.container}, codecs[level/parsed]=[${e.codecs}/${s.codec}]`),delete r.video,delete r.audio);const f=Object.keys(r);if(f.length){if(this.hls.trigger(ke.BUFFER_CODECS,r),!this.hls)return;f.forEach(m=>{const _=r[m].initSegment;_!=null&&_.byteLength&&this.hls.trigger(ke.BUFFER_APPENDING,{type:m,data:_,frag:n,part:null,chunkMeta:i,parent:n.type})})}this.tickImmediate()}getMainFwdBufferInfo(){const e=this.mediaBuffer&&this.altAudio===2?this.mediaBuffer:this.media;return this.getFwdBufferInfo(e,_n.MAIN)}get maxBufferLength(){const{levels:e,level:r}=this,n=e==null?void 0:e[r];return n?this.getMaxBufferLength(n.maxBitrate):this.config.maxBufferLength}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=vr.IDLE}checkFragmentChanged(){const e=this.media;let r=null;if(e&&e.readyState>1&&e.seeking===!1){const n=e.currentTime;if(yi.isBuffered(e,n)?r=this.getAppendedFrag(n):yi.isBuffered(e,n+.1)&&(r=this.getAppendedFrag(n+.1)),r){this.backtrackFragment=null;const i=this.fragPlaying,a=r.level;(!i||r.sn!==i.sn||i.level!==a)&&(this.fragPlaying=r,this.hls.trigger(ke.FRAG_CHANGED,{frag:r}),(!i||i.level!==a)&&this.hls.trigger(ke.LEVEL_SWITCHED,{level:a}))}}}get nextLevel(){const e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){var e;if(this.fragPlaying)return this.fragPlaying;const r=((e=this.media)==null?void 0:e.currentTime)||this.lastCurrentTime;return dn(r)?this.getAppendedFrag(r):null}get currentProgramDateTime(){var e;const r=((e=this.media)==null?void 0:e.currentTime)||this.lastCurrentTime;if(dn(r)){const n=this.getLevelDetails(),i=this.currentFrag||(n?L_(null,n.fragments,r):null);if(i){const a=i.programDateTime;if(a!==null){const c=a+(r-i.start)*1e3;return new Date(c)}}}return null}get currentLevel(){const e=this.currentFrag;return e?e.level:-1}get nextBufferedFrag(){const e=this.currentFrag;return e?this.followingBufferedFrag(e):null}get forceStartLoad(){return this._forceStartLoad}}class PMt extends ah{constructor(e,r){super("key-loader",r),this.config=void 0,this.keyIdToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(const n in this.keyIdToKeyInfo){const i=this.keyIdToKeyInfo[n].loader;if(i){var r;if(e&&e!==((r=i.context)==null?void 0:r.frag.type))return;i.abort()}}}detach(){for(const e in this.keyIdToKeyInfo){const r=this.keyIdToKeyInfo[e];(r.mediaKeySessionContext||r.decryptdata.isCommonEncryption)&&delete this.keyIdToKeyInfo[e]}}destroy(){this.detach();for(const e in this.keyIdToKeyInfo){const r=this.keyIdToKeyInfo[e].loader;r&&r.destroy()}this.keyIdToKeyInfo={}}createKeyLoadError(e,r=Zt.KEY_LOAD_ERROR,n,i,a){return new im({type:jn.NETWORK_ERROR,details:r,fatal:!1,frag:e,response:a,error:n,networkDetails:i})}loadClear(e,r,n){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(r.length)for(let i=0,a=r.length;i{if(!this.emeController)return;c.setKeyFormat(s);const f=GR(s);if(f)return this.emeController.getKeySystemAccess([f])})}if(this.config.requireKeySystemAccessOnStart){const i=K2(this.config);if(i.length)return this.emeController.getKeySystemAccess(i)}}return null}load(e){return!e.decryptdata&&e.encrypted&&this.emeController&&this.config.emeEnabled?this.emeController.selectKeySystemFormat(e).then(r=>this.loadInternal(e,r)):this.loadInternal(e)}loadInternal(e,r){var n,i;r&&e.setKeyFormat(r);const a=e.decryptdata;if(!a){const m=new Error(r?`Expected frag.decryptdata to be defined after setting format ${r}`:`Missing decryption data on fragment in onKeyLoading (emeEnabled with controller: ${this.emeController&&this.config.emeEnabled})`);return Promise.reject(this.createKeyLoadError(e,Zt.KEY_LOAD_ERROR,m))}const c=a.uri;if(!c)return Promise.reject(this.createKeyLoadError(e,Zt.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${c}"`)));const s=g$(a);let f=this.keyIdToKeyInfo[s];if((n=f)!=null&&n.decryptdata.key)return a.key=f.decryptdata.key,Promise.resolve({frag:e,keyInfo:f});if(this.emeController&&(i=f)!=null&&i.keyLoadPromise)switch(this.emeController.getKeyStatus(f.decryptdata)){case"usable":case"usable-in-future":return f.keyLoadPromise.then(x=>{const{keyInfo:_}=x;return a.key=_.decryptdata.key,{frag:e,keyInfo:_}})}switch(this.log(`${this.keyIdToKeyInfo[s]?"Rel":"L"}oading${a.keyId?" keyId: "+Ul(a.keyId):""} URI: ${a.uri} from ${e.type} ${e.level}`),f=this.keyIdToKeyInfo[s]={decryptdata:a,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},a.method){case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return a.keyFormat==="identity"?this.loadKeyHTTP(f,e):this.loadKeyEME(f,e);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(f,e);default:return Promise.reject(this.createKeyLoadError(e,Zt.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${a.method}"`)))}}loadKeyEME(e,r){const n={frag:r,keyInfo:e};if(this.emeController&&this.config.emeEnabled){var i;if(!e.decryptdata.keyId&&(i=r.initSegment)!=null&&i.data){const c=ZPt(r.initSegment.data);if(c.length){let s=c[0];s.some(f=>f!==0)?(this.log(`Using keyId found in init segment ${Ul(s)}`),Ry.setKeyIdForUri(e.decryptdata.uri,s)):(s=Ry.addKeyIdForUri(e.decryptdata.uri),this.log(`Generating keyId to patch media ${Ul(s)}`)),e.decryptdata.keyId=s}}if(!e.decryptdata.keyId&&!To(r))return Promise.resolve(n);const a=this.emeController.loadKey(n);return(e.keyLoadPromise=a.then(c=>(e.mediaKeySessionContext=c,n))).catch(c=>{throw e.keyLoadPromise=null,"data"in c&&(c.data.frag=r),c})}return Promise.resolve(n)}loadKeyHTTP(e,r){const n=this.config,i=n.loader,a=new i(n);return r.keyLoader=e.loader=a,e.keyLoadPromise=new Promise((c,s)=>{const f={keyInfo:e,frag:r,responseType:"arraybuffer",url:e.decryptdata.uri},m=n.keyLoadPolicy.default,x={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},_={onSuccess:(T,E,C,N)=>{const{frag:L,keyInfo:M}=C,D=g$(M.decryptdata);if(!L.decryptdata||M!==this.keyIdToKeyInfo[D])return s(this.createKeyLoadError(L,Zt.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),N));M.decryptdata.key=L.decryptdata.key=new Uint8Array(T.data),L.keyLoader=null,M.loader=null,c({frag:L,keyInfo:M})},onError:(T,E,C,N)=>{this.resetLoader(E),s(this.createKeyLoadError(r,Zt.KEY_LOAD_ERROR,new Error(`HTTP Error ${T.code} loading key ${T.text}`),C,zs({url:f.url,data:void 0},T)))},onTimeout:(T,E,C)=>{this.resetLoader(E),s(this.createKeyLoadError(r,Zt.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),C))},onAbort:(T,E,C)=>{this.resetLoader(E),s(this.createKeyLoadError(r,Zt.INTERNAL_ABORTED,new Error("key loading aborted"),C))}};a.load(f,x,_)})}resetLoader(e){const{frag:r,keyInfo:n,url:i}=e,a=n.loader;r.keyLoader===a&&(r.keyLoader=null,n.loader=null);const c=g$(n.decryptdata)||i;delete this.keyIdToKeyInfo[c],a&&a.destroy()}}function g$(t){if(t.keyFormat!==Vl.FAIRPLAY){const e=t.keyId;if(e)return Ul(e)}return t.uri}function qle(t){const{type:e}=t;switch(e){case Gi.AUDIO_TRACK:return _n.AUDIO;case Gi.SUBTITLE_TRACK:return _n.SUBTITLE;default:return _n.MAIN}}function y$(t,e){let r=t.url;return(r===void 0||r.indexOf("data:")===0)&&(r=e.url),r}class NMt{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){const{hls:e}=this;e.on(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.on(ke.LEVEL_LOADING,this.onLevelLoading,this),e.on(ke.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(ke.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.on(ke.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){const{hls:e}=this;e.off(ke.MANIFEST_LOADING,this.onManifestLoading,this),e.off(ke.LEVEL_LOADING,this.onLevelLoading,this),e.off(ke.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(ke.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.off(ke.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(e){const r=this.hls.config,n=r.pLoader,i=r.loader,a=n||i,c=new a(r);return this.loaders[e.type]=c,c}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(const e in this.loaders){const r=this.loaders[e];r&&r.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,r){const{url:n}=r;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Gi.MANIFEST,url:n,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(e,r){const{id:n,level:i,pathwayId:a,url:c,deliveryDirectives:s,levelInfo:f}=r;this.load({id:n,level:i,pathwayId:a,responseType:"text",type:Gi.LEVEL,url:c,deliveryDirectives:s,levelOrTrack:f})}onAudioTrackLoading(e,r){const{id:n,groupId:i,url:a,deliveryDirectives:c,track:s}=r;this.load({id:n,groupId:i,level:null,responseType:"text",type:Gi.AUDIO_TRACK,url:a,deliveryDirectives:c,levelOrTrack:s})}onSubtitleTrackLoading(e,r){const{id:n,groupId:i,url:a,deliveryDirectives:c,track:s}=r;this.load({id:n,groupId:i,level:null,responseType:"text",type:Gi.SUBTITLE_TRACK,url:a,deliveryDirectives:c,levelOrTrack:s})}onLevelsUpdated(e,r){const n=this.loaders[Gi.LEVEL];if(n){const i=n.context;i&&!r.levels.some(a=>a===i.levelOrTrack)&&(n.abort(),delete this.loaders[Gi.LEVEL])}}load(e){var r;const n=this.hls.config;let i=this.getInternalLoader(e);if(i){const m=this.hls.logger,x=i.context;if(x&&x.levelOrTrack===e.levelOrTrack&&(x.url===e.url||x.deliveryDirectives&&!e.deliveryDirectives)){x.url===e.url?m.log(`[playlist-loader]: ignore ${e.url} ongoing request`):m.log(`[playlist-loader]: ignore ${e.url} in favor of ${x.url}`);return}m.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),i.abort()}let a;if(e.type===Gi.MANIFEST?a=n.manifestLoadPolicy.default:a=Xs({},n.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),i=this.createInternalLoader(e),dn((r=e.deliveryDirectives)==null?void 0:r.part)){let m;if(e.type===Gi.LEVEL&&e.level!==null?m=this.hls.levels[e.level].details:e.type===Gi.AUDIO_TRACK&&e.id!==null?m=this.hls.audioTracks[e.id].details:e.type===Gi.SUBTITLE_TRACK&&e.id!==null&&(m=this.hls.subtitleTracks[e.id].details),m){const x=m.partTarget,_=m.targetduration;if(x&&_){const T=Math.max(x*3,_*.8)*1e3;a=Xs({},a,{maxTimeToFirstByteMs:Math.min(T,a.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(T,a.maxTimeToFirstByteMs)})}}}const c=a.errorRetry||a.timeoutRetry||{},s={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},f={onSuccess:(m,x,_,T)=>{const E=this.getInternalLoader(_);this.resetInternalLoader(_.type);const C=m.data;x.parsing.start=performance.now(),Kf.isMediaPlaylist(C)||_.type!==Gi.MANIFEST?this.handleTrackOrLevelPlaylist(m,x,_,T||null,E):this.handleMasterPlaylist(m,x,_,T)},onError:(m,x,_,T)=>{this.handleNetworkError(x,_,!1,m,T)},onTimeout:(m,x,_)=>{this.handleNetworkError(x,_,!0,void 0,m)}};i.load(e,s,f)}checkAutostartLoad(){if(!this.hls)return;const{config:{autoStartLoad:e,startPosition:r},forceStartLoad:n}=this.hls;(e||n)&&(this.hls.logger.log(`${e?"auto":"force"} startLoad with configured startPosition ${r}`),this.hls.startLoad(r))}handleMasterPlaylist(e,r,n,i){const a=this.hls,c=e.data,s=y$(e,n),f=Kf.parseMasterPlaylist(c,s);if(f.playlistParsingError){r.parsing.end=performance.now(),this.handleManifestParsingError(e,n,f.playlistParsingError,i,r);return}const{contentSteering:m,levels:x,sessionData:_,sessionKeys:T,startTimeOffset:E,variableList:C}=f;this.variableList=C,x.forEach(D=>{const{unknownCodecs:B}=D;if(B){const{preferManagedMediaSource:V}=this.hls.config;let{audioCodec:G,videoCodec:W}=D;for(let Z=B.length;Z--;){const Q=B[Z];tC(Q,"audio",V)?(D.audioCodec=G=G?`${G},${Q}`:Q,X1.audio[G.substring(0,4)]=2,B.splice(Z,1)):tC(Q,"video",V)&&(D.videoCodec=W=W?`${W},${Q}`:Q,X1.video[W.substring(0,4)]=2,B.splice(Z,1))}}});const{AUDIO:N=[],SUBTITLES:L,"CLOSED-CAPTIONS":M}=Kf.parseMasterPlaylistMedia(c,s,f);N.length&&!N.some(B=>!B.url)&&x[0].audioCodec&&!x[0].attrs.AUDIO&&(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),N.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Ka({}),bitrate:0,url:""})),a.trigger(ke.MANIFEST_LOADED,{levels:x,audioTracks:N,subtitles:L,captions:M,contentSteering:m,url:s,stats:r,networkDetails:i,sessionData:_,sessionKeys:T,startTimeOffset:E,variableList:C})}handleTrackOrLevelPlaylist(e,r,n,i,a){const c=this.hls,{id:s,level:f,type:m}=n,x=y$(e,n),_=dn(f)?f:dn(s)?s:0,T=qle(n),E=Kf.parseLevelPlaylist(e.data,x,_,T,0,this.variableList);if(m===Gi.MANIFEST){const C={attrs:new Ka({}),bitrate:0,details:E,name:"",url:x};E.requestScheduled=r.loading.start+HEe(E,0),c.trigger(ke.MANIFEST_LOADED,{levels:[C],audioTracks:[],url:x,stats:r,networkDetails:i,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}r.parsing.end=performance.now(),n.levelDetails=E,this.handlePlaylistLoaded(E,e,r,n,i,a)}handleManifestParsingError(e,r,n,i,a){this.hls.trigger(ke.ERROR,{type:jn.NETWORK_ERROR,details:Zt.MANIFEST_PARSING_ERROR,fatal:r.type===Gi.MANIFEST,url:e.url,err:n,error:n,reason:n.message,response:e,context:r,networkDetails:i,stats:a})}handleNetworkError(e,r,n=!1,i,a){let c=`A network ${n?"timeout":"error"+(i?" (status "+i.code+")":"")} occurred while loading ${e.type}`;e.type===Gi.LEVEL?c+=`: ${e.level} id: ${e.id}`:(e.type===Gi.AUDIO_TRACK||e.type===Gi.SUBTITLE_TRACK)&&(c+=` id: ${e.id} group-id: "${e.groupId}"`);const s=new Error(c);this.hls.logger.warn(`[playlist-loader]: ${c}`);let f=Zt.UNKNOWN,m=!1;const x=this.getInternalLoader(e);switch(e.type){case Gi.MANIFEST:f=n?Zt.MANIFEST_LOAD_TIMEOUT:Zt.MANIFEST_LOAD_ERROR,m=!0;break;case Gi.LEVEL:f=n?Zt.LEVEL_LOAD_TIMEOUT:Zt.LEVEL_LOAD_ERROR,m=!1;break;case Gi.AUDIO_TRACK:f=n?Zt.AUDIO_TRACK_LOAD_TIMEOUT:Zt.AUDIO_TRACK_LOAD_ERROR,m=!1;break;case Gi.SUBTITLE_TRACK:f=n?Zt.SUBTITLE_TRACK_LOAD_TIMEOUT:Zt.SUBTITLE_LOAD_ERROR,m=!1;break}x&&this.resetInternalLoader(e.type);const _={type:jn.NETWORK_ERROR,details:f,fatal:m,url:e.url,loader:x,context:e,error:s,networkDetails:r,stats:a};if(i){const T=(r==null?void 0:r.url)||e.url;_.response=zs({url:T,data:void 0},i)}this.hls.trigger(ke.ERROR,_)}handlePlaylistLoaded(e,r,n,i,a,c){const s=this.hls,{type:f,level:m,levelOrTrack:x,id:_,groupId:T,deliveryDirectives:E}=i,C=y$(r,i),N=qle(i);let L=typeof i.level=="number"&&N===_n.MAIN?m:void 0;const M=e.playlistParsingError;if(M){if(this.hls.logger.warn(`${M} ${e.url}`),!s.config.ignorePlaylistParsingErrors){s.trigger(ke.ERROR,{type:jn.NETWORK_ERROR,details:Zt.LEVEL_PARSING_ERROR,fatal:!1,url:C,error:M,reason:M.message,response:r,context:i,level:L,parent:N,networkDetails:a,stats:n});return}e.playlistParsingError=null}if(!e.fragments.length){const D=e.playlistParsingError=new Error("No Segments found in Playlist");s.trigger(ke.ERROR,{type:jn.NETWORK_ERROR,details:Zt.LEVEL_EMPTY_ERROR,fatal:!1,url:C,error:D,reason:D.message,response:r,context:i,level:L,parent:N,networkDetails:a,stats:n});return}switch(e.live&&c&&(c.getCacheAge&&(e.ageHeader=c.getCacheAge()||0),(!c.getCacheAge||isNaN(e.ageHeader))&&(e.ageHeader=0)),f){case Gi.MANIFEST:case Gi.LEVEL:if(L){if(!x)L=0;else if(x!==s.levels[L]){const D=s.levels.indexOf(x);D>-1&&(L=D)}}s.trigger(ke.LEVEL_LOADED,{details:e,levelInfo:x||s.levels[0],level:L||0,id:_||0,stats:n,networkDetails:a,deliveryDirectives:E,withoutMultiVariant:f===Gi.MANIFEST});break;case Gi.AUDIO_TRACK:s.trigger(ke.AUDIO_TRACK_LOADED,{details:e,track:x,id:_||0,groupId:T||"",stats:n,networkDetails:a,deliveryDirectives:E});break;case Gi.SUBTITLE_TRACK:s.trigger(ke.SUBTITLE_TRACK_LOADED,{details:e,track:x,id:_||0,groupId:T||"",stats:n,networkDetails:a,deliveryDirectives:E});break}}}class qf{static get version(){return iC}static isMSESupported(){return G2e()}static isSupported(){return kMt()}static getMediaSource(){return Yy()}static get Events(){return ke}static get MetadataSchema(){return Yu}static get ErrorTypes(){return jn}static get ErrorDetails(){return Zt}static get DefaultConfig(){return qf.defaultConfig?qf.defaultConfig:mMt}static set DefaultConfig(e){qf.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new _W,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;const r=this.logger=FPt(e.debug||!1,"Hls instance",e.assetPlayerId),n=this.config=yMt(qf.DefaultConfig,e,r);this.userConfig=e,n.progressive&&xMt(n,r);const{abrController:i,bufferController:a,capLevelController:c,errorController:s,fpsController:f}=n,m=new s(this),x=this.abrController=new i(this),_=new RNt(this),T=n.interstitialsController,E=T?this.interstitialsController=new T(this,qf):null,C=this.bufferController=new a(this,_),N=this.capLevelController=new c(this),L=new f(this),M=new NMt(this),D=n.contentSteeringController,B=D?new D(this):null,V=this.levelController=new AMt(this,B),G=new TMt(this),W=new PMt(this.config,this.logger),Z=this.streamController=new jMt(this,_,W),Q=this.gapController=new wMt(this,_);N.setStreamController(Z),L.setStreamController(Z);const se=[M,V,Z];E&&se.splice(1,0,E),B&&se.splice(1,0,B),this.networkControllers=se;const ie=[x,C,Q,N,L,G,_];this.audioTrackController=this.createController(n.audioTrackController,se);const ue=n.audioStreamController;ue&&se.push(this.audioStreamController=new ue(this,_,W)),this.subtitleTrackController=this.createController(n.subtitleTrackController,se);const be=n.subtitleStreamController;be&&se.push(this.subtititleStreamController=new be(this,_,W)),this.createController(n.timelineController,ie),W.emeController=this.emeController=this.createController(n.emeController,ie),this.cmcdController=this.createController(n.cmcdController,ie),this.latencyController=this.createController(EMt,ie),this.coreComponents=ie,se.push(m);const Te=m.onErrorOut;typeof Te=="function"&&this.on(ke.ERROR,Te,m),this.on(ke.MANIFEST_LOADED,M.onManifestLoaded,M)}createController(e,r){if(e){const n=new e(this);return r&&r.push(n),n}return null}on(e,r,n=this){this._emitter.on(e,r,n)}once(e,r,n=this){this._emitter.once(e,r,n)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,r,n=this,i){this._emitter.off(e,r,n,i)}listeners(e){return this._emitter.listeners(e)}emit(e,r,n){return this._emitter.emit(e,r,n)}trigger(e,r){if(this.config.debug)return this.emit(e,e,r);try{return this.emit(e,e,r)}catch(n){if(this.logger.error("An internal error happened while handling event "+e+'. Error message: "'+n.message+'". Here is a stacktrace:',n),!this.triggeringException){this.triggeringException=!0;const i=e===ke.ERROR;this.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.INTERNAL_EXCEPTION,fatal:i,event:e,error:n}),this.triggeringException=!1}}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){this.logger.log("destroy"),this.trigger(ke.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach(r=>r.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(r=>r.destroy()),this.coreComponents.length=0;const e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){if(!e||"media"in e&&!e.media){const a=new Error(`attachMedia failed: invalid argument (${e})`);this.trigger(ke.ERROR,{type:jn.OTHER_ERROR,details:Zt.ATTACH_MEDIA_ERROR,fatal:!0,error:a});return}this.logger.log("attachMedia"),this._media&&(this.logger.warn("media must be detached before attaching"),this.detachMedia());const r="media"in e,n=r?e.media:e,i=r?e:{media:n};this._media=n,this.trigger(ke.MEDIA_ATTACHING,i)}detachMedia(){this.logger.log("detachMedia"),this.trigger(ke.MEDIA_DETACHING,{}),this._media=null}transferMedia(){this._media=null;const e=this.bufferController.transferMedia();return this.trigger(ke.MEDIA_DETACHING,{transferMedia:e}),e}loadSource(e){this.stopLoad();const r=this.media,n=this._url,i=this._url=lW.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${i}`),r&&n&&(n!==i||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(r)),this.trigger(ke.MANIFEST_LOADING,{url:e})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(e=-1,r){this.logger.log(`startLoad(${e+(r?", ":"")})`),this.started=!0,this.resumeBuffering();for(let n=0;n{e.resumeBuffering&&e.resumeBuffering()}))}pauseBuffering(){this.bufferingEnabled&&(this.logger.log("pause buffering"),this.networkControllers.forEach(e=>{e.pauseBuffering&&e.pauseBuffering()}))}get inFlightFragments(){const e={[_n.MAIN]:this.streamController.inFlightFrag};return this.audioStreamController&&(e[_n.AUDIO]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(e[_n.SUBTITLE]=this.subtititleStreamController.inFlightFrag),e}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");const e=this._media,r=e==null?void 0:e.currentTime;this.detachMedia(),e&&(this.attachMedia(e),r&&this.startLoad(r))}removeLevel(e){this.levelController.removeLevel(e)}get sessionId(){let e=this._sessionId;return e||(e=this._sessionId=wDt()),e}get levels(){const e=this.levelController.levels;return e||[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){this.logger.log(`set currentLevel:${e}`),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){this.logger.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){this.logger.log(`set loadLevel:${e}`),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){this.logger.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){const e=this.levelController.startLevel;return e===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e}set startLevel(e){this.logger.log(`set startLevel:${e}`),e!==-1&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){const r=!!e;r!==this.config.capLevelToPlayerSize&&(r?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=r)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){const{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}set bandwidthEstimate(e){this.abrController.resetEstimator(e)}get abrEwmaDefaultEstimate(){const{bwEstimator:e}=this.abrController;return e?e.defaultEstimate:NaN}get ttfbEstimate(){const{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(this.logger.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){yNt(e)&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){const{levels:e,config:{minAutoBitrate:r}}=this;if(!e)return 0;const n=e.length;for(let i=0;i=r)return i;return 0}get maxAutoLevel(){const{levels:e,autoLevelCapping:r,maxHdcpLevel:n}=this;let i;if(r===-1&&e!=null&&e.length?i=e.length-1:i=r,n)for(let a=i;a--;){const c=e[a].attrs["HDCP-LEVEL"];if(c&&c<=n)return a}return i}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(e){this.abrController.nextAutoLevel=e}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(e){var r;return((r=this.audioTrackController)==null?void 0:r.setAudioOption(e))||null}setSubtitleOption(e){var r;return((r=this.subtitleTrackController)==null?void 0:r.setSubtitleOption(e))||null}get allAudioTracks(){const e=this.audioTrackController;return e?e.allAudioTracks:[]}get audioTracks(){const e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){const e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){const r=this.audioTrackController;r&&(r.audioTrack=e)}get allSubtitleTracks(){const e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}get subtitleTracks(){const e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){const e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){const r=this.subtitleTrackController;r&&(r.subtitleTrack=e)}get subtitleDisplay(){const e=this.subtitleTrackController;return e?e.subtitleDisplay:!1}set subtitleDisplay(e){const r=this.subtitleTrackController;r&&(r.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}set targetLatency(e){this.latencyController.targetLatency=e}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(e){this.levelController.pathwayPriority=e}get bufferedToEnd(){var e;return!!((e=this.bufferController)!=null&&e.bufferedToEnd)}get interstitialsManager(){var e;return((e=this.interstitialsController)==null?void 0:e.interstitialsManager)||null}getMediaDecodingInfo(e,r=this.allAudioTracks){const n=PEe(r);return IEe(e,n,navigator.mediaCapabilities)}}qf.defaultConfig=void 0;const RMt=/(?:player\.mediadelivery\.net|iframe\.mediadelivery\.net|iframe\.n\.net|video\.bunnycdn\.com|[a-z0-9-]+\.b-cdn\.net)/i;function Y2(t){return!!t&&RMt.test(t)&&!/\.mp4($|\?)/i.test(t)}function LMt(t){const e=t.match(/\/(?:play|embed)\/(\d+)\/([a-z0-9-]+)/i);return e?{libraryId:e[1],videoId:e[2]}:null}function DMt(t,e){if(!t)return null;const r=LMt(t);if(r){const n=new URLSearchParams({autoplay:e!=null&&e.autoplay?"true":"false",muted:e!=null&&e.muted?"true":"false",loop:e!=null&&e.loop?"true":"false",preload:"true",responsive:"true",playsinline:"true"});return`https://player.mediadelivery.net/embed/${r.libraryId}/${r.videoId}?${n.toString()}`}return/player\.mediadelivery\.net\/embed\//i.test(t)?t:/iframe\.mediadelivery\.net\/(?:play|embed)\//i.test(t)?t.replace("iframe.mediadelivery.net/play/","player.mediadelivery.net/embed/").replace("iframe.mediadelivery.net/embed/","player.mediadelivery.net/embed/"):t}function MMt(t){const e=t.match(/https:\/\/[^"']+playlist\.m3u8[^"']*/i);return e?e[0].replace(/&/g,"&").replace(/\u0026/g,"&"):null}const Gle=P.forwardRef(function({sourceUrl:e,thumbnailUrl:r,autoPlay:n,muted:i,loop:a,playsInline:c=!0,...s},f){const m=P.useRef(null),[x,_]=P.useState(null),T=P.useMemo(()=>DMt(e,{autoplay:!!n,muted:!!i,loop:!!a}),[e,n,i,a]);P.useEffect(()=>{let C=!1;if(!e){_(null);return}if(!Y2(e)){_(e);return}if(!T){_(null);return}return _(null),fetch(T).then(async N=>{if(!N.ok)throw new Error(`Failed to load Bunny embed (${N.status})`);const L=await N.text();return MMt(L)}).then(N=>{C||_(N)}).catch(()=>{C||_(null)}),()=>{C=!0}},[T,e]),P.useEffect(()=>{const C=m.current;if(!C||!x)return;let N=null;const L=()=>{if(!n)return;const D=C.play();D&&D.catch(()=>{})};if(C.muted=!!i,C.loop=!!a,x.endsWith(".m3u8")){if(C.canPlayType("application/vnd.apple.mpegurl")){C.src=x;const D=()=>L();return C.addEventListener("loadedmetadata",D),()=>{C.removeEventListener("loadedmetadata",D),C.removeAttribute("src"),C.load()}}return qf.isSupported()?(N=new qf({enableWorker:!0,lowLatencyMode:!0}),N.loadSource(x),N.attachMedia(C),N.on(qf.Events.MANIFEST_PARSED,L),()=>{N==null||N.destroy(),C.removeAttribute("src"),C.load()}):void 0}C.src=x;const M=()=>L();return C.addEventListener("loadedmetadata",M),()=>{C.removeEventListener("loadedmetadata",M),C.removeAttribute("src"),C.load()}},[n,a,i,x]),P.useEffect(()=>{const C=m.current;if(C){if(C.muted=!!i,C.loop=!!a,n&&x){const N=C.play();N&&N.catch(()=>{});return}C.pause()}},[n,a,i,x]);const E=C=>{if(m.current=C,typeof f=="function"){f(C);return}f&&(f.current=C)};return o.jsx("video",{ref:E,poster:r||void 0,autoPlay:n,muted:i,loop:a,playsInline:c,preload:"metadata",...s})}),OMt={portrait:{sm:{w:130,h:231},md:{w:170,h:302},lg:{w:210,h:373}},landscape:{sm:{w:178,h:100},md:{w:220,h:124},lg:{w:270,h:152}}};function FMt(){try{let t=localStorage.getItem("vg_visitor_token");return t||(t=crypto.randomUUID(),localStorage.setItem("vg_visitor_token",t)),t}catch{return null}}function Hle(t,e){return!t||t.length===0?!1:t.some(r=>r?r===e?!0:r.endsWith("*")?e.startsWith(r.slice(0,-1)):e.startsWith(r):!1)}function BMt({config:t,appSlug:e="video_greeter",preview:r=!1,embedded:n=!1}){const[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(!0),[x,_]=P.useState(!1),[T,E]=P.useState("portrait"),[C,N]=P.useState(!1),[L,M]=P.useState(!1),[D,B]=P.useState({name:"",email:"",phone:""}),[V,G]=P.useState(()=>({width:typeof window<"u"?window.innerWidth:1280,height:typeof window<"u"?window.innerHeight:720})),W=P.useRef(null),Z=P.useRef(null),Q=P.useRef(!1),se=async(or,Sr)=>{if(!r)try{await De.from("widget_events").insert({user_id:t.user_id,app_slug:e,event_type:or,visitor_token:FMt(),page_url:typeof window<"u"?window.location.href:null,metadata:Sr||{}})}catch{}};P.useEffect(()=>{if(x)return;const or=typeof window<"u"?window.location.pathname:"/",Sr=t.targeting||{mode:"all"};if(Sr.mode==="include"&&!Hle(Sr.include,or)||Sr.mode==="exclude"&&Hle(Sr.exclude,or))return;const jr=t.trigger||{type:"immediate"};if(jr.type==="immediate"||r){a(!0);return}if(jr.type==="delay"){const Qt=(jr.value||3)*1e3,Je=setTimeout(()=>a(!0),Qt);return()=>clearTimeout(Je)}if(jr.type==="scroll"){const Qt=(jr.value||25)/100,Je=()=>{(window.scrollY+window.innerHeight)/document.documentElement.scrollHeight>=Qt&&(a(!0),window.removeEventListener("scroll",Je))};return window.addEventListener("scroll",Je,{passive:!0}),()=>window.removeEventListener("scroll",Je)}if(jr.type==="exit_intent"){const Qt=Je=>{Je.clientY<=0&&a(!0)};return document.addEventListener("mouseleave",Qt),()=>document.removeEventListener("mouseleave",Qt)}},[x,t.targeting,t.trigger,r]),P.useEffect(()=>{i&&!Q.current&&(Q.current=!0,se("impression"))},[i]),P.useEffect(()=>{if(c&&Z.current&&!Y2(t.video_url)){Z.current.currentTime=0,Z.current.muted=!1,m(!1);const or=Z.current.play();or&&or.catch(()=>{})}else c&&Y2(t.video_url)&&m(!1)},[c,t.video_url]),P.useEffect(()=>{if(!t.thumbnail_url)return;let or=!1;const Sr=new Image;return Sr.onload=()=>{or||E(Sr.naturalWidth>Sr.naturalHeight?"landscape":"portrait")},Sr.src=t.thumbnail_url,()=>{or=!0}},[t.thumbnail_url]),P.useEffect(()=>{const or=()=>{G({width:window.innerWidth,height:window.innerHeight})};return or(),window.addEventListener("resize",or),()=>window.removeEventListener("resize",or)},[]);const ie=()=>{s(!0),se("expand")},ue=or=>{or.stopPropagation(),_(!0),s(!1)},be=or=>{se("cta_click",{cta_id:or.id,label:or.label,url:or.url})},Te=async or=>{if(or.preventDefault(),r){N(!0);return}if(!(!D.email||!D.name)){M(!0);try{const{error:Sr}=await De.functions.invoke("submit-widget-lead",{body:{user_id:t.user_id,app_slug:e,name:D.name,email:D.email,phone:D.phone||void 0,page_url:window.location.href}});if(Sr)throw Sr;se("lead_capture",{email:D.email}),N(!0)}catch(Sr){console.error("lead submit failed",Sr)}finally{M(!1)}}};if(!i||x||!t.video_url&&!t.video_embed_url)return null;const we=OMt[T][t.size||"md"],Oe=n?"absolute left-2 bottom-2":r?t.position==="bottom-right"?"absolute right-4 bottom-4":"absolute left-4 bottom-4":t.position==="bottom-right"?"fixed right-4 bottom-4 md:right-6 md:bottom-6":"fixed left-4 bottom-4 md:left-6 md:bottom-6",Ae=t.shape==="circle"?"rounded-full":"rounded-2xl",Se=r?T==="landscape"?"w-[280px]":"w-[220px]":T==="landscape"?"w-[360px] sm:w-[420px]":"w-[300px] sm:w-[340px]",ge=T==="landscape"?"aspect-video":"aspect-[9/16]",je=t.agent||{},_e=t.lead_form_fields||["name","email","phone"],xe=!!(t.show_socials&&(je.instagram_url||je.facebook_url||je.linkedin_url)),Pe=108+(t.ctas||[]).length*48+(t.lead_form_enabled&&!C?72+_e.length*42:0)+(C?40:0)+(xe?34:0),Ze=Math.max(300,V.height-32),at=Math.max(220,V.width-32),lt=Math.max(150,Ze-Pe),xt=Math.floor(T==="landscape"?lt*(16/9):lt*(9/16)),St=T==="landscape"?Math.max(220,Math.min(420,at,xt)):Math.max(180,Math.min(340,at,xt)),Xt=n?"bg-white rounded-2xl shadow-2xl overflow-hidden border border-black/10 animate-in fade-in zoom-in-95 duration-300 flex flex-col":`${Se} max-h-[calc(100dvh-2rem)] bg-white rounded-2xl shadow-2xl overflow-hidden border border-black/10 animate-in fade-in zoom-in-95 duration-300 flex flex-col`,_t=n?{width:`${St}px`,maxHeight:"calc(100dvh - 2rem)"}:void 0,Rt=n?"p-3 space-y-2.5":"p-4 space-y-3",er=n?"w-9 h-9 rounded-full object-cover":"w-10 h-10 rounded-full object-cover",vt=n?"font-bold text-[15px] text-gray-900 leading-tight":"font-bold text-gray-900 leading-tight",xr=n?"text-[11px] text-gray-500 mt-0.5":"text-xs text-gray-500 mt-0.5",_r=n?"w-full px-3 py-1.5 text-sm rounded-lg border border-gray-200 focus:border-gray-900 focus:outline-none bg-white text-gray-900 placeholder:text-gray-400":"w-full px-3 py-2 text-sm rounded-lg border border-gray-200 focus:border-gray-900 focus:outline-none bg-white text-gray-900 placeholder:text-gray-400",tn=n?"w-full flex items-center justify-center gap-2 px-3 py-2 bg-gray-900 text-white rounded-xl text-sm font-semibold hover:bg-black transition-colors disabled:opacity-60":"w-full flex items-center justify-center gap-2 px-3 py-2.5 bg-gray-900 text-white rounded-xl text-sm font-semibold hover:bg-black transition-colors disabled:opacity-60";return o.jsx("div",{"data-vg-widget":!0,"data-expanded":c?"true":"false",className:`${Oe} z-[70]`,style:{paddingBottom:"env(safe-area-inset-bottom)"},children:c?o.jsxs("div",{className:Xt,style:_t,children:[o.jsxs("div",{className:`relative bg-black ${ge}`,children:[Y2(t.video_url)?o.jsx(Gle,{ref:Z,sourceUrl:t.video_url,thumbnailUrl:t.thumbnail_url,autoPlay:!0,muted:f,loop:!1,className:"w-full h-full object-cover",onLoadedMetadata:or=>{const{videoWidth:Sr,videoHeight:jr}=or.currentTarget;Sr&&jr&&E(Sr>jr?"landscape":"portrait")},onEnded:()=>se("watch_complete")},`expanded-${t.video_url}-${t.thumbnail_url||"no-thumb"}-${c?"on":"off"}`):o.jsx("video",{ref:Z,src:t.video_url||void 0,poster:t.thumbnail_url||void 0,autoPlay:!0,playsInline:!0,controls:!1,className:"w-full h-full object-cover",onEnded:()=>se("watch_complete"),onLoadedMetadata:or=>{const{videoWidth:Sr,videoHeight:jr}=or.currentTarget;Sr&&jr&&E(Sr>jr?"landscape":"portrait")}}),o.jsx("button",{onClick:()=>{Z.current&&(Z.current.muted=!Z.current.muted,m(Z.current.muted))},className:"absolute bottom-3 right-3 w-9 h-9 rounded-full bg-black/60 hover:bg-black text-white flex items-center justify-center backdrop-blur",children:f?o.jsx(uLe,{className:"w-4 h-4"}):o.jsx(cLe,{className:"w-4 h-4"})}),o.jsx("button",{onClick:()=>s(!1),className:"absolute top-3 right-3 w-8 h-8 rounded-full bg-black/60 hover:bg-black text-white flex items-center justify-center backdrop-blur","aria-label":"Minimize",children:o.jsx(Zs,{className:"w-4 h-4"})})]}),o.jsxs("div",{className:Rt,children:[o.jsxs("div",{className:"flex items-center gap-3",children:[je.avatar_url&&o.jsx("img",{src:je.avatar_url,alt:je.name||"",className:er}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:vt,children:t.greeting_title||"Glad you're here!"}),t.greeting_subtitle&&o.jsx("p",{className:xr,children:t.greeting_subtitle})]})]}),(t.ctas||[]).length>0&&o.jsx("div",{className:"space-y-2",children:(t.ctas||[]).map(or=>{var Sr;return o.jsxs("a",{href:or.url,target:(Sr=or.url)!=null&&Sr.startsWith("http")?"_blank":void 0,rel:"noopener noreferrer",onClick:()=>be(or),className:`flex items-center justify-between gap-2 ${n?"px-3 py-2":"px-3.5 py-2.5"} rounded-xl text-sm font-semibold transition-colors ${or.style==="secondary"?"bg-gray-100 text-gray-900 hover:bg-gray-200":"bg-gray-900 text-white hover:bg-gray-800"}`,children:[o.jsx("span",{children:or.label}),o.jsx(sS,{className:"w-3.5 h-3.5 opacity-60"})]},or.id)})}),t.lead_form_enabled&&!C&&o.jsxs("form",{onSubmit:Te,className:"space-y-2 pt-1",children:[_e.includes("name")&&o.jsx("input",{type:"text",placeholder:"Name",required:!0,value:D.name,onChange:or=>B({...D,name:or.target.value}),className:_r}),_e.includes("email")&&o.jsx("input",{type:"email",placeholder:"Email",required:!0,value:D.email,onChange:or=>B({...D,email:or.target.value}),className:_r}),_e.includes("phone")&&o.jsx("input",{type:"tel",placeholder:"Phone (optional)",value:D.phone,onChange:or=>B({...D,phone:or.target.value}),className:_r}),o.jsxs("button",{type:"submit",disabled:L,className:tn,children:[o.jsx(SL,{className:"w-3.5 h-3.5"}),L?"Sending...":"Send"]})]}),C&&o.jsx("p",{className:"text-sm text-emerald-600 font-medium text-center py-2",children:"Thanks! I'll be in touch shortly."}),t.show_socials&&(je.instagram_url||je.facebook_url||je.linkedin_url)&&o.jsxs("div",{className:"flex items-center justify-center gap-3 pt-2 border-t border-gray-100",children:[je.instagram_url&&o.jsx("a",{href:je.instagram_url,target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-gray-900",onClick:()=>se("cta_click",{social:"instagram"}),children:o.jsx(Lhe,{className:"w-4 h-4"})}),je.facebook_url&&o.jsx("a",{href:je.facebook_url,target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-gray-900",onClick:()=>se("cta_click",{social:"facebook"}),children:o.jsx(Nhe,{className:"w-4 h-4"})}),je.linkedin_url&&o.jsx("a",{href:je.linkedin_url,target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-gray-900",onClick:()=>se("cta_click",{social:"linkedin"}),children:o.jsx(Fhe,{className:"w-4 h-4"})})]})]})]}):o.jsxs("div",{className:"relative animate-in fade-in slide-in-from-bottom-4 duration-500",children:[o.jsxs("button",{onClick:ie,className:`relative ${Ae} overflow-hidden shadow-2xl ring-2 ring-white/40 hover:ring-white/80 hover:scale-105 transition-all bg-black`,style:{width:we.w,height:we.h},"aria-label":"Play video greeting",children:[Y2(t.video_url)?o.jsx(Gle,{ref:W,sourceUrl:t.video_url,thumbnailUrl:t.thumbnail_url,autoPlay:!0,muted:!0,loop:!0,className:"w-full h-full object-cover pointer-events-none",onLoadedMetadata:or=>{const{videoWidth:Sr,videoHeight:jr}=or.currentTarget;Sr&&jr&&E(Sr>jr?"landscape":"portrait")}},`collapsed-${t.video_url}-${t.thumbnail_url||"no-thumb"}`):o.jsx("video",{ref:W,src:t.video_url||void 0,poster:t.thumbnail_url||void 0,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",className:"w-full h-full object-cover",onLoadedMetadata:or=>{const{videoWidth:Sr,videoHeight:jr}=or.currentTarget;Sr&&jr&&E(Sr>jr?"landscape":"portrait")}}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none"}),o.jsx("div",{className:"absolute bottom-2 left-1/2 -translate-x-1/2 w-12 h-12 rounded-full bg-white/95 flex items-center justify-center shadow-lg pointer-events-none",children:o.jsx("svg",{viewBox:"0 0 24 24",className:"w-6 h-6 text-black ml-0.5",fill:"currentColor",children:o.jsx("path",{d:"M8 5v14l11-7z"})})}),o.jsx("span",{className:"absolute top-2 right-2 px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider bg-red-500 text-white rounded-full animate-pulse",children:"Live"})]}),o.jsx("button",{onClick:ue,className:"absolute -top-2 -right-2 w-7 h-7 rounded-full bg-black/80 text-white shadow-lg hover:bg-black flex items-center justify-center","aria-label":"Close",children:o.jsx(Zs,{className:"w-3.5 h-3.5"})})]})})}function NW({slug:t}){const[e,r]=P.useState(null);return P.useEffect(()=>{if(!t)return;let n=!1;return(async()=>{const{data:i,error:a}=await De.rpc("get_public_video_greeter_config",{_slug:t});!n&&!a&&i&&r(i)})(),()=>{n=!0}},[t]),e?o.jsx(BMt,{config:e}):null}const H2e="eip_last_shown",Wle="eip_visitor_token";function zMt(){try{let t=localStorage.getItem(Wle);return t||(t=crypto.randomUUID(),localStorage.setItem(Wle,t)),t}catch{return}}function $Mt(t){try{const e=Number(localStorage.getItem(H2e)||0);return e?Date.now()-e>t*24*60*60*1e3:!0}catch{return!0}}function UMt(t){if(!t||t.mode==="all")return!0;const e=window.location.pathname,n=(t.mode==="include"?t.include||[]:t.exclude||[]).some(i=>e.startsWith(i));return t.mode==="include"?n:!n}function VMt({config:t,preview:e=!1,forceOpen:r=!1}){const[n,i]=P.useState(r),[a,c]=P.useState(!1),[s,f]=P.useState(!1),[m,x]=P.useState({name:"",email:"",phone:""}),_=P.useRef(!1),T=P.useRef(!1),E=async(W,Z={})=>{if(!e)try{await De.from("widget_events").insert({user_id:t.user_id,app_slug:"exit_intent",event_type:W,visitor_token:zMt(),page_url:window.location.href,metadata:Z})}catch{}};P.useEffect(()=>{if(e||!UMt(t.targeting)||!$Mt(t.frequency_days))return;const W=/Mobi|Android/i.test(navigator.userAgent),Z={low:5,medium:15,high:30}[t.trigger_sensitivity]||15,Q=be=>{if(!_.current){_.current=!0,i(!0);try{localStorage.setItem(H2e,String(Date.now()))}catch{}E("impression",{reason:be})}},se=be=>{be.clientY<=Z&&Q("mouse_leave")},ie=()=>{t.enable_mobile_back&&W&&Q("back_button")};if(t.enable_mobile_back&&W){try{window.history.pushState({eip:!0},"")}catch{}window.addEventListener("popstate",ie)}else document.addEventListener("mouseleave",se);let ue;return t.enable_time_fallback&&(ue=window.setTimeout(()=>Q("time_fallback"),Math.max(5,t.time_fallback_seconds)*1e3)),()=>{document.removeEventListener("mouseleave",se),window.removeEventListener("popstate",ie),ue&&window.clearTimeout(ue)}},[t,e]),P.useEffect(()=>{n&&!T.current&&!e&&!_.current&&(T.current=!0)},[n,e]);const C=()=>{i(!1),e||E("close")},N=async W=>{if(W.preventDefault(),e){c(!0);return}if(!(!m.email||!m.name)){f(!0);try{const{error:Z}=await De.functions.invoke("submit-widget-lead",{body:{user_id:t.user_id,app_slug:"exit_intent",name:m.name,email:m.email,phone:m.phone||void 0,page_url:window.location.href}});if(Z)throw Z;E("lead_capture",{email:m.email}),c(!0),t.cta_url&&setTimeout(()=>{window.location.href=t.cta_url},1200)}catch(Z){console.error("exit intent submit failed",Z)}finally{f(!1)}}};if(!n)return null;const L=t.form_fields||["name","email"],M=t.agent||{},D=[M.first_name,M.last_name].filter(Boolean).join(" "),B=t.use_agent_photo&&M.avatar_url||t.image_url,V=t.theme_color||"#f97316",G=e?"absolute inset-0 flex items-center justify-center p-4 z-10":"fixed inset-0 z-[80] flex items-center justify-center p-4";return o.jsx("div",{className:G,style:{background:e?"transparent":"rgba(0,0,0,0.6)"},children:o.jsxs("div",{className:"relative w-full max-w-md bg-background rounded-2xl shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-300",onClick:W=>W.stopPropagation(),children:[o.jsx("div",{className:"h-2 w-full",style:{background:`linear-gradient(90deg, ${V}, ${x$(V,-25)})`}}),o.jsx("button",{onClick:C,className:"absolute top-3 right-3 z-10 w-8 h-8 rounded-full bg-background/80 backdrop-blur hover:bg-background flex items-center justify-center text-muted-foreground hover:text-foreground transition","aria-label":"Close",children:o.jsx(Zs,{className:"w-4 h-4"})}),o.jsxs("div",{className:"p-6 sm:p-7 space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[B&&o.jsx("img",{src:B,alt:D||"Agent",className:"w-14 h-14 rounded-full object-cover ring-2 shadow-md",style:{boxShadow:`0 0 0 2px ${V}33`,"--tw-ring-color":V}}),o.jsxs("div",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold",style:{background:`${V}1A`,color:V},children:[o.jsx(Es,{className:"w-3 h-3"}),t.offer_label]})]}),o.jsxs("div",{children:[o.jsx("h3",{className:"text-2xl font-extrabold tracking-tight leading-tight",children:t.headline}),o.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:t.subheadline})]}),a?o.jsxs("div",{className:"rounded-xl p-5 text-center space-y-2",style:{background:`${V}10`,color:V},children:[o.jsx("div",{className:"text-3xl",children:"🎉"}),o.jsx("p",{className:"text-sm font-medium",style:{color:V},children:t.success_message})]}):t.form_enabled?o.jsxs("form",{onSubmit:N,className:"space-y-2.5",children:[L.includes("name")&&o.jsx("input",{type:"text",placeholder:"Your name",value:m.name,onChange:W=>x({...m,name:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":V},required:!0}),L.includes("email")&&o.jsx("input",{type:"email",placeholder:"you@email.com",value:m.email,onChange:W=>x({...m,email:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":V},required:!0}),L.includes("phone")&&o.jsx("input",{type:"tel",placeholder:"Phone (optional)",value:m.phone,onChange:W=>x({...m,phone:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":V}}),o.jsx("button",{type:"submit",disabled:s,className:"w-full py-3 rounded-lg font-semibold text-white shadow-lg hover:opacity-95 active:scale-[0.99] transition disabled:opacity-60",style:{background:`linear-gradient(135deg, ${V}, ${x$(V,-20)})`},children:s?"Sending...":t.cta_label}),o.jsx("p",{className:"text-[10px] text-center text-muted-foreground pt-1",children:"We respect your inbox. Unsubscribe anytime."})]}):o.jsx("a",{href:t.cta_url||"#",onClick:()=>E("cta_click",{url:t.cta_url}),className:"block w-full text-center py-3 rounded-lg font-semibold text-white shadow-lg hover:opacity-95 transition",style:{background:`linear-gradient(135deg, ${V}, ${x$(V,-20)})`},children:t.cta_label}),D&&o.jsxs("p",{className:"text-[11px] text-center text-muted-foreground pt-1",children:["Sent personally by ",D]})]})]})})}function x$(t,e){try{const r=parseInt(t.slice(1),16),n=e<0?0:255,i=Math.abs(e)/100,a=r>>16,c=r>>8&255,s=r&255,f=Math.round((n-a)*i)+a,m=Math.round((n-c)*i)+c,x=Math.round((n-s)*i)+s;return"#"+(16777216+(f<<16)+(m<<8)+x).toString(16).slice(1)}catch{return t}}function RW({slug:t}){const[e,r]=P.useState(null);return P.useEffect(()=>{if(!t)return;let n=!1;return(async()=>{const{data:i,error:a}=await De.rpc("get_public_exit_intent_config",{_slug:t});!n&&!a&&i&&r(i)})(),()=>{n=!0}},[t]),e?o.jsx(VMt,{config:e}):null}const Kle="lm_dismissed",Yle="lm_visitor_token";function qMt(){try{let t=localStorage.getItem(Yle);return t||(t=crypto.randomUUID(),localStorage.setItem(Yle,t)),t}catch{return}}function GMt(t){if(!t||t.mode==="all")return!0;const e=window.location.pathname,n=(t.mode==="include"?t.include||[]:t.exclude||[]).some(i=>e.startsWith(i));return t.mode==="include"?n:!n}function HMt({config:t,preview:e=!1}){const[r,n]=P.useState(!1),[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(!1),[x,_]=P.useState({name:"",email:"",phone:""}),T=P.useRef(!1),E=async(B,V={})=>{if(!e)try{await De.from("widget_events").insert({user_id:t.user_id,app_slug:"lead_magnet",event_type:B,visitor_token:qMt(),page_url:window.location.href,metadata:V})}catch{}};P.useEffect(()=>{if(e){n(!0);return}if(!GMt(t.targeting))return;try{if(sessionStorage.getItem(Kle))return}catch{}const B=()=>{T.current||(T.current=!0,n(!0),E("impression"))};if(t.trigger_type==="immediate")B();else if(t.trigger_type==="delay"){const V=window.setTimeout(B,Math.max(0,t.trigger_value)*1e3);return()=>window.clearTimeout(V)}else if(t.trigger_type==="scroll"){const V=()=>{(window.scrollY+window.innerHeight)/document.documentElement.scrollHeight*100>=(t.trigger_value||30)&&B()};return window.addEventListener("scroll",V,{passive:!0}),()=>window.removeEventListener("scroll",V)}},[t,e]);const C=()=>{n(!1);try{sessionStorage.setItem(Kle,"1")}catch{}e||E("close")},N=async B=>{if(B.preventDefault(),e){s(!0);return}if(!(!x.email||!x.name)){m(!0);try{const{error:V}=await De.functions.invoke("submit-widget-lead",{body:{user_id:t.user_id,app_slug:"lead_magnet",name:x.name,email:x.email,phone:x.phone||void 0,page_url:window.location.href}});if(V)throw V;E("lead_capture",{email:x.email}),s(!0),(t.delivery_method==="instant"||t.delivery_method==="both")&&t.download_url&&setTimeout(()=>{const G=document.createElement("a");G.href=t.download_url,G.target="_blank",G.rel="noopener",G.download="",document.body.appendChild(G),G.click(),G.remove()},600)}catch(V){console.error("lead magnet submit failed",V)}finally{m(!1)}}};if(!r)return null;const L=t.theme_color||"#2563eb",M=e?t.position==="bottom-left"?"absolute left-4 bottom-4":"absolute right-4 bottom-4":t.position==="bottom-left"?"fixed left-4 bottom-4 md:left-6 md:bottom-6":"fixed right-4 bottom-4 md:right-6 md:bottom-6";if(t.display_style==="bar")return o.jsxs("div",{className:e?"absolute left-0 right-0 bottom-0 z-10":"fixed left-0 right-0 bottom-0 z-[75]",style:{paddingBottom:"env(safe-area-inset-bottom)"},children:[o.jsx("div",{className:"text-white shadow-2xl",style:{background:`linear-gradient(90deg, ${L}, ${D2(L,-20)})`},children:o.jsxs("div",{className:"max-w-6xl mx-auto px-4 py-3 flex items-center gap-3 flex-wrap",children:[o.jsx(Yh,{className:"w-5 h-5 shrink-0"}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("p",{className:"text-sm font-semibold truncate",children:t.title}),o.jsx("p",{className:"text-xs text-white/80 truncate",children:t.description})]}),o.jsx("button",{onClick:()=>{a(!0),E("expand")},className:"px-4 py-2 rounded-lg text-sm font-semibold bg-white shrink-0 hover:bg-white/95 transition",style:{color:L},children:t.download_label}),o.jsx("button",{onClick:C,className:"text-white/80 hover:text-white","aria-label":"Close",children:o.jsx(Zs,{className:"w-4 h-4"})})]})}),i&&D()]});if(!i)return o.jsxs(o.Fragment,{children:[o.jsxs("button",{onClick:()=>{a(!0),E("expand")},className:`${M} z-[75] group flex items-center gap-3 pl-3 pr-4 py-3 rounded-2xl shadow-2xl hover:shadow-3xl transition-all hover:scale-[1.03] animate-in fade-in slide-in-from-bottom-4 duration-500`,style:{background:`linear-gradient(135deg, ${L}, ${D2(L,-20)})`,paddingBottom:"env(safe-area-inset-bottom)"},children:[o.jsx("div",{className:"w-10 h-10 rounded-xl bg-white/20 backdrop-blur flex items-center justify-center text-white",children:o.jsx(o1,{className:"w-5 h-5"})}),o.jsxs("div",{className:"text-left text-white",children:[o.jsx("div",{className:"text-[10px] uppercase tracking-wider opacity-90 font-semibold",children:t.badge_label}),o.jsx("div",{className:"text-sm font-bold leading-tight max-w-[180px] truncate",children:t.title})]}),o.jsx("button",{onClick:B=>{B.stopPropagation(),C()},className:"ml-1 w-6 h-6 rounded-full bg-white/20 hover:bg-white/30 flex items-center justify-center text-white","aria-label":"Close",children:o.jsx(Zs,{className:"w-3 h-3"})})]}),i&&D()]});return D();function D(){const B=t.form_fields||["name","email"],V=t.agent||{},G=[V.first_name,V.last_name].filter(Boolean).join(" ");return o.jsx("div",{className:e?"absolute inset-0 flex items-center justify-center p-4 z-20":"fixed inset-0 z-[85] flex items-center justify-center p-4",style:{background:e?"transparent":"rgba(0,0,0,0.6)"},onClick:()=>a(!1),children:o.jsxs("div",{className:"relative w-full max-w-lg bg-background rounded-2xl shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-300",onClick:W=>W.stopPropagation(),children:[o.jsxs("div",{className:"relative h-44 sm:h-52 overflow-hidden",style:{background:`linear-gradient(135deg, ${L}, ${D2(L,-25)})`},children:[t.cover_image_url?o.jsx("img",{src:t.cover_image_url,alt:t.title,className:"w-full h-full object-cover opacity-90"}):o.jsx("div",{className:"w-full h-full flex items-center justify-center",children:o.jsx(Im,{className:"w-20 h-20 text-white/40"})}),o.jsxs("div",{className:"absolute top-3 left-3 inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-semibold bg-white shadow",style:{color:L},children:[o.jsx(Yh,{className:"w-3 h-3"}),t.badge_label]}),o.jsx("button",{onClick:()=>a(!1),className:"absolute top-3 right-3 w-8 h-8 rounded-full bg-white/95 hover:bg-white flex items-center justify-center text-foreground/70 hover:text-foreground transition","aria-label":"Close",children:o.jsx(Zs,{className:"w-4 h-4"})})]}),o.jsxs("div",{className:"p-6 sm:p-7 space-y-4",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"text-2xl font-extrabold tracking-tight leading-tight",children:t.title}),o.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:t.description})]}),c?o.jsxs("div",{className:"rounded-xl p-5 text-center space-y-2",style:{background:`${L}10`},children:[o.jsx(Zl,{className:"w-8 h-8 mx-auto",style:{color:L}}),o.jsx("p",{className:"text-sm font-medium",style:{color:L},children:t.success_message}),t.download_url&&o.jsx("a",{href:t.download_url,target:"_blank",rel:"noopener",className:"inline-block mt-2 text-xs underline",style:{color:L},children:"Click here if download didn't start"})]}):t.form_enabled?o.jsxs("form",{onSubmit:N,className:"space-y-2.5",children:[B.includes("name")&&o.jsx("input",{type:"text",placeholder:"Your name",value:x.name,onChange:W=>_({...x,name:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":L},required:!0}),B.includes("email")&&o.jsx("input",{type:"email",placeholder:"you@email.com",value:x.email,onChange:W=>_({...x,email:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":L},required:!0}),B.includes("phone")&&o.jsx("input",{type:"tel",placeholder:"Phone (optional)",value:x.phone,onChange:W=>_({...x,phone:W.target.value}),className:"w-full px-4 py-3 text-sm rounded-lg border border-input bg-background focus:outline-none focus:ring-2 transition",style:{"--tw-ring-color":L}}),o.jsxs("button",{type:"submit",disabled:f,className:"w-full py-3 rounded-lg font-semibold text-white shadow-lg hover:opacity-95 active:scale-[0.99] transition disabled:opacity-60 inline-flex items-center justify-center gap-2",style:{background:`linear-gradient(135deg, ${L}, ${D2(L,-20)})`},children:[o.jsx(Zl,{className:"w-4 h-4"}),f?"Sending...":t.download_label]}),o.jsx("p",{className:"text-[10px] text-center text-muted-foreground pt-1",children:"We'll email you a copy too. No spam — promise."})]}):o.jsx("a",{href:t.download_url||"#",target:"_blank",rel:"noopener",onClick:()=>E("cta_click",{url:t.download_url}),className:"block w-full text-center py-3 rounded-lg font-semibold text-white shadow-lg",style:{background:`linear-gradient(135deg, ${L}, ${D2(L,-20)})`},children:t.download_label}),G&&o.jsxs("p",{className:"text-[11px] text-center text-muted-foreground",children:["Curated by ",G]})]})]})})}}function D2(t,e){try{const r=parseInt(t.slice(1),16),n=e<0?0:255,i=Math.abs(e)/100,a=r>>16,c=r>>8&255,s=r&255,f=Math.round((n-a)*i)+a,m=Math.round((n-c)*i)+c,x=Math.round((n-s)*i)+s;return"#"+(16777216+(f<<16)+(m<<8)+x).toString(16).slice(1)}catch{return t}}function LW({slug:t}){const[e,r]=P.useState(null);return P.useEffect(()=>{if(!t)return;let n=!1;return(async()=>{const{data:i,error:a}=await De.rpc("get_public_lead_magnet_config",{_slug:t});!n&&!a&&i&&r(i)})(),()=>{n=!0}},[t]),e?o.jsx(HMt,{config:e}):null}function DW({siteConfig:t,className:e="",iconClassName:r=""}){var a;const n=((a=t==null?void 0:t.themeConfig)==null?void 0:a.socialLinks)||null;if(!n)return null;const i=[{key:"facebook",url:n.facebook,Icon:Nhe,label:"Facebook"},{key:"instagram",url:n.instagram,Icon:Lhe,label:"Instagram"},{key:"linkedin",url:n.linkedin,Icon:Fhe,label:"LinkedIn"},{key:"youtube",url:n.youtube,Icon:hLe,label:"YouTube"}].filter(c=>!!c.url);return i.length?o.jsx("div",{className:`flex items-center gap-3 ${e}`,children:i.map(({key:c,url:s,Icon:f,label:m})=>o.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer","aria-label":m,className:`inline-flex items-center justify-center h-9 w-9 rounded-full border border-current/20 opacity-70 hover:opacity-100 transition-opacity ${r}`,children:o.jsx(f,{className:"h-4 w-4"})},c))}):null}const WMt="7605cc2e-ce21-4f4f-8bb1-4c0f217b1109";function KMt({children:t,siteConfig:e}){var Pn,Yn,ki,wi,Ci,Gs,vi,sa,ts;const r=Ji(),n=$a(),[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(!1),[x,_]=P.useState([]),[T,E]=P.useState([]),[C,N]=P.useState([]),[L,M]=P.useState(null),D=P.useRef(null),B=P.useRef(null),{user:V,profile:G,signOut:W}=n3();aW(e,V==null?void 0:V.id),oW(e,V==null?void 0:V.id);const Z=((Pn=e.agent)==null?void 0:Pn.full_name)||"Agent",Q=e.siteTitle||`${Z} Real Estate`,se=r.pathname==="/search",ie=r.pathname==="/",ue=e.leadRegistrationMode!=="disabled",be=e.id===WMt;P.useEffect(()=>{(async()=>{const{data:ni}=await De.from("lead_site_city_pages").select("city_name, city_slug").eq("site_id",e.id).eq("is_published",!0).order("sort_order",{ascending:!0});_(ni||[])})()},[e.id]),P.useEffect(()=>{(async()=>{const{data:ni}=await De.from("lead_site_menu_items").select("*").eq("site_id",e.id).order("sort_order",{ascending:!0});N(ni||[]),E((ni||[]).filter(rs=>rs.is_visible!==!1))})()},[e.id]),P.useEffect(()=>{const Pr=ni=>{D.current&&!D.current.contains(ni.target)&&m(!1),B.current&&!B.current.contains(ni.target)&&M(null)};return document.addEventListener("mousedown",Pr),()=>document.removeEventListener("mousedown",Pr)},[]);const Te=Ky(e),we=e==null?void 0:e.bookingUrl,{data:Oe}=i3(Te?e.agentId:null),Ae=((Oe==null?void 0:Oe.length)??0)>0,{data:Se}=tW(e.agentId),ge=((Se==null?void 0:Se.length)??0)>0,je=T.filter(Pr=>{const ni=String(Pr.target_url||"").toLowerCase().replace(/\/+$/,""),rs=String(Pr.label||"").toLowerCase();return!(Te&&(ni==="/search"||ni.startsWith("/search?")||rs.includes("search"))||ni==="/listings"&&Te&&!Ae||ni==="/sold"&&!ge)}),_e=Te&&Ae&&je.length>0&&!je.some(Pr=>String(Pr.target_url||"").toLowerCase().startsWith("/listings"))?[...je,{id:"__my-listings",label:"My Listings",target_url:"/listings",parent_id:null,is_visible:!0}]:je,xe=_e.length>0,Pe=[{to:"/",label:"Home"},...Te?[]:[{to:"/search",label:"Search"}],...Te&&Ae?[{to:"/listings",label:"My Listings"}]:[],...ge?[{to:"/sold",label:"Sold"}]:[],{to:"/sell",label:"Sell"},{to:"/blog",label:"Blog"},{to:"/community",label:"Community"},{to:"/about",label:"About"},{to:"/contact",label:"Contact"}],Ze=_e.filter(Pr=>!Pr.parent_id),at=Pr=>_e.filter(ni=>ni.parent_id===Pr),lt=C.filter(Pr=>!Pr.parent_id),xt=new Set([...lt,...Ze].filter(Pr=>String(Pr.target_url||"").trim()!=="").map(Pr=>String(Pr.target_url).toLowerCase().replace(/\/+$/,"")||"/")),St=new Set([...lt,...Ze].map(Pr=>String(Pr.label||"").trim().toLowerCase())),_t=["/","/search","/about","/contact","/sell","/blog"].some(Pr=>xt.has(Pr)),Rt=_t?[]:Pe.filter(Pr=>!xt.has(Pr.to.toLowerCase())&&!St.has(Pr.label.toLowerCase())),er=_t?Ze.filter(Pr=>Pr.is_visible!==!1&&String(Pr.target_url||"").trim()!=="").map(Pr=>({to:String(Pr.target_url),label:String(Pr.label||"").trim()||"Link"})):Rt,vt=lt.find(Pr=>Pr.item_type==="cities"),xr=String((vt==null?void 0:vt.label)||"Cities").trim()||"Cities",_r=x.length>0&&!be,tn=_r&&!vt,or=Pr=>`px-4 py-2 rounded-lg text-sm font-medium tracking-wide transition-colors ${Pr?ie?"bg-white/15 text-white":"bg-gray-100 text-gray-900":ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,Sr=r.pathname.startsWith("/homes-for-sale-in-"),jr=Pr=>o.jsxs("div",{ref:D,className:"relative",children:[o.jsxs("button",{onClick:()=>m(!f),className:`flex items-center gap-1 ${or(Sr)}`,children:[Pr," ",o.jsx(Yd,{className:`h-3.5 w-3.5 transition-transform ${f?"rotate-180":""}`})]}),f&&o.jsx("div",{className:"absolute top-full right-0 mt-2 w-52 bg-white rounded-xl shadow-xl border border-gray-100 py-2 z-50 animate-in fade-in slide-in-from-top-2 duration-150",children:x.map(ni=>o.jsx("button",{onClick:()=>{n(`/homes-for-sale-in-${ni.city_slug}`),m(!1)},className:"w-full text-left px-4 py-2.5 text-sm text-gray-700 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:ni.city_name},ni.city_slug))})]},"__cities"),Qt=Pr=>o.jsxs("div",{children:[o.jsx("div",{className:`px-3 pt-3 pb-1 text-xs font-semibold uppercase tracking-wider ${ie?"text-white/40":"text-gray-400"}`,children:Pr}),x.map(ni=>o.jsx(zi,{to:`/homes-for-sale-in-${ni.city_slug}`,onClick:()=>a(!1),className:`block px-3 py-2.5 rounded-lg text-sm font-medium ${r.pathname===`/homes-for-sale-in-${ni.city_slug}`?ie?"bg-white/15 text-white":"bg-gray-100 text-gray-900":ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`,children:ni.city_name},ni.city_slug))]},"__cities-mobile"),Je=ie?"bg-transparent text-white":"bg-white/95 backdrop-blur text-gray-900 border-b border-gray-100 shadow-sm",Tt=e.seoMetaTitle||e.siteTitle||`${Z} - Real Estate`,Dt=e.seoMetaDescription||e.siteTagline||`Browse homes and listings with ${Z}`,cr=e.ogImageUrl||((Yn=e.agent)==null?void 0:Yn.avatar_url)||"",lr=e.customDomain?`https://${e.customDomain}`:`https://${e.subdomainSlug||""}.thelocalmove.com`,ur=nW(e.siteTitle,Z),Rr=(e.googleSearchConsoleVerification||"").trim().replace(/^google-site-verification[=:]\s*/i,"").replace(/^content=/i,"").replace(/^["']|["']$/g,"");return o.jsxs("div",{className:`flex flex-col ${se?"h-screen overflow-hidden":"min-h-screen"} bg-white`,children:[o.jsx(iW,{siteConfig:e,pagePath:r.pathname}),(!be||r.pathname==="/p/frequently-asked-questions")&&o.jsx(sW,{siteConfig:e}),o.jsxs(Il,{children:[o.jsx("title",{children:Tt}),o.jsx("meta",{name:"description",content:Dt}),Rr&&o.jsx("meta",{name:"google-site-verification",content:Rr}),o.jsx("meta",{property:"og:site_name",content:ur}),o.jsx("meta",{property:"og:title",content:Tt}),o.jsx("meta",{property:"og:description",content:Dt}),o.jsx("meta",{property:"og:type",content:"website"}),o.jsx("meta",{property:"og:url",content:lr+r.pathname}),cr&&o.jsx("meta",{property:"og:image",content:cr}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),o.jsx("meta",{name:"twitter:title",content:Tt}),o.jsx("meta",{name:"twitter:description",content:Dt}),cr&&o.jsx("meta",{name:"twitter:image",content:cr}),e.faviconUrl&&o.jsx("link",{rel:"icon",href:e.faviconUrl,type:"image/png"}),o.jsx("link",{rel:"canonical",href:`${lr}${r.pathname}`}),e.subdomainSlug==="matthogg"&&o.jsx("script",{src:"https://analytics.ahrefs.com/analytics.js","data-key":"kyFjzruyvE0yTdMokzgCBw",async:!0})]}),o.jsxs("header",{className:`${ie?"absolute":"sticky"} top-0 left-0 right-0 z-50 transition-all ${Je}`,children:[o.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between h-20",children:[o.jsxs(zi,{to:"/",className:"flex items-center gap-3",children:[e.showTeamLogo&&e.teamLogoUrl?o.jsx("img",{src:e.teamLogoUrl,alt:`${Q} logo`,className:`${nPt(e.headerLogoSize)} w-auto object-contain`}):(ki=e.agent)!=null&&ki.avatar_url?o.jsx("img",{src:e.agent.avatar_url,alt:Z,className:"h-10 w-10 rounded-full object-cover ring-2 ring-white/20"}):null,o.jsx("div",{children:o.jsx("span",{className:"font-bold text-lg leading-none tracking-tight",children:Q})})]}),o.jsxs("nav",{className:"hidden md:flex items-center gap-1",children:[e.bookingUrl&&!be&&o.jsx(wm,{bookingUrl:e.bookingUrl,label:"Schedule",size:"sm",className:"order-last ml-3",source:"nav"}),Rt.map(Pr=>o.jsx(zi,{to:Pr.to,className:`px-4 py-2 rounded-lg text-sm font-medium tracking-wide transition-colors ${r.pathname===Pr.to?ie?"bg-white/15 text-white":"bg-gray-100 text-gray-900":ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,children:Pr.label},Pr.to)),xe&&Ze.map(Pr=>{if(Pr.item_type==="cities")return _r?jr(String(Pr.label||"Cities")):null;if(Pr.item_type==="dropdown"){const ni=at(Pr.id);return o.jsxs("div",{ref:B,className:"relative",children:[o.jsxs("button",{onClick:()=>M(L===Pr.id?null:Pr.id),className:`flex items-center gap-1 px-4 py-2 rounded-lg text-sm font-medium tracking-wide transition-colors ${ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,children:[Pr.label," ",o.jsx(Yd,{className:`h-3.5 w-3.5 transition-transform ${L===Pr.id?"rotate-180":""}`})]}),L===Pr.id&&ni.length>0&&o.jsx("div",{className:"absolute top-full right-0 mt-2 w-52 bg-white rounded-xl shadow-xl border border-gray-100 py-2 z-50 animate-in fade-in slide-in-from-top-2 duration-150",children:ni.map(rs=>o.jsx(rR,{item:rs,onClick:()=>M(null),className:"w-full text-left px-4 py-2.5 text-sm text-gray-700 hover:bg-gray-50 hover:text-gray-900 transition-colors block"},rs.id))})]},Pr.id)}return o.jsx(rR,{item:Pr,className:`px-4 py-2 rounded-lg text-sm font-medium tracking-wide transition-colors ${ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`},Pr.id)}),tn&&jr(xr),!be&&(V?o.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[o.jsxs(zi,{to:"/account",className:`flex items-center gap-1.5 px-3 py-2 rounded-lg text-sm font-medium transition-colors ${ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,children:[o.jsx(tp,{className:"h-4 w-4"}),o.jsx("span",{className:"hidden lg:inline",children:"Saved"})]}),o.jsxs(zi,{to:"/account",className:`flex items-center gap-1.5 px-3 py-2 rounded-lg text-sm font-medium transition-colors ${ie?"text-white/70 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-900 hover:bg-gray-50"}`,children:[o.jsx(kl,{className:"h-4 w-4"}),o.jsx("span",{className:"hidden lg:inline",children:((wi=G==null?void 0:G.name)==null?void 0:wi.split(" ")[0])||"Account"})]})]}):ue?o.jsx("button",{onClick:()=>s(!0),className:`ml-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors ${ie?"bg-white/15 text-white hover:bg-white/25":"bg-blue-600 text-white hover:bg-blue-700"}`,children:"Sign In"}):null)]}),o.jsx("button",{onClick:()=>a(!i),"aria-label":i?"Close menu":"Open menu","aria-expanded":i,className:`md:hidden p-2 rounded-lg ${ie?"text-white hover:bg-white/10":"text-gray-600 hover:bg-gray-100"}`,children:i?o.jsx(Zs,{className:"h-5 w-5"}):o.jsx(VM,{className:"h-5 w-5"})})]})}),i&&o.jsx("div",{className:`md:hidden border-t ${ie?"border-white/10 bg-black/95 backdrop-blur":"border-gray-100 bg-white"} max-h-[calc(100vh-5rem)] overflow-y-auto overscroll-contain`,children:o.jsxs("div",{className:"px-4 py-3 space-y-1 pb-8",children:[e.bookingUrl&&!be&&o.jsx(wm,{bookingUrl:e.bookingUrl,label:"Schedule a Free Consultation",size:"sm",className:"w-full mb-3",source:"mobile_nav"}),Rt.map(Pr=>o.jsx(zi,{to:Pr.to,onClick:()=>a(!1),className:`block px-3 py-2.5 rounded-lg text-sm font-medium ${r.pathname===Pr.to?ie?"bg-white/15 text-white":"bg-gray-100 text-gray-900":ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`,children:Pr.label},Pr.to)),xe&&Ze.map(Pr=>{if(Pr.item_type==="cities")return _r?Qt(String(Pr.label||"Cities")):null;if(Pr.item_type==="dropdown"){const ni=at(Pr.id);return o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:`px-3 pt-3 pb-1 text-xs font-semibold uppercase tracking-wider ${ie?"text-white/40":"text-gray-400"}`,children:Pr.label}),ni.map(rs=>o.jsx(rR,{item:rs,onClick:()=>a(!1),className:`block px-3 py-2.5 rounded-lg text-sm font-medium ${ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`},rs.id))]},Pr.id)}return o.jsx(rR,{item:Pr,onClick:()=>a(!1),className:`block px-3 py-2.5 rounded-lg text-sm font-medium ${ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`},Pr.id)}),tn&&Qt(xr),!be&&(V?o.jsxs(o.Fragment,{children:[o.jsx(zi,{to:"/account",onClick:()=>a(!1),className:`block px-3 py-2.5 rounded-lg text-sm font-medium ${ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`,children:"My Account"}),o.jsx("button",{onClick:async()=>{await W(),a(!1)},className:`block w-full text-left px-3 py-2.5 rounded-lg text-sm font-medium ${ie?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-gray-50"}`,children:"Sign Out"})]}):ue?o.jsx("button",{onClick:()=>{s(!0),a(!1)},className:`block w-full text-left px-3 py-2.5 rounded-lg text-sm font-medium ${ie?"text-white/70 hover:bg-white/10":"text-blue-600 hover:bg-blue-50"}`,children:"Sign In / Register"}):null)]})})]}),o.jsx("main",{className:"flex-1 min-h-0 flex flex-col",children:t}),!se&&o.jsx("footer",{className:"bg-gray-950 text-gray-400",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-8 py-16",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-12",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[((Ci=e.agent)==null?void 0:Ci.avatar_url)&&o.jsx("img",{src:e.agent.avatar_url,alt:Z,className:"h-16 w-16 rounded-2xl object-cover ring-2 ring-white/10"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-bold text-white text-lg tracking-tight",children:Z}),o.jsx("p",{className:"text-sm text-gray-400",children:be?"Personal Real Estate Advisor":((Gs=e.agent)==null?void 0:Gs.title)||"Real Estate Professional"})]})]}),((vi=e.agent)==null?void 0:vi.phone)&&o.jsx("p",{className:"text-sm mt-3",children:o.jsxs("a",{href:`tel:${e.agent.phone}`,className:"hover:text-white transition-colors flex items-center gap-2",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," ",e.agent.phone]})}),((sa=e.agent)==null?void 0:sa.email)&&o.jsx("p",{className:"text-sm mt-1",children:o.jsxs("a",{href:`mailto:${e.agent.email}`,className:"hover:text-white transition-colors flex items-center gap-2",children:[o.jsx($i,{className:"h-3.5 w-3.5"})," ",e.agent.email]})}),o.jsx(DW,{siteConfig:e,className:"mt-4"}),be&&o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm mt-4",children:"Helping you find the right real estate agent, wherever you need one."}),o.jsx("p",{className:"text-sm mt-2",children:"Columbia, Missouri"})]})]}),o.jsxs("div",{children:[o.jsx("h2",{className:"font-semibold text-white mb-4 text-sm tracking-wider uppercase",children:"Quick Links"}),o.jsxs("ul",{className:"space-y-3 text-sm",children:[(be?[{to:"/p/how-it-works",label:"How It Works"},{to:"/p/about-tom",label:"About Tom"},{to:"/p/who-i-help",label:"Who I Help"},{to:"/p/frequently-asked-questions",label:"Frequently Asked Questions"},{to:"/p/call-tom-first",label:"Call Tom First"}]:er).map(Pr=>o.jsx("li",{children:/^https?:\/\//i.test(Pr.to)?o.jsx("a",{href:Pr.to,target:"_blank",rel:"noopener noreferrer",className:"hover:text-white transition-colors",children:Pr.label}):o.jsx(zi,{to:Pr.to,className:"hover:text-white transition-colors",children:Pr.label})},Pr.to)),we&&!be&&o.jsx("li",{children:o.jsx("a",{href:we,target:"_blank",rel:"noopener noreferrer",className:"hover:text-white transition-colors",children:"Schedule a Call"})})]}),x.length>0&&!be&&o.jsxs(o.Fragment,{children:[o.jsx("h2",{className:"font-semibold text-white mt-8 mb-4 text-sm tracking-wider uppercase",children:"Local Areas"}),o.jsx("ul",{className:"space-y-3 text-sm",children:x.map(Pr=>o.jsx("li",{children:o.jsx(zi,{to:`/homes-for-sale-in-${Pr.city_slug}`,className:"hover:text-white transition-colors",children:Pr.city_name})},Pr.city_slug))})]})]}),o.jsxs("div",{children:[o.jsx("h2",{className:"font-semibold text-white mb-4 text-sm tracking-wider uppercase",children:"Get In Touch"}),o.jsx("p",{className:"text-sm text-gray-400 leading-relaxed mb-4",children:be?"Helping you find the right real estate agent, wherever you need one.":Te?"Have a real estate question or need a trusted connection? Get in touch today.":"Ready to find your dream home? Get in touch today for a personalized consultation."}),o.jsx(zi,{to:be?"/p/call-tom-first":"/contact",className:"inline-block px-5 py-2.5 bg-white text-gray-900 text-sm font-semibold rounded-lg hover:bg-gray-100 transition-colors",children:be?"Call Tom First":"Contact Me"})]})]}),o.jsxs("div",{className:"mt-14 pt-6 border-t border-gray-800/50",children:[e.showTeamLogo&&e.teamLogoUrl&&o.jsx("div",{className:"flex items-center justify-center mb-6",children:o.jsx("img",{src:e.teamLogoUrl,alt:`${Q} logo`,className:`${iPt(e.headerLogoSize)} w-auto object-contain`})}),e.brokerageLegalName&&o.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-xs text-gray-400 mb-3",children:[o.jsxs("span",{children:[Z," · ",e.brokerageLegalName]}),e.agentLicenseNumber&&o.jsx("span",{children:e.agentLicenseNumber}),e.brokerageLicenseNumber&&o.jsxs("span",{children:["Brokerage #",e.brokerageLicenseNumber]})]}),e.mlsDisclaimerText&&o.jsxs("div",{className:"flex items-start justify-center gap-3 mb-4",children:[e.mlsLogoUrl&&o.jsx("img",{src:e.mlsLogoUrl,alt:"MLS",className:"h-8 w-auto flex-shrink-0 mt-0.5"}),o.jsx("p",{className:"text-[11px] text-gray-400 leading-relaxed max-w-3xl text-center",children:e.mlsDisclaimerText})]}),o.jsxs("div",{className:"flex items-center justify-center gap-4 text-xs text-gray-400",children:[e.equalHousingEnabled&&o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-5 w-5 text-gray-400",children:o.jsx("path",{d:"M12 2L2 8v2h20V8L12 2zm0 2.5L18.5 8h-13L12 4.5zM4 12v8h4v-6h8v6h4v-8H4zm6 8v-4h4v4h-4z"})}),o.jsx("span",{children:"Equal Housing Opportunity"})]}),o.jsxs("span",{children:["© ",new Date().getFullYear()," ",Z,". Powered by LevelUp."]})]})]})]})}),!se&&!be&&((ts=e.agent)==null?void 0:ts.avatar_url)&&o.jsx(YMt,{agent:e.agent,bookingUrl:we}),c&&o.jsx(rW,{open:c,mode:"optional",siteConfig:e,onComplete:()=>s(!1),onSkip:()=>s(!1)}),o.jsx(NW,{slug:e.subdomainSlug}),o.jsx(RW,{slug:e.subdomainSlug}),!be&&o.jsx(LW,{slug:e.subdomainSlug})]})}function YMt({agent:t,bookingUrl:e}){var a;const[r,n]=P.useState(!1),i=$a();return t?o.jsx("div",{className:`fixed right-6 z-40 ${e?"bottom-24 md:bottom-6":"bottom-6"}`,children:r?o.jsxs("div",{className:"bg-white rounded-2xl shadow-2xl border border-gray-200 w-72 overflow-hidden animate-in slide-in-from-bottom-4 fade-in duration-200",children:[o.jsxs("div",{className:"p-5",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[o.jsx("img",{src:t.avatar_url,alt:t.full_name,className:"h-12 w-12 rounded-full object-cover ring-2 ring-gray-100"}),o.jsxs("div",{children:[o.jsx("p",{className:"font-bold text-gray-900 text-sm",children:t.full_name}),o.jsx("p",{className:"text-xs text-gray-600",children:t.title||"Real Estate Professional"})]})]}),o.jsx("p",{className:"text-xs text-gray-600 mb-4",children:"Have questions about a property or the area? I'm here to help!"}),o.jsxs("div",{className:"space-y-2",children:[t.phone&&o.jsxs("a",{href:`tel:${t.phone}`,className:"flex items-center gap-2 w-full px-3 py-2 bg-gray-50 hover:bg-gray-100 rounded-xl text-sm text-gray-700 transition-colors",children:[o.jsx(Ui,{className:"h-4 w-4 text-gray-400"}),t.phone]}),t.email&&o.jsxs("a",{href:`mailto:${t.email}`,className:"flex items-center gap-2 w-full px-3 py-2 bg-gray-50 hover:bg-gray-100 rounded-xl text-sm text-gray-700 transition-colors",children:[o.jsx($i,{className:"h-4 w-4 text-gray-400"}),"Email Me"]}),o.jsx("button",{onClick:()=>{n(!1),i("/contact")},className:"w-full px-3 py-2.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-semibold rounded-xl transition-colors",children:"Ask a Question"}),e&&o.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"block text-center w-full px-3 py-2.5 bg-gray-900 hover:bg-gray-800 text-white text-sm font-semibold rounded-xl transition-colors",children:"Schedule a Call"})]})]}),o.jsx("button",{onClick:()=>n(!1),className:"absolute top-3 right-3 p-1 text-gray-400 hover:text-gray-600 rounded-full hover:bg-gray-100",children:o.jsx(Zs,{className:"h-4 w-4"})})]}):o.jsxs("button",{onClick:()=>n(!0),className:"group flex items-center gap-3 bg-white pl-1.5 pr-5 py-1.5 rounded-full shadow-xl border border-gray-200 hover:shadow-2xl transition-all hover:scale-105",children:[o.jsx("img",{src:t.avatar_url,alt:t.full_name,className:"h-10 w-10 rounded-full object-cover ring-2 ring-blue-100"}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-xs font-bold text-gray-900 leading-none",children:(a=t.full_name)==null?void 0:a.split(" ")[0]}),o.jsx("p",{className:"text-[10px] text-blue-600 font-medium mt-0.5",children:"Chat with me →"})]})]})}):null}function rR({item:t,className:e,onClick:r}){const n=t.target_url||"#";return/^(https?:)?\/\//i.test(n)||/^(mailto:|tel:)/i.test(n)?o.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:e,onClick:r,children:t.label}):o.jsx(zi,{to:n,className:e,onClick:r,children:t.label})}const Zle={california:"California DRE License",ca:"California DRE License"};function rq(t){const e=(t||"").trim();if(!e)return"Real Estate License";const r=e.toLowerCase();return Zle[r]?Zle[r]:`${e.replace(/\b\w/g,i=>i.toUpperCase())} Real Estate License`}function Xle(t){if(t)return t.replace(/^\s*DRE\s*#?\s*/i,"").replace(/^\s*#/,"").trim()||void 0}function ZMt({children:t,siteConfig:e}){var er,vt,xr,_r,tn,or,Sr,jr;const r=Ji(),n=$a(),[i,a]=P.useState(!1),[c,s]=P.useState(!1),[f,m]=P.useState(!1),[x,_]=P.useState(!1),[T,E]=P.useState([]),[C,N]=P.useState(!1),L=P.useRef(null),M=P.useRef(null),{user:D,profile:B,signOut:V}=n3();aW(e,D==null?void 0:D.id),oW(e,D==null?void 0:D.id);const G=((er=e.agent)==null?void 0:er.full_name)||"Agent",W=Xle(e.agentLicenseNumber),Z=Xle(e.brokerageLicenseNumber),Q=e.siteTitle||`${G} Real Estate`,se=Qt=>{if(!Qt)return Qt;const Je=G.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Tt=new RegExp(`^\\s*${Je}\\s*[|\\-–—:]\\s*`,"i");return Qt.replace(Tt,"").trim()},ie=Q&&Q!==`${G} Real Estate`?Q:null,ue=ie?se(ie):null,be=ue&&ue.toLowerCase()!==G.toLowerCase()?ue:null,Te=r.pathname==="/search",we=r.pathname==="/",Oe=e.leadRegistrationMode!=="disabled",Ae="#c9a96e",Se=e.bookingUrl;P.useEffect(()=>{const Qt=()=>N(window.scrollY>80);return window.addEventListener("scroll",Qt,{passive:!0}),()=>window.removeEventListener("scroll",Qt)},[]),P.useEffect(()=>{(async()=>{const{data:Je}=await De.from("lead_site_city_pages").select("city_name, city_slug").eq("site_id",e.id).eq("is_published",!0).order("sort_order",{ascending:!0});E(Je||[])})()},[e.id]),P.useEffect(()=>{const Qt=Je=>{L.current&&!L.current.contains(Je.target)&&m(!1),M.current&&!M.current.contains(Je.target)&&_(!1)};return document.addEventListener("mousedown",Qt),()=>document.removeEventListener("mousedown",Qt)},[]);const ge=(((vt=e.themeConfig)==null?void 0:vt.focusPages)??[]).filter(Qt=>Qt==null?void 0:Qt.slug).map(Qt=>({to:`/${Qt.slug}`,label:Qt.navLabel||Qt.title})),je=pEe(e)||Ky(e),{data:_e}=i3(je?e.agentId:null),xe=((_e==null?void 0:_e.length)??0)>0,{data:Pe}=tW(e.agentId),Ze=((Pe==null?void 0:Pe.length)??0)>0,at=[{to:"/",label:"Home"},...je?xe?[{to:"/listings",label:"My Listings"}]:[]:[{to:"/search",label:"Search"}],...Ze?[{to:"/sold",label:"Sold"}]:[],{to:"/sell",label:"Sell"},{to:"/blog",label:"Blog"},{to:"/community",label:"Community"},{to:"/about",label:"About"},{to:"/contact",label:"Contact"}],lt=[...at,...ge],xt=e.siteTitle||`${G} - Real Estate`,St=e.siteTagline||`Browse homes and listings with ${G}`,Xt=e.ogImageUrl||((xr=e.agent)==null?void 0:xr.avatar_url)||"",_t=e.customDomain?`https://${e.customDomain}`:`https://${e.subdomainSlug||""}.thelocalmove.com`,Rt=we?C?"bg-[#0d0b0a]/95 backdrop-blur-lg border-b border-white/5":"bg-transparent":"bg-[#0d0b0a] border-b border-white/5";return o.jsxs("div",{className:`flex flex-col ${Te?"h-screen overflow-hidden":"min-h-screen"} bg-[#0d0b0a]`,children:[o.jsx(iW,{siteConfig:e,pagePath:r.pathname}),o.jsx(sW,{siteConfig:e}),o.jsxs(Il,{children:[o.jsx("title",{children:xt}),o.jsx("meta",{name:"description",content:St}),o.jsx("meta",{property:"og:title",content:xt}),o.jsx("meta",{property:"og:description",content:St}),o.jsx("meta",{property:"og:type",content:"website"}),o.jsx("meta",{property:"og:url",content:_t+r.pathname}),Xt&&o.jsx("meta",{property:"og:image",content:Xt}),o.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),o.jsx("meta",{name:"twitter:title",content:xt}),o.jsx("meta",{name:"twitter:description",content:St}),Xt&&o.jsx("meta",{name:"twitter:image",content:Xt}),e.faviconUrl&&o.jsx("link",{rel:"icon",href:e.faviconUrl,type:"image/png"}),o.jsx("link",{rel:"canonical",href:`${_t}${r.pathname}`}),o.jsx("link",{href:"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap",rel:"stylesheet"})]}),o.jsxs("header",{className:`${we?"fixed":"sticky"} top-0 left-0 right-0 z-50 transition-all duration-500 ${Rt}`,children:[o.jsx("div",{className:"max-w-7xl mx-auto px-6 lg:px-8",children:o.jsxs("div",{className:"flex items-center justify-between min-h-20 py-3 gap-6",children:[o.jsxs(zi,{to:"/",className:"flex items-center gap-3 shrink-0",children:[e.showTeamLogo&&e.teamLogoUrl&&o.jsx("img",{src:e.teamLogoUrl,alt:`${G} brokerage logo`,className:"h-9 sm:h-11 w-auto max-w-[150px] object-contain"}),o.jsxs("span",{className:"flex flex-col leading-tight",children:[o.jsx("span",{className:"block whitespace-nowrap text-white text-base sm:text-lg xl:text-xl tracking-tight",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:G}),e.brokerageLegalName&&o.jsx("span",{className:"hidden sm:block whitespace-nowrap text-[10px] sm:text-[11px] tracking-[0.14em] uppercase text-white/60",children:e.brokerageLegalName}),be&&o.jsx("span",{className:"hidden xl:block whitespace-nowrap text-[10px] tracking-[0.18em] uppercase text-white/40",children:be})]})]}),o.jsxs("nav",{className:"hidden lg:flex items-center justify-end gap-0 flex-1 min-w-0",children:[at.map(Qt=>o.jsx(zi,{to:Qt.to,className:`whitespace-nowrap px-2.5 xl:px-4 py-2 text-xs tracking-[0.15em] uppercase transition-colors duration-300 ${r.pathname===Qt.to?"text-white":"text-white/40 hover:text-white"}`,children:Qt.label},Qt.to)),ge.length>0&&o.jsxs("div",{ref:M,className:"relative",children:[o.jsxs("button",{onClick:()=>_(!x),className:`flex items-center gap-1 whitespace-nowrap px-2.5 xl:px-4 py-2 text-xs tracking-[0.15em] uppercase transition-colors duration-300 ${ge.some(Qt=>r.pathname===Qt.to)?"text-white":"text-white/40 hover:text-white"}`,children:["Specialty"," ",o.jsx(Yd,{className:`h-3 w-3 transition-transform ${x?"rotate-180":""}`})]}),x&&o.jsx("div",{className:"absolute top-full right-0 mt-2 w-56 bg-[#1a1715] border border-white/10 py-2 z-50 animate-in fade-in slide-in-from-top-2 duration-150",children:ge.map(Qt=>o.jsx(zi,{to:Qt.to,onClick:()=>_(!1),className:`block px-5 py-2.5 text-xs tracking-wider text-white/50 hover:text-white hover:bg-white/5 uppercase transition-colors ${r.pathname===Qt.to?"text-white":""}`,children:Qt.label},Qt.to))})]}),T.length>0&&o.jsxs("div",{ref:L,className:"relative",children:[o.jsxs("button",{onClick:()=>m(!f),className:`flex items-center gap-1 whitespace-nowrap px-2.5 xl:px-4 py-2 text-xs tracking-[0.15em] uppercase transition-colors duration-300 ${r.pathname.startsWith("/homes-for-sale-in-")?"text-white":"text-white/40 hover:text-white"}`,children:["Cities ",o.jsx(Yd,{className:`h-3 w-3 transition-transform ${f?"rotate-180":""}`})]}),f&&o.jsx("div",{className:"absolute top-full right-0 mt-2 w-56 bg-[#1a1715] border border-white/10 py-2 z-50 animate-in fade-in slide-in-from-top-2 duration-150",children:T.map(Qt=>o.jsx("button",{onClick:()=>{n(`/homes-for-sale-in-${Qt.city_slug}`),m(!1)},className:"w-full text-left px-5 py-2.5 text-xs tracking-wider text-white/50 hover:text-white hover:bg-white/5 uppercase transition-colors",children:Qt.city_name},Qt.city_slug))})]}),D?o.jsxs("div",{className:"flex items-center gap-1 ml-3",children:[o.jsxs(zi,{to:"/account",className:"flex items-center gap-1.5 px-3 py-2 text-xs tracking-wider text-white/40 hover:text-white uppercase transition-colors",children:[o.jsx(tp,{className:"h-3.5 w-3.5"}),o.jsx("span",{className:"hidden xl:inline",children:"Saved"})]}),o.jsxs(zi,{to:"/account",className:"flex items-center gap-1.5 px-3 py-2 text-xs tracking-wider text-white/40 hover:text-white uppercase transition-colors",children:[o.jsx(kl,{className:"h-3.5 w-3.5"}),o.jsx("span",{className:"hidden xl:inline",children:((_r=B==null?void 0:B.name)==null?void 0:_r.split(" ")[0])||"Account"})]})]}):Oe?o.jsx("button",{onClick:()=>s(!0),className:"ml-3 px-5 py-2 text-xs tracking-[0.2em] uppercase border border-white/20 text-white/60 hover:bg-white hover:text-black transition-all duration-500",children:"Sign In"}):null,Se&&o.jsx(wm,{bookingUrl:Se,label:"Schedule",size:"sm",className:"ml-3",source:"nav"})]}),o.jsxs("button",{onClick:()=>a(!i),className:"lg:hidden p-2 text-white/60 hover:text-white",children:[o.jsx("div",{className:"flex flex-col items-center gap-0.5",children:i?o.jsx(Zs,{className:"h-5 w-5"}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"w-6 h-px bg-current"}),o.jsx("div",{className:"w-4 h-px bg-current mt-1.5"}),o.jsx("div",{className:"w-6 h-px bg-current mt-1.5"})]})}),o.jsx("span",{className:"text-[8px] tracking-[0.3em] uppercase mt-1 block",children:"MENU"})]})]})}),i&&o.jsx("div",{className:"lg:hidden border-t border-white/5 bg-[#0d0b0a]/98 backdrop-blur-lg",children:o.jsxs("div",{className:"px-6 py-4 space-y-1",children:[Se&&o.jsx(wm,{bookingUrl:Se,label:"Schedule a Free Consultation",size:"sm",className:"w-full mb-3",source:"mobile_nav"}),at.map(Qt=>o.jsx(zi,{to:Qt.to,onClick:()=>a(!1),className:`block px-3 py-3 text-xs tracking-[0.2em] uppercase transition-colors ${r.pathname===Qt.to?"text-white":"text-white/40 hover:text-white"}`,children:Qt.label},Qt.to)),ge.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"px-3 pt-4 pb-2 text-[10px] tracking-[0.3em] uppercase",style:{color:Ae},children:"Specialty"}),ge.map(Qt=>o.jsx(zi,{to:Qt.to,onClick:()=>a(!1),className:`block px-3 py-2.5 text-xs tracking-wider uppercase transition-colors ${r.pathname===Qt.to?"text-white":"text-white/40 hover:text-white"}`,children:Qt.label},Qt.to))]}),T.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"px-3 pt-4 pb-2 text-[10px] tracking-[0.3em] uppercase",style:{color:Ae},children:"Cities"}),T.map(Qt=>o.jsx(zi,{to:`/homes-for-sale-in-${Qt.city_slug}`,onClick:()=>a(!1),className:"block px-3 py-2.5 text-xs tracking-wider text-white/40 hover:text-white uppercase transition-colors",children:Qt.city_name},Qt.city_slug))]}),D?o.jsxs(o.Fragment,{children:[o.jsx(zi,{to:"/account",onClick:()=>a(!1),className:"block px-3 py-3 text-xs tracking-[0.2em] uppercase text-white/40 hover:text-white",children:"My Account"}),o.jsx("button",{onClick:async()=>{await V(),a(!1)},className:"block w-full text-left px-3 py-3 text-xs tracking-[0.2em] uppercase text-white/40 hover:text-white",children:"Sign Out"})]}):Oe?o.jsx("button",{onClick:()=>{s(!0),a(!1)},className:"block w-full text-left px-3 py-3 text-xs tracking-[0.2em] uppercase text-white/40 hover:text-white",children:"Sign In / Register"}):null]})})]}),o.jsx("main",{className:"flex-1 min-h-0 flex flex-col",children:t}),!Te&&o.jsx("footer",{className:"bg-[#0a0908] text-white/70 border-t border-white/10",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6 lg:px-8 py-20",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-16",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"text-white text-xl tracking-tight mb-3",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:G}),o.jsx("p",{className:"text-white/70 text-xs tracking-[0.15em] uppercase mb-6",children:((tn=e.agent)==null?void 0:tn.title)||"Real Estate Professional"}),(W||Z)&&o.jsxs("div",{className:"mb-6 p-4 border border-white/10 bg-white/5",children:[W&&o.jsxs("p",{className:"text-sm text-white font-medium tracking-wide",children:[rq(e.licenseState)," #",W]}),Z&&o.jsxs("p",{className:"text-xs text-white/70 tracking-wider uppercase mt-1",children:["Brokerage License #",Z]})]}),((or=e.agent)==null?void 0:or.phone)&&o.jsxs("a",{href:`tel:${e.agent.phone}`,className:"flex items-center gap-3 text-sm text-white/70 hover:text-white transition-colors mb-3",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," ",e.agent.phone]}),((Sr=e.agent)==null?void 0:Sr.email)&&o.jsxs("a",{href:`mailto:${e.agent.email}`,className:"flex items-center gap-3 text-sm text-white/70 hover:text-white transition-colors",children:[o.jsx($i,{className:"h-3.5 w-3.5"})," ",e.agent.email]}),o.jsx(DW,{siteConfig:e,className:"mt-6",iconClassName:"border-white/20"})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-xs tracking-[0.3em] uppercase mb-6 text-white",style:{color:Ae},children:"Quick Links"}),o.jsxs("ul",{className:"space-y-3",children:[lt.map(Qt=>o.jsx("li",{children:o.jsx(zi,{to:Qt.to,className:"text-xs tracking-wider uppercase text-white/70 hover:text-white transition-colors",children:Qt.label})},Qt.to)),Se&&o.jsx("li",{children:o.jsx("a",{href:Se,target:"_blank",rel:"noopener noreferrer",className:"text-xs tracking-wider uppercase transition-colors hover:opacity-80",style:{color:$S},children:"Schedule a Free Consultation"})})]})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-xs tracking-[0.3em] uppercase mb-6 text-white",style:{color:Ae},children:"Get In Touch"}),o.jsx("p",{className:"text-sm text-white/70 leading-relaxed mb-6",style:{fontFamily:"'Playfair Display', Georgia, serif",fontStyle:"italic"},children:"Ready to experience luxury real estate? Let's connect."}),o.jsxs("div",{className:"flex flex-col items-start gap-3",children:[Se&&o.jsx(wm,{bookingUrl:Se,label:"Schedule a Free Consultation",size:"sm",source:"footer"}),o.jsx(zi,{to:"/contact",className:"inline-block px-8 py-3 text-xs tracking-[0.3em] uppercase border border-white/20 text-white/90 hover:bg-white hover:text-black transition-all duration-500",children:"Contact Me"})]})]})]}),o.jsxs("div",{className:"mt-16 pt-8 border-t border-white/10",children:[e.showTeamLogo&&e.teamLogoUrl&&o.jsx("div",{className:"flex items-center justify-center mb-6",children:o.jsx("img",{src:e.teamLogoUrl,alt:"Team",className:"h-10 w-auto object-contain opacity-70"})}),e.brokerageLegalName&&o.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-[11px] text-white/70 tracking-wider uppercase mb-3",children:[o.jsxs("span",{children:[G," · ",e.brokerageLegalName]}),W&&o.jsxs("span",{children:[rq(e.licenseState)," #",W]}),Z&&o.jsxs("span",{children:["Brokerage #",Z]})]}),e.mlsDisclaimerText&&o.jsxs("div",{className:"flex items-start justify-center gap-3 mb-4",children:[e.mlsLogoUrl&&o.jsx("img",{src:e.mlsLogoUrl,alt:"MLS",className:"h-6 w-auto flex-shrink-0 mt-0.5 opacity-70"}),o.jsx("p",{className:"text-[11px] text-white/70 leading-relaxed max-w-3xl text-center",children:e.mlsDisclaimerText})]}),o.jsxs("div",{className:"flex items-center justify-center gap-4 text-[11px] text-white/70 tracking-wider uppercase",children:[e.equalHousingEnabled&&o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-4 w-4",children:o.jsx("path",{d:"M12 2L2 8v2h20V8L12 2zm0 2.5L18.5 8h-13L12 4.5zM4 12v8h4v-6h8v6h4v-8H4zm6 8v-4h4v4h-4z"})}),o.jsx("span",{children:"Equal Housing Opportunity"})]}),o.jsxs("span",{children:["© ",new Date().getFullYear()," ",G,". Powered by LevelUp."]})]})]})]})}),!Te&&((jr=e.agent)==null?void 0:jr.avatar_url)&&o.jsx(XMt,{agent:e.agent,agentLicense:W,siteConfig:e,accentColor:Ae}),c&&o.jsx(rW,{open:c,mode:"optional",siteConfig:e,onComplete:()=>s(!1),onSkip:()=>s(!1),theme:"luxury",accentColor:Ae}),o.jsx(NW,{slug:e.subdomainSlug}),o.jsx(RW,{slug:e.subdomainSlug}),o.jsx(LW,{slug:e.subdomainSlug})]})}function XMt({agent:t,agentLicense:e,siteConfig:r,accentColor:n}){var s;const[i,a]=P.useState(!1),c=$a();return t?o.jsx("div",{className:`fixed right-6 z-40 ${r.bookingUrl?"bottom-24 md:bottom-6":"bottom-6"}`,children:i?o.jsxs("div",{className:"bg-[#1a1715] border border-white/10 w-72 overflow-hidden animate-in slide-in-from-bottom-4 fade-in duration-200",children:[o.jsxs("div",{className:"p-5",children:[o.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[o.jsx("img",{src:t.avatar_url,alt:t.full_name,className:"h-12 w-12 rounded-full object-cover ring-1 ring-white/10"}),o.jsxs("div",{children:[o.jsx("p",{className:"text-white text-sm font-medium",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:t.full_name}),o.jsx("p",{className:"text-white/50 text-[10px] tracking-[0.1em] uppercase",children:t.title||"Real Estate Professional"})]})]}),e&&o.jsxs("div",{className:"mb-3 px-3 py-2 bg-white/5 border border-white/10",children:[o.jsx("p",{className:"text-[10px] text-white/50 tracking-wider uppercase",children:rq(r.licenseState)}),o.jsxs("p",{className:"text-xs text-white font-medium",children:["#",e]})]}),o.jsxs("div",{className:"space-y-2",children:[t.phone&&o.jsxs("a",{href:`tel:${t.phone}`,className:"flex items-center gap-2 w-full px-3 py-2.5 bg-white/5 hover:bg-white/10 text-xs text-white/70 hover:text-white transition-colors tracking-wider",children:[o.jsx(Ui,{className:"h-3.5 w-3.5"})," ",t.phone]}),t.email&&o.jsxs("a",{href:`mailto:${t.email}`,className:"flex items-center gap-2 w-full px-3 py-2.5 bg-white/5 hover:bg-white/10 text-xs text-white/70 hover:text-white transition-colors tracking-wider",children:[o.jsx($i,{className:"h-3.5 w-3.5"})," Email Me"]}),o.jsx("button",{onClick:()=>{a(!1),c("/contact")},className:"w-full px-3 py-2.5 text-xs tracking-[0.2em] uppercase text-black hover:opacity-90 transition-colors",style:{backgroundColor:n},children:"Send a Message"})]})]}),o.jsx("button",{onClick:()=>a(!1),className:"absolute top-3 right-3 p-1 text-white/20 hover:text-white/50",children:o.jsx(Zs,{className:"h-4 w-4"})})]}):o.jsxs("button",{onClick:()=>a(!0),className:"group flex items-center gap-3 bg-[#1a1715] border border-white/10 pl-1.5 pr-5 py-1.5 hover:border-white/20 transition-all",children:[o.jsx("img",{src:t.avatar_url,alt:t.full_name,className:"h-10 w-10 rounded-full object-cover ring-1 ring-white/10"}),o.jsxs("div",{className:"text-left",children:[o.jsx("p",{className:"text-[11px] text-white leading-none",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:(s=t.full_name)==null?void 0:s.split(" ")[0]}),o.jsx("p",{className:"text-[9px] tracking-[0.15em] uppercase mt-1",style:{color:n},children:"Let's connect →"})]})]})}):null}const M2="#2c1810",jf="#b8860b";function QMt({children:t,siteConfig:e}){var we,Oe,Ae;const r=Ji();$a();const[n,i]=P.useState(!1),[a,c]=P.useState(!1),[s,f]=P.useState(!1),[m,x]=P.useState([]),[_,T]=P.useState(!1),E=P.useRef(null),{user:C,profile:N,signOut:L}=n3();aW(e,C==null?void 0:C.id),oW(e,C==null?void 0:C.id);const M=((we=e.agent)==null?void 0:we.full_name)||"Agent",D=e.siteTitle||`${M} Land & Ranch`,B=r.pathname==="/",V=e.leadRegistrationMode!=="disabled",G=Ky(e);P.useEffect(()=>{const Se=()=>T(window.scrollY>80);return window.addEventListener("scroll",Se,{passive:!0}),()=>window.removeEventListener("scroll",Se)},[]),P.useEffect(()=>{(async()=>{const{data:ge}=await De.from("lead_site_city_pages").select("city_name, city_slug").eq("site_id",e.id).eq("is_published",!0).order("sort_order");ge&&x(ge)})()},[e.id]),P.useEffect(()=>{const Se=ge=>{E.current&&!E.current.contains(ge.target)&&f(!1)};return document.addEventListener("mousedown",Se),()=>document.removeEventListener("mousedown",Se)},[]);const{data:W}=tW(e.agentId),{data:Z}=i3(e.agentId),Q=((W==null?void 0:W.length)??0)>0,se=((Z==null?void 0:Z.length)??0)>0,ie=[{label:"Home",path:"/"},...G?[]:[{label:"Search Properties",path:"/search"}],...G&&se?[{label:"My Listings",path:"/listings"}]:[],...Q?[{label:"Sold",path:"/sold"}]:[],{label:"About",path:"/about"},{label:"Blog",path:"/blog"},{label:"Contact",path:"/contact"}],ue=_||!B?"bg-white/95 backdrop-blur-md shadow-sm":"bg-transparent",be=_||!B?M2:"#ffffff",Te=e.customDomain?`https://${e.customDomain}`:`https://${e.subdomainSlug||""}.thelocalmove.com`;return o.jsxs("div",{className:"min-h-screen",style:{fontFamily:"'Lora', Georgia, serif"},children:[o.jsxs(Il,{children:[o.jsx("title",{children:D}),o.jsx("meta",{property:"og:url",content:Te+r.pathname}),o.jsx("link",{rel:"canonical",href:`${Te}${r.pathname}`}),o.jsx("link",{href:"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Lora:wght@400;500;600&display=swap",rel:"stylesheet"})]}),o.jsx(iW,{siteConfig:e}),o.jsx(sW,{siteConfig:e}),o.jsxs("header",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ${ue}`,children:[o.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6",children:o.jsxs("div",{className:"flex items-center justify-between h-16 md:h-20",children:[o.jsxs(zi,{to:"/",className:"flex items-center gap-2.5",children:[o.jsx(mJ,{className:"w-7 h-7",style:{color:jf}}),o.jsx("span",{className:"text-lg font-bold tracking-wide",style:{color:be,fontFamily:"'Playfair Display', Georgia, serif"},children:D})]}),o.jsxs("nav",{className:"hidden md:flex items-center gap-1",children:[ie.map(Se=>o.jsx(zi,{to:Se.path,className:"px-4 py-2 text-sm font-medium tracking-wide uppercase transition-colors hover:opacity-80",style:{color:r.pathname===Se.path?jf:be},children:Se.label},Se.path)),m.length>0&&o.jsxs("div",{ref:E,className:"relative",children:[o.jsxs("button",{onClick:()=>f(!s),className:"px-4 py-2 text-sm font-medium tracking-wide uppercase flex items-center gap-1 transition-colors hover:opacity-80",style:{color:be},children:["Area Guides ",o.jsx(Yd,{className:`w-3.5 h-3.5 transition-transform ${s?"rotate-180":""}`})]}),s&&o.jsx("div",{className:"absolute top-full right-0 mt-2 w-56 bg-white rounded-xl shadow-xl border border-gray-100 py-2 animate-in fade-in-0 slide-in-from-top-2",children:m.map(Se=>o.jsx(zi,{to:`/homes-for-sale-in-${Se.city_slug}`,className:"block px-4 py-2.5 text-sm hover:bg-gray-50 transition-colors",style:{color:M2},onClick:()=>f(!1),children:Se.city_name},Se.city_slug))})]}),C?o.jsx("div",{className:"flex items-center gap-2 ml-3",children:o.jsxs(zi,{to:"/account",className:"px-4 py-2 text-sm font-medium rounded-full border-2 transition-all hover:scale-105",style:{borderColor:jf,color:be},children:[o.jsx(kl,{className:"w-4 h-4 inline mr-1.5"}),(N==null?void 0:N.name)||"Account"]})}):V?o.jsx("button",{onClick:()=>c(!0),className:"ml-3 px-5 py-2.5 text-sm font-semibold text-white rounded-full hover:shadow-lg transition-all hover:scale-105",style:{backgroundColor:jf},children:"Sign In"}):null]}),o.jsx("button",{onClick:()=>i(!n),className:"md:hidden p-2",style:{color:be},children:n?o.jsx(Zs,{className:"w-6 h-6"}):o.jsx(VM,{className:"w-6 h-6"})})]})}),n&&o.jsx("div",{className:"md:hidden bg-white border-t border-gray-100 shadow-xl animate-in slide-in-from-top-2",children:o.jsxs("div",{className:"px-4 py-4 space-y-1",children:[ie.map(Se=>o.jsx(zi,{to:Se.path,className:"block px-4 py-3 text-base font-medium rounded-lg hover:bg-gray-50 transition-colors",style:{color:r.pathname===Se.path?jf:M2},onClick:()=>i(!1),children:Se.label},Se.path)),m.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"px-4 py-2 text-xs font-semibold tracking-wider uppercase text-gray-400",children:"Area Guides"}),m.map(Se=>o.jsx(zi,{to:`/homes-for-sale-in-${Se.city_slug}`,className:"block px-4 py-2.5 text-sm rounded-lg hover:bg-gray-50",style:{color:M2},onClick:()=>i(!1),children:Se.city_name},Se.city_slug))]}),!C&&V&&o.jsx("button",{onClick:()=>{c(!0),i(!1)},className:"w-full mt-3 px-5 py-3 text-white font-semibold rounded-full",style:{backgroundColor:jf},children:"Sign In"})]})})]}),o.jsx("main",{children:t}),o.jsx("footer",{className:"py-16 px-4",style:{backgroundColor:M2},children:o.jsxs("div",{className:"max-w-6xl mx-auto",children:[o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-10",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx(mJ,{className:"w-6 h-6",style:{color:jf}}),o.jsx("span",{className:"text-lg font-bold text-white",style:{fontFamily:"'Playfair Display', Georgia, serif"},children:D})]}),o.jsx("p",{className:"text-white/60 text-sm leading-relaxed",children:"Personal guidance for buying and selling land, homes, and rural property."}),o.jsx(DW,{siteConfig:e,className:"mt-5",iconClassName:"border-white/20 text-white"})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-white font-semibold mb-4 text-sm tracking-wider uppercase",children:"Quick Links"}),o.jsx("div",{className:"space-y-2",children:ie.map(Se=>o.jsx(zi,{to:Se.path,className:"block text-white/60 hover:text-white text-sm transition-colors",children:Se.label},Se.path))})]}),o.jsxs("div",{children:[o.jsx("h4",{className:"text-white font-semibold mb-4 text-sm tracking-wider uppercase",children:"Contact"}),o.jsxs("div",{className:"space-y-3",children:[((Oe=e.agent)==null?void 0:Oe.phone)&&o.jsxs("a",{href:`tel:${e.agent.phone}`,className:"flex items-center gap-2 text-white/60 hover:text-white text-sm transition-colors",children:[o.jsx(Ui,{className:"w-4 h-4",style:{color:jf}}),e.agent.phone]}),((Ae=e.agent)==null?void 0:Ae.email)&&o.jsxs("a",{href:`mailto:${e.agent.email}`,className:"flex items-center gap-2 text-white/60 hover:text-white text-sm transition-colors",children:[o.jsx($i,{className:"w-4 h-4",style:{color:jf}}),e.agent.email]})]})]})]}),o.jsxs("div",{className:"mt-12 pt-8 border-t border-white/10 flex items-center justify-between",children:[o.jsxs("p",{className:"text-white/40 text-xs",children:["© ",new Date().getFullYear()," ",D,". All rights reserved."]}),o.jsx("div",{className:"h-px w-16",style:{backgroundColor:jf}})]})]})}),a&&o.jsx(rW,{open:a,mode:e.leadRegistrationMode==="required"?"required":"optional",siteConfig:e,onSkip:()=>c(!1),onComplete:()=>c(!1)}),o.jsx(NW,{slug:e.subdomainSlug}),o.jsx(RW,{slug:e.subdomainSlug}),o.jsx(LW,{slug:e.subdomainSlug})]})}function Qle(){const{pathname:t}=Ji();return P.useEffect(()=>{window.scrollTo({top:0,left:0,behavior:"auto"})},[t]),null}const JMt=P.lazy(()=>$e(()=>import("./LeadSiteHome-DOQzTZGt.js"),__vite__mapDeps([10,11,12,13,14,15,16,17,18,19,20,21]))),eOt=P.lazy(()=>$e(()=>import("./LeadSiteLuxuryHome-Yb8uQgXh.js"),__vite__mapDeps([22,14,15,16,17,18,23,21,3,24,25]))),tOt=P.lazy(()=>$e(()=>import("./LeadSiteLandRanchHome-Cn1_wjiv.js"),__vite__mapDeps([26,11,12,13,14,15,16,17,18,19,27,28,29]))),Jle=P.lazy(()=>$e(()=>import("./LeadSiteSearch-DbJFMN-d.js"),__vite__mapDeps([30,11,12,13,31,32,17,33,34]))),rOt=P.lazy(()=>$e(()=>import("./LeadSiteLuxurySearch-CclGGfKJ.js"),__vite__mapDeps([35,11,12,13,31,32,17,33,34]))),ece=P.lazy(()=>$e(()=>import("./LeadSiteListingDetail-DkpvnOvc.js"),__vite__mapDeps([36,37,17,38,28,39,40,41,42,43]))),nOt=P.lazy(()=>$e(()=>import("./LeadSiteLuxuryListingDetail-DODU1Z1W.js"),__vite__mapDeps([44,37,17,38,28,39,40,41,42,43]))),iOt=P.lazy(()=>$e(()=>import("./LeadSiteAbout-BTnRzEJF.js"),__vite__mapDeps([45,20]))),sOt=P.lazy(()=>$e(()=>import("./LeadSiteLuxuryAbout-_AxXlnCK.js"),[])),aOt=P.lazy(()=>$e(()=>import("./LeadSiteContact-BpThd3eP.js"),[])),oOt=P.lazy(()=>$e(()=>import("./LeadSiteLuxuryContact-DmEshFE-.js"),[])),lOt=P.lazy(()=>$e(()=>import("./LeadSiteConsumerDashboard-CM3OT7jb.js"),[])),nR=P.lazy(()=>$e(()=>import("./LeadSiteBlog-Df386aAi.js"),[])),cOt=P.lazy(()=>$e(()=>import("./LeadSiteCommunity-G2xR9QKE.js"),__vite__mapDeps([46,42,7,47,48,49]))),uOt=P.lazy(()=>$e(()=>import("./LeadSiteSellers-plhcwpMU.js"),[])),dOt=P.lazy(()=>$e(()=>import("./LeadSiteCityPage-Dbg7h2_l.js"),__vite__mapDeps([50,51,17,18,34,15]))),hOt=P.lazy(()=>$e(()=>import("./LeadSiteSubdivisionPage-CeJ8wnQ4.js"),__vite__mapDeps([52,17]))),fOt=P.lazy(()=>$e(()=>import("./LeadSiteCustomPage-ClIzpOko.js"),[])),pOt=P.lazy(()=>$e(()=>import("./LeadSiteFocusPage-B31iEjfY.js"),__vite__mapDeps([53,16,17,18,54]))),tce=P.lazy(()=>$e(()=>import("./LeadSiteReviews-BFv2YVLC.js"),[])),mOt=P.lazy(()=>$e(()=>import("./LeadSiteExchangeListings-B7BsG4PZ.js"),__vite__mapDeps([23,17])).then(t=>({default:t.LeadSiteExchangeListingsIndex}))),gOt=P.lazy(()=>$e(()=>import("./LeadSiteExchangeListings-B7BsG4PZ.js"),__vite__mapDeps([23,17])).then(t=>({default:t.LeadSiteSoldListingsIndex}))),yOt=P.lazy(()=>$e(()=>import("./LeadSiteExchangeListings-B7BsG4PZ.js"),__vite__mapDeps([23,17])).then(t=>({default:t.LeadSiteExchangeListingDetail}))),xOt=P.lazy(()=>$e(()=>import("./OrgSiteLayout-PxXeVtEF.js"),__vite__mapDeps([55,56]))),_Ot=P.lazy(()=>$e(()=>import("./OrgSiteHome-B8kIDVQS.js").then(t=>t.O),__vite__mapDeps([57,56]))),vOt=P.lazy(()=>$e(()=>import("./OrgSiteAgents-BnNOGt6U.js"),__vite__mapDeps([58,56,57,59]))),bOt=P.lazy(()=>$e(()=>import("./OrgSiteAgents-BnNOGt6U.js"),__vite__mapDeps([58,56,57,59])).then(t=>({default:t.OrgSiteAgentProfile}))),rce=P.lazy(()=>$e(()=>import("./OrgSiteListings-itvon9g1.js"),__vite__mapDeps([60,56,57,59]))),wOt=P.lazy(()=>$e(()=>import("./OrgSiteListings-itvon9g1.js"),__vite__mapDeps([60,56,57,59])).then(t=>({default:t.OrgSiteListingDetail}))),SOt=P.lazy(()=>$e(()=>import("./OrgSitePages-BGMfd9lW.js"),__vite__mapDeps([59,56,57])).then(t=>({default:t.OrgSiteAbout}))),TOt=P.lazy(()=>$e(()=>import("./OrgSitePages-BGMfd9lW.js"),__vite__mapDeps([59,56,57])).then(t=>({default:t.OrgSiteContact}))),EOt=P.lazy(()=>$e(()=>import("./OrgSitePages-BGMfd9lW.js"),__vite__mapDeps([59,56,57])).then(t=>({default:t.OrgSiteJoin})));function nq(){return o.jsx("div",{className:"min-h-[60vh] flex items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-blue-600 border-t-transparent"})})}function AOt({siteConfig:t}){const{data:e,isLoading:r}=i3(t.agentId);return r?o.jsx(nq,{}):o.jsx(Li,{to:e!=null&&e.length?"/listings":"/contact?interest=Property%20search",replace:!0})}function kOt(){P.useEffect(()=>{document.body.classList.add("lead-site-page");const t=['[id*="lc_text_widget"]','[id*="lc_text-widget"]','[class*="lc-text-widget"]','[class*="lc_text-widget"]','[class*="lc_text_widget"]',".lc_text-widget--bubble",'[id*="chat-widget"]','[class*="chat-widget"]','iframe[src*="widgets.leadconnectorhq"]','iframe[src*="leadconnector"]','iframe[src*="msgsndr"]',"[data-chat-widget]",".widget-visible"],e=()=>{t.forEach(n=>{document.querySelectorAll(n).forEach(i=>{i.style.display="none"})})};e();const r=[500,1500,3e3,5e3].map(n=>setTimeout(e,n));return()=>{document.body.classList.remove("lead-site-page"),r.forEach(clearTimeout)}},[])}function COt(){var T;const{siteConfig:t,themeConfig:e,isLoading:r,error:n}=lPt();if(kOt(),r)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-white",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-blue-600 border-t-transparent mx-auto mb-4"}),o.jsx("p",{className:"text-gray-500",children:"Loading..."})]})});if(n||!t)return o.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50 p-6",children:o.jsxs("div",{className:"text-center max-w-md",children:[o.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Site Not Found"}),o.jsx("p",{className:"text-gray-500",children:"This lead site is not available or has not been set up yet."})]})});if(t.ownerType==="brokerage"||t.ownerType==="team"){const E=t.orgTier==="pro";return o.jsxs(Aoe,{siteConfig:t,children:[o.jsx(Qle,{}),o.jsx(P.Suspense,{fallback:o.jsx(nq,{}),children:o.jsx(xOt,{siteConfig:t,themeConfig:e??void 0,children:o.jsxs(tk,{children:[o.jsx(Re,{path:"/",element:o.jsx(_Ot,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/listings",element:o.jsx(rce,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/sold",element:o.jsx(rce,{siteConfig:t,themeConfig:e??void 0,sold:!0})}),o.jsx(Re,{path:"/listings/:slug",element:o.jsx(wOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/agents",element:o.jsx(vOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/agents/:slug",element:o.jsx(bOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/about",element:o.jsx(SOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/contact",element:o.jsx(TOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/join",element:o.jsx(EOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/blog",element:o.jsx(nR,{siteConfig:t,isLuxury:!1})}),o.jsx(Re,{path:"/blog/:slug",element:o.jsx(nR,{siteConfig:t,isLuxury:!1})}),o.jsx(Re,{path:"/search",element:E?o.jsx(Jle,{siteConfig:t}):o.jsx(Li,{to:"/listings",replace:!0})}),o.jsx(Re,{path:"/listing/:mlsNumber",element:E?o.jsx(ece,{siteConfig:t}):o.jsx(Li,{to:"/listings",replace:!0})}),o.jsx(Re,{path:"/*",element:o.jsx(nce,{siteConfig:t,referralMode:!E})})]})})})]})}const i=(e==null?void 0:e.themeTier)==="luxury",a=(e==null?void 0:e.themeTier)==="land-ranch",c=a?QMt:i?ZMt:KMt,s=pEe(t),f=s||Ky(t,e),m=t.id==="7605cc2e-ce21-4f4f-8bb1-4c0f217b1109",x=!s&&Ky(t,e),_=a?o.jsx(tOt,{siteConfig:t,themeConfig:e??void 0}):i?o.jsx(eOt,{siteConfig:t,themeConfig:e??void 0}):o.jsx(JMt,{siteConfig:t,themeConfig:e??void 0});return o.jsxs(Aoe,{siteConfig:t,children:[o.jsx(Qle,{}),o.jsxs(c,{siteConfig:t,children:[o.jsx(P.Suspense,{fallback:o.jsx(nq,{}),children:o.jsxs(tk,{children:[o.jsx(Re,{path:"/",element:_}),o.jsx(Re,{path:"/listings",element:o.jsx(mOt,{siteConfig:t})}),o.jsx(Re,{path:"/sold",element:o.jsx(gOt,{siteConfig:t})}),o.jsx(Re,{path:"/listings/:slug",element:o.jsx(yOt,{siteConfig:t})}),o.jsx(Re,{path:"/search",element:f?o.jsx(AOt,{siteConfig:t}):i?o.jsx(rOt,{siteConfig:t}):o.jsx(Jle,{siteConfig:t})}),o.jsx(Re,{path:"/listing/:mlsNumber",element:f?o.jsx(Li,{to:"/contact?interest=Property%20details",replace:!0}):i?o.jsx(nOt,{siteConfig:t}):o.jsx(ece,{siteConfig:t})}),o.jsx(Re,{path:"/about",element:i?o.jsx(sOt,{siteConfig:t}):o.jsx(iOt,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/contact",element:i?o.jsx(oOt,{siteConfig:t}):o.jsx(aOt,{siteConfig:t})}),o.jsx(Re,{path:"/account",element:o.jsx(lOt,{siteConfig:t})}),o.jsx(Re,{path:"/blog",element:o.jsx(nR,{siteConfig:t,isLuxury:i})}),o.jsx(Re,{path:"/blog/:slug",element:o.jsx(nR,{siteConfig:t,isLuxury:i})}),o.jsx(Re,{path:"/sell",element:o.jsx(uOt,{siteConfig:t,themeConfig:e??void 0,isLuxury:i})}),o.jsx(Re,{path:"/community",element:o.jsx(cOt,{siteConfig:t,isLuxury:i})}),o.jsx(Re,{path:"/schedule",element:o.jsx(gPt,{bookingUrl:t.bookingUrl,agentName:((T=t.agent)==null?void 0:T.full_name)||"your agent"})}),((e==null?void 0:e.focusPages)??[]).map(E=>o.jsx(Re,{path:`/${E.slug}`,element:o.jsx(pOt,{siteConfig:t,page:E,accentColor:(e==null?void 0:e.accentColor)||t.accentColor||"#c9a96e"})},E.slug)),o.jsx(Re,{path:"/reviews",element:o.jsx(tce,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/reviews/:slug",element:o.jsx(tce,{siteConfig:t,themeConfig:e??void 0})}),o.jsx(Re,{path:"/p/:pageSlug",element:o.jsx(fOt,{siteConfig:t})}),o.jsx(Re,{path:"/*",element:o.jsx(nce,{siteConfig:t,referralMode:x})})]})}),!m&&o.jsx(mPt,{bookingUrl:t.bookingUrl})]})]})}function nce({siteConfig:t,referralMode:e}){const r=Ji(),n=r.pathname.match(/^\/homes-in-(.+)$/);if(n)return o.jsx(hOt,{siteConfig:t,subdivisionSlug:n[1]});const i=r.pathname.match(/^\/homes-for-sale-in-(.+)$/);if(i)return o.jsx(dOt,{siteConfig:t,citySlugOverride:i[1],referralMode:e});const a=r.pathname.match(/^\/communities\/([^/]+)\/?$/);if(a)return o.jsx(Li,{to:`/homes-for-sale-in-${a[1]}${r.search}`,replace:!0});const c=r.pathname.match(/^\/([a-z0-9][a-z0-9-]*)\/?$/i);return c?o.jsx(IOt,{siteId:t==null?void 0:t.id,slug:c[1],search:r.search}):null}function IOt({siteId:t,slug:e,search:r}){const[n,i]=P.useState(null);return P.useEffect(()=>{let a=!1;if(!t){i(!1);return}return De.from("lead_site_pages").select("id").eq("site_id",t).eq("slug",e).eq("is_published",!0).maybeSingle().then(({data:c})=>{a||i(!!c)}),()=>{a=!0}},[t,e]),n?o.jsx(Li,{to:`/p/${e}${r}`,replace:!0}):null}function jOt(){const{user:t,loading:e}=$n(),{data:r,isLoading:n}=br({queryKey:["feature-entitlement","levelup_attract",t==null?void 0:t.id],enabled:!!t,staleTime:5*60*1e3,queryFn:async()=>{const{data:i,error:a}=await De.from("feature_entitlements").select("enabled, expires_at, tier").eq("user_id",t.id).eq("feature_key","levelup_attract").maybeSingle();if(a)throw a;return i?{hasAccess:i.enabled&&(!i.expires_at||new Date(i.expires_at).getTime()>Date.now()),tier:i.tier??null}:{hasAccess:!1,tier:null}}});return{hasAccess:!!(r!=null&&r.hasAccess),tier:(r==null?void 0:r.tier)??null,isLoading:e||n}}function POt({children:t}){const{user:e,loading:r}=$n(),{hasAccess:n,isLoading:i}=jOt(),a=Ji();return P.useEffect(()=>{!r&&!i&&e&&!n&&Jt.error("LevelUp Attract isn't available for your account yet.")},[r,i,e,n]),r||e&&i?o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}):e?n?o.jsx(o.Fragment,{children:t}):o.jsx(Li,{to:"/dashboard",replace:!0}):(sessionStorage.setItem("redirectAfterLogin",a.pathname),o.jsx(Li,{to:"/auth",replace:!0}))}function ice({children:t}){const{user:e,loading:r}=$n(),{hasAccess:n,isLoading:i}=i9(),a=Ji();return r||e&&i?o.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}):e?n?o.jsx(o.Fragment,{children:t}):o.jsx(Li,{to:"/dashboard",replace:!0}):(sessionStorage.setItem("redirectAfterLogin",a.pathname),o.jsx(Li,{to:"/auth",replace:!0}))}const NOt=P.lazy(()=>$e(()=>import("./CommercialMarketplace-BP9xbDlD.js"),__vite__mapDeps([9,3]))),sce=P.lazy(()=>$e(()=>import("./PrivacyPolicy-BuhOAruw.js"),[])),ROt=P.lazy(()=>$e(()=>import("./CanvaSupport-BYTFMRIV.js"),__vite__mapDeps([61,62]))),ace=P.lazy(()=>$e(()=>import("./TermsOfService-BZyqPm7f.js"),[])),LOt=P.lazy(()=>$e(()=>import("./DataDeletion-wVX26OL8.js"),[])),oce=P.lazy(()=>$e(()=>import("./McpDataUse-Fz5eXMiC.js"),[])),DOt=P.lazy(()=>$e(()=>import("./SmsOptIn-DDmWZZ9L.js"),__vite__mapDeps([63,64]))),_$=P.lazy(()=>$e(()=>import("./OAuthConsent-CwDqkixU.js"),[])),MOt=P.lazy(()=>$e(()=>import("./ConnectChatGPT-B5dS0bXI.js"),__vite__mapDeps([65,66]))),lce=P.lazy(()=>$e(()=>import("./LevelUpMCP-Bc5zfH1A.js"),[])),OOt=P.lazy(()=>$e(()=>import("./SubscriptionSuccess-Dg1urjtw.js"),__vite__mapDeps([67,66]))),FOt=P.lazy(()=>$e(()=>import("./Subscription-DIYpkmh5.js"),[])),BOt=P.lazy(()=>$e(()=>import("./SetupBrokerage-D1YRgZGy.js"),__vite__mapDeps([68,66]))),cce=P.lazy(()=>$e(()=>import("./ClaimAccount-DO9Ib4UB.js"),[])),uce=P.lazy(()=>$e(()=>import("./ConfirmPasswordReset-BJ-xuy2-.js"),[])),zOt=P.lazy(()=>$e(()=>import("./ActivateAccount-BV8yx30l.js"),[])),$Ot=P.lazy(()=>$e(()=>import("./InviteSignup-0og6cbAY.js"),__vite__mapDeps([69,70]))),UOt=P.lazy(()=>$e(()=>import("./CoachingHub-EkdjFMKt.js"),__vite__mapDeps([71,72]))),VOt=P.lazy(()=>$e(()=>import("./CoachAgentWorkspace-BMaFCJ4C.js"),__vite__mapDeps([73,72,74,75,76]))),qOt=P.lazy(()=>$e(()=>import("./MyCoach-CVXWQBYn.js"),__vite__mapDeps([77,72,74,78,79,75]))),GOt=P.lazy(()=>$e(()=>import("./AdminCoaching-Bz6Hnprk.js"),__vite__mapDeps([80,81,82,6,83]))),HOt=P.lazy(()=>$e(()=>import("./CoachBilling-DiPFkKkM.js"),__vite__mapDeps([84,72,85]))),WOt=P.lazy(()=>$e(()=>import("./CoachSettings-C51aK9b0.js"),__vite__mapDeps([86,72,87,88,89,62,76,90]))),KOt=P.lazy(()=>$e(()=>import("./GoogleCalendarReturn-ClFKmzLM.js"),[])),YOt=P.lazy(()=>$e(()=>import("./CoachWaitlist-CPj51Iez.js"),__vite__mapDeps([91,72,92]))),ZOt=P.lazy(()=>$e(()=>import("./CoachesDirectory-Bgns8-_M.js"),[])),XOt=P.lazy(()=>$e(()=>import("./CoachProfile-Bpjg3XZh.js"),__vite__mapDeps([93,78]))),QOt=P.lazy(()=>$e(()=>import("./CoachApply-bEAVfZVs.js"),[])),JOt=P.lazy(()=>$e(()=>import("./Trial-BCzPKb-0.js"),__vite__mapDeps([94,95]))),eFt=P.lazy(()=>$e(()=>import("./TrialSuccess-C02ooohH.js"),__vite__mapDeps([96,97]))),tFt=P.lazy(()=>$e(()=>import("./LaborDaySale-tBeurMBi.js"),__vite__mapDeps([98,99,95,100,101]))),rFt=P.lazy(()=>$e(()=>import("./BrokerageLaborDaySale-DO8cOiTl.js"),__vite__mapDeps([102,99,95,100,101]))),nFt=P.lazy(()=>$e(()=>import("./BrokerageSolutions-Bj4l5DbI.js"),__vite__mapDeps([103,100,104,105,106,101]))),iFt=P.lazy(()=>$e(()=>import("./Upgrade-C8lsE7sI.js"),__vite__mapDeps([107,108]))),sFt=P.lazy(()=>$e(()=>import("./InstagramGift-BkkvMceO.js"),__vite__mapDeps([109,108,85]))),dce=P.lazy(()=>$e(()=>import("./VideoShare-BB63nKN4.js"),__vite__mapDeps([110,111,112,113,28,41,97,7,114,115,116]))),aFt=P.lazy(()=>$e(()=>import("./VideoShareLayout-Drop-gp-.js"),[])),oFt=P.lazy(()=>$e(()=>import("./VideoOgRedirect-CgvJaNmH.js"),[])),lFt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>nYe),void 0)),cFt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>XKe),void 0)),uFt=P.lazy(()=>$e(()=>import("./NewListingChooser-DIWP9qLs.js"),[])),hce=P.lazy(()=>$e(()=>import("./CommercialWizard-B6LAdOou.js"),__vite__mapDeps([117,118,119]))),dFt=P.lazy(()=>$e(()=>import("./CommercialWorkspace-ClM5Jy1N.js"),__vite__mapDeps([120,118,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,79,76,137,138]))),hFt=P.lazy(()=>$e(()=>import("./CommercialPitchPreview-CufBLLdV.js"),__vite__mapDeps([139,138]))),fFt=P.lazy(()=>$e(()=>import("./PrivateListingView-DBV38GZU.js"),[])),pFt=P.lazy(()=>$e(()=>import("./PublicAgentCard-8o2JkYoA.js"),[])),mFt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>Bjt),void 0)),fce=P.lazy(()=>$e(()=>import("./PublicHomeValue-rGme8kYE.js"),[])),gFt=P.lazy(()=>$e(()=>import("./PublicLiveEvent-BfF1P4rZ.js"),__vite__mapDeps([140,141,142,143,144]))),yFt=P.lazy(()=>$e(()=>import("./LiveEvents-DgUgB8eN.js"),__vite__mapDeps([145,146,147,148,136]))),xFt=P.lazy(()=>$e(()=>import("./LiveEventConsole-DRfS6Kqf.js"),__vite__mapDeps([149,147,143,70,150,141,151]))),_Ft=P.lazy(()=>$e(()=>import("./Dashboard-CBVNNr7i.js"),__vite__mapDeps([152,153,154,72,155,156,157,158,159,160,118,119,161,162,163,164,4,41,75,165]))),vFt=P.lazy(()=>$e(()=>import("./Profile-z_bLUHHn.js"),__vite__mapDeps([166,90,75,85,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,76,182,183,184,185,32,104,186,187]))),bFt=P.lazy(()=>$e(()=>import("./Events-DqJBWVuN.js"),__vite__mapDeps([188,155,156,157,189,162,190,191]))),wFt=P.lazy(()=>$e(()=>import("./EventDetail-CqiALGYS.js"),__vite__mapDeps([192,155,156,157,193,194,66]))),SFt=P.lazy(()=>$e(()=>import("./Apps-5qqCDqRW.js"),__vite__mapDeps([195,114,85,196,6,197]))),TFt=P.lazy(()=>$e(()=>import("./Templates-Bx7LCAY8.js"),__vite__mapDeps([198,90]))),EFt=P.lazy(()=>$e(()=>import("./TemplateDetail-D-5Yomtw.js"),__vite__mapDeps([199,129,153,193,194,90]))),AFt=P.lazy(()=>$e(()=>import("./Programs-CE3Iwid7.js"),__vite__mapDeps([200,154]))),kFt=P.lazy(()=>$e(()=>import("./ProgramDetail-BJRrKNjS.js"),__vite__mapDeps([201,202,203,154,32,85]))),CFt=P.lazy(()=>$e(()=>import("./ProgramEnroll-rEB5ejTg.js"),__vite__mapDeps([204,154,205,85]))),IFt=P.lazy(()=>$e(()=>import("./ProgramWorkspace-BgEKlbP_.js"),__vite__mapDeps([206,154,207,208]))),jFt=P.lazy(()=>$e(()=>import("./Programs-CFPVTCV2.js"),__vite__mapDeps([209,154,76,148,205,210,85,196,125,211,203,79,32]))),PFt=P.lazy(()=>$e(()=>import("./Academy-C7Rw9CP5.js"),[])),NFt=P.lazy(()=>$e(()=>import("./AcademyVideoDetail-BU8z7ElJ.js"),__vite__mapDeps([212,129,153,193,194,213]))),RFt=P.lazy(()=>$e(()=>import("./PublicAcademyWatch-Dpx7tnT4.js"),[])),LFt=P.lazy(()=>$e(()=>import("./Toolbox-TeiJs2mF.js"),[])),DFt=P.lazy(()=>$e(()=>import("./ToolboxDetail-DuPWh5XV.js"),__vite__mapDeps([214,129,153,193,194,213]))),MFt=P.lazy(()=>$e(()=>import("./SocialSwag-oWNVp2Lz.js"),__vite__mapDeps([215,90]))),OFt=P.lazy(()=>$e(()=>import("./SocialStudio-Cv9sZ_xj.js"),__vite__mapDeps([216,129,217,33,218,219,220,119,221,222,223,224,76,225,156,79,66,226,227]))),FFt=P.lazy(()=>$e(()=>import("./MarketingStudio-C7DkUle5.js"),__vite__mapDeps([228,41,229]))),BFt=P.lazy(()=>$e(()=>import("./BrandKit-37F1yeKK.js"),__vite__mapDeps([230,231]))),zFt=P.lazy(()=>$e(()=>import("./BrandingBarEditor-DlwmiCjM.js"),__vite__mapDeps([232,226,231,233,234]))),$Ft=P.lazy(()=>$e(()=>import("./ListingTemplates-CFNLaoYO.js"),__vite__mapDeps([235,236,237,231,18,205,6]))),UFt=P.lazy(()=>$e(()=>import("./PersonalBranding-DYNnzWj8.js"),__vite__mapDeps([238,239,231,236]))),VFt=P.lazy(()=>$e(()=>import("./SocialSwagDetail-BCH3cppN.js"),__vite__mapDeps([240,129,153,193,194,90]))),qFt=P.lazy(()=>$e(()=>import("./Community-C__dDDd1.js"),__vite__mapDeps([241,33,211,203,12,178,242,243,90,244,141]))),GFt=P.lazy(()=>$e(()=>import("./Support-Btmgulo6.js"),__vite__mapDeps([245,129,246,247,165,136,66,79]))),HFt=P.lazy(()=>$e(()=>import("./BrokerageResources-BWJGZE2K.js"),__vite__mapDeps([248,90]))),WFt=P.lazy(()=>$e(()=>import("./BrokerageResourceDetail-DoPxx0pF.js"),[])),pce=P.lazy(()=>$e(()=>import("./AdminDashboard-DFsQkXzl.js"),__vite__mapDeps([249,85,250,205,251,252,253]))),KFt=P.lazy(()=>$e(()=>import("./Apps-Bnp7lppg.js"),[])),YFt=P.lazy(()=>$e(()=>import("./MemberManagement-DadafQrO.js"),__vite__mapDeps([254,146,255,207,97,256,142,257,85,258,259,260,261,262,263,191,264,6,265,266,75,267,82,268,108]))),ZFt=P.lazy(()=>$e(()=>import("./UnassignedMembers-BWODL9kf.js"),__vite__mapDeps([269,146]))),XFt=P.lazy(()=>$e(()=>import("./InviteCodes-ooU473E3.js"),__vite__mapDeps([270,146]))),QFt=P.lazy(()=>$e(()=>import("./Events-CjLpoXY8.js"),__vite__mapDeps([271,167,168,169,170,171,172,173,174,175,176,90,147,272,146,273]))),JFt=P.lazy(()=>$e(()=>import("./MCPAuditLog-BzFOX0WW.js"),__vite__mapDeps([274,146,275]))),e3t=P.lazy(()=>$e(()=>import("./Templates-BkHq2wJa.js"),__vite__mapDeps([276,146,167,168,169,170,171,172,173,174,175,176,90,272]))),t3t=P.lazy(()=>$e(()=>import("./Academy-CJ02MfdF.js"),__vite__mapDeps([277,146,167,168,169,170,171,172,173,174,175,176,90,278,208,272]))),r3t=P.lazy(()=>$e(()=>import("./Toolbox-C5bL0uhl.js"),__vite__mapDeps([279,167,168,169,170,171,172,173,174,175,176,90,278,208,272]))),n3t=P.lazy(()=>$e(()=>import("./SocialSwag-BVGXaTNE.js"),__vite__mapDeps([280,146,167,168,169,170,171,172,173,174,175,176,90,272]))),i3t=P.lazy(()=>$e(()=>import("./SocialSwag2-CYINH1SN.js"),__vite__mapDeps([281,272,124,90,125]))),s3t=P.lazy(()=>$e(()=>import("./Community-DKhvMWYg.js"),__vite__mapDeps([282,146]))),a3t=P.lazy(()=>$e(()=>import("./Analytics-BfCEYRPD.js"),__vite__mapDeps([283,256,142,257,66,284,285,286,287,288]))),o3t=P.lazy(()=>$e(()=>import("./BrokerageResources-DVLgSXw9.js"),__vite__mapDeps([289,167,168,169,170,171,172,173,174,175,176,90,205]))),l3t=P.lazy(()=>$e(()=>import("./DashboardManagement-DjoS2LQp.js"),__vite__mapDeps([290,125,150,70]))),c3t=P.lazy(()=>$e(()=>import("./SupportTickets-B31pM133.js"),__vite__mapDeps([291,129,246,247,165,136,186,66,79]))),u3t=P.lazy(()=>$e(()=>import("./EmailTemplates-CNT8kzdl.js"),__vite__mapDeps([292,168,169,293,173,174,175,176,90,294,295,76,296]))),d3t=P.lazy(()=>$e(()=>import("./AgentEmailTemplates-74Yk66DZ.js"),__vite__mapDeps([297,146,75]))),h3t=P.lazy(()=>$e(()=>import("./BrokerageDashboard-Cf-2jSGE.js"),__vite__mapDeps([298,255,207,97,142,257,66,90,79,258,266,267,284,256,189,162,190]))),f3t=P.lazy(()=>$e(()=>import("./MyBrokerage-BVAO9gpy.js"),__vite__mapDeps([299,141,108,190,181,76,300,301,79,6]))),p3t=P.lazy(()=>$e(()=>import("./BrokerageContent-DwlpxTES.js"),__vite__mapDeps([302,160,75]))),m3t=P.lazy(()=>$e(()=>import("./BrokerageContentDetail-E-E9umbq.js"),[])),g3t=P.lazy(()=>$e(()=>import("./BrokerageHelpBoard-B9hFnw1d.js"),__vite__mapDeps([303,304,186]))),y3t=P.lazy(()=>$e(()=>import("./BrokerageHelpBoardNew-G7_8Ep9S.js"),__vite__mapDeps([305,304]))),x3t=P.lazy(()=>$e(()=>import("./BrokerageHelpBoardDetail-lc39XbIw.js"),__vite__mapDeps([306,304,12]))),_3t=P.lazy(()=>$e(()=>import("./Newsletters-DHcdiw76.js"),__vite__mapDeps([307,308,239,309,173,310,174,90,150,296,142,257,311,76,312,106,313,6,158,131,132,133,314,315,275,316,205,70]))),v3t=P.lazy(()=>$e(()=>import("./NewsletterDetail-D7COOPYI.js"),__vite__mapDeps([317,153,193,194,312,308,239,309,173,310,174,90,150,296,142,257,106,313,6,158,131,132,133,314,315,275,316,205,70]))),b3t=P.lazy(()=>$e(()=>import("./Newsletters-w9nFWjUs.js"),__vite__mapDeps([318,272,146,167,168,169,170,171,172,173,174,175,176,90,309,125,319]))),w3t=P.lazy(()=>$e(()=>import("./MemberBroadcasts-CiU7g4S5.js"),__vite__mapDeps([320,146,167,168,169,170,171,172,173,174,175,176,90,208,191,294,321,76]))),S3t=P.lazy(()=>$e(()=>import("./NewsletterGraphics-Btb766F0.js"),__vite__mapDeps([322,146,148]))),T3t=P.lazy(()=>$e(()=>import("./Wishlist-DXRHwSvP.js"),__vite__mapDeps([323,142]))),E3t=P.lazy(()=>$e(()=>import("./WishlistDetail-BAVX88bP.js"),__vite__mapDeps([324,242,142]))),A3t=P.lazy(()=>$e(()=>import("./Wishlist-CDra5EdH.js"),[])),k3t=P.lazy(()=>$e(()=>import("./LevelUpBrief-BoZbYh34.js"),__vite__mapDeps([325,146,167,168,169,170,171,172,173,174,175,176,90]))),C3t=P.lazy(()=>$e(()=>import("./AdditionalServices-BV66CWOU.js"),__vite__mapDeps([326,167,168,169,170,171,172,173,174,175,176,90]))),I3t=P.lazy(()=>$e(()=>import("./Discounts-szPLZjou.js"),__vite__mapDeps([327,146]))),j3t=P.lazy(()=>$e(()=>import("./Subscriptions-DUex0T1c.js"),__vite__mapDeps([328,146,329,85,267]))),P3t=P.lazy(()=>$e(()=>import("./InstagramGiftEmails-CMzpQpYO.js"),__vite__mapDeps([330,329,296]))),N3t=P.lazy(()=>$e(()=>import("./Referrals-A9cx6B_i.js"),__vite__mapDeps([331,146,66,79]))),R3t=P.lazy(()=>$e(()=>import("./OnboardingChecklist-CGAimkMJ.js"),[])),L3t=P.lazy(()=>$e(()=>import("./AgentOSControlCenter-CHloRZfg.js"),__vite__mapDeps([332,146,114,112,125]))),D3t=P.lazy(()=>$e(()=>import("./AdditionalServices-CXOyX53w.js"),[])),M3t=P.lazy(()=>$e(()=>import("./AdditionalServiceDetail-fjZzqWGZ.js"),[])),O3t=P.lazy(()=>$e(()=>import("./AIToolkit-BTbBxikX.js"),[])),F3t=P.lazy(()=>$e(()=>import("./AskAI-BmZAVN_M.js"),__vite__mapDeps([333,2,3,6]))),B3t=P.lazy(()=>$e(()=>import("./InnerCircleHome-Z4tukygX.js"),__vite__mapDeps([334,163,164,335,8,142,257,267,336,158,130,129,131,132,133,134,135,136,337,338,339,340,341]))),z3t=P.lazy(()=>$e(()=>import("./InnerCircleContacts-Dceg6SMk.js"),__vite__mapDeps([342,343,211,203,344,239,142,257,345,346,261,258,262,263,191,264,6,265,335,347,348,8,349,314,205,218,350,164,351,207,352,338,129,353,354,355,356,296,357,358,359,90,131,130,132,133,134,135,136,158,315,321,360,361,362,363,364,41,186,76,118,119,70,365,174]))),$3t=P.lazy(()=>$e(()=>import("./InnerCircleContactDetail-BpWW7lQm.js"),__vite__mapDeps([366,364,129,343,158,131,130,132,133,134,135,136,367,359,348,164,314,347,335,8,349,205,218,350,368,186,76,187,363,369,211,203,370,371,191,253,372,373,250,275,337,338,339,340]))),U3t=P.lazy(()=>$e(()=>import("./SentEmails-BZzfG8iT.js"),__vite__mapDeps([374,158,130,129,131,132,133,134,135,136,369,179,150,187,375,79,350]))),V3t=P.lazy(()=>$e(()=>import("./InnerCirclePlans-CwAf7K7u.js"),__vite__mapDeps([376,66,377,76,267,336]))),q3t=P.lazy(()=>$e(()=>import("./CMAList-DwTQs6qp.js"),__vite__mapDeps([378,367,379,380]))),G3t=P.lazy(()=>$e(()=>import("./CMABuilder-BbCx-I0I.js"),__vite__mapDeps([381,367,379,357,382,151,383,384,296,6,8,76]))),H3t=P.lazy(()=>$e(()=>import("./ListingPresentations-l5eQ9VxL.js"),__vite__mapDeps([385,386,387,122,388]))),W3t=P.lazy(()=>$e(()=>import("./ListingPresentationBuilder-BQpD-AD9.js"),__vite__mapDeps([389,129,202,203,390,391,122,386,387,392,148,6,208,142,257,388,76,321,393]))),K3t=P.lazy(()=>$e(()=>Promise.resolve().then(()=>ztt),void 0)),Y3t=P.lazy(()=>$e(()=>import("./InnerCirclePopbys-CQVxXx0m.js"),__vite__mapDeps([394,343,348,395,396,66]))),Z3t=P.lazy(()=>$e(()=>import("./ListingExchange-CNvUhAg_.js"),__vite__mapDeps([397,118,119,398,114,126,48,399,314,361,362,360,132,133,205,190,400,371]))),X3t=P.lazy(()=>$e(()=>import("./ListingDetail-B-62PUXm.js"),__vite__mapDeps([401,121,118,119,122,400,126,398,114,127,128,129,130,131,132,133,134,135,136,218,186,48,138]))),mce=P.lazy(()=>$e(()=>import("./ListingForm-0oYOY2Bd.js"),__vite__mapDeps([402,124,118,119,123,125,319,121,122,70]))),Q3t=P.lazy(()=>$e(()=>import("./CustomizeListingPage-Dyt7vKZq.js"),__vite__mapDeps([403,296,76,286,404,90,125]))),J3t=P.lazy(()=>$e(()=>import("./VideoRecordPage-lo4pC9DP.js"),__vite__mapDeps([405,382,151,383,384,296,6,8,406,70,359,407,111,112,113,28,41,97,7,114,115,116,211,203,90]))),e5t=P.lazy(()=>$e(()=>import("./VideoLibrary-B6-ShXs2.js"),__vite__mapDeps([408,359,358,407,111,112,113,28,41,97,7,114,115,116,211,203,90,129,353,158,285,409,294]))),t5t=P.lazy(()=>$e(()=>import("./DealPipeline-CKSIvdqA.js"),__vite__mapDeps([410,411,105,176,175,412,372,413,257,81,262,3,142,414,415,151,416,186,32,47,173,321,404,417,418,115,371,268,88,419,39,420,421,288,66,422,79,423,424,425,426,113,316,294,116,250,346,266,427,85,267,253,114,264,224,428,38,70,429,430,431,165,432,137,207,433,247,112,252,383,75,434,435,436,437,125,438,265,409,12,171,172,439,440,191,441,148,83,100,350,442,208,319,90,313,174,443,395,444,108,92,445,446,187,365,13,18,190,447,448,229,449,450,384,196,296,29,150,285,451,393,48,396,452,286,136,97,8,336,377,106,244,141,54,453,454,455,138,104,456,345,221,273,243,6,179,210,76,457,227,275,458,459,251,460,64,197,41,144,363,340,263,7,461,205,462,463,40,464,28,49,24,465,466,310,218,62,194,82,467,468,185,469,470,295,42,101,178,349,118,119,368,471,211,203,472,473,474,475,357,476,382,359,158,477,202,478,479]))),r5t=P.lazy(()=>$e(()=>import("./FormsLibrary-DHyAt8Ty.js"),__vite__mapDeps([480,474,481,76,391,417,466,463,473,429,142,257,428,372,432]))),n5t=P.lazy(()=>$e(()=>import("./TransactionCoordinator-sBLCSRx3.js"),__vite__mapDeps([482,477,202,203,273]))),i5t=P.lazy(()=>$e(()=>import("./PortalReferrals-6sZ3RLUe.js"),__vite__mapDeps([483,484]))),s5t=P.lazy(()=>$e(()=>import("./AgentVendors-HUXwJlhN.js"),__vite__mapDeps([485,486,70]))),a5t=P.lazy(()=>$e(()=>import("./BrokerageForms-D5Ux-sJD.js"),__vite__mapDeps([487,474,481,76,391,417,466,463,434,435,372]))),o5t=P.lazy(()=>$e(()=>import("./BrokerageVendors-CRj0CWaR.js"),__vite__mapDeps([488,486,70]))),l5t=P.lazy(()=>$e(()=>import("./ClientPortalsHub-B8LS6Van.js"),__vite__mapDeps([489,478,76,368,475,125,218,357,476,382,151,383,384,296,6,8,359,66,90,186,158,412,448,372,490,485,486,70,483,484,101]))),c5t=P.lazy(()=>$e(()=>import("./ClientPortalDetail-qRpyAOtd.js"),__vite__mapDeps([491,368,484,475,125,218,357,476,382,151,383,384,296,6,8,359,66,90,76,186,158,490,448,412,372]))),u5t=P.lazy(()=>$e(()=>import("./MyCardEditor-aNTsOg7w.js"),__vite__mapDeps([492,177,178,179,180,493,205,125,142,257,70,229,128,296,85,138,150]))),d5t=P.lazy(()=>$e(()=>import("./Integrations-CGVS1gej.js"),__vite__mapDeps([494,211,203,344,239,142,257,66,462,495,375,217,33,218,252,496,129,76,470,227]))),h5t=P.lazy(()=>$e(()=>import("./BrowserExtension-CWAA1ko_.js"),__vite__mapDeps([497,288]))),f5t=P.lazy(()=>$e(()=>import("./IntegrationsGmailCallback-CBLpNCaD.js"),__vite__mapDeps([498,66,79]))),p5t=P.lazy(()=>$e(()=>import("./IntegrationsCanvaCallback-CiOf0mlO.js"),[])),m5t=P.lazy(()=>$e(()=>import("./IntegrationsMetaCallback-Vt-Qlz8G.js"),__vite__mapDeps([499,66,79]))),g5t=P.lazy(()=>$e(()=>import("./ScorecardAdmin-CybUJTkz.js"),[])),y5t=P.lazy(()=>$e(()=>import("./AgentActivation-ZlDSfaaO.js"),__vite__mapDeps([500,146,92,469]))),gce=P.lazy(()=>$e(()=>import("./ScorecardAgentView-dtWj6yQB.js"),[])),x5t=P.lazy(()=>$e(()=>import("./ListingExchange-rhKFR9GP.js"),[])),_5t=P.lazy(()=>$e(()=>import("./ListingLeads-QRFrnlF6.js"),[])),v5t=P.lazy(()=>$e(()=>import("./PublicSiteLeads-DCrKpncN.js"),[])),b5t=P.lazy(()=>$e(()=>import("./MembershipReviews-B53bNkxv.js"),__vite__mapDeps([501,146]))),w5t=P.lazy(()=>$e(()=>import("./LeadNotifications-8ZdHPB6n.js"),__vite__mapDeps([502,146]))),S5t=P.lazy(()=>$e(()=>import("./WeeklyDigest-au7qLqOI.js"),__vite__mapDeps([503,79]))),T5t=P.lazy(()=>$e(()=>import("./AgentPoints-BQuQAtp9.js"),__vite__mapDeps([504,191]))),E5t=P.lazy(()=>$e(()=>import("./AgentCards-hmsELSL9.js"),__vite__mapDeps([505,177,178,179,180,493,205,125,142,257,70,229,461]))),A5t=P.lazy(()=>$e(()=>import("./Marketplace-BPtwx9xz.js"),__vite__mapDeps([506,148,205,75]))),k5t=P.lazy(()=>$e(()=>import("./RewardStore-L6yfEkcp.js"),__vite__mapDeps([507,508,75,90,76]))),C5t=P.lazy(()=>$e(()=>import("./Integrations-EQhbpln4.js"),__vite__mapDeps([509,146,495,375,66,217,33,218,252]))),I5t=P.lazy(()=>$e(()=>import("./SocialConnections-CwvoqJKx.js"),__vite__mapDeps([510,146]))),j5t=P.lazy(()=>$e(()=>import("./NotificationSettings-D5lt3_EW.js"),__vite__mapDeps([511,146]))),P5t=P.lazy(()=>$e(()=>import("./PresentationAnalytics-DyANlPPy.js"),__vite__mapDeps([512,256,142,257,150]))),N5t=P.lazy(()=>$e(()=>import("./ListingPresentationStudioAdmin-BO6bd-Q-.js"),__vite__mapDeps([513,146]))),R5t=P.lazy(()=>$e(()=>import("./ListingRevivalAdmin-BMczzRiF.js"),__vite__mapDeps([514,146,515]))),L5t=P.lazy(()=>$e(()=>import("./GuestBookAnalytics-D3DeyUdY.js"),__vite__mapDeps([516,66]))),D5t=P.lazy(()=>$e(()=>import("./IntegrationsCallback-CCAFnTSm.js"),__vite__mapDeps([517,66,79]))),M5t=P.lazy(()=>$e(()=>import("./Prospector-Cfl0RKoM.js"),[])),O5t=P.lazy(()=>$e(()=>import("./AdminRecruiting-C2Ab-wO8.js"),__vite__mapDeps([518,519,125,129,382,151,383,384,296,6,8,359,76,285,207,142,257,79,431,83,319,157,211,203,496,375,168,169,293,520,173,310,421,171,172,439,174,175,176,90,295,150,12,41,7,132,133,66,458]))),F5t=P.lazy(()=>$e(()=>import("./BrokerageRecruiting-BIDbjawB.js"),__vite__mapDeps([521,519,125,129,382,151,383,384,296,6,8,359,76,285,207,142,257,79,431,83,319,157,211,203,496,375,168,169,293,520,173,310,421,171,172,439,174,175,176,90,295,150,12,41,7,132,133,66,470,424,445,468,224,522]))),B5t=P.lazy(()=>$e(()=>import("./BrokerageOnboarding-lxOvfEhW.js"),__vite__mapDeps([523,300,301,79,6,76,159,470,424,429,467,142,257,522]))),z5t=P.lazy(()=>$e(()=>import("./BrokerageTransactions-BciP1WpA.js"),__vite__mapDeps([524,472,191,433,79,525,479,429,75]))),$5t=P.lazy(()=>$e(()=>import("./BrokerageOperations-EOTRGVU5.js"),__vite__mapDeps([526,527,479,300,443]))),U5t=P.lazy(()=>$e(()=>import("./WebsitesHub-BioV2U22.js"),__vite__mapDeps([528,529]))),V5t=P.lazy(()=>$e(()=>import("./TeamWebsite-BdSfEHB0.js"),__vite__mapDeps([530,531,56,70,532,529]))),q5t=P.lazy(()=>$e(()=>import("./BrokerageWebsite-NCMzrsXU.js"),__vite__mapDeps([533,531,56,70,532,529]))),G5t=P.lazy(()=>$e(()=>import("./BrokerageCommissionPlans-C_kD_WQ2.js"),__vite__mapDeps([534,471,479,387,431,527,441,97,345,151,104,525,469]))),H5t=P.lazy(()=>$e(()=>import("./BrokerageContentActivity-Cj4BLK-R.js"),__vite__mapDeps([535,146]))),W5t=P.lazy(()=>$e(()=>import("./BetaSocialPostGenerator-F4ZaT83p.js"),__vite__mapDeps([536,146,161,236,237,205,18,6]))),K5t=P.lazy(()=>$e(()=>import("./AdminLMS-YGj-Eq70.js"),__vite__mapDeps([537,538,174,460,70]))),Y5t=P.lazy(()=>$e(()=>import("./AdminCourseDetail-ChubA-DA.js"),__vite__mapDeps([539,538,174,460,70,148,76]))),Z5t=P.lazy(()=>$e(()=>import("./AdminLMSStats-C5QIGnga.js"),[])),X5t=P.lazy(()=>$e(()=>import("./LevelUpU-CsnsQ989.js"),__vite__mapDeps([540,538,174,460]))),Q5t=P.lazy(()=>$e(()=>import("./LevelUpUCourse-CgZ49YaN.js"),__vite__mapDeps([541,538]))),J5t=P.lazy(()=>$e(()=>import("./MobileAgentApp-YXhzTXto.js"),__vite__mapDeps([542,83,341,158,314,130,129,131,132,133,134,135,136,205,18,39,41,264]))),e4t=P.lazy(()=>$e(()=>import("./StagingStudio-19rsaABa.js"),__vite__mapDeps([543,202,203,544,425,428,49,148,545,546,38,547,182,183,227,75]))),t4t=P.lazy(()=>$e(()=>import("./StagingLibrary-DnkL-LhN.js"),__vite__mapDeps([548,544,425,428,49,545,182,434,75]))),r4t=P.lazy(()=>$e(()=>import("./StagingCredits-9_oF5dGM.js"),__vite__mapDeps([549,547,182,183,85]))),n4t=P.lazy(()=>$e(()=>import("./AgentWallet-C0yFXnMF.js"),__vite__mapDeps([550,373,182,551,252,183,275]))),i4t=P.lazy(()=>$e(()=>import("./StagingSharePage-B_zular_.js"),__vite__mapDeps([552,546]))),s4t=P.lazy(()=>$e(()=>import("./StagingStudioAdmin-DDIHKRih.js"),__vite__mapDeps([553,544,425,428,49,5,182,546,81]))),a4t=P.lazy(()=>$e(()=>import("./ContactFinderAdmin-BCG-qte8.js"),__vite__mapDeps([554,373]))),o4t=P.lazy(()=>$e(()=>import("./PostcardManager-182SpOzl.js"),__vite__mapDeps([555,556,233,234,557,466,175,76]))),l4t=P.lazy(()=>$e(()=>import("./MailStudioTemplates-CHuDE7gs.js"),__vite__mapDeps([558,556,233,234,557,466,175,76,142,257]))),c4t=P.lazy(()=>$e(()=>import("./HomeReelManager-D0XqqDPn.js"),__vite__mapDeps([559,551,252,560,48,8,319,296,124,451,466,423,125,262,76,253,250,400,321]))),u4t=P.lazy(()=>$e(()=>import("./AdminMusicVideos-CvDNW1t5.js"),__vite__mapDeps([561,48]))),d4t=P.lazy(()=>$e(()=>import("./AdminVideoLab-CbZ56wap.js"),__vite__mapDeps([562,560,48,423,8,148,6,456]))),h4t=P.lazy(()=>$e(()=>import("./BoostPreview-CnEnDSDp.js"),__vite__mapDeps([563,1,2,3,4,5,6,7]))),f4t=P.lazy(()=>$e(()=>import("./AdminCredits-CbzUgM_r.js"),__vite__mapDeps([564,146,191,422]))),p4t=P.lazy(()=>$e(()=>import("./AdminCleanup-CsBvOr70.js"),[])),m4t=P.lazy(()=>$e(()=>import("./MailStudio-ta6mMCEF.js"),__vite__mapDeps([565,557,233,234,387,76,466,148,6,393,175,176,415,361,362,566,339,266,13,462,567,181,568,205,114,218,390,391,338,151,455,138,191,569]))),g4t=()=>{const t=Ji();return o.jsx(Li,{to:`/mission-control/direct-mail${t.search}`,replace:!0})},y4t=P.lazy(()=>$e(()=>import("./InnerCirclePopbyMap-rTIQK-_L.js"),__vite__mapDeps([570,348,395,396,66]))),x4t=P.lazy(()=>$e(()=>import("./SphereMap-ElCaBgKv.js"),__vite__mapDeps([571,362,129,442,364,338,566,396,3,314,354,355,356,296,357,358,359,90,130,131,132,133,134,135,136,158,205,365,210,142,257,373,350]))),_4t=P.lazy(()=>$e(()=>import("./PropertyIntelligenceDashboard-CGcE6tFF.js"),__vite__mapDeps([572,370,418,253,371]))),v4t=P.lazy(()=>$e(()=>import("./LiveVisitorFeed-D8CiKKIX.js"),__vite__mapDeps([573,263]))),b4t=P.lazy(()=>$e(()=>import("./LeadSites-CsqRgLXQ.js"),__vite__mapDeps([574,454,453]))),yce=P.lazy(()=>$e(()=>import("./LeadSiteEditor-B4QTo8E2.js"),__vite__mapDeps([575,97,576,411,105,176,175,412,372,413,257,81,262,3,142,414,415,151,416,186,32,47,173,321,404,417,418,115,371,268,88,419,39,420,421,288,66,422,79,423,424,425,426,113,316,294,116,250,346,266,427,85,267,253,114,264,224,428,38,70,429,430,431,165,432,137,207,433,247,112,252,383,75,434,435,436,437,125,438,265,409,12,171,172,439,440,191,441,148,83,100,350,442,208,319,90,313,174,443,395,444,108,92,445,446,187,365,13,18,190,447,448,229,449,450,384,196,296,29,150,285,451,393,48,396,452,286,136,8,336,377,106,244,141,54,453,454,455,138,104,456,345,221,273,243,6,179,210,76,457,227,275,458,459,251,460,64,197,41,144,363,340,263,7,461,205,462,463,40,464,28,49,24,465,466,310,218,62,194,82,467,468,185,469,470,295,42,101,178,577,124,578,51,380,579]))),w4t=P.lazy(()=>$e(()=>import("./AdminLeadSiteThemes-CT6SMzBD.js"),__vite__mapDeps([580,576,578,286,466,267,437]))),S4t=P.lazy(()=>$e(()=>import("./AdminFreeWebsiteOffers-B9NjYeo4.js"),[])),T4t=P.lazy(()=>$e(()=>import("./AdminPartnerships-CRMy28fZ.js"),[])),E4t=P.lazy(()=>$e(()=>import("./MyPartnership-DQGq0np-.js"),[])),A4t=P.lazy(()=>$e(()=>import("./UpgradeFeature-BFYVqD5P.js"),[])),k4t=P.lazy(()=>$e(()=>import("./CoachingOnboarding-BUj7AAPF.js"),[])),C4t=P.lazy(()=>$e(()=>import("./AdminFreeWebsiteOfferStudio-Dt23IIY7.js"),__vite__mapDeps([581,576,577,124,578,12,13,29,286,125,70,466,114,28,76]))),I4t=P.lazy(()=>$e(()=>import("./AdminMlsFeeds-D7diVu6Z.js"),__vite__mapDeps([582,253]))),j4t=P.lazy(()=>$e(()=>import("./AdminLeadSiteAnalytics-D3OOMfs7.js"),[])),P4t=P.lazy(()=>$e(()=>import("./AdminWebsiteInterests-ByhGSlze.js"),[])),N4t=P.lazy(()=>$e(()=>import("./AdminWebsiteRequests-lQqzF4qj.js"),__vite__mapDeps([583,79]))),R4t=P.lazy(()=>$e(()=>import("./NeedAWebsite-D1XGT2F_.js"),__vite__mapDeps([584,184,208,150,414]))),L4t=P.lazy(()=>$e(()=>import("./AdminMlsFeeTracker-QytkJJy3.js"),[])),D4t=P.lazy(()=>$e(()=>import("./MLSListings-D1F09bZw.js"),__vite__mapDeps([585,380,12,400,399,314,361,362,360,132,133,205,227,70,321,18,48]))),M4t=P.lazy(()=>$e(()=>import("./MLSListingDetail-DFwIJQWe.js"),__vite__mapDeps([586,158,131,314,205,70,357,43,129,128,387,455,138,18,465]))),O4t=P.lazy(()=>$e(()=>import("./MarketReportPage-BQWarRO5.js"),[]));P.lazy(()=>$e(()=>import("./WebsiteActivityPage-DV9yWIj0.js"),__vite__mapDeps([587,158,130,129,131,132,133,134,135,136,13])));const F4t=P.lazy(()=>$e(()=>import("./PublicRecruitForm-Br9AHz8-.js"),__vite__mapDeps([588,27,431]))),B4t=P.lazy(()=>$e(()=>import("./PublicRecruitVideo-rvobPzet.js"),[])),z4t=P.lazy(()=>$e(()=>import("./PublicRecruitUnsubscribe-Bg9TAj5X.js"),[])),$4t=P.lazy(()=>$e(()=>import("./PublicEventInviteUnsubscribe-C8hiU5rs.js"),__vite__mapDeps([589,419]))),U4t=P.lazy(()=>$e(()=>import("./SocialConnections-BH2eXP8_.js"),__vite__mapDeps([590,66,252,79]))),V4t=P.lazy(()=>$e(()=>import("./SocialConnectionsCallback-DzUXVPr6.js"),__vite__mapDeps([591,66,79]))),q4t=P.lazy(()=>$e(()=>import("./SocialConnectionsGoogleCallback-Dd9FnkZ_.js"),[])),G4t=P.lazy(()=>$e(()=>import("./LinkedInCallback-D1GQbqya.js"),__vite__mapDeps([592,66,79]))),H4t=P.lazy(()=>$e(()=>import("./MarketplaceProductDetail-CkccJrQH.js"),[])),W4t=P.lazy(()=>$e(()=>import("./MarketplaceCart-BPsE24KM.js"),__vite__mapDeps([593,129,251]))),K4t=P.lazy(()=>$e(()=>import("./MarketplaceOrders-8rmv6o_4.js"),[])),Y4t=P.lazy(()=>$e(()=>import("./MarketplaceOrderDetail-vgsFgrAS.js"),__vite__mapDeps([594,129,165,464,24]))),Z4t=P.lazy(()=>$e(()=>import("./MarketplaceSuccess-BDFdR1lO.js"),[])),X4t=P.lazy(()=>$e(()=>import("./RewardStore-dqiIVSTo.js"),__vite__mapDeps([595,508,211,203,251]))),Q4t=P.lazy(()=>$e(()=>import("./ReferFriends-BZyP754o.js"),__vite__mapDeps([596,129,158]))),J4t=P.lazy(()=>$e(()=>import("./SmartPresentations-BpHrr3vJ.js"),__vite__mapDeps([597,598,372]))),xce=P.lazy(()=>$e(()=>import("./SmartPresentationCreate-CF8tcQC4.js"),__vite__mapDeps([599,167,168,169,170,171,172,173,174,175,176,90,382,151,383,384,296,6,8,406,70,359,66,357,598,158,130,129,131,132,133,134,135,136,125,148]))),eBt=P.lazy(()=>$e(()=>import("./PublicPresentation-rRAOS2QE.js"),[])),tBt=P.lazy(()=>$e(()=>import("./GuestBook-CcfnZ5tw.js"),__vite__mapDeps([600,129,128,355,363,125,357,83,372,158,132,90,205,138,352,338,148,191,70,455]))),rBt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>sZe),void 0)),nBt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>cZe),void 0)),iBt=P.lazy(()=>$e(()=>import("./PublicResourceLanding-Dpaio8_X.js"),[])),sBt=P.lazy(()=>$e(()=>import("./SignDocument-DzeKNVSU.js"),__vite__mapDeps([601,391,79,466,463,428]))),aBt=P.lazy(()=>$e(()=>import("./Blog-CETd_XN0.js"),__vite__mapDeps([602,603]))),oBt=P.lazy(()=>$e(()=>import("./BlogPost-DlbOAk_K.js"),__vite__mapDeps([604,603,427,465]))),lBt=P.lazy(()=>$e(()=>import("./AdminBlog-DYJe5Fad.js"),__vite__mapDeps([605,129,168,170,520,173,310,172,439,174,294,175,176,90,148,70]))),cBt=P.lazy(()=>$e(()=>import("./ReviewLanding-BL0wS3FC.js"),__vite__mapDeps([606,607,382,151,383,384,296,6,8]))),uBt=P.lazy(()=>$e(()=>import("./PublicReviewsPage-BcJijAYK.js"),__vite__mapDeps([608,414,449]))),dBt=P.lazy(()=>$e(()=>import("./PublicReviewSubmit-zGBzGEre.js"),__vite__mapDeps([609,607,382,151,383,384,296,6,8]))),hBt=P.lazy(()=>$e(()=>import("./Reviews-B2kESgQj.js"),__vite__mapDeps([610,128,122,219,220,222,227,62,414,141,243,70,316,138,350]))),fBt=P.lazy(()=>$e(()=>import("./ClientPortalPage-DP-bo4KI.js"),[])),pBt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>Dtt),void 0)),mBt=P.lazy(()=>$e(()=>import("./CardStudio-DWVMBzSu.js"),__vite__mapDeps([611,359,476,382,151,383,384,296,6,8,66,220,158,135]))),gBt=P.lazy(()=>$e(()=>import("./ListingStudio-raMNe31A.js"),__vite__mapDeps([612,148,267,114,430,97,384,54,445,32]))),yBt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>Ejt),void 0)),xBt=P.lazy(()=>$e(()=>import("./SmartDrips-DmHRgwRE.js"),__vite__mapDeps([613,129,158,454,377,357,476,382,151,383,384,296,6,8,359,66,355,356,358,90,350,268]))),_Bt=P.lazy(()=>$e(()=>import("./WeeklyReels-HrZVOnVl.js"),__vite__mapDeps([614,202,203,615,129,211,616,423,225,227]))),vBt=P.lazy(()=>$e(()=>import("./WeeklyReelsOnboarding-svo15ydK.js"),__vite__mapDeps([617,616]))),bBt=P.lazy(()=>$e(()=>import("./WeeklyReelsAdmin-mW_IX57U.js"),__vite__mapDeps([618,225,616,615,129,211,203,423]))),wBt=P.lazy(()=>$e(()=>import("./AttractLayout-CKo0XqAt.js"),__vite__mapDeps([619,620,621,622,144,7,224]))),SBt=P.lazy(()=>$e(()=>import("./AttractToday-BIa6CiLe.js"),__vite__mapDeps([623,211,203,621,624,625,626,627,628,350,319,440,629,630,470,268,450,631,459]))),TBt=P.lazy(()=>$e(()=>import("./AttractRelationships-gqsMJbeQ.js"),__vite__mapDeps([632,633,629,625,630,207,634,372,626,621,624,470]))),EBt=P.lazy(()=>$e(()=>import("./AttractFollowUp-CAAlETdf.js"),__vite__mapDeps([635,633,626,625,116]))),ABt=P.lazy(()=>$e(()=>import("./AttractResources-DAtWw85K.js"),[])),kBt=P.lazy(()=>$e(()=>import("./AttractTemplates-BzobzZkq.js"),__vite__mapDeps([636,116,273]))),CBt=P.lazy(()=>$e(()=>import("./AttractReports-CBj9TQiJ.js"),__vite__mapDeps([637,633,625,627,630,287]))),IBt=P.lazy(()=>$e(()=>import("./AttractSettings-DicBgOd4.js"),__vite__mapDeps([638,633,620,6]))),jBt=P.lazy(()=>$e(()=>import("./AttractToolkit-qsJpeoUl.js"),__vite__mapDeps([639,633,229,459,268,319]))),PBt=P.lazy(()=>$e(()=>import("./Objections-Dj_bBCvD.js"),__vite__mapDeps([640,459]))),NBt=P.lazy(()=>$e(()=>import("./AttractCalculator-dJAy1v_1.js"),__vite__mapDeps([641,633,642,455]))),RBt=P.lazy(()=>$e(()=>import("./AttractEventList-BqqIvPuF.js"),__vite__mapDeps([643,631]))),_ce=P.lazy(()=>$e(()=>import("./AttractEventBuilder-DL9lBZIn.js"),__vite__mapDeps([644,129,631,645,90,76]))),LBt=P.lazy(()=>$e(()=>import("./AttractEventDetail-CEfio04D.js"),__vite__mapDeps([646,631,625,138,229]))),DBt=P.lazy(()=>$e(()=>import("./AttractEventCheckIn-IGR3UGWy.js"),__vite__mapDeps([647,568,631,138]))),MBt=P.lazy(()=>$e(()=>import("./AttractOnboarding-_OZUiKHo.js"),__vite__mapDeps([648,620,144,438,268]))),OBt=P.lazy(()=>$e(()=>import("./ContentStudio-CU4ERe0Q.js"),__vite__mapDeps([649,633,457]))),FBt=P.lazy(()=>$e(()=>import("./KitList-DFgVxNlS.js"),__vite__mapDeps([650,645,319,106]))),vce=P.lazy(()=>$e(()=>import("./KitBuilder-B1546DIb.js"),__vite__mapDeps([651,645,625,633,652,90,229,142,257,296,151]))),BBt=P.lazy(()=>$e(()=>import("./KitAnalytics-CmoR2Xoz.js"),__vite__mapDeps([653,645,633,150,287]))),zBt=P.lazy(()=>$e(()=>import("./KitTemplates-CaHD2QAt.js"),__vite__mapDeps([654,645,633]))),$Bt=P.lazy(()=>$e(()=>import("./AttractAgentDetail-MRS5oLiS.js"),__vite__mapDeps([655,634,625,372,130,129,131,132,133,134,135,136,158,621,626,622,628,350,319,440,630,7,263,262,470,41]))),UBt=P.lazy(()=>$e(()=>import("./AttractOpportunities-Dsu9Ee8M.js"),__vite__mapDeps([656,621,624,628,350,319,440]))),VBt=P.lazy(()=>$e(()=>import("./AttractIntelligenceDebug-CgngTINA.js"),__vite__mapDeps([657,621,622,416]))),qBt=P.lazy(()=>$e(()=>import("./AttractToolsQA-xgMDOK7F.js"),[])),GBt=P.lazy(()=>$e(()=>import("./PublicAttractKit-2PcQZoFC.js"),__vite__mapDeps([658,652,90,229]))),HBt=P.lazy(()=>$e(()=>import("./PublicAttractEvent-C-WirUqp.js"),__vite__mapDeps([659,631]))),WBt=P.lazy(()=>$e(()=>import("./PublicAttractEventCheckIn-BD4g5wzG.js"),[])),KBt=P.lazy(()=>$e(()=>import("./PublicAttractionPage-fey7lWWP.js"),__vite__mapDeps([660,661,202,203]))),YBt=P.lazy(()=>$e(()=>import("./RevivalLanding-lj4J56z5.js"),__vite__mapDeps([662,663]))),bce=P.lazy(()=>$e(()=>import("./RevivalPlan-Dc8HJGAr.js"),__vite__mapDeps([664,665,128,663,387,568]))),ZBt=P.lazy(()=>$e(()=>import("./ListingRevival-TlE2TNWu.js"),__vite__mapDeps([666,667,663,515,426,207,138,668,208,227,372,412]))),XBt=P.lazy(()=>$e(()=>import("./RevivalCampaignWizard-Cp1lbFVm.js"),__vite__mapDeps([669,392,386,387,148,667,663,670,236,567]))),QBt=P.lazy(()=>$e(()=>import("./RevivalCampaignDetail-CoJ3S_xL.js"),__vite__mapDeps([671,128,670,236,387,567,672,185,436,76,352,338,667,663,665,568,382,151,383,384,296,6,8,359,66,392,386,148,70,138,210,455,431,32]))),JBt=P.lazy(()=>$e(()=>import("./FsboBreakthrough-BpftVSLJ.js"),__vite__mapDeps([673,674,675,676,392,386,387,148,138,668,208,227,372,412]))),ezt=P.lazy(()=>$e(()=>import("./FsboCampaignWizard-DVkfBJrK.js"),__vite__mapDeps([677,392,386,387,148,674,675,670,236,567]))),tzt=P.lazy(()=>$e(()=>import("./FsboCampaignDetail-wNMG6pdq.js"),__vite__mapDeps([678,128,670,236,387,567,672,185,436,76,674,675,352,338,676,392,386,148,181,431,455]))),rzt=P.lazy(()=>$e(()=>import("./FsboLanding-CQLkR6oE.js"),__vite__mapDeps([679,675,680]))),nzt=P.lazy(()=>$e(()=>import("./FsboGuide-l8hI_XGv.js"),__vite__mapDeps([681,680]))),izt=P.lazy(()=>$e(()=>import("./FsboBreakthroughAdmin-MrgRh7QC.js"),__vite__mapDeps([682,674,138,668]))),szt=P.lazy(()=>$e(()=>import("./AttractLandingPageBuilder-C4Umv-X9.js"),__vite__mapDeps([683,642,661,202,203,76]))),azt=P.lazy(()=>$e(()=>import("./AttractAccess-Cizj9fkg.js"),__vite__mapDeps([684,146,191,79]))),ozt=P.lazy(()=>$e(()=>import("./Teams-LxqSKjwF.js"),__vite__mapDeps([685,258,267,259,260,261,262,263,191,264,6,265,266,75,82]))),lzt=P.lazy(()=>$e(()=>import("./MyTeam-i4kLt0KB.js"),__vite__mapDeps([686,258,261,262,263,191,264,6,265,260,687,267,266,75]))),czt=P.lazy(()=>$e(()=>import("./TeamHub-DEY0OBh3.js"),__vite__mapDeps([688,258,261,262,263,191,264,6,265,260,687,531,56,70,267,266,75]))),uzt=P.lazy(()=>$e(()=>import("./SchedulerSettings-C5-kgw5u.js"),__vite__mapDeps([689,87,88,89,62,129,447,79,227]))),dzt=P.lazy(()=>$e(()=>import("./MyCalendar-BoJuQpaT.js"),__vite__mapDeps([690,89,220,223,222,224]))),hzt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>Ijt),void 0)),fzt=P.lazy(()=>$e(()=>import("./BookingManagePage-CoxbDHH8.js"),__vite__mapDeps([691,79]))),pzt=P.lazy(()=>$e(()=>import("./LandingPages-B16cy3aQ.js"),__vite__mapDeps([692,128,138]))),mzt=P.lazy(()=>$e(()=>import("./BuyerMatch-DwWRrWjb.js"),__vite__mapDeps([693,694,131,314,361,362,308,239,309,173,310,174,90,150,296,142,257,205,8,372]))),gzt=P.lazy(()=>$e(()=>import("./BuyerMatchEditor-CP8q-FJU.js"),__vite__mapDeps([695,128,694,131,314,361,362,308,239,309,173,310,174,90,150,296,142,257,205,130,129,132,133,134,135,136,696,76]))),yzt=P.lazy(()=>$e(()=>import("./PublicBuyerMatch-DrY_9Mki.js"),__vite__mapDeps([697,696,444,79]))),xzt=P.lazy(()=>$e(()=>import("./LandingPageEditor-DL3B_iyp.js"),__vite__mapDeps([698,128,150,124,138,76,125]))),_zt=P.lazy(()=>$e(()=>import("./LandingPageDefaults-grnijYri.js"),__vite__mapDeps([699,76]))),vzt=P.lazy(()=>$e(()=>Promise.resolve().then(()=>Xjt),void 0)),bzt=P.lazy(()=>$e(()=>import("./WebsiteAppsHub-Ch6jFV6G.js"),__vite__mapDeps([700,701,267,702,411,105,176,175,412,372,413,257,81,262,3,142,414,415,151,416,186,32,47,173,321,404,417,418,115,371,268,88,419,39,420,421,288,66,422,79,423,424,425,426,113,316,294,116,250,346,266,427,85,253,114,264,224,428,38,70,429,430,431,165,432,137,207,433,247,112,252,383,75,434,435,436,437,125,438,265,409,12,171,172,439,440,191,441,148,83,100,350,442,208,319,90,313,174,443,395,444,108,92,445,446,187,365,13,18,190,447,448,229,449,450,384,196,296,29,150,285,451,393,48,396,452,286,136,97,8,336,377,106,244,141,54,453,454,455,138,104,456,345,221,273,243,6,179,210,76,457,227,275,458,459,251,460,64,197,41,144,363,340,263,7,461,205,462,463,40,464,28,49,24,465,466,310,218,62,194,82,467,468,185,469,470,295,42,101,178]))),wzt=P.lazy(()=>$e(()=>import("./ClaimWebsite-DEqlAeWB.js"),__vite__mapDeps([703,701,267]))),Szt=P.lazy(()=>$e(()=>import("./VideoGreeterEditor-Hd6lnra4.js"),__vite__mapDeps([704,702,357,578,382,151,383,384,296,6,8,406,70,359,66]))),Tzt=P.lazy(()=>$e(()=>import("./ExitIntentEditor-VH2zDGE9.js"),__vite__mapDeps([705,702,706]))),Ezt=P.lazy(()=>$e(()=>import("./LeadMagnetEditor-DgxezAS7.js"),__vite__mapDeps([707,702,706]))),Azt=P.lazy(()=>$e(()=>import("./EmbedVideoGreeter-Dm7Pp51G.js"),[])),kzt=P.lazy(()=>$e(()=>import("./EmbedLeadMagnet-K-19oyxH.js"),[])),Czt=P.lazy(()=>$e(()=>import("./RelationshipScorecard-ZN8cst0A.js"),__vite__mapDeps([708,351,164,3,413,336,157]))),Izt=P.lazy(()=>$e(()=>import("./SphereGaps-06dBcsBW.js"),__vite__mapDeps([709,134,158,130,129,131,132,133,135,136,314,452,205,76]))),jzt=P.lazy(()=>$e(()=>import("./Signals-CK_J1_R1.js"),[])),Pzt=P.lazy(()=>$e(()=>import("./ConnectPageSettings-CImHB-fJ.js"),__vite__mapDeps([710,134]))),Nzt=P.lazy(()=>$e(()=>import("./WebsiteActivityPage-DV9yWIj0.js"),__vite__mapDeps([587,158,130,129,131,132,133,134,135,136,13]))),Rzt=P.lazy(()=>$e(()=>import("./EmailCampaigns-BGNKpwbv.js"),__vite__mapDeps([711,712,375,131,66]))),Lzt=P.lazy(()=>$e(()=>import("./EmailCompliance-x9C_vMkP.js"),__vite__mapDeps([713,446]))),Dzt=P.lazy(()=>$e(()=>import("./EmailCampaignComposer-DdfTcXE5.js"),__vite__mapDeps([714,712,375,715,168,170,293,169,173,171,172,174,175,176,90,462,371,208,321,75,357,311,294,136]))),Mzt=P.lazy(()=>$e(()=>import("./EmailCampaignDetail-CP97xZEe.js"),__vite__mapDeps([716,285,151]))),Ozt=P.lazy(()=>$e(()=>import("./SharedCampaignTemplates-C-sTiU7V.js"),__vite__mapDeps([717,718,715,168,170,293,169,173,171,172,174,175,176,90,462,371,208,321,294]))),Fzt=P.lazy(()=>$e(()=>import("./AgentTemplates-CzeMzCA0.js"),__vite__mapDeps([719,718,715,168,170,293,169,173,171,172,174,175,176,90,462,371,208,321,294,75]))),wce=P.lazy(()=>$e(()=>import("./TheLocalMoveHome-C-9vak05.js"),__vite__mapDeps([720,721,266,420,115]))),Sce=P.lazy(()=>$e(()=>import("./TheLocalMoveGetStarted-CdznTkqu.js"),__vite__mapDeps([722,721]))),Tce=P.lazy(()=>$e(()=>import("./TheLocalMoveCheckout-Dehnyrkr.js"),__vite__mapDeps([723,224]))),Ece=P.lazy(()=>$e(()=>import("./TheLocalMoveCheckoutSuccess-2zi21XVy.js"),[])),Bzt=P.lazy(()=>$e(()=>import("./AdminWebsiteOrders-Dh2Z-LCk.js"),__vite__mapDeps([724,205]))),zzt=new NFe({defaultOptions:{queries:{refetchOnWindowFocus:!1,staleTime:5*60*1e3}}}),$zt=()=>{const t=window.location.hostname;return t==="listings.relevelup.com"||t.startsWith("listings.")},Uzt=()=>{const t=window.location.hostname;return t==="commercial.relevelup.com"||t.startsWith("commercial.")},Vzt=()=>{const t=window.location.hostname;return t==="cards.relevelup.com"||t.startsWith("cards.")},qzt=()=>{const t=window.location.hostname;return t==="presentations.relevelup.com"||t.startsWith("presentations.")},Gzt=()=>{const t=window.location.hostname;return t==="guestbook.relevelup.com"||t.startsWith("guestbook.")},Hzt=()=>{const t=window.location.hostname;return t==="clients.relevelup.com"||t.startsWith("clients.")},Wzt=()=>{const t=window.location.hostname;return t==="cma.relevelup.com"||t.startsWith("cma.")},Kzt=()=>{const t=window.location.hostname;return t==="cardstudio.relevelup.com"||t.startsWith("cardstudio.")},Yzt=()=>{const t=window.location.hostname;return t==="booking.relevelup.com"||t.startsWith("booking.")},Zzt=()=>{const t=window.location.hostname;return t==="contacts.relevelup.com"||t.startsWith("contacts.")},Xzt=()=>{const t=window.location.hostname;return t==="pages.relevelup.com"||t.startsWith("pages.")},W2e=()=>{const t=window.location.hostname;return t==="thelocalmove.com"||t==="www.thelocalmove.com"},Qzt=new Set(["app","www","api","admin","embed","cdn","static","assets"]),Jzt=()=>{const t=window.location.hostname;if(new URLSearchParams(window.location.search).get("previewSlug"))return!0;if(Zde(t))return!(window.location.pathname.startsWith("/embed/")||window.location.pathname.startsWith("/widgets/"));if(!t.endsWith(".thelocalmove.com")||W2e())return!1;const e=t.replace(/\.thelocalmove\.com$/,"").split(".").pop()||"";return!(Qzt.has(e.toLowerCase())||window.location.pathname.startsWith("/embed/")||window.location.pathname.startsWith("/widgets/"))};if(typeof window<"u")try{const e=new URLSearchParams(window.location.search).get("ref");e&&/^[a-z0-9]{2,32}$/i.test(e)&&localStorage.setItem("levelup_referral_code",e.toLowerCase())}catch{}const e$t=()=>o.jsx(OFe,{client:zzt,children:o.jsx(Jpe,{children:o.jsxs(bpe,{children:[o.jsx(KLe,{}),o.jsx(ADe,{}),o.jsx(GMe,{}),o.jsx(H3e,{future:{v7_startTransition:!0},children:o.jsx($Be,{children:o.jsx(HBe,{children:o.jsx(KBe,{children:o.jsxs(GBe,{children:[o.jsx(WBe,{}),o.jsx(M$e,{}),o.jsx(sKe,{}),Kzt()?o.jsx(Ajt,{}):Vzt()?o.jsx(NYe,{}):Uzt()?o.jsx(oYe,{}):$zt()?o.jsx(sYe,{}):qzt()?o.jsx(MYe,{}):Gzt()?o.jsx(ftt,{}):Hzt()?o.jsx(Mtt,{}):Wzt()?o.jsx($tt,{}):Yzt()?o.jsx(jjt,{}):Zzt()?o.jsx(zjt,{}):Xzt()?o.jsx(Qjt,{}):W2e()?o.jsxs(tk,{children:[o.jsx(Re,{path:"/get-started",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Sce,{})})}),o.jsx(Re,{path:"/checkout",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Tce,{})})}),o.jsx(Re,{path:"/checkout/success",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Ece,{})})}),o.jsx(Re,{path:"/privacy-policy",element:o.jsx(sce,{})}),o.jsx(Re,{path:"/terms-of-service",element:o.jsx(ace,{})}),o.jsx(Re,{path:"/mcp-data-use",element:o.jsx(oce,{})}),o.jsx(Re,{path:"*",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(wce,{})})})]}):Jzt()?o.jsx(COt,{}):o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsxs(tk,{children:[o.jsx(Re,{path:"/",element:o.jsx(irt,{})}),o.jsx(Re,{path:"/the-local-move",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(wce,{})})}),o.jsx(Re,{path:"/get-started",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Sce,{})})}),o.jsx(Re,{path:"/local-move/checkout",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Tce,{})})}),o.jsx(Re,{path:"/local-move/checkout/success",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(Ece,{})})}),o.jsx(Re,{path:"/privacy-policy",element:o.jsx(sce,{})}),o.jsx(Re,{path:"/terms-of-service",element:o.jsx(ace,{})}),o.jsx(Re,{path:"/data-deletion",element:o.jsx(LOt,{})}),o.jsx(Re,{path:"/mcp-data-use",element:o.jsx(oce,{})}),o.jsx(Re,{path:"/canva-support",element:o.jsx(ROt,{})}),o.jsx(Re,{path:"/sms-opt-in",element:o.jsx(DOt,{})}),o.jsx(Re,{path:"/oauth-connect",element:o.jsx(_$,{})}),o.jsx(Re,{path:"/.lovable/oauth/consent",element:o.jsx(_$,{})}),o.jsx(Re,{path:"/oauth/consent",element:o.jsx(_$,{})}),o.jsx(Re,{path:"/mcp",element:o.jsx(lce,{})}),o.jsx(Re,{path:"/connect-chatgpt",element:o.jsx(lce,{})}),o.jsx(Re,{path:"/connect-chatgpt/classic",element:o.jsx(MOt,{})}),o.jsx(Re,{path:"/public/listings",element:o.jsx(lFt,{})}),o.jsx(Re,{path:"/public/commercial",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(NOt,{})})}),o.jsx(Re,{path:"/public/listing/:slugOrId",element:o.jsx(cFt,{})}),o.jsx(Re,{path:"/listing/:slugOrId",element:o.jsx(t$t,{})}),o.jsx(Re,{path:"/private-listing",element:o.jsx(fFt,{})}),o.jsx(Re,{path:"/commercial-pitch/:token",element:o.jsx(hFt,{})}),o.jsx(Re,{path:"/card/:slug",element:o.jsx(pFt,{})}),o.jsx(Re,{path:"/join-brokerage/:slug",element:o.jsx(F4t,{})}),o.jsx(Re,{path:"/recruit-unsubscribe",element:o.jsx(z4t,{})}),o.jsx(Re,{path:"/event-invite-unsubscribe",element:o.jsx($4t,{})}),o.jsx(Re,{path:"/recruit-video/:shareToken",element:o.jsx(B4t,{})}),o.jsx(Re,{path:"/connect/:slug",element:o.jsx(mFt,{})}),o.jsx(Re,{path:"/home-value",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(fce,{})})}),o.jsx(Re,{path:"/whats-my-home-worth",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(fce,{})})}),o.jsx(Re,{path:"/live/:slug",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(gFt,{})})}),o.jsx(Re,{path:"/auth",element:o.jsx(urt,{})}),o.jsx(Re,{path:"/subscription-success",element:o.jsx(OOt,{})}),o.jsx(Re,{path:"/subscription",element:o.jsx(ut,{children:o.jsx(FOt,{})})}),o.jsxs(Re,{path:"/share/video",element:o.jsx(aFt,{}),children:[o.jsx(Re,{path:":shareToken",element:o.jsx(dce,{})}),o.jsx(Re,{path:":shareToken/r/:recipientToken",element:o.jsx(dce,{})})]}),o.jsx(Re,{path:"/p/:shareToken",element:o.jsx(eBt,{})}),o.jsx(Re,{path:"/portal/:slug",element:o.jsx(fBt,{})}),o.jsx(Re,{path:"/portal/:slug/refer",element:o.jsx(pBt,{})}),o.jsx(Re,{path:"/og/video/:token",element:o.jsx(oFt,{})}),o.jsx(Re,{path:"/setup-brokerage",element:o.jsx(ut,{children:o.jsx(BOt,{})})}),o.jsx(Re,{path:"/claim-account",element:o.jsx(cce,{})}),o.jsx(Re,{path:"/claim",element:o.jsx(cce,{})}),o.jsx(Re,{path:"/activate",element:o.jsx(zOt,{})}),o.jsx(Re,{path:"/auth/confirm-reset",element:o.jsx(uce,{})}),o.jsx(Re,{path:"/auth/continue",element:o.jsx(uce,{})}),o.jsx(Re,{path:"/join",element:o.jsx($Ot,{})}),o.jsx(Re,{path:"/trial",element:o.jsx(JOt,{})}),o.jsx(Re,{path:"/trial/success",element:o.jsx(eFt,{})}),o.jsx(Re,{path:"/labor-day",element:o.jsx(tFt,{})}),o.jsx(Re,{path:"/brokerage-labor-day",element:o.jsx(rFt,{})}),o.jsx(Re,{path:"/brokerage-solutions",element:o.jsx(nFt,{})}),o.jsx(Re,{path:"/upgrade",element:o.jsx(iFt,{})}),o.jsx(Re,{path:"/instagram",element:o.jsx(sFt,{})}),o.jsx(Re,{path:"/dashboard",element:o.jsx(ut,{children:o.jsx(_Ft,{})})}),o.jsx(Re,{path:"/coaching",element:o.jsx(ut,{children:o.jsx(UOt,{})})}),o.jsx(Re,{path:"/coaching/billing",element:o.jsx(ut,{children:o.jsx(HOt,{})})}),o.jsx(Re,{path:"/coaching/settings",element:o.jsx(ut,{children:o.jsx(WOt,{})})}),o.jsx(Re,{path:"/coaching/waitlist",element:o.jsx(ut,{children:o.jsx(YOt,{})})}),o.jsx(Re,{path:"/coaching/agent/:id",element:o.jsx(ut,{children:o.jsx(VOt,{})})}),o.jsx(Re,{path:"/my-coach",element:o.jsx(ut,{children:o.jsx(qOt,{})})}),o.jsx(Re,{path:"/admin/coaching",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(GOt,{})})}),o.jsx(Re,{path:"/oauth/google-calendar/return",element:o.jsx(KOt,{})}),o.jsxs(Re,{path:"/attract",element:o.jsx(ut,{children:o.jsx(POt,{children:o.jsx(wBt,{})})}),children:[o.jsx(Re,{index:!0,element:o.jsx(SBt,{})}),o.jsx(Re,{path:"agents",element:o.jsx(TBt,{})}),o.jsx(Re,{path:"agents/:agentId",element:o.jsx($Bt,{})}),o.jsx(Re,{path:"attract-page",element:o.jsx(szt,{})}),o.jsx(Re,{path:"calculator",element:o.jsx(NBt,{})}),o.jsx(Re,{path:"results",element:o.jsx(CBt,{})}),o.jsx(Re,{path:"onboarding",element:o.jsx(MBt,{})}),o.jsx(Re,{path:"opportunities",element:o.jsx(UBt,{})}),o.jsx(Re,{path:"follow-up",element:o.jsx(EBt,{})}),o.jsx(Re,{path:"settings",element:o.jsx(IBt,{})}),o.jsxs(Re,{path:"toolkit",element:o.jsx(jBt,{}),children:[o.jsx(Re,{index:!0,element:o.jsx(Li,{to:"/attract/toolkit/kits",replace:!0})}),o.jsx(Re,{path:"kits",element:o.jsx(FBt,{})}),o.jsx(Re,{path:"scripts",element:o.jsx(kBt,{})}),o.jsx(Re,{path:"objections",element:o.jsx(PBt,{})}),o.jsx(Re,{path:"events",element:o.jsx(RBt,{})}),o.jsx(Re,{path:"content",element:o.jsx(OBt,{})}),o.jsx(Re,{path:"resources",element:o.jsx(ABt,{})})]}),o.jsx(Re,{path:"toolkit/kits/templates",element:o.jsx(zBt,{})}),o.jsx(Re,{path:"toolkit/kits/new",element:o.jsx(vce,{})}),o.jsx(Re,{path:"toolkit/kits/:kitId/edit",element:o.jsx(vce,{})}),o.jsx(Re,{path:"toolkit/kits/:kitId/analytics",element:o.jsx(BBt,{})}),o.jsx(Re,{path:"events/new",element:o.jsx(_ce,{})}),o.jsx(Re,{path:"events/:eventId",element:o.jsx(LBt,{})}),o.jsx(Re,{path:"events/:eventId/edit",element:o.jsx(_ce,{})}),o.jsx(Re,{path:"events/:eventId/checkin",element:o.jsx(DBt,{})}),o.jsx(Re,{path:"relationships",element:o.jsx(Li,{to:"/attract/agents",replace:!0})}),o.jsx(Re,{path:"pipeline",element:o.jsx(Li,{to:"/attract/agents",replace:!0})}),o.jsx(Re,{path:"plan",element:o.jsx(Li,{to:"/attract/settings",replace:!0})}),o.jsx(Re,{path:"digest",element:o.jsx(Li,{to:"/attract/results",replace:!0})}),o.jsx(Re,{path:"reports",element:o.jsx(Li,{to:"/attract/results",replace:!0})}),o.jsx(Re,{path:"dashboard-legacy",element:o.jsx(Li,{to:"/attract",replace:!0})}),o.jsx(Re,{path:"share",element:o.jsx(Li,{to:"/attract/toolkit/kits",replace:!0})}),o.jsx(Re,{path:"create",element:o.jsx(Li,{to:"/attract/toolkit/content",replace:!0})}),o.jsx(Re,{path:"templates",element:o.jsx(Li,{to:"/attract/toolkit/scripts",replace:!0})}),o.jsx(Re,{path:"resources",element:o.jsx(Li,{to:"/attract/toolkit/resources",replace:!0})}),o.jsx(Re,{path:"events",element:o.jsx(Li,{to:"/attract/toolkit/events",replace:!0})}),o.jsx(Re,{path:"landing-page",element:o.jsx(Li,{to:"/attract/attract-page",replace:!0})}),o.jsx(Re,{path:"provide/kits",element:o.jsx(Li,{to:"/attract/toolkit/kits",replace:!0})}),o.jsx(Re,{path:"provide/kits/templates",element:o.jsx(Li,{to:"/attract/toolkit/kits/templates",replace:!0})}),o.jsx(Re,{path:"provide/*",element:o.jsx(Li,{to:"/attract/toolkit/kits",replace:!0})}),o.jsx(Re,{path:"influence/content-studio",element:o.jsx(Li,{to:"/attract/toolkit/content",replace:!0})}),o.jsx(Re,{path:"influence/*",element:o.jsx(Li,{to:"/attract/toolkit/content",replace:!0})}),o.jsx(Re,{path:"produce/*",element:o.jsx(Li,{to:"/attract/results",replace:!0})}),o.jsx(Re,{path:"connect/*",element:o.jsx(Li,{to:"/attract/toolkit/events",replace:!0})}),o.jsx(Re,{path:"connect",element:o.jsx(Li,{to:"/attract/toolkit/events",replace:!0})}),o.jsx(Re,{path:"pillars/*",element:o.jsx(Li,{to:"/attract",replace:!0})})]}),o.jsx(Re,{path:"/weekly-reels",element:o.jsx(ut,{children:o.jsx(ice,{children:o.jsx(_Bt,{})})})}),o.jsx(Re,{path:"/weekly-reels/onboarding",element:o.jsx(ut,{children:o.jsx(ice,{children:o.jsx(vBt,{})})})}),o.jsx(Re,{path:"/admin/weekly-reels",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(bBt,{})})}),o.jsx(Re,{path:"/admin/attract-access",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(azt,{})})}),o.jsx(Re,{path:"/admin/attract-intelligence",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(VBt,{})})}),o.jsx(Re,{path:"/admin/attract-tools",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(qBt,{})})}),o.jsx(Re,{path:"/attract-kit/:shareToken",element:o.jsx(GBt,{})}),o.jsx(Re,{path:"/attract-event/:slug",element:o.jsx(HBt,{})}),o.jsx(Re,{path:"/attract-event-checkin/:token",element:o.jsx(WBt,{})}),o.jsx(Re,{path:"/join/:slug",element:o.jsx(KBt,{})}),o.jsx(Re,{path:"/revival/:slug",element:o.jsx(YBt,{})}),o.jsx(Re,{path:"/revival/:slug/plan",element:o.jsx(bce,{})}),o.jsx(Re,{path:"/fsbo/:slug",element:o.jsx(rzt,{})}),o.jsx(Re,{path:"/fsbo/:slug/guide",element:o.jsx(nzt,{})}),o.jsx(Re,{path:"/revival/:slug/plan",element:o.jsx(bce,{})}),o.jsx(Re,{path:"/coaches",element:o.jsx(ZOt,{})}),o.jsx(Re,{path:"/coaches/apply",element:o.jsx(QOt,{})}),o.jsx(Re,{path:"/coaches/:slug",element:o.jsx(XOt,{})}),o.jsx(Re,{path:"/credits",element:o.jsx(ut,{children:o.jsx(n4t,{})})}),o.jsx(Re,{path:"/wallet",element:o.jsx(Li,{to:"/credits",replace:!0})}),o.jsx(Re,{path:"/profile",element:o.jsx(ut,{children:o.jsx(vFt,{})})}),o.jsx(Re,{path:"/apps/*",element:o.jsx(ut,{children:o.jsx(SFt,{})})}),o.jsx(Re,{path:"/admin",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(pce,{})})}),o.jsx(Re,{path:"/admin/dashboard",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(pce,{})})}),o.jsx(Re,{path:"/admin/apps",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(KFt,{})})}),o.jsx(Re,{path:"/admin/members",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(YFt,{})})}),o.jsx(Re,{path:"/admin/unassigned-members",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(ZFt,{})})}),o.jsx(Re,{path:"/admin/invite-codes",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(XFt,{})})}),o.jsx(Re,{path:"/admin/events",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(QFt,{})})}),o.jsx(Re,{path:"/admin/live",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(yFt,{})})})}),o.jsx(Re,{path:"/admin/live/:id",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{}),children:o.jsx(xFt,{})})})}),o.jsx(Re,{path:"/admin/mcp-audit",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(JFt,{})})}),o.jsx(Re,{path:"/events",element:o.jsx(ut,{children:o.jsx(bFt,{})})}),o.jsx(Re,{path:"/events/:eventId",element:o.jsx(ut,{children:o.jsx(wFt,{})})}),o.jsx(Re,{path:"/templates",element:o.jsx(ut,{children:o.jsx(TFt,{})})}),o.jsx(Re,{path:"/templates/:templateId",element:o.jsx(ut,{children:o.jsx(EFt,{})})}),o.jsx(Re,{path:"/admin/templates",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(e3t,{})})}),o.jsx(Re,{path:"/programs",element:o.jsx(ut,{children:o.jsx(AFt,{})})}),o.jsx(Re,{path:"/programs/:slug",element:o.jsx(ut,{children:o.jsx(kFt,{})})}),o.jsx(Re,{path:"/programs/:slug/enroll",element:o.jsx(ut,{children:o.jsx(CFt,{})})}),o.jsx(Re,{path:"/programs/:slug/workspace",element:o.jsx(ut,{children:o.jsx(IFt,{})})}),o.jsx(Re,{path:"/admin/programs",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(jFt,{})})}),o.jsx(Re,{path:"/watch/:slug",element:o.jsx(RFt,{})}),o.jsx(Re,{path:"/academy",element:o.jsx(ut,{children:o.jsx(PFt,{})})}),o.jsx(Re,{path:"/academy/:videoId",element:o.jsx(ut,{children:o.jsx(NFt,{})})}),o.jsx(Re,{path:"/admin/academy",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(t3t,{})})}),o.jsx(Re,{path:"/toolbox",element:o.jsx(ut,{children:o.jsx(LFt,{})})}),o.jsx(Re,{path:"/toolbox/:kitId",element:o.jsx(ut,{children:o.jsx(DFt,{})})}),o.jsx(Re,{path:"/admin/toolbox",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(r3t,{})})}),o.jsx(Re,{path:"/admin/blog",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(lBt,{})})}),o.jsx(Re,{path:"/social-swag",element:o.jsx(ut,{children:o.jsx(MFt,{})})}),o.jsx(Re,{path:"/social-studio",element:o.jsx(ut,{children:o.jsx(OFt,{})})}),o.jsx(Re,{path:"/social-swag-2",element:o.jsx(Li,{to:"/social-studio?tab=gallery",replace:!0})}),o.jsx(Re,{path:"/marketing-studio",element:o.jsx(ut,{children:o.jsx(FFt,{})})}),o.jsx(Re,{path:"/marketing-studio/brand-kit",element:o.jsx(ut,{children:o.jsx(BFt,{})})}),o.jsx(Re,{path:"/marketing-studio/branding-bar",element:o.jsx(ut,{children:o.jsx(zFt,{})})}),o.jsx(Re,{path:"/marketing-studio/listing-templates",element:o.jsx(ut,{children:o.jsx($Ft,{})})}),o.jsx(Re,{path:"/marketing-studio/personal-branding",element:o.jsx(ut,{children:o.jsx(UFt,{})})}),o.jsx(Re,{path:"/social-swag/:swagId",element:o.jsx(ut,{children:o.jsx(VFt,{})})}),o.jsx(Re,{path:"/social-connections",element:o.jsx(ut,{children:o.jsx(U4t,{})})}),o.jsx(Re,{path:"/social-connections/callback",element:o.jsx(ut,{children:o.jsx(V4t,{})})}),o.jsx(Re,{path:"/social-connections/linkedin-callback",element:o.jsx(ut,{children:o.jsx(G4t,{})})}),o.jsx(Re,{path:"/social-connections/google-callback",element:o.jsx(ut,{children:o.jsx(q4t,{})})}),o.jsx(Re,{path:"/admin/social-swag",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(n3t,{})})}),o.jsx(Re,{path:"/admin/social-swag-2",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(i3t,{})})}),o.jsx(Re,{path:"/community",element:o.jsx(ut,{children:o.jsx(qFt,{})})}),o.jsx(Re,{path:"/support",element:o.jsx(ut,{children:o.jsx(GFt,{})})}),o.jsx(Re,{path:"/admin/community",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(s3t,{})})}),o.jsx(Re,{path:"/admin/support-tickets",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(c3t,{})})}),o.jsx(Re,{path:"/admin/email-templates",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(u3t,{})})}),o.jsx(Re,{path:"/admin/agent-email-templates",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(d3t,{})})}),o.jsx(Re,{path:"/admin/analytics",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(a3t,{})})}),o.jsx(Re,{path:"/admin/brokerage-resources",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(o3t,{})})}),o.jsx(Re,{path:"/admin/dashboard-management",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(l3t,{})})}),o.jsx(Re,{path:"/brokerage/dashboard",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(h3t,{})})}),o.jsx(Re,{path:"/brokerage/teams",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(ozt,{})})}),o.jsx(Re,{path:"/brokerage/recruiting",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(F5t,{})})}),o.jsx(Re,{path:"/brokerage/onboarding",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(B5t,{})})}),o.jsx(Re,{path:"/brokerage/commission-plans",element:o.jsx(ut,{children:o.jsx(G5t,{})})}),o.jsx(Re,{path:"/brokerage/operations",element:o.jsx(ut,{children:o.jsx($5t,{})})}),o.jsx(Re,{path:"/brokerage/website",element:o.jsx(ut,{children:o.jsx(q5t,{})})}),o.jsx(Re,{path:"/websites",element:o.jsx(ut,{children:o.jsx(U5t,{})})}),o.jsx(Re,{path:"/team/website",element:o.jsx(ut,{children:o.jsx(V5t,{})})}),o.jsx(Re,{path:"/brokerage/transactions",element:o.jsx(ut,{children:o.jsx(z5t,{})})}),o.jsx(Re,{path:"/team",element:o.jsx(ut,{children:o.jsx(czt,{})})}),o.jsx(Re,{path:"/my-team",element:o.jsx(ut,{children:o.jsx(lzt,{})})}),o.jsx(Re,{path:"/my-brokerage",element:o.jsx(ut,{children:o.jsx(f3t,{})})}),o.jsx(Re,{path:"/brokerage/help-board",element:o.jsx(ut,{children:o.jsx(g3t,{})})}),o.jsx(Re,{path:"/brokerage/help-board/new",element:o.jsx(ut,{children:o.jsx(y3t,{})})}),o.jsx(Re,{path:"/brokerage/help-board/:id",element:o.jsx(ut,{children:o.jsx(x3t,{})})}),o.jsx(Re,{path:"/brokerage-content",element:o.jsx(ut,{children:o.jsx(p3t,{})})}),o.jsx(Re,{path:"/brokerage-content/:contentId",element:o.jsx(ut,{children:o.jsx(m3t,{})})}),o.jsx(Re,{path:"/brokerage-resources",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(HFt,{})})}),o.jsx(Re,{path:"/brokerage-resources/:resourceId",element:o.jsx(ut,{requireBrokerageManager:!0,children:o.jsx(WFt,{})})}),o.jsx(Re,{path:"/newsletters",element:o.jsx(ut,{children:o.jsx(_3t,{})})}),o.jsx(Re,{path:"/newsletters/:id",element:o.jsx(ut,{children:o.jsx(v3t,{})})}),o.jsx(Re,{path:"/wishlist",element:o.jsx(ut,{children:o.jsx(T3t,{})})}),o.jsx(Re,{path:"/wishlist/:itemId",element:o.jsx(ut,{children:o.jsx(E3t,{})})}),o.jsx(Re,{path:"/admin/wishlist",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(A3t,{})})}),o.jsx(Re,{path:"/admin/levelup-brief",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(k3t,{})})}),o.jsx(Re,{path:"/admin/broadcasts",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(w3t,{})})}),o.jsx(Re,{path:"/admin/newsletters",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(b3t,{})})}),o.jsx(Re,{path:"/admin/newsletter-graphics",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(S3t,{})})}),o.jsx(Re,{path:"/admin/additional-services",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(C3t,{})})}),o.jsx(Re,{path:"/admin/discounts",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(I3t,{})})}),o.jsx(Re,{path:"/admin/subscriptions",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(j3t,{})})}),o.jsx(Re,{path:"/admin/instagram-gift-emails",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P3t,{})})}),o.jsx(Re,{path:"/admin/referrals",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(N3t,{})})}),o.jsx(Re,{path:"/admin/prospector",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(M5t,{})})}),o.jsx(Re,{path:"/admin/recruiting",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(O5t,{})})}),o.jsx(Re,{path:"/admin/beta/social-post-generator",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(W5t,{})})}),o.jsx(Re,{path:"/admin/credits",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(f4t,{})})})}),o.jsx(Re,{path:"/admin/cleanup",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(p4t,{})})})}),o.jsx(Re,{path:"/admin/beta/postcard-manager",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(o4t,{})})})}),o.jsx(Re,{path:"/admin/mail-studio/templates",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(l4t,{})})})}),o.jsx(Re,{path:"/admin/beta/homereel",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(c4t,{})})})}),o.jsx(Re,{path:"/admin/beta/boost",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(h4t,{})})})}),o.jsx(Re,{path:"/admin/video-lab",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(d4t,{})})})}),o.jsx(Re,{path:"/admin/music-videos",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(u4t,{})})})}),o.jsx(Re,{path:"/admin/lms",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(K5t,{})})}),o.jsx(Re,{path:"/admin/lms/stats",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(Z5t,{})})}),o.jsx(Re,{path:"/admin/lms/:courseId",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(Y5t,{})})}),o.jsx(Re,{path:"/levelup-u",element:o.jsx(ut,{children:o.jsx(X5t,{})})}),o.jsx(Re,{path:"/levelup-u/:courseId",element:o.jsx(ut,{children:o.jsx(Q5t,{})})}),o.jsx(Re,{path:"/admin/brokerage-content-activity",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(H5t,{})})}),o.jsx(Re,{path:"/admin/onboarding-checklist",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(R3t,{})})}),o.jsx(Re,{path:"/admin/marketplace",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(A5t,{})})}),o.jsx(Re,{path:"/admin/agent-points",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(T5t,{})})}),o.jsx(Re,{path:"/admin/reward-store",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(k5t,{})})}),o.jsx(Re,{path:"/admin/integrations",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(C5t,{})})}),o.jsx(Re,{path:"/admin/social-connections",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(I5t,{})})}),o.jsx(Re,{path:"/admin/integrations/callback",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(D5t,{})})}),o.jsx(Re,{path:"/admin/email-compliance",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Lzt,{})})})}),o.jsx(Re,{path:"/admin/email-campaigns",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Rzt,{})})})}),o.jsx(Re,{path:"/admin/email-campaigns/templates",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Ozt,{})})})}),o.jsx(Re,{path:"/email-campaigns/templates",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Fzt,{})})})}),o.jsx(Re,{path:"/admin/email-campaigns/new",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Dzt,{})})})}),o.jsx(Re,{path:"/admin/email-campaigns/:id",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(Mzt,{})})})}),o.jsx(Re,{path:"/reward-store",element:o.jsx(ut,{children:o.jsx(X4t,{})})}),o.jsx(Re,{path:"/refer-friends",element:o.jsx(ut,{children:o.jsx(Q4t,{})})}),o.jsx(Re,{path:"/additional-services",element:o.jsx(ut,{children:o.jsx(D3t,{})})}),o.jsx(Re,{path:"/additional-services/:serviceId",element:o.jsx(ut,{children:o.jsx(M3t,{})})}),o.jsx(Re,{path:"/ai-toolkit",element:o.jsx(ut,{children:o.jsx(O3t,{})})}),o.jsx(Re,{path:"/ask-ai",element:o.jsx(ut,{children:o.jsx(F3t,{})})}),o.jsx(Re,{path:"/mission-control",element:o.jsx(ut,{children:o.jsx(B3t,{})})}),o.jsx(Re,{path:"/mission-control/contacts",element:o.jsx(ut,{children:o.jsx(z3t,{})})}),o.jsx(Re,{path:"/mission-control/sphere-map",element:o.jsx(ut,{children:o.jsx(x4t,{})})}),o.jsx(Re,{path:"/mission-control/property-intelligence",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(_4t,{})})}),o.jsx(Re,{path:"/mission-control/contacts/:contactId",element:o.jsx(ut,{children:o.jsx($3t,{})})}),o.jsx(Re,{path:"/mission-control/sent-emails",element:o.jsx(ut,{children:o.jsx(U3t,{})})}),o.jsx(Re,{path:"/mission-control/plans",element:o.jsx(ut,{children:o.jsx(V3t,{})})}),o.jsx(Re,{path:"/mission-control/cma",element:o.jsx(ut,{children:o.jsx(q3t,{})})}),o.jsx(Re,{path:"/mission-control/cma/:id",element:o.jsx(ut,{children:o.jsx(G3t,{})})}),o.jsx(Re,{path:"/cma/:token",element:o.jsx(K3t,{})}),o.jsx(Re,{path:"/apps/listing-presentation-studio",element:o.jsx(ut,{children:o.jsx(H3t,{})})}),o.jsx(Re,{path:"/apps/listing-presentation-studio/:id",element:o.jsx(ut,{children:o.jsx(W3t,{})})}),o.jsx(Re,{path:"/apps/listing-revival",element:o.jsx(ut,{children:o.jsx(ZBt,{})})}),o.jsx(Re,{path:"/apps/listing-revival/new",element:o.jsx(ut,{children:o.jsx(XBt,{})})}),o.jsx(Re,{path:"/apps/listing-revival/campaigns/:id",element:o.jsx(ut,{children:o.jsx(QBt,{})})}),o.jsx(Re,{path:"/staged/:token",element:o.jsx(i4t,{})}),o.jsx(Re,{path:"/apps/staging-studio",element:o.jsx(ut,{children:o.jsx(MB,{children:o.jsx(e4t,{})})})}),o.jsx(Re,{path:"/apps/staging-studio/library",element:o.jsx(ut,{children:o.jsx(MB,{children:o.jsx(t4t,{})})})}),o.jsx(Re,{path:"/apps/staging-studio/credits",element:o.jsx(ut,{children:o.jsx(MB,{children:o.jsx(r4t,{})})})}),o.jsx(Re,{path:"/apps/fsbo-breakthrough",element:o.jsx(ut,{children:o.jsx(JBt,{})})}),o.jsx(Re,{path:"/apps/fsbo-breakthrough/new",element:o.jsx(ut,{children:o.jsx(ezt,{})})}),o.jsx(Re,{path:"/apps/reviews",element:o.jsx(ut,{children:o.jsx(hBt,{})})}),o.jsx(Re,{path:"/apps/fsbo-breakthrough/campaigns/:id",element:o.jsx(ut,{children:o.jsx(tzt,{})})}),o.jsx(Re,{path:"/admin/fsbo-breakthrough",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(izt,{})})}),o.jsx(Re,{path:"/mission-control/listing-presentations",element:o.jsx(Li,{to:"/apps/listing-presentation-studio",replace:!0})}),o.jsx(Re,{path:"/mission-control/popbys",element:o.jsx(ut,{children:o.jsx(Y3t,{})})}),o.jsx(Re,{path:"/mission-control/popbys/map",element:o.jsx(ut,{children:o.jsx(y4t,{})})}),o.jsx(Re,{path:"/admin/notification-settings",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(j5t,{})})}),o.jsx(Re,{path:"/admin/agent-os",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(L3t,{})})}),o.jsx(Re,{path:"/mission-control/listings",element:o.jsx(ut,{children:o.jsx(Z3t,{})})}),o.jsx(Re,{path:"/mission-control/listing-studio",element:o.jsx(ut,{children:o.jsx(gBt,{})})}),o.jsx(Re,{path:"/mission-control/listings/new",element:o.jsx(ut,{children:o.jsx(uFt,{})})}),o.jsx(Re,{path:"/mission-control/listings/new/residential",element:o.jsx(ut,{children:o.jsx(mce,{})})}),o.jsx(Re,{path:"/mission-control/listings/new/commercial",element:o.jsx(ut,{children:o.jsx(hce,{})})}),o.jsx(Re,{path:"/mission-control/listings/:listingId/commercial",element:o.jsx(ut,{children:o.jsx(dFt,{})})}),o.jsx(Re,{path:"/mission-control/listings/:listingId/commercial/edit",element:o.jsx(ut,{children:o.jsx(hce,{})})}),o.jsx(Re,{path:"/mission-control/listings/:listingId",element:o.jsx(ut,{children:o.jsx(X3t,{})})}),o.jsx(Re,{path:"/mission-control/listings/:listingId/edit",element:o.jsx(ut,{children:o.jsx(mce,{})})}),o.jsx(Re,{path:"/mission-control/listings/:listingId/customize",element:o.jsx(ut,{children:o.jsx(Q3t,{})})}),o.jsx(Re,{path:"/admin/listing-exchange",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(x5t,{})})}),o.jsx(Re,{path:"/admin/listing-leads",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(_5t,{})})}),o.jsx(Re,{path:"/admin/public-site-leads",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(v5t,{})})}),o.jsx(Re,{path:"/mission-control/pipeline",element:o.jsx(ut,{children:o.jsx(t5t,{})})}),o.jsx(Re,{path:"/mission-control/forms",element:o.jsx(ut,{children:o.jsx(r5t,{})})}),o.jsx(Re,{path:"/mission-control/tasks",element:o.jsx(ut,{children:o.jsx(mjt,{})})}),o.jsx(Re,{path:"/mission-control/transactions",element:o.jsx(ut,{children:o.jsx(n5t,{})})}),o.jsx(Re,{path:"/mission-control/client-portals",element:o.jsx(ut,{children:o.jsx(l5t,{})})}),o.jsx(Re,{path:"/mission-control/client-portals/:portalId",element:o.jsx(ut,{children:o.jsx(c5t,{})})}),o.jsx(Re,{path:"/mission-control/portal-referrals",element:o.jsx(ut,{children:o.jsx(i5t,{})})}),o.jsx(Re,{path:"/mission-control/vendors",element:o.jsx(ut,{children:o.jsx(s5t,{})})}),o.jsx(Re,{path:"/brokerage/forms",element:o.jsx(ut,{children:o.jsx(a5t,{})})}),o.jsx(Re,{path:"/brokerage/vendors",element:o.jsx(ut,{children:o.jsx(o5t,{})})}),o.jsx(Re,{path:"/mission-control/my-card",element:o.jsx(ut,{children:o.jsx(u5t,{})})}),o.jsx(Re,{path:"/mission-control/integrations",element:o.jsx(ut,{children:o.jsx(d5t,{})})}),o.jsx(Re,{path:"/mission-control/browser-extension",element:o.jsx(ut,{children:o.jsx(h5t,{})})}),o.jsx(Re,{path:"/mission-control/integrations/gmail/callback",element:o.jsx(ut,{children:o.jsx(f5t,{})})}),o.jsx(Re,{path:"/mission-control/integrations/canva/callback",element:o.jsx(p5t,{})}),o.jsx(Re,{path:"/mission-control/integrations/meta/callback",element:o.jsx(ut,{children:o.jsx(m5t,{})})}),o.jsx(Re,{path:"/mission-control/scorecard",element:o.jsx(ut,{children:o.jsx(xCt,{})})}),o.jsx(Re,{path:"/admin/scorecard",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(g5t,{})})}),o.jsx(Re,{path:"/admin/agent-activation",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(y5t,{})})}),o.jsx(Re,{path:"/admin/scorecard/:userId",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(gce,{})})}),o.jsx(Re,{path:"/mission-control/scorecard/:userId",element:o.jsx(ut,{children:o.jsx(gce,{})})}),o.jsx(Re,{path:"/mission-control/relationship-scorecard",element:o.jsx(ut,{children:o.jsx(Czt,{})})}),o.jsx(Re,{path:"/mission-control/sphere-gaps",element:o.jsx(ut,{children:o.jsx(Izt,{})})}),o.jsx(Re,{path:"/mission-control/signals",element:o.jsx(ut,{children:o.jsx(jzt,{})})}),o.jsx(Re,{path:"/mission-control/website-activity",element:o.jsx(ut,{children:o.jsx(Nzt,{})})}),o.jsx(Re,{path:"/mission-control/connect-page",element:o.jsx(ut,{children:o.jsx(Pzt,{})})}),o.jsx(Re,{path:"/admin/membership-reviews",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(b5t,{})})}),o.jsx(Re,{path:"/admin/lead-notifications",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(w5t,{})})}),o.jsx(Re,{path:"/admin/weekly-digest",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(S5t,{})})}),o.jsx(Re,{path:"/mission-control/video/record",element:o.jsx(ut,{children:o.jsx(J3t,{})})}),o.jsx(Re,{path:"/mission-control/video-library",element:o.jsx(ut,{children:o.jsx(e5t,{})})}),o.jsx(Re,{path:"/my-partnership",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:null,children:o.jsx(E4t,{})})})}),o.jsx(Re,{path:"/upgrade/:featureKey",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:null,children:o.jsx(A4t,{})})})}),o.jsx(Re,{path:"/coaching/onboarding",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:null,children:o.jsx(k4t,{})})})}),o.jsx(Re,{path:"/admin/partnerships",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:null,children:o.jsx(T4t,{})})})}),o.jsx(Re,{path:"/website-apps",element:o.jsx(ut,{children:o.jsx(bzt,{})})}),o.jsx(Re,{path:"/get-my-website",element:o.jsx(ut,{children:o.jsx(wzt,{})})}),o.jsx(Re,{path:"/need-a-website",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(R4t,{})})})}),o.jsx(Re,{path:"/website-apps/video_greeter",element:o.jsx(ut,{children:o.jsx(Szt,{})})}),o.jsx(Re,{path:"/website-apps/exit_intent",element:o.jsx(ut,{children:o.jsx(Tzt,{})})}),o.jsx(Re,{path:"/website-apps/lead_magnet",element:o.jsx(ut,{children:o.jsx(Ezt,{})})}),o.jsx(Re,{path:"/embed/video-greeter/:slug",element:o.jsx(Azt,{})}),o.jsx(Re,{path:"/embed/lead-magnet/:slug",element:o.jsx(kzt,{})}),o.jsx(Re,{path:"/marketplace",element:o.jsx(ut,{children:o.jsx(xjt,{})})}),o.jsx(Re,{path:"/marketplace/:productId",element:o.jsx(ut,{children:o.jsx(H4t,{})})}),o.jsx(Re,{path:"/marketplace/cart",element:o.jsx(ut,{children:o.jsx(W4t,{})})}),o.jsx(Re,{path:"/marketplace/orders",element:o.jsx(ut,{children:o.jsx(K4t,{})})}),o.jsx(Re,{path:"/marketplace/orders/:orderId",element:o.jsx(ut,{children:o.jsx(Y4t,{})})}),o.jsx(Re,{path:"/marketplace/success",element:o.jsx(ut,{children:o.jsx(Z4t,{})})}),o.jsx(Re,{path:"/admin/agent-cards",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(E5t,{})})}),o.jsx(Re,{path:"/admin/presentation-analytics",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P5t,{})})}),o.jsx(Re,{path:"/admin/listing-presentation-studio",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(N5t,{})})}),o.jsx(Re,{path:"/admin/listing-revival",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(R5t,{})})}),o.jsx(Re,{path:"/admin/contact-finder",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(a4t,{})})}),o.jsx(Re,{path:"/admin/staging-studio",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(s4t,{})})}),o.jsx(Re,{path:"/admin/guest-book-analytics",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(L5t,{})})}),o.jsx(Re,{path:"/mission-control/smart-drips",element:o.jsx(ut,{children:o.jsx(xBt,{})})}),o.jsx(Re,{path:"/mission-control/mail-studio",element:o.jsx(g4t,{})}),o.jsx(Re,{path:"/mission-control/direct-mail",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex items-center justify-center min-h-screen",children:"Loading..."}),children:o.jsx(m4t,{})})})}),o.jsx(Re,{path:"/mission-control/presentations",element:o.jsx(ut,{children:o.jsx(J4t,{})})}),o.jsx(Re,{path:"/mission-control/presentations/new",element:o.jsx(ut,{children:o.jsx(xce,{})})}),o.jsx(Re,{path:"/mission-control/presentations/:id",element:o.jsx(ut,{children:o.jsx(xce,{})})}),o.jsx(Re,{path:"/mission-control/guest-book",element:o.jsx(ut,{children:o.jsx(tBt,{})})}),o.jsx(Re,{path:"/mission-control/guest-book/live/:id",element:o.jsx(ut,{children:o.jsx(v4t,{})})}),o.jsx(Re,{path:"/guestbook/:slug",element:o.jsx(rBt,{})}),o.jsx(Re,{path:"/review/:token",element:o.jsx(cBt,{})}),o.jsx(Re,{path:"/reviews/:slug/new",element:o.jsx(dBt,{})}),o.jsx(Re,{path:"/reviews/:slug",element:o.jsx(uBt,{})}),o.jsx(Re,{path:"/rsvp/:slug",element:o.jsx(nBt,{})}),o.jsx(Re,{path:"/resources/:slug",element:o.jsx(iBt,{})}),o.jsx(Re,{path:"/sign/:token",element:o.jsx(sBt,{})}),o.jsx(Re,{path:"/blog",element:o.jsx(aBt,{})}),o.jsx(Re,{path:"/blog/:slug",element:o.jsx(oBt,{})}),o.jsx(Re,{path:"/mission-control/card-studio",element:o.jsx(ut,{children:o.jsx(mBt,{})})}),o.jsx(Re,{path:"/mission-control/scheduler",element:o.jsx(ut,{children:o.jsx(uzt,{})})}),o.jsx(Re,{path:"/mission-control/calendar",element:o.jsx(ut,{children:o.jsx(dzt,{})})}),o.jsx(Re,{path:"/c/:shareToken",element:o.jsx(yBt,{})}),o.jsx(Re,{path:"/book/:slug",element:o.jsx(hzt,{})}),o.jsx(Re,{path:"/booking/manage/:token",element:o.jsx(fzt,{})}),o.jsx(Re,{path:"/page/:slug",element:o.jsx(vzt,{})}),o.jsx(Re,{path:"/buyer-match/:slug",element:o.jsx(yzt,{})}),o.jsx(Re,{path:"/mission-control/buyer-match",element:o.jsx(ut,{children:o.jsx(mzt,{})})}),o.jsx(Re,{path:"/mission-control/buyer-match/:campaignId",element:o.jsx(ut,{children:o.jsx(gzt,{})})}),o.jsx(Re,{path:"/mission-control/landing-pages",element:o.jsx(ut,{children:o.jsx(pzt,{})})}),o.jsx(Re,{path:"/mission-control/landing-pages/defaults",element:o.jsx(ut,{children:o.jsx(_zt,{})})}),o.jsx(Re,{path:"/mission-control/landing-pages/:pageId",element:o.jsx(ut,{children:o.jsx(xzt,{})})}),o.jsx(Re,{path:"/my-website/:siteId/edit",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(yce,{})})})}),o.jsx(Re,{path:"/my-website/mls-listings",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(D4t,{})})})}),o.jsx(Re,{path:"/my-website/mls-listings/:mlsId",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(M4t,{})})})}),o.jsx(Re,{path:"/my-website/market-report",element:o.jsx(ut,{children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(O4t,{})})})}),o.jsx(Re,{path:"/admin/lead-sites",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(b4t,{})})})}),o.jsx(Re,{path:"/admin/lead-sites/themes",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(w4t,{})})})}),o.jsx(Re,{path:"/admin/lead-sites/offers",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(S4t,{})})})}),o.jsx(Re,{path:"/admin/lead-sites/offers/:brokerageId",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(C4t,{})})})}),o.jsx(Re,{path:"/admin/lead-sites/:siteId/edit",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(yce,{})})})}),o.jsx(Re,{path:"/admin/mls-feeds",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(I4t,{})})})}),o.jsx(Re,{path:"/admin/lead-site-analytics",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(j4t,{})})})}),o.jsx(Re,{path:"/admin/website-interests",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(P4t,{})})})}),o.jsx(Re,{path:"/admin/website-requests",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(N4t,{})})})}),o.jsx(Re,{path:"/admin/website-orders",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(Bzt,{})})})}),o.jsx(Re,{path:"/admin/mls-fee-tracker",element:o.jsx(ut,{requireAdmin:!0,children:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(L4t,{})})})}),o.jsx(Re,{path:"/m/*",element:o.jsx(P.Suspense,{fallback:o.jsx("div",{className:"flex min-h-screen items-center justify-center",children:o.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),children:o.jsx(J5t,{})})}),o.jsx(Re,{path:"*",element:o.jsx(aEe,{})})]})})]})})})})})]})})});function t$t(){const t=Ji(),e=t.pathname.replace(/^\/listing\//,"");return o.jsx(Li,{to:`/public/listing/${e}${t.search}`,replace:!0})}const r$t=window.location.hostname;if(r$t==="tile-portal.lovable.app"){const{pathname:t,search:e,hash:r}=window.location;if(/access_token=|refresh_token=|token_hash=|[?&]code=|type=(magiclink|recovery|invite|signup|email_change)/.test(r+e)){const i=t==="/"||t===""?"/claim-account":t;window.location.replace(`https://dashboard.relevelup.com${i}${e}${r}`)}}"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then(t=>{t.forEach(e=>void e.unregister())}).catch(()=>{});"caches"in window&&caches.keys().then(t=>{t.forEach(e=>void caches.delete(e))}).catch(()=>{});const iq="levelup:chunk-reload",n$t=t=>!!t&&/Failed to fetch dynamically imported module|Importing a module script failed|error loading dynamically imported module/i.test(t),MW=t=>{n$t(t)&&(sessionStorage.getItem(iq)||(sessionStorage.setItem(iq,"1"),window.location.reload()))};window.addEventListener("vite:preloadError",t=>{t.preventDefault(),MW("Failed to fetch dynamically imported module")});window.addEventListener("error",t=>MW(t.message));window.addEventListener("unhandledrejection",t=>{var e;return MW((e=t.reason)==null?void 0:e.message)});window.setTimeout(()=>sessionStorage.removeItem(iq),15e3);Yde(document.getElementById("root")).render(o.jsx(e$t,{}));export{ERe as $,rp as A,Eo as B,o_e as C,Pte as D,sS as E,qn as F,Fr as G,Il as H,Hr as I,qC as J,bS as K,ORe as L,ga as M,co as N,JL as O,wL as P,Jt as Q,$n as R,x_ as S,aS as T,mS as U,Qu as V,Ju as W,sk as X,ku as Y,ri as Z,b1 as _,Fa as a,MRe as a$,Es as a0,_U as a1,SC as a2,Ao as a3,kL as a4,Uc as a5,GA as a6,El as a7,Ui as a8,srt as a9,ud as aA,SL as aB,$ge as aC,Zc as aD,Sl as aE,Vy as aF,$C as aG,Hh as aH,AL as aI,pc as aJ,FO as aK,od as aL,Bm as aM,th as aN,u$t as aO,Fge as aP,Q4 as aQ,l1 as aR,jhe as aS,ir as aT,aA as aU,gm as aV,BR as aW,HRe as aX,SU as aY,Zl as aZ,TL as a_,aG as aa,HA as ab,Xf as ac,Rhe as ad,Zd as ae,Xd as af,Qd as ag,hs as ah,qxe as ai,hp as aj,Ir as ak,Oy as al,W9 as am,qO as an,xm as ao,fo as ap,$Re as aq,uG as ar,Im as as,jy as at,ym as au,Di as av,ro as aw,za as ax,cl as ay,qo as az,Ca as b,PUt as b$,HM as b0,Ihe as b1,TS as b2,Zs as b3,WRe as b4,Phe as b5,pJ as b6,cG as b7,ad as b8,EL as b9,eLe as bA,ZRe as bB,lLe as bC,Htt as bD,Mhe as bE,xU as bF,wC as bG,y9 as bH,C9 as bI,tl as bJ,Fo as bK,Bo as bL,zo as bM,Gh as bN,x9 as bO,YRe as bP,Ma as bQ,Dhe as bR,Ghe as bS,oLe as bT,g$t as bU,Ji as bV,IUt as bW,jUt as bX,NUt as bY,bUt as bZ,TUt as b_,Xc as ba,cne as bb,WA as bc,vJ as bd,Fte as be,Abe as bf,Wtt as bg,Ktt as bh,Ytt as bi,Ztt as bj,Xtt as bk,sG as bl,qM as bm,u1 as bn,Yh as bo,bC as bp,dLe as bq,ARe as br,tp as bs,vU as bt,c1 as bu,PRe as bv,I5e as bw,ar as bx,kr as by,iG as bz,Nte as c,Ln as c$,RUt as c0,Wfe as c1,c$t as c2,xG as c3,_G as c4,bG as c5,wG as c6,vG as c7,TG as c8,SG as c9,Qi as cA,PYe as cB,CRe as cC,JRe as cD,hLe as cE,P7 as cF,N7 as cG,_k as cH,zl as cI,R7 as cJ,$l as cK,kRe as cL,Yd as cM,gVt as cN,W6t as cO,pVt as cP,DHe as cQ,bpe as cR,gFe as cS,yFe as cT,wpe as cU,khe as cV,KRe as cW,oG as cX,$$e as cY,bL as cZ,P9 as c_,UKe as ca,wUt as cb,MUt as cc,DUt as cd,AUt as ce,kUt as cf,VKe as cg,fJ as ch,OUt as ci,LUt as cj,EUt as ck,SUt as cl,OB as cm,CUt as cn,Nhe as co,Pbe as cp,L7 as cq,pp as cr,Xe as cs,Fm as ct,rn as cu,kl as cv,u_e as cw,_C as cx,iS as cy,lYe as cz,qKe as d,Hl as d$,es as d0,wrt as d1,Nbe as d2,hrt as d3,PHe as d4,h9e as d5,As as d6,Ks as d7,Ohe as d8,o1 as d9,FRe as dA,_J as dB,yC as dC,Go as dD,sd as dE,Gn as dF,B_ as dG,Or as dH,Cl as dI,ul as dJ,jo as dK,Lhe as dL,Uge as dM,s9 as dN,qge as dO,Gge as dP,N9 as dQ,VTe as dR,qTe as dS,OR as dT,FR as dU,xA as dV,nEe as dW,Fhe as dX,Wl as dY,dHe as dZ,wU as d_,Qde as da,MWe as db,GRe as dc,vC as dd,bU as de,fA as df,bJ as dg,Kde as dh,Bge as di,$he as dj,h6 as dk,_1 as dl,RRe as dm,y$t as dn,gJ as dp,zhe as dq,iLe as dr,i9 as ds,TO as dt,L$t as du,LRe as dv,tk as dw,Re as dx,Li as dy,o$t as dz,Ba as e,Hd as e$,fs as e0,RFe as e1,ZJ as e2,f$t as e3,p$t as e4,KFe as e5,$e as e6,TRe as e7,XRe as e8,zRe as e9,sLe as eA,uk as eB,dk as eC,hk as eD,fk as eE,v1 as eF,gy as eG,xUt as eH,SRe as eI,yU as eJ,V_ as eK,_S as eL,I0e as eM,j0e as eN,w6 as eO,RV as eP,rCt as eQ,JF as eR,e3 as eS,Oh as eT,W_ as eU,nCt as eV,Gm as eW,CF as eX,fi as eY,Mi as eZ,DH as e_,xS as ea,WG as eb,KG as ec,nS as ed,wO as ee,SO as ef,OC as eg,Od as eh,r9 as ei,D$e as ej,Z$e as ek,ex as el,PC as em,O_ as en,nO as eo,iO as ep,rO as eq,G$e as er,I$t as es,jRe as et,M$t as eu,n9e as ev,qhe as ew,hG as ex,BRe as ey,kme as ez,Ia as f,Uh as f$,$s as f0,oi as f1,t8 as f2,Mm as f3,Yg as f4,FF as f5,Oi as f6,_Vt as f7,Ny as f8,vm as f9,drt as fA,O6t as fB,F6t as fC,E1 as fD,tLe as fE,La as fF,Brt as fG,Z6t as fH,Q6t as fI,X6t as fJ,GM as fK,Sbe as fL,K6t as fM,Che as fN,rVt as fO,cVt as fP,tVt as fQ,uVt as fR,nVt as fS,sVt as fT,aVt as fU,oVt as fV,lVt as fW,iVt as fX,f8t as fY,sV as fZ,Ftt as f_,Gl as fa,vVt as fb,JC as fc,$F as fd,OTe as fe,i2t as ff,IRe as fg,DRe as fh,J4 as fi,eVt as fj,hVt as fk,ck as fl,F9 as fm,Zxe as fn,Y6t as fo,mVt as fp,dVt as fq,Srt as fr,fVt as fs,brt as ft,J6t as fu,I7 as fv,Hge as fw,J$e as fx,$c as fy,Md as fz,xn as g,E6t as g$,FKe as g0,DVt as g1,ACt as g2,kCt as g3,TVt as g4,MVt as g5,OVt as g6,EVt as g7,Y$e as g8,qRe as g9,VRe as gA,QRe as gB,rLe as gC,Uhe as gD,Vhe as gE,aLe as gF,cLe as gG,uLe as gH,dG as gI,wRe as gJ,xtt as gK,sUt as gL,nUt as gM,aUt as gN,z$t as gO,oUt as gP,lUt as gQ,cUt as gR,uUt as gS,B$t as gT,JGe as gU,GH as gV,k6t as gW,P6t as gX,I6t as gY,j6t as gZ,C6t as g_,P2 as ga,AVt as gb,T6t as gc,tUt as gd,IVt as ge,PVt as gf,jVt as gg,RVt as gh,NVt as gi,CVt as gj,j7 as gk,bVt as gl,wVt as gm,SVt as gn,LVt as go,kVt as gp,_Ct as gq,aye as gr,L6t as gs,D6t as gt,M6t as gu,mJ as gv,NRe as gw,Bhe as gx,URe as gy,VM as gz,nLe as h,W$t as h$,A6t as h0,R6t as h1,btt as h2,wtt as h3,N6t as h4,BUt as h5,zUt as h6,$Ut as h7,UUt as h8,VUt as h9,XVt as hA,QVt as hB,JVt as hC,r8t as hD,n8t as hE,BVt as hF,FVt as hG,IB as hH,qd as hI,pUt as hJ,hUt as hK,mUt as hL,rUt as hM,K$t as hN,iUt as hO,$$t as hP,U$t as hQ,wTe as hR,dUt as hS,fUt as hT,eUt as hU,Z$t as hV,X$t as hW,Y$t as hX,Q$t as hY,J$t as hZ,H$t as h_,qUt as ha,GUt as hb,HUt as hc,bYe as hd,xO as he,B6t as hf,Cbe as hg,xrt as hh,mrt as hi,Wrt as hj,Hbe as hk,UTe as hl,GTe as hm,FUt as hn,gjt as ho,zVt as hp,$Vt as hq,UVt as hr,yjt as hs,qVt as ht,GVt as hu,HVt as hv,WVt as hw,KVt as hx,YVt as hy,ZVt as hz,Kt as i,e6t as i$,V$t as i0,q$t as i1,G$t as i2,MHe as i3,pUe as i4,PWe as i5,TJ as i6,D$t as i7,UWe as i8,U6t as i9,R$t as iA,V$e as iB,q$e as iC,_ve as iD,Jde as iE,VVt as iF,P0e as iG,e8t as iH,t8t as iI,i8t as iJ,s8t as iK,NWe as iL,DYe as iM,JUt as iN,t6t as iO,r6t as iP,n6t as iQ,i6t as iR,s6t as iS,a6t as iT,d6t as iU,o6t as iV,l6t as iW,c6t as iX,u6t as iY,h6t as iZ,XUt as i_,$6t as ia,z6t as ib,V6t as ic,H6t as id,lCt as ie,KUt as ig,YUt as ih,_6t as ii,v6t as ij,b6t as ik,Qve as il,hr as im,u8t as io,Jjt as ip,JH as iq,pEe as ir,d8t as is,o8t as it,l8t as iu,c8t as iv,xPt as iw,Y2 as ix,Gle as iy,n9 as iz,o as j,f6t as j0,p6t as j1,g6t as j2,y6t as j3,x6t as j4,WUt as j5,ZUt as j6,QUt as j7,Rtt as j8,lI as j9,_8t as jA,rq as jB,m8t as jC,b8t as jD,w8t as jE,vPt as jF,bPt as jG,iW as jH,_Pt as jI,k9 as jJ,Ave as jK,BQe as jL,Q6 as jM,q6t as jN,G6t as jO,C$t as jP,jee as ja,R9 as jb,Bxe as jc,MF as jd,Kr as je,QC as jf,Xxe as jg,BMt as jh,VMt as ji,HMt as jj,KA as jk,Ojt as jl,Hz as jm,a8t as jn,Ky as jo,p8t as jp,h8t as jq,i3 as jr,y8t as js,x8t as jt,tW as ju,g8t as jv,n3 as jw,rW as jx,cPt as jy,v8t as jz,al as k,Fy as l,GKe as m,Rte as n,De as o,l_e as p,zi as q,P as r,N6 as s,yJ as t,br as u,xJ as v,lG as w,$i as x,gc as y,$a as z};