@serifpersia/dango 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/client/dist/assets/AnimeCard-B5A20jAI.js +1 -0
- package/client/dist/assets/AnimeInfo-0huPAq0O.js +1 -0
- package/client/dist/assets/AnimeInfo-BFWtHlPC.css +1 -0
- package/client/dist/assets/AnimeInfoPage-Dqr5QH6R.js +2 -0
- package/client/dist/assets/AnimeMetaDetails-BPvv5xIl.js +1 -0
- package/client/dist/assets/AnimeMetaDetails-BwNQnRCd.css +1 -0
- package/client/dist/assets/Asmr-B6ZiqkmU.js +2 -0
- package/client/dist/assets/Asmr-Cq2ua6Zk.css +1 -0
- package/client/dist/assets/Asmr.module-ChUXDZKx.js +1 -0
- package/client/dist/assets/AsmrResetProgressModal-Cqsoo3XC.js +1 -0
- package/client/dist/assets/AvSyncCalibrator-C1_iBSyL.css +1 -0
- package/client/dist/assets/AvSyncCalibrator-C8ZoIwMY.js +10 -0
- package/client/dist/assets/ErrorMessage-CXoRbrLN.css +1 -0
- package/client/dist/assets/ErrorMessage-z4f4WGgP.js +1 -0
- package/client/dist/assets/Home-DtRtTuI9.css +1 -0
- package/client/dist/assets/Home-thJhPfs1.js +1 -0
- package/client/dist/assets/Insights-DKtoVe6L.css +1 -0
- package/client/dist/assets/Insights-ZlgPrzGD.js +1 -0
- package/client/dist/assets/LibraryListPage-CCiee-Ot.js +1 -0
- package/client/dist/assets/ListeningList-ctAz_6Zi.js +1 -0
- package/client/dist/assets/Manga-BI9WMTx5.js +1 -0
- package/client/dist/assets/Manga-Dp_-l1Pw.css +1 -0
- package/client/dist/assets/Manga.module-BcfOdsNP.js +1 -0
- package/client/dist/assets/MangaInfoPage-DcrEr7Sk.js +1 -0
- package/client/dist/assets/MangaReadPage-SYg63m48.js +1 -0
- package/client/dist/assets/MangaResetProgressModal-DX-1PS4h.js +1 -0
- package/client/dist/assets/Map-CXFqXmsZ.css +1 -0
- package/client/dist/assets/Map-Dj51g5zL.js +1 -0
- package/client/dist/assets/Mature-DJmUUtlF.css +1 -0
- package/client/dist/assets/Mature-Dqh_9SA3.js +1 -0
- package/client/dist/assets/MediaCard-Be1ST9oj.js +1 -0
- package/client/dist/assets/MediaCard-DB6Yjgky.css +1 -0
- package/client/dist/assets/Music-BGH_0voi.css +1 -0
- package/client/dist/assets/Music-zsPwT8_5.js +1 -0
- package/client/dist/assets/OptionListMenu-Drc_vybW.js +1 -0
- package/client/dist/assets/Player-B036Ic3m.css +1 -0
- package/client/dist/assets/Player-BEtAYps2.js +56 -0
- package/client/dist/assets/PlayerRedirect-D70t8VUW.js +1 -0
- package/client/dist/assets/PlayerSettings-Bj6SsmQ2.css +1 -0
- package/client/dist/assets/PlayerSettings-Cwoji-P7.js +1 -0
- package/client/dist/assets/QueueOptionsButton-B6BMq66e.js +1 -0
- package/client/dist/assets/QueueOptionsButton-CM15uQn8.css +1 -0
- package/client/dist/assets/QueueRail-BUYEjdaq.css +1 -0
- package/client/dist/assets/QueueRail-VxpUDBSm.js +1 -0
- package/client/dist/assets/Radio-B2Q_Egj7.js +1 -0
- package/client/dist/assets/Radio-CCHNFN7R.css +1 -0
- package/client/dist/assets/Radio.module-DGSZLpKM.js +1 -0
- package/client/dist/assets/ReadingList-O0QPwXu7.js +1 -0
- package/client/dist/assets/ResetProgressModal-CR_ovLAu.js +1 -0
- package/client/dist/assets/Search-C8e2nlDD.js +1 -0
- package/client/dist/assets/Search-Cs45oAwI.css +1 -0
- package/client/dist/assets/Search.module-CMEai-B-.js +1 -0
- package/client/dist/assets/Settings-AuFxQcJF.css +1 -0
- package/client/dist/assets/Settings-BgPWBl2V.js +21 -0
- package/client/dist/assets/SkeletonGrid-CtHKKMLj.js +1 -0
- package/client/dist/assets/SkeletonGrid-DhPYefXr.css +1 -0
- package/client/dist/assets/SynopsisText-BcpwT5iw.js +1 -0
- package/client/dist/assets/SynopsisText-CYv2W3yR.css +1 -0
- package/client/dist/assets/Trackers-Bfoiyuzy.js +2 -0
- package/client/dist/assets/Trackers-D5XBOCDp.css +1 -0
- package/client/dist/assets/Tv-Ca0fCdko.js +3 -0
- package/client/dist/assets/Tv-CuEl3Iol.css +1 -0
- package/client/dist/assets/TvInfo-Bu36xJyO.css +1 -0
- package/client/dist/assets/TvInfo-D_scgw_h.js +1 -0
- package/client/dist/assets/TvPopup-YTI7dEbJ.js +1 -0
- package/client/dist/assets/TvSearch-CxU33UOf.js +1 -0
- package/client/dist/assets/TvWatchlist-B4X1fWEH.js +1 -0
- package/client/dist/assets/VirtualKeyboard-6ZNTym4R.js +1 -0
- package/client/dist/assets/VirtualKeyboard-KIPc5ZGH.css +1 -0
- package/client/dist/assets/Watchlist-BiDEU0iV.css +1 -0
- package/client/dist/assets/Watchlist-P6YMZUdF.js +1 -0
- package/client/dist/assets/Watchlist.module-XGtVQr1d.js +1 -0
- package/client/dist/assets/hls-BOLXTnjL.js +42 -0
- package/client/dist/assets/hls-C4cG9wQw.js +1 -0
- package/client/dist/assets/index-BOKlZEHq.js +30354 -0
- package/client/dist/assets/index-CUm1meqr.css +1 -0
- package/client/dist/assets/index-IZgh1beL.js +178 -0
- package/client/dist/assets/useAnimeInfoData-DeuwDSnI.js +1 -0
- package/client/dist/assets/useAsmr-CbMVRjmV.js +1 -0
- package/client/dist/assets/useAsmrPopup-D91Q3CBg.js +1 -0
- package/client/dist/assets/useIsMobile-Dm_b6Ob3.js +1 -0
- package/client/dist/assets/useMangaLibrary-BPvFb1lU.js +1 -0
- package/client/dist/assets/useMangaPopup-BOL2mQJs.js +1 -0
- package/client/dist/assets/useMatureConsent-CT7-KfzG.js +1 -0
- package/client/dist/assets/useProviders-BsRGONMA.js +1 -0
- package/client/dist/assets/useTv-D37MfTHA.js +1 -0
- package/client/dist/assets/useTvLibrary-Cwxgy_Bg.js +1 -0
- package/client/dist/assets/vendor-core-8R2fFbyN.js +1 -0
- package/client/dist/assets/vendor-icons-CDMuNDeL.js +1 -0
- package/client/dist/assets/vendor-query-BXRECSI6.js +1 -0
- package/client/dist/assets/vendor-ui-CUDCvRS_.js +1 -0
- package/client/dist/av-sync-test.mp4 +0 -0
- package/client/dist/favicon.ico +0 -0
- package/client/dist/index.html +46 -0
- package/client/dist/logo-mochi.png +0 -0
- package/client/dist/logo-sakura.png +0 -0
- package/client/dist/logo.png +0 -0
- package/client/dist/placeholder.svg +4 -0
- package/client/dist/robots.txt +3 -0
- package/orchestrator.js +534 -0
- package/package.json +85 -0
- package/server/dist/app-auth.js +177 -0
- package/server/dist/config.js +175 -0
- package/server/dist/controllers/asmr-library.controller.js +288 -0
- package/server/dist/controllers/auth.controller.js +225 -0
- package/server/dist/controllers/data.controller.js +766 -0
- package/server/dist/controllers/insights.controller.js +198 -0
- package/server/dist/controllers/manga-library.controller.js +296 -0
- package/server/dist/controllers/music.controller.js +698 -0
- package/server/dist/controllers/proxy.controller.js +820 -0
- package/server/dist/controllers/settings.controller.js +609 -0
- package/server/dist/controllers/tv-library.controller.js +310 -0
- package/server/dist/controllers/watchlist.controller.js +1015 -0
- package/server/dist/db.js +145 -0
- package/server/dist/discord-gateway.js +391 -0
- package/server/dist/discord-rpc.js +427 -0
- package/server/dist/github-sync.js +512 -0
- package/server/dist/google.js +748 -0
- package/server/dist/lib/anilist.js +1549 -0
- package/server/dist/lib/anischedule.js +194 -0
- package/server/dist/lib/discord-roles-sync.service.js +130 -0
- package/server/dist/lib/ipc.js +24 -0
- package/server/dist/lib/kitsu.js +544 -0
- package/server/dist/lib/mal.js +934 -0
- package/server/dist/lib/migration.js +329 -0
- package/server/dist/lib/offline-db.js +401 -0
- package/server/dist/lib/temp-ids.js +3 -0
- package/server/dist/lib/tmdb.js +72 -0
- package/server/dist/lib/tracker/anilist-tracker.js +245 -0
- package/server/dist/lib/tracker/sync.service.js +496 -0
- package/server/dist/lib/ytmusic.js +125 -0
- package/server/dist/logger.js +16 -0
- package/server/dist/providers/manga/manga.types.js +7 -0
- package/server/dist/providers/provider.interface.js +1 -0
- package/server/dist/providers/remote-loader.js +574 -0
- package/server/dist/providers/remote-types.js +117 -0
- package/server/dist/providers/title-matching.js +225 -0
- package/server/dist/providers/tv.types.js +1 -0
- package/server/dist/rclone.js +120 -0
- package/server/dist/repositories/asmr.repository.js +123 -0
- package/server/dist/repositories/insights.repository.js +85 -0
- package/server/dist/repositories/library.repository.js +108 -0
- package/server/dist/repositories/mal-cache.repository.js +55 -0
- package/server/dist/repositories/manga.repository.js +138 -0
- package/server/dist/repositories/notifications.repository.js +41 -0
- package/server/dist/repositories/queue.repository.js +61 -0
- package/server/dist/repositories/settings.repository.js +12 -0
- package/server/dist/repositories/shows-meta.repository.js +42 -0
- package/server/dist/repositories/temp-show-ids.repository.js +51 -0
- package/server/dist/repositories/tv.repository.js +151 -0
- package/server/dist/repositories/watched-episodes.repository.js +52 -0
- package/server/dist/repositories/watchlist.repository.js +71 -0
- package/server/dist/request-logger.js +16 -0
- package/server/dist/routes/asmr-library.routes.js +23 -0
- package/server/dist/routes/asmr.routes.js +81 -0
- package/server/dist/routes/auth.routes.js +25 -0
- package/server/dist/routes/data.routes.js +47 -0
- package/server/dist/routes/discord-gateway.routes.js +51 -0
- package/server/dist/routes/insights.routes.js +34 -0
- package/server/dist/routes/lan-auth.routes.js +46 -0
- package/server/dist/routes/manga-library.routes.js +23 -0
- package/server/dist/routes/manga.routes.js +141 -0
- package/server/dist/routes/music.routes.js +20 -0
- package/server/dist/routes/providers.routes.js +17 -0
- package/server/dist/routes/proxy.routes.js +12 -0
- package/server/dist/routes/radio.routes.js +138 -0
- package/server/dist/routes/settings.routes.js +24 -0
- package/server/dist/routes/tracker.routes.js +164 -0
- package/server/dist/routes/translate.routes.js +88 -0
- package/server/dist/routes/tv-library.routes.js +23 -0
- package/server/dist/routes/tv.routes.js +629 -0
- package/server/dist/routes/watchlist.routes.js +341 -0
- package/server/dist/scripts/backfill-episode-duration.js +42 -0
- package/server/dist/server.js +529 -0
- package/server/dist/shipped-defaults.js +7 -0
- package/server/dist/sync-config.js +23 -0
- package/server/dist/sync-payload.js +91 -0
- package/server/dist/sync.js +1128 -0
- package/server/dist/utils/cache.utils.js +25 -0
- package/server/dist/utils/cookie.utils.js +13 -0
- package/server/dist/utils/db-utils.js +9 -0
- package/server/dist/utils/env.utils.js +77 -0
- package/server/dist/utils/http.utils.js +70 -0
- package/server/dist/utils/machine-id.js +40 -0
- package/server/dist/utils/megaplay.utils.js +41 -0
- package/server/dist/utils/request-context.js +2 -0
- package/server/dist/utils/security.utils.js +94 -0
- package/server/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._page_3q1ov_1{max-width:var(--layout-asmr-max-width);margin:0 auto;padding:var(--space-6) var(--space-4);min-height:calc(100vh - var(--layout-page-offset))}._header_3q1ov_8{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}._pageTitle_3q1ov_16{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xl);margin:0;color:var(--text-primary)}._searchForm_3q1ov_25{display:flex;flex:1;min-width:var(--size-220);max-width:var(--size-480);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}._searchForm_3q1ov_25:focus-within{border-color:var(--accent)}._searchInput_3q1ov_40{flex:1;min-width:0;padding:var(--space-2-5) var(--space-3);border:none;background:transparent;color:var(--text-primary);font-size:var(--font-size-sm);outline:none}._searchBtn_3q1ov_51{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--size-44);border:none;border-left:var(--space-px) solid var(--border-primary);background:var(--accent);color:var(--accent-text);cursor:pointer}._select_3q1ov_64{padding:var(--space-2-5) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;max-width:11rem}._filterRow_3q1ov_75{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}._matureToggleWrap_3q1ov_83{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}._matureLabel_3q1ov_90{font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}._grid_3q1ov_96{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-4);transition:opacity var(--transition-fast)}._fetching_3q1ov_103{opacity:.45;pointer-events:none}._statusMsg_3q1ov_108{color:var(--text-secondary);text-align:center;padding:var(--space-8) 0}._pagination_3q1ov_114{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-6)}._pageBtn_3q1ov_122{padding:var(--space-2-5) var(--space-4);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer}._pageBtn_3q1ov_122:disabled{opacity:.4;cursor:default}._pageIndicator_3q1ov_137{font-size:var(--font-size-sm);color:var(--text-secondary)}._skeletonCard_3q1ov_142{display:flex;flex-direction:column}._skeletonThumb_3q1ov_147{aspect-ratio:3 / 4;border-radius:var(--radius-lg);background:var(--bg-tertiary)}._skeletonLine_3q1ov_153{height:.8rem;border-radius:var(--radius-sm);background:var(--bg-tertiary);margin-top:var(--space-2)}._shimmer_3q1ov_160{position:relative;overflow:hidden}._shimmer_3q1ov_160:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:_shimmer_3q1ov_160 1.4s infinite}@keyframes _shimmer_3q1ov_160{0%{transform:translate(-100%)}to{transform:translate(100%)}}._detail_3q1ov_182{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-bottom:var(--space-6)}._detailCover_3q1ov_189{width:12rem;flex-shrink:0;aspect-ratio:3 / 4;border-radius:var(--radius-lg);object-fit:cover;background:var(--bg-tertiary)}._detailInfo_3q1ov_198{flex:1;min-width:16rem}._detailTitle_3q1ov_203{margin:0 0 var(--space-2);font-size:var(--font-size-xl);color:var(--text-primary)}._detailMeta_3q1ov_209{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3);font-size:var(--font-size-xs);color:var(--text-secondary)}._badge_3q1ov_218{padding:var(--space-2px) var(--space-2);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary)}._detailDesc_3q1ov_225{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;max-width:60rem}._detailAltTitle_3q1ov_232{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);color:var(--text-tertiary)}._backBtn_3q1ov_238{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:none;color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer}._backBtn_3q1ov_238:hover{color:var(--text-primary);border-color:var(--accent)}._chapterList_3q1ov_257{display:flex;flex-direction:column;gap:var(--space-2px);margin-top:var(--space-4)}._chapterRow_3q1ov_264{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2-5) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;width:100%}._chapterRow_3q1ov_264:hover{border-color:var(--accent)}._chapterRow_3q1ov_264:disabled{opacity:.45;cursor:default}._chapterMeta_3q1ov_289{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap}._chapterDone_3q1ov_295{opacity:.6}._detailActions_3q1ov_299{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2-5);margin-top:var(--space-4)}._detailSelect_3q1ov_307{height:2.25rem;padding:0 var(--space-3);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}._readerShell_3q1ov_319{min-height:60vh}._readerBar_3q1ov_323{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) 0;margin-bottom:var(--space-3);background:color-mix(in srgb,var(--bg-primary) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}._readerIconBtn_3q1ov_337{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}._readerIconBtn_3q1ov_337:disabled{opacity:.35;cursor:default}._readerTitle_3q1ov_356{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-semibold);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._readerCounter_3q1ov_367{flex-shrink:0;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary);background:var(--bg-secondary);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-full);padding:var(--space-2px) var(--space-2-5)}._readerSegment_3q1ov_378{display:flex;flex-shrink:0;border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}._readerSegment_3q1ov_378 button{border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:.45rem .65rem;cursor:pointer;white-space:nowrap}._readerSegmentActive_3q1ov_398{background:var(--accent)!important;color:var(--accent-text)!important}._readerPages_3q1ov_403{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);max-width:56rem;margin:0 auto}._readerPageWrap_3q1ov_412{position:relative;width:100%;display:flex;flex-direction:column;align-items:center}._saveMarker_3q1ov_420{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-2);padding:var(--space-2) 0;border-top:2px solid var(--accent);color:var(--accent-text);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);box-shadow:0 4px 15px var(--accent-glow)}._readerPage_3q1ov_403{width:100%;display:block;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._readerPagesTall_3q1ov_444 ._readerPage_3q1ov_403{width:auto;max-width:100%;max-height:calc(100dvh - 5rem);margin:0 auto}._pageView_3q1ov_451{position:relative;display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - 12rem);margin:0 auto;user-select:none;-webkit-user-select:none;touch-action:pan-y}._pageImage_3q1ov_463{display:block;width:100%;max-width:56rem;max-height:calc(100dvh - 12rem);object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._pageViewTall_3q1ov_473 ._pageImage_3q1ov_463{width:auto;max-width:100%;height:calc(100dvh - 12rem)}._tapZone_3q1ov_479{position:absolute;top:0;bottom:0;width:28%;border:none;background:transparent;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent}._tapZoneLeft_3q1ov_491{left:0;cursor:w-resize}._tapZoneRight_3q1ov_496{right:0;cursor:e-resize}._tapChevron_3q1ov_501{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;background:color-mix(in srgb,var(--bg-primary) 65%,transparent);border:var(--space-px) solid var(--border-primary);color:var(--text-secondary);opacity:0;transition:opacity var(--transition-fast);pointer-events:none}._tapZoneLeft_3q1ov_491 ._tapChevron_3q1ov_501{left:.75rem}._tapZoneRight_3q1ov_496 ._tapChevron_3q1ov_501{right:.75rem}._tapZone_3q1ov_479:hover ._tapChevron_3q1ov_501,._tapZone_3q1ov_479:focus-visible ._tapChevron_3q1ov_501{opacity:1}@media(hover:none){._tapChevron_3q1ov_501{opacity:.85}}._deadPage_3q1ov_538{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;max-width:28rem;margin:0 auto;padding:var(--space-8) var(--space-4);border:var(--space-px) dashed var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);background:var(--bg-secondary)}._failedBox_3q1ov_554{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-4)}@media(max-width:640px){._readerShell_3q1ov_319{margin-left:calc(var(--space-4) * -1);margin-right:calc(var(--space-4) * -1)}._readerBar_3q1ov_323{padding-left:var(--space-3);padding-right:var(--space-3);gap:var(--space-1-5)}._readerTitle_3q1ov_356{flex:1 1 100%;order:-1;font-size:var(--font-size-xs)}._readerSegment_3q1ov_378 button{padding:.4rem .5rem}._readerPages_3q1ov_403{gap:0;max-width:none}._readerPage_3q1ov_403{border-radius:0}._pageView_3q1ov_451{min-height:calc(100dvh - 10rem)}._pageImage_3q1ov_463{max-width:100%;border-radius:0}}@media(max-height:500px)and (orientation:landscape){._readerPagesTall_3q1ov_444 ._readerPage_3q1ov_403{max-height:calc(100dvh - 4rem)}._pageView_3q1ov_451,._pageViewTall_3q1ov_473 ._pageImage_3q1ov_463,._pageImage_3q1ov_463{min-height:0}._pageView_3q1ov_451{min-height:calc(100dvh - 8rem)}._pageImage_3q1ov_463{max-height:calc(100dvh - 8rem)}._pageViewTall_3q1ov_473 ._pageImage_3q1ov_463{height:calc(100dvh - 8rem)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e="_page_3q1ov_1",t="_header_3q1ov_8",a="_pageTitle_3q1ov_16",o="_searchForm_3q1ov_25",_="_searchInput_3q1ov_40",r="_searchBtn_3q1ov_51",n="_select_3q1ov_64",s="_filterRow_3q1ov_75",c="_matureToggleWrap_3q1ov_83",l="_matureLabel_3q1ov_90",d="_grid_3q1ov_96",i="_fetching_3q1ov_103",g="_statusMsg_3q1ov_108",v="_pagination_3q1ov_114",p="_pageBtn_3q1ov_122",q="_pageIndicator_3q1ov_137",h="_skeletonCard_3q1ov_142",m="_skeletonThumb_3q1ov_147",T="_skeletonLine_3q1ov_153",u="_shimmer_3q1ov_160",B="_detail_3q1ov_182",f="_detailCover_3q1ov_189",k="_detailInfo_3q1ov_198",I="_detailTitle_3q1ov_203",P="_detailMeta_3q1ov_209",b="_badge_3q1ov_218",w="_detailDesc_3q1ov_225",C="_detailAltTitle_3q1ov_232",L="_backBtn_3q1ov_238",M="_chapterList_3q1ov_257",S="_chapterRow_3q1ov_264",A="_chapterMeta_3q1ov_289",R="_chapterDone_3q1ov_295",Z="_detailActions_3q1ov_299",D="_detailSelect_3q1ov_307",V="_readerShell_3q1ov_319",W="_readerBar_3q1ov_323",x="_readerIconBtn_3q1ov_337",F="_readerTitle_3q1ov_356",y="_readerCounter_3q1ov_367",j="_readerSegment_3q1ov_378",z="_readerSegmentActive_3q1ov_398",E="_readerPages_3q1ov_403",G="_readerPageWrap_3q1ov_412",H="_saveMarker_3q1ov_420",J="_readerPage_3q1ov_403",K="_readerPagesTall_3q1ov_444",N="_pageView_3q1ov_451",O="_pageImage_3q1ov_463",Q="_pageViewTall_3q1ov_473",U="_tapZone_3q1ov_479",X="_tapZoneLeft_3q1ov_491",Y="_tapZoneRight_3q1ov_496",$="_tapChevron_3q1ov_501",ee="_deadPage_3q1ov_538",te="_failedBox_3q1ov_554",ae={page:e,header:t,pageTitle:a,searchForm:o,searchInput:_,searchBtn:r,select:n,filterRow:s,matureToggleWrap:c,matureLabel:l,grid:d,fetching:i,statusMsg:g,pagination:v,pageBtn:p,pageIndicator:q,skeletonCard:h,skeletonThumb:m,skeletonLine:T,shimmer:u,detail:B,detailCover:f,detailInfo:k,detailTitle:I,detailMeta:P,badge:b,detailDesc:w,detailAltTitle:C,backBtn:L,chapterList:M,chapterRow:S,chapterMeta:A,chapterDone:R,detailActions:Z,detailSelect:D,readerShell:V,readerBar:W,readerIconBtn:x,readerTitle:F,readerCounter:y,readerSegment:j,readerSegmentActive:z,readerPages:E,readerPageWrap:G,saveMarker:H,readerPage:J,readerPagesTall:K,pageView:N,pageImage:O,pageViewTall:Q,tapZone:U,tapZoneLeft:X,tapZoneRight:Y,tapChevron:$,deadPage:ee,failedBox:te};export{ae as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e,n as E,o as z,a as D,d as Q,h as L,T as b,S as _}from"./vendor-core-8R2fFbyN.js";import{I as N}from"./vendor-icons-CDMuNDeL.js";import{d as j,B as I}from"./index-IZgh1beL.js";import{E as V}from"./ErrorMessage-z4f4WGgP.js";import{b as F,m as G,g as H,h as O,j as W,r as Y,k as q,l as J,n as K,M as X}from"./useMangaLibrary-BPvFb1lU.js";import{s as t}from"./Manga.module-BcfOdsNP.js";import"./vendor-query-BXRECSI6.js";const Z=({detail:r,altTitle:l,onBack:C,onOpenChapter:u,bookmarkButton:c,statusSelect:v,primaryAction:d,progressByChapter:y})=>{const i=[r.type,r.status,r.year?String(r.year):"",r.author?`by ${r.author}`:""].filter(Boolean);return e("div",{children:[e("button",{className:t.backBtn,onClick:C,children:[e(N,{name:"chevron-left",size:12})," Back to browse"]}),e("div",{className:t.detail,children:[r.cover&&e("img",{className:t.detailCover,src:F(r.provider,r.cover),alt:r.title,decoding:"async",draggable:!1}),e("div",{className:t.detailInfo,children:[e("h2",{className:t.detailTitle,children:r.title}),l&&e("p",{className:t.detailAltTitle,children:["Also known as: ",l]}),i.length>0&&e("div",{className:t.detailMeta,children:i.map(n=>e("span",{className:t.badge,children:n},n))}),r.genres&&r.genres.length>0&&e("div",{className:t.detailMeta,children:r.genres.map(n=>e("span",{className:t.badge,children:n},n))}),r.description&&e("p",{className:t.detailDesc,children:r.description}),(c||v||d)&&e("div",{className:t.detailActions,children:[d,c,v]})]})]}),e("h3",{className:t.detailTitle,style:{fontSize:"1rem"},children:["Chapters (",r.chapters.length,")"]}),r.chapters.length===0?e("p",{className:t.statusMsg,children:"No chapters found for this title on this provider."}):e("div",{className:t.chapterList,children:r.chapters.map(n=>{const a=y?.get(n.id),p=!!a&&a.pageCount>0&&a.page>=a.pageCount;return e("button",{className:`${t.chapterRow} ${p?t.chapterDone:""}`,onClick:()=>u(n),title:n.externalUrl?"External only — opens on source site":void 0,children:[e("span",{children:["Ch. ",n.number,n.title?` — ${n.title}`:""]}),e("span",{className:t.chapterMeta,children:[a&&a.pageCount>0?p?"read":`p. ${a.page}/${a.pageCount}`:"",n.group,n.externalUrl?"external":""].filter(Boolean).join(" · ")})]},n.id)})})]})};function le(){const{provider:r="",id:l=""}=E(),[C]=z(),u=D(),[c,v]=Q(()=>localStorage.getItem("agreedToViewMature")==="true");L(()=>{const s=()=>v(localStorage.getItem("agreedToViewMature")==="true");return window.addEventListener("focus",s),window.addEventListener("storage",s),()=>{window.removeEventListener("focus",s),window.removeEventListener("storage",s)}},[]);const d=C.get("rating")||"safe",y=c?d:"safe",i=r&&l?G(r,l):void 0,n=H(r||null,l||null,y,c),a=n.data,p=O(i),f=W(i),{titlePreference:w}=j(),m=b(()=>a&&{...a,title:Y(a,w)},[a,w]),M=q(),B=J(),P=K();L(()=>{m&&(document.title=`${m.title} - dango`)},[m]);const S=b(()=>{const s=new Map;for(const o of f.data?.progress??[])s.set(o.chapterId,o);return s},[f.data]),k=p.data?.inLibrary??!1,R=p.data?.status??"Reading",$=b(()=>(a?.chapters??[]).filter(s=>!s.externalUrl),[a]),g=b(()=>{if(!a)return null;const s=[...f.data?.progress??[]].sort((o,h)=>h.updatedAt-o.updatedAt);for(const o of s){const h=a.chapters.find(U=>U.id===o.chapterId);if(h&&!h.externalUrl)return h}return $[0]??null},[a,f.data,$]),x=(g?S.get(g.id):void 0)?`Continue Ch. ${g?.number}`:"Start Reading",T=s=>{if(s.externalUrl){window.open(s.externalUrl,"_blank","noopener,noreferrer");return}const o=new URLSearchParams;o.set("chapter",s.id),c&&d!=="safe"&&o.set("rating",d),u(`/manga/${r}/${encodeURIComponent(l)}/read?${o.toString()}`)},A=()=>{!a||!i||(k?B.mutate(i):M.mutate({provider:r,mangaId:l,title:a.title,cover:a.cover,author:a.author,altTitle:a.altTitle,contentRating:a.contentRating}))};return e("div",{className:t.page,children:n.isLoading?e("div",{"aria-hidden":!0,children:[e("div",{className:`${t.skeletonThumb} ${t.shimmer}`,style:{maxWidth:"12rem"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"40%"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"70%"}})]}):n.isError||!a||!m?e(_,{children:[e("button",{className:t.backBtn,onClick:()=>u("/manga"),children:[e(N,{name:"chevron-left",size:12})," Back to browse"]}),e(V,{message:"Failed to load this title. Please try again."})]}):e(Z,{detail:m,altTitle:a.altTitle!==m.title?a.altTitle:void 0,onBack:()=>u("/manga"),onOpenChapter:T,progressByChapter:S,primaryAction:g?e(I,{onClick:()=>g&&T(g),children:[e(N,{name:"book",size:13})," ",x]}):void 0,bookmarkButton:e(I,{variant:k?"secondary":"primary",onClick:A,disabled:M.isPending||B.isPending,children:[e(N,{name:"bookmark",size:13})," ",k?"Bookmarked":"Bookmark"]}),statusSelect:k?e("select",{className:t.detailSelect,value:R,onChange:s=>i&&P.mutate({id:i,status:s.target.value}),"aria-label":"Reading status",children:X.map(s=>e("option",{value:s,children:s},s))}):void 0})})}export{le as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as A,A as v,q,h as g,u as e,S as J,n as ie,o as ce,a as le,T as de}from"./vendor-core-8R2fFbyN.js";import{E as ge}from"./ErrorMessage-z4f4WGgP.js";import{I as C}from"./vendor-icons-CDMuNDeL.js";import{u as ue}from"./vendor-query-BXRECSI6.js";import{o as he,p as me,m as pe,g as fe,r as ve,j as be,q as Ne}from"./useMangaLibrary-BPvFb1lU.js";import{s as n}from"./Manga.module-BcfOdsNP.js";import{d as ye}from"./index-IZgh1beL.js";const Y="mangaReadMode",G="mangaFitMode";function we(){try{return localStorage.getItem(Y)==="page"?"page":"strip"}catch{return"strip"}}function Se(){try{return localStorage.getItem(G)==="height"?"height":"width"}catch{return"width"}}const Ie=({provider:p,mangaTitle:b,chapter:u,chapters:R,onBack:$,onOpenChapter:f,initialPage:l=0,onProgress:z,savedPage:w=0})=>{const[i,s]=A(we),[B,F]=A(Se),[d,x]=A(0),[h,S]=A(new Set),[D,N]=A(0),y=v(null),c=v([]),O=ue(),{data:T,isLoading:K,isError:U}=he(p,u.id),t=T?.pages??[],o=t.map(a=>me(p,a)),M=v(0),ee=v(0),L=v(!1);ee.current=t.length;const _=R.findIndex(a=>a.id===u.id),I=_>0?[...R.slice(0,_)].reverse().find(a=>!a.externalUrl)??null:null,k=_>=0?R.slice(_+1).find(a=>!a.externalUrl)??null:null,P=q(a=>{L.current=!0,x(r=>{const m=r+a;return m<0?(I&&f(I),0):m>=t.length?(k&&f(k),r):m})},[t.length,I,k,f]);g(()=>{L.current=!1,M.current=Math.max(0,l),x(Math.max(0,l)),S(new Set),c.current=[],l<=0&&window.scrollTo(0,0)},[u.id,l]);const Q=v(z);Q.current=z;const W=v("");g(()=>{M.current=d,t.length!==0&&Q.current?.(Math.min(d+1,t.length),t.length)},[d,t.length]),g(()=>{l<=0||L.current||M.current===0&&(L.current=!1,M.current=l,x(l))},[l]),g(()=>{if(i!=="strip"||t.length===0||l<=0)return;const a=`${u.id}:${l}`;if(W.current===a)return;W.current=a;const r=window.setTimeout(()=>{c.current[Math.min(l,t.length-1)]?.scrollIntoView({block:"start"})},150);return()=>window.clearTimeout(r)},[i,t.length,l,u.id]),g(()=>{document.title=`${b} Ch. ${u.number} - dango`},[b,u.number]),g(()=>{try{localStorage.setItem(Y,i)}catch{}},[i]),g(()=>{try{localStorage.setItem(G,B)}catch{}},[B]),g(()=>{i==="page"&&window.scrollTo(0,0)},[i]),g(()=>{if(i!=="page"||t.length===0)return;const a=r=>{r.key==="ArrowRight"||r.key===" "?(r.preventDefault(),P(1)):r.key==="ArrowLeft"&&(r.preventDefault(),P(-1))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[i,t.length,P]),g(()=>{if(i!=="strip"||t.length===0)return;const a=new IntersectionObserver(r=>{for(const m of r)if(m.isIntersecting){const j=Number(m.target.dataset.pageIndex);Number.isNaN(j)||(j!==M.current&&(L.current=!0),x(j))}},{rootMargin:"-45% 0px -45% 0px",threshold:0});return c.current.forEach(r=>r&&a.observe(r)),()=>a.disconnect()},[i,t.length,T]);const te=a=>{y.current=a.touches[0].clientX},ne=a=>{if(y.current===null)return;const r=a.changedTouches[0].clientX-y.current;y.current=null,!(Math.abs(r)<50)&&P(r<0?1:-1)},V=a=>{a&&f(a)},Z=a=>S(r=>{if(r.has(a))return r;const m=new Set(r);return m.add(a),m}),ae=a=>{S(r=>{const m=new Set(r);return m.delete(a),m}),N(r=>r+1)},re=()=>{S(new Set),N(a=>a+1),O.invalidateQueries({queryKey:["mangaPages",p,u.id]})},se=t.length>0&&h.size>=t.length,H=a=>D>0?`${a}&n=${D}`:a,X=a=>e("div",{className:n.deadPage,role:"alert",children:[e("span",{children:["Page ",a+1," failed to load"]}),e("button",{className:n.pageBtn,onClick:()=>ae(a),children:[e(C,{name:"sync-alt",size:12})," Retry"]})]}),E=B==="height",oe=w>0?w-1:-1;return e("div",{className:n.readerShell,children:[e("div",{className:n.readerBar,children:[e("button",{className:n.readerIconBtn,onClick:$,"aria-label":"Back to chapters",children:e(C,{name:"chevron-left",size:14})}),e("span",{className:n.readerTitle,children:[b," — Ch. ",u.number,u.title?` ${u.title}`:""]}),t.length>0&&e("span",{className:n.readerCounter,children:[Math.min(d+1,t.length)," / ",t.length]}),e("div",{className:n.readerSegment,role:"group","aria-label":"Reading mode",children:[e("button",{type:"button","aria-pressed":i==="strip",className:i==="strip"?n.readerSegmentActive:"",onClick:()=>s("strip"),children:"Strip"}),e("button",{type:"button","aria-pressed":i==="page",className:i==="page"?n.readerSegmentActive:"",onClick:()=>s("page"),children:"Page"})]}),e("div",{className:n.readerSegment,role:"group","aria-label":"Fit mode",children:[e("button",{type:"button","aria-pressed":!E,className:E?"":n.readerSegmentActive,onClick:()=>F("width"),title:"Fit width — best for portrait / phones",children:"Wide"}),e("button",{type:"button","aria-pressed":E,className:E?n.readerSegmentActive:"",onClick:()=>F("height"),title:"Fit height — best for landscape / desktop",children:"Tall"})]}),e("button",{className:n.readerIconBtn,disabled:!I,onClick:()=>V(I),"aria-label":"Previous chapter",children:e(C,{name:"chevron-left",size:14})}),e("button",{className:n.readerIconBtn,disabled:!k,onClick:()=>V(k),"aria-label":"Next chapter",children:e(C,{name:"chevron-right",size:14})})]}),U?e("p",{className:n.statusMsg,children:"Failed to load pages. Please try again."}):K?e("div",{className:n.readerPages,"aria-hidden":!0,children:Array.from({length:3}).map((a,r)=>e("div",{className:`${n.skeletonThumb} ${n.shimmer}`,style:{width:"100%",maxWidth:"56rem",aspectRatio:"3 / 4"}},r))}):t.length===0?e("p",{className:n.statusMsg,children:"No pages found for this chapter."}):se?e("div",{className:n.failedBox,children:[e("p",{className:n.statusMsg,children:"Page images failed to load (expired or blocked links)."}),e("button",{className:n.pageBtn,onClick:re,children:[e(C,{name:"sync-alt",size:12})," Reload pages"]})]}):i==="strip"?e("div",{className:`${n.readerPages} ${E?n.readerPagesTall:""}`,children:o.map((a,r)=>e("div",{ref:m=>{c.current[r]=m},"data-page-index":r,className:n.readerPageWrap,children:[r===oe&&e("div",{className:n.saveMarker,role:"note","aria-label":"Saved reading position",children:[e(C,{name:"bookmark",size:12}),e("span",{children:["Saved · p. ",w]})]}),h.has(r)?X(r):e("img",{className:n.readerPage,src:H(a),alt:`Page ${r+1}`,loading:r<3?"eager":"lazy",decoding:"async",draggable:!1,onError:()=>Z(r)})]},`${r}-${t[r].slice(-32)}`))}):e(J,{children:[e("div",{className:`${n.pageView} ${E?n.pageViewTall:""}`,onTouchStart:te,onTouchEnd:ne,children:[e("button",{className:`${n.tapZone} ${n.tapZoneLeft}`,onClick:()=>P(-1),"aria-label":"Previous page",children:e("span",{className:n.tapChevron,children:e(C,{name:"chevron-left",size:16})})}),h.has(d)?X(d):e("img",{className:n.pageImage,src:H(o[d]),alt:`Page ${d+1} of ${t.length}`,decoding:"async",draggable:!1,onError:()=>Z(d)},`${d}-${t[d].slice(-32)}`),e("button",{className:`${n.tapZone} ${n.tapZoneRight}`,onClick:()=>P(1),"aria-label":"Next page",children:e("span",{className:n.tapChevron,children:e(C,{name:"chevron-right",size:16})})})]}),e("nav",{className:n.pagination,"aria-label":"Page navigation",children:[e("button",{className:n.pageBtn,disabled:d<=0,onClick:()=>P(-1),children:"Previous page"}),e("span",{className:n.pageIndicator,children:[d+1," / ",t.length]}),e("button",{className:n.pageBtn,disabled:d>=t.length-1,onClick:()=>P(1),children:"Next page"})]})]}),(I||k)&&e("nav",{className:n.pagination,children:[e("button",{className:n.pageBtn,disabled:!I,onClick:()=>V(I),children:"Previous chapter"}),e("button",{className:n.pageBtn,disabled:!k,onClick:()=>V(k),children:"Next chapter"})]})]})},ke=800,Pe=5e3;function Be(){const{provider:p="",id:b=""}=ie(),[u]=ce(),R=le(),$=u.get("chapter")||"",f=u.get("rating")||"safe",l=typeof localStorage<"u"&&localStorage.getItem("agreedToViewMature")==="true",z=l?f:"safe",w=p&&b?pe(p,b):"",i=fe(p||null,b||null,z,l),s=i.data,{titlePreference:B}=ye(),F=s?ve(s,B):"Manga",d=be(w||void 0),x=Ne(),h=s&&$?s.chapters.find(t=>t.id===$)??null:null,S=de(()=>{const t=(d.data?.progress??[]).find(o=>o.chapterId===$);return t&&t.page>0?t.page:0},[d.data,$]),D=S>1?S-1:0,N=v(null),y=v(null),c=q(()=>{N.current&&(clearTimeout(N.current),N.current=null);const t=y.current;y.current=null,t&&w&&x.mutate({mangaId:w,chapterId:t.chapterId,chapterNumber:t.chapterNumber,page:t.page,pageCount:t.pageCount,title:s?.title??null,cover:s?.cover??null,provider:p||null,altTitle:s?.altTitle??null,contentRating:s?.contentRating??null})},[w,x,s?.title,s?.cover,s?.altTitle,s?.contentRating,p]),O=q((t,o)=>{h&&(y.current={chapterId:h.id,chapterNumber:h.number,page:t,pageCount:o},N.current&&clearTimeout(N.current),N.current=setTimeout(c,ke))},[h,c]);g(()=>{c()},[$,c]),g(()=>()=>c(),[c]),g(()=>{const t=window.setInterval(()=>{y.current&&c()},Pe);return()=>window.clearInterval(t)},[c]),g(()=>{const t=()=>{document.visibilityState==="hidden"&&c()},o=()=>c();return document.addEventListener("visibilitychange",t),window.addEventListener("pagehide",o),()=>{document.removeEventListener("visibilitychange",t),window.removeEventListener("pagehide",o)}},[c]);const T=v("");T.current||(T.current=`manga-${Date.now()}-${Math.random().toString(36).slice(2)}`),g(()=>{if(!s||!h)return;const t=s.contentRating==="erotica"||s.contentRating==="pornographic"||s.type==="doujinshi",o=()=>{fetch("/api/discord/manga",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:s.title,chapterLabel:`Chapter ${h.number}`,isPlaying:!0,thumbnail:s.cover||"",thumbnails:[s.cover].filter(Boolean),isAdult:t,sessionId:T.current})}).catch(()=>{}),fetch("/api/discord/heartbeat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:T.current})}).catch(()=>{})};o();const M=window.setInterval(o,6e4);return()=>window.clearInterval(M)},[s,h]);const K=t=>{if(c(),t.externalUrl){window.open(t.externalUrl,"_blank","noopener,noreferrer");return}const o=new URLSearchParams;o.set("chapter",t.id),l&&f!=="safe"&&o.set("rating",f),R(`/manga/${p}/${encodeURIComponent(b)}/read?${o.toString()}`)},U=()=>{c();const t=new URLSearchParams;l&&f!=="safe"&&t.set("rating",f);const o=t.toString()?`?${t.toString()}`:"";R(`/manga/${p}/${encodeURIComponent(b)}${o}`)};return e("div",{className:n.page,children:i.isLoading?e("div",{className:n.readerPages,"aria-hidden":!0,children:Array.from({length:3}).map((t,o)=>e("div",{className:`${n.skeletonThumb} ${n.shimmer}`,style:{width:"100%",maxWidth:"56rem",aspectRatio:"3 / 4"}},o))}):!s||!h?e(J,{children:[e("button",{className:n.backBtn,onClick:U,children:"Back to title"}),e(ge,{message:"Failed to load this chapter. Please try again."})]}):e(Ie,{provider:p,mangaTitle:F,chapter:h,chapters:s.chapters,onBack:U,onOpenChapter:K,initialPage:D,onProgress:O,savedPage:S},h.id)})}export{Be as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as n,u as l}from"./vendor-core-8R2fFbyN.js";import{R as i}from"./ResetProgressModal-CR_ovLAu.js";import{x as f,l as R}from"./useMangaLibrary-BPvFb1lU.js";const p=({mangaId:e,title:a,onClose:s})=>{const[r,o]=n(!1),t=f(),m=R();return l(i,{isOpen:!!e,itemName:a,progressKind:"reading",listLabel:"my reading list",alsoRemove:r,onAlsoRemoveChange:o,onClose:()=>{o(!1),s()},onConfirm:()=>{e&&(t.mutate({mangaId:e}),r&&m.mutate(e),o(!1),s())}})};export{p as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._header_lm0yk_1{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-8);animation:_fadeIn_lm0yk_1 .8s var(--ease-smooth)}._subtitle_lm0yk_10{color:var(--text-tertiary);font-size:var(--font-size-sm);margin:var(--space-2) 0 0;max-width:560px}._mapCard_lm0yk_17{background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);padding:var(--space-2);overflow:hidden;margin-bottom:var(--space-16);animation:_slideUpIn_lm0yk_1 .8s var(--ease-smooth)}._canvasWrap_lm0yk_28{position:relative;width:100%}._mapSvg_lm0yk_33{width:100%;height:auto;display:block}._tooltip_lm0yk_39{pointer-events:none;background:#0a0a0eeb;border:1px solid var(--border-accent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;gap:2px;z-index:10}._tooltip_lm0yk_39 strong{color:var(--accent-light);font-size:var(--font-size-xs);letter-spacing:.3px}._tooltip_lm0yk_39 span{color:var(--text-secondary);font-size:var(--font-size-xs)}._statsGrid_lm0yk_63{display:flex;flex-direction:column;gap:var(--space-2);position:absolute;right:var(--space-3);bottom:var(--space-3);z-index:10}._statCard_lm0yk_73{display:flex;align-items:center;gap:var(--space-3);background:var(--glass-bg);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);padding:var(--space-3) var(--space-4);transition:all var(--transition-base);white-space:nowrap}._statCard_lm0yk_73:hover{border-color:var(--border-accent);transform:translateY(-2px)}._statCard_lm0yk_73>svg{font-size:1.1rem;color:var(--accent)}._statValue_lm0yk_96{display:block;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);line-height:1.1}._statLabel_lm0yk_104{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--text-tertiary)}._loading_lm0yk_111{padding:var(--space-16);text-align:center;color:var(--text-tertiary);animation:_fadeIn_lm0yk_1 .6s var(--ease-smooth)}._error_lm0yk_118{padding:var(--space-16);text-align:center;color:var(--color-danger);animation:_fadeIn_lm0yk_1 .6s var(--ease-smooth)}@media(max-width:600px){._statsGrid_lm0yk_63{flex-direction:row;right:var(--space-2);bottom:var(--space-2);gap:var(--space-1)}._statCard_lm0yk_73{padding:var(--space-2) var(--space-3);gap:var(--space-2)}._statCard_lm0yk_73>svg{font-size:.9rem}._statValue_lm0yk_96{font-size:var(--font-size-sm)}._statLabel_lm0yk_104{font-size:.6rem}}@keyframes _glowPulse_lm0yk_1{0%,to{opacity:.15}50%{opacity:.5}}._glow_lm0yk_161{animation:_glowPulse_lm0yk_1 3s ease-in-out infinite;filter:blur(2px)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as qt,g as Q,N as kr,T as ee,q as Eo,x as So,d as Ot,h as Qt,X as ra,S as Mo,A as Bt,u as X}from"./vendor-core-8R2fFbyN.js";import{I as Qr}from"./vendor-icons-CDMuNDeL.js";class rt{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const a=e[i],o=n+a,u=Math.abs(n)<Math.abs(a)?n-(o-a):a-(o-n);u&&(e[r++]=u),n=o}return e[r]=n,this._n=r+1,this}valueOf(){const n=this._partials;let e=this._n,r,i,a,o=0;if(e>0){for(o=n[--e];e>0&&(r=o,i=n[--e],o=r+i,a=i-(o-r),!a););e>0&&(a<0&&n[e-1]<0||a>0&&n[e-1]>0)&&(i=a*2,r=o+i,i==r-o&&(o=r))}return o}}function*ko(t){for(const n of t)yield*n}function ia(t){return Array.from(ko(t))}function jt(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=Math.max(0,Math.ceil((n-t)/e))|0,a=new Array(i);++r<i;)a[r]=t+r*e;return a}var C=1e-6,Sn=1e-12,B=Math.PI,Z=B/2,re=B/4,ut=B*2,Y=180/B,R=B/180,G=Math.abs,cn=Math.atan,ct=Math.atan2,b=Math.cos,Bn=Math.ceil,aa=Math.exp,Ve=Math.hypot,ie=Math.log,Be=Math.pow,P=Math.sin,mt=Math.sign||function(t){return t>0?1:t<0?-1:0},nt=Math.sqrt,Nr=Math.tan;function oa(t){return t>1?0:t<-1?B:Math.acos(t)}function st(t){return t>1?Z:t<-1?-Z:Math.asin(t)}function ti(t){return(t=P(t/2))*t}function V(){}function ae(t,n){t&&ei.hasOwnProperty(t.type)&&ei[t.type](t,n)}var ni={Feature:function(t,n){ae(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)ae(e[r].geometry,n)}},ei={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){We(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)We(e[r],n,0)},Polygon:function(t,n){ri(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)ri(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)ae(e[r],n)}};function We(t,n,e){var r=-1,i=t.length-e,a;for(n.lineStart();++r<i;)a=t[r],n.point(a[0],a[1],a[2]);n.lineEnd()}function ri(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)We(t[e],n,1);n.polygonEnd()}function yt(t,n){t&&ni.hasOwnProperty(t.type)?ni[t.type](t,n):ae(t,n)}var oe=new rt,ue=new rt,ua,ca,Ue,Ze,je,Mt={point:V,lineStart:V,lineEnd:V,polygonStart:function(){oe=new rt,Mt.lineStart=No,Mt.lineEnd=Po},polygonEnd:function(){var t=+oe;ue.add(t<0?ut+t:t),this.lineStart=this.lineEnd=this.point=V},sphere:function(){ue.add(ut)}};function No(){Mt.point=$o}function Po(){sa(ua,ca)}function $o(t,n){Mt.point=sa,ua=t,ca=n,t*=R,n*=R,Ue=t,Ze=b(n=n/2+re),je=P(n)}function sa(t,n){t*=R,n*=R,n=n/2+re;var e=t-Ue,r=e>=0?1:-1,i=r*e,a=b(n),o=P(n),u=je*o,s=Ze*a+u*b(i),l=u*r*P(i);oe.add(ct(l,s)),Ue=t,Ze=a,je=o}function bo(t){return ue=new rt,yt(t,Mt),ue*2}function ce(t){return[ct(t[1],t[0]),st(t[2])]}function Vt(t){var n=t[0],e=t[1],r=b(e);return[r*b(n),r*P(n),P(e)]}function Gn(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function en(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Ge(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Fn(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function se(t){var n=nt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var K,lt,U,pt,Xt,la,fa,tn,An,Gt,It,Ct={point:Je,lineStart:ii,lineEnd:ai,polygonStart:function(){Ct.point=pa,Ct.lineStart=Co,Ct.lineEnd=Ro,An=new rt,Mt.polygonStart()},polygonEnd:function(){Mt.polygonEnd(),Ct.point=Je,Ct.lineStart=ii,Ct.lineEnd=ai,oe<0?(K=-(U=180),lt=-(pt=90)):An>C?pt=90:An<-C&&(lt=-90),It[0]=K,It[1]=U},sphere:function(){K=-(U=180),lt=-(pt=90)}};function Je(t,n){Gt.push(It=[K=t,U=t]),n<lt&&(lt=n),n>pt&&(pt=n)}function ha(t,n){var e=Vt([t*R,n*R]);if(tn){var r=en(tn,e),i=[r[1],-r[0],0],a=en(i,r);se(a),a=ce(a);var o=t-Xt,u=o>0?1:-1,s=a[0]*Y*u,l,c=G(o)>180;c^(u*Xt<s&&s<u*t)?(l=a[1]*Y,l>pt&&(pt=l)):(s=(s+360)%360-180,c^(u*Xt<s&&s<u*t)?(l=-a[1]*Y,l<lt&&(lt=l)):(n<lt&&(lt=n),n>pt&&(pt=n))),c?t<Xt?ht(K,t)>ht(K,U)&&(U=t):ht(t,U)>ht(K,U)&&(K=t):U>=K?(t<K&&(K=t),t>U&&(U=t)):t>Xt?ht(K,t)>ht(K,U)&&(U=t):ht(t,U)>ht(K,U)&&(K=t)}else Gt.push(It=[K=t,U=t]);n<lt&&(lt=n),n>pt&&(pt=n),tn=e,Xt=t}function ii(){Ct.point=ha}function ai(){It[0]=K,It[1]=U,Ct.point=Je,tn=null}function pa(t,n){if(tn){var e=t-Xt;An.add(G(e)>180?e+(e>0?360:-360):e)}else la=t,fa=n;Mt.point(t,n),ha(t,n)}function Co(){Mt.lineStart()}function Ro(){pa(la,fa),Mt.lineEnd(),G(An)>C&&(K=-(U=180)),It[0]=K,It[1]=U,tn=null}function ht(t,n){return(n-=t)<0?n+360:n}function zo(t,n){return t[0]-n[0]}function oi(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function To(t){var n,e,r,i,a,o,u;if(pt=U=-(K=lt=1/0),Gt=[],yt(t,Ct),e=Gt.length){for(Gt.sort(zo),n=1,r=Gt[0],a=[r];n<e;++n)i=Gt[n],oi(r,i[0])||oi(r,i[1])?(ht(r[0],i[1])>ht(r[0],r[1])&&(r[1]=i[1]),ht(i[0],r[1])>ht(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,e=a.length-1,n=0,r=a[e];n<=e;r=i,++n)i=a[n],(u=ht(r[1],i[0]))>o&&(o=u,K=i[0],U=r[1])}return Gt=It=null,K===1/0||lt===1/0?[[NaN,NaN],[NaN,NaN]]:[[K,lt],[U,pt]]}var fn,le,fe,he,pe,ge,de,me,Qe,tr,nr,ga,da,it,at,ot,wt={sphere:V,point:Pr,lineStart:ui,lineEnd:ci,polygonStart:function(){wt.lineStart=qo,wt.lineEnd=Do},polygonEnd:function(){wt.lineStart=ui,wt.lineEnd=ci}};function Pr(t,n){t*=R,n*=R;var e=b(n);zn(e*b(t),e*P(t),P(n))}function zn(t,n,e){++fn,fe+=(t-fe)/fn,he+=(n-he)/fn,pe+=(e-pe)/fn}function ui(){wt.point=Io}function Io(t,n){t*=R,n*=R;var e=b(n);it=e*b(t),at=e*P(t),ot=P(n),wt.point=Lo,zn(it,at,ot)}function Lo(t,n){t*=R,n*=R;var e=b(n),r=e*b(t),i=e*P(t),a=P(n),o=ct(nt((o=at*a-ot*i)*o+(o=ot*r-it*a)*o+(o=it*i-at*r)*o),it*r+at*i+ot*a);le+=o,ge+=o*(it+(it=r)),de+=o*(at+(at=i)),me+=o*(ot+(ot=a)),zn(it,at,ot)}function ci(){wt.point=Pr}function qo(){wt.point=Bo}function Do(){ma(ga,da),wt.point=Pr}function Bo(t,n){ga=t,da=n,t*=R,n*=R,wt.point=ma;var e=b(n);it=e*b(t),at=e*P(t),ot=P(n),zn(it,at,ot)}function ma(t,n){t*=R,n*=R;var e=b(n),r=e*b(t),i=e*P(t),a=P(n),o=at*a-ot*i,u=ot*r-it*a,s=it*i-at*r,l=Ve(o,u,s),c=st(l),f=l&&-c/l;Qe.add(f*o),tr.add(f*u),nr.add(f*s),le+=c,ge+=c*(it+(it=r)),de+=c*(at+(at=i)),me+=c*(ot+(ot=a)),zn(it,at,ot)}function Go(t){fn=le=fe=he=pe=ge=de=me=0,Qe=new rt,tr=new rt,nr=new rt,yt(t,wt);var n=+Qe,e=+tr,r=+nr,i=Ve(n,e,r);return i<Sn&&(n=ge,e=de,r=me,le<C&&(n=fe,e=he,r=pe),i=Ve(n,e,r),i<Sn)?[NaN,NaN]:[ct(e,n)*Y,st(r/i)*Y]}function Zt(t){return function(){return t}}function er(t,n){function e(r,i){return r=t(r,i),n(r[0],r[1])}return t.invert&&n.invert&&(e.invert=function(r,i){return r=n.invert(r,i),r&&t.invert(r[0],r[1])}),e}function rr(t,n){return G(t)>B&&(t-=Math.round(t/ut)*ut),[t,n]}rr.invert=rr;function $r(t,n,e){return(t%=ut)?n||e?er(li(t),fi(n,e)):li(t):n||e?fi(n,e):rr}function si(t){return function(n,e){return n+=t,G(n)>B&&(n-=Math.round(n/ut)*ut),[n,e]}}function li(t){var n=si(t);return n.invert=si(-t),n}function fi(t,n){var e=b(t),r=P(t),i=b(n),a=P(n);function o(u,s){var l=b(s),c=b(u)*l,f=P(u)*l,h=P(s),p=h*e+c*r;return[ct(f*i-p*a,c*e-h*r),st(p*i+f*a)]}return o.invert=function(u,s){var l=b(s),c=b(u)*l,f=P(u)*l,h=P(s),p=h*i-f*a;return[ct(f*i+h*a,c*e+p*r),st(p*e-c*r)]},o}function va(t){t=$r(t[0]*R,t[1]*R,t.length>2?t[2]*R:0);function n(e){return e=t(e[0]*R,e[1]*R),e[0]*=Y,e[1]*=Y,e}return n.invert=function(e){return e=t.invert(e[0]*R,e[1]*R),e[0]*=Y,e[1]*=Y,e},n}function ya(t,n,e,r,i,a){if(e){var o=b(n),u=P(n),s=r*e;i==null?(i=n+r*ut,a=n-s/2):(i=hi(o,i),a=hi(o,a),(r>0?i<a:i>a)&&(i+=r*ut));for(var l,c=i;r>0?c>a:c<a;c-=s)l=ce([o,-u*b(c),-u*P(c)]),t.point(l[0],l[1])}}function hi(t,n){n=Vt(n),n[0]-=t,se(n);var e=oa(-n[1]);return((-n[2]<0?-e:e)+ut-C)%ut}function Fo(){var t=Zt([0,0]),n=Zt(90),e=Zt(2),r,i,a={point:o};function o(s,l){r.push(s=i(s,l)),s[0]*=Y,s[1]*=Y}function u(){var s=t.apply(this,arguments),l=n.apply(this,arguments)*R,c=e.apply(this,arguments)*R;return r=[],i=$r(-s[0]*R,-s[1]*R,0).invert,ya(a,l,c,1),s={type:"Polygon",coordinates:[r]},r=i=null,s}return u.center=function(s){return arguments.length?(t=typeof s=="function"?s:Zt([+s[0],+s[1]]),u):t},u.radius=function(s){return arguments.length?(n=typeof s=="function"?s:Zt(+s),u):n},u.precision=function(s){return arguments.length?(e=typeof s=="function"?s:Zt(+s),u):e},u}function Aa(){var t=[],n;return{point:function(e,r,i){n.push([e,r,i])},lineStart:function(){t.push(n=[])},lineEnd:V,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var e=t;return t=[],n=null,e}}}function Un(t,n){return G(t[0]-n[0])<C&&G(t[1]-n[1])<C}function Hn(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function wa(t,n,e,r,i){var a=[],o=[],u,s;if(t.forEach(function(g){if(!((_=g.length-1)<=0)){var _,w=g[0],y=g[_],E;if(Un(w,y)){if(!w[2]&&!y[2]){for(i.lineStart(),u=0;u<_;++u)i.point((w=g[u])[0],w[1]);i.lineEnd();return}y[0]+=2*C}a.push(E=new Hn(w,g,null,!0)),o.push(E.o=new Hn(w,null,E,!1)),a.push(E=new Hn(y,g,null,!1)),o.push(E.o=new Hn(y,null,E,!0))}}),!!a.length){for(o.sort(n),pi(a),pi(o),u=0,s=o.length;u<s;++u)o[u].e=e=!e;for(var l=a[0],c,f;;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(u=0,s=c.length;u<s;++u)i.point((f=c[u])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(c=h.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,c=h.z,p=!p}while(!h.v);i.lineEnd()}}}function pi(t){if(n=t.length){for(var n,e=0,r=t[0],i;++e<n;)r.n=i=t[e],i.p=r,r=i;r.n=i=t[0],i.p=r}}function Fe(t){return G(t[0])<=B?t[0]:mt(t[0])*((G(t[0])+B)%ut-B)}function _a(t,n){var e=Fe(n),r=n[1],i=P(r),a=[P(e),-b(e),0],o=0,u=0,s=new rt;i===1?r=Z+C:i===-1&&(r=-Z-C);for(var l=0,c=t.length;l<c;++l)if(h=(f=t[l]).length)for(var f,h,p=f[h-1],g=Fe(p),_=p[1]/2+re,w=P(_),y=b(_),E=0;E<h;++E,g=x,w=N,y=T,p=A){var A=f[E],x=Fe(A),S=A[1]/2+re,N=P(S),T=b(S),L=x-g,q=L>=0?1:-1,F=q*L,z=F>B,j=w*N;if(s.add(ct(j*q*P(F),y*T+j*b(F))),o+=z?L+q*ut:L,z^g>=e^x>=e){var O=en(Vt(p),Vt(A));se(O);var m=en(a,O);se(m);var d=(z^L>=0?-1:1)*st(m[2]);(r>d||r===d&&(O[0]||O[1]))&&(u+=z^L>=0?1:-1)}}return(o<-C||o<C&&s<-Sn)^u&1}function xa(t,n,e,r){return function(i){var a=n(i),o=Aa(),u=n(o),s=!1,l,c,f,h={point:p,lineStart:_,lineEnd:w,polygonStart:function(){h.point=y,h.lineStart=E,h.lineEnd=A,c=[],l=[]},polygonEnd:function(){h.point=p,h.lineStart=_,h.lineEnd=w,c=ia(c);var x=_a(l,r);c.length?(s||(i.polygonStart(),s=!0),wa(c,Xo,x,e,i)):x&&(s||(i.polygonStart(),s=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),s&&(i.polygonEnd(),s=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function p(x,S){t(x,S)&&i.point(x,S)}function g(x,S){a.point(x,S)}function _(){h.point=g,a.lineStart()}function w(){h.point=p,a.lineEnd()}function y(x,S){f.push([x,S]),u.point(x,S)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var x=u.clean(),S=o.result(),N,T=S.length,L,q,F;if(f.pop(),l.push(f),f=null,!!T){if(x&1){if(q=S[0],(L=q.length-1)>0){for(s||(i.polygonStart(),s=!0),i.lineStart(),N=0;N<L;++N)i.point((F=q[N])[0],F[1]);i.lineEnd()}return}T>1&&x&2&&S.push(S.pop().concat(S.shift())),c.push(S.filter(Ho))}}return h}}function Ho(t){return t.length>1}function Xo(t,n){return((t=t.x)[0]<0?t[1]-Z-C:Z-t[1])-((n=n.x)[0]<0?n[1]-Z-C:Z-n[1])}const ir=xa(function(){return!0},Oo,Ko,[-B,-Z]);function Oo(t){var n=NaN,e=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(a,o){var u=a>0?B:-B,s=G(a-n);G(s-B)<C?(t.point(n,e=(e+o)/2>0?Z:-Z),t.point(r,e),t.lineEnd(),t.lineStart(),t.point(u,e),t.point(a,e),i=0):r!==u&&s>=B&&(G(n-r)<C&&(n-=r*C),G(a-u)<C&&(a-=u*C),e=Yo(n,e,a,o),t.point(r,e),t.lineEnd(),t.lineStart(),t.point(u,e),i=0),t.point(n=a,e=o),r=u},lineEnd:function(){t.lineEnd(),n=e=NaN},clean:function(){return 2-i}}}function Yo(t,n,e,r){var i,a,o=P(t-e);return G(o)>C?cn((P(n)*(a=b(r))*P(e)-P(r)*(i=b(n))*P(t))/(i*a*o)):(n+r)/2}function Ko(t,n,e,r){var i;if(t==null)i=e*Z,r.point(-B,i),r.point(0,i),r.point(B,i),r.point(B,0),r.point(B,-i),r.point(0,-i),r.point(-B,-i),r.point(-B,0),r.point(-B,i);else if(G(t[0]-n[0])>C){var a=t[0]<n[0]?B:-B;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])}function Ea(t){var n=b(t),e=2*R,r=n>0,i=G(n)>C;function a(c,f,h,p){ya(p,t,e,h,c,f)}function o(c,f){return b(c)*b(f)>n}function u(c){var f,h,p,g,_;return{lineStart:function(){g=p=!1,_=1},point:function(w,y){var E=[w,y],A,x=o(w,y),S=r?x?0:l(w,y):x?l(w+(w<0?B:-B),y):0;if(!f&&(g=p=x)&&c.lineStart(),x!==p&&(A=s(f,E),(!A||Un(f,A)||Un(E,A))&&(E[2]=1)),x!==p)_=0,x?(c.lineStart(),A=s(E,f),c.point(A[0],A[1])):(A=s(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^x){var N;!(S&h)&&(N=s(E,f,!0))&&(_=0,r?(c.lineStart(),c.point(N[0][0],N[0][1]),c.point(N[1][0],N[1][1]),c.lineEnd()):(c.point(N[1][0],N[1][1]),c.lineEnd(),c.lineStart(),c.point(N[0][0],N[0][1],3)))}x&&(!f||!Un(f,E))&&c.point(E[0],E[1]),f=E,p=x,h=S},lineEnd:function(){p&&c.lineEnd(),f=null},clean:function(){return _|(g&&p)<<1}}}function s(c,f,h){var p=Vt(c),g=Vt(f),_=[1,0,0],w=en(p,g),y=Gn(w,w),E=w[0],A=y-E*E;if(!A)return!h&&c;var x=n*y/A,S=-n*E/A,N=en(_,w),T=Fn(_,x),L=Fn(w,S);Ge(T,L);var q=N,F=Gn(T,q),z=Gn(q,q),j=F*F-z*(Gn(T,T)-1);if(!(j<0)){var O=nt(j),m=Fn(q,(-F-O)/z);if(Ge(m,T),m=ce(m),!h)return m;var d=c[0],v=f[0],M=c[1],k=f[1],$;v<d&&($=d,d=v,v=$);var I=v-d,D=G(I-B)<C,H=D||I<C;if(!D&&k<M&&($=M,M=k,k=$),H?D?M+k>0^m[1]<(G(m[0]-d)<C?M:k):M<=m[1]&&m[1]<=k:I>B^(d<=m[0]&&m[0]<=v)){var J=Fn(q,(-F+O)/z);return Ge(J,T),[m,ce(J)]}}}function l(c,f){var h=r?t:B-t,p=0;return c<-h?p|=1:c>h&&(p|=2),f<-h?p|=4:f>h&&(p|=8),p}return xa(o,u,a,r?[0,-t]:[-B,t-B])}function Vo(t,n,e,r,i,a){var o=t[0],u=t[1],s=n[0],l=n[1],c=0,f=1,h=s-o,p=l-u,g;if(g=e-o,!(!h&&g>0)){if(g/=h,h<0){if(g<c)return;g<f&&(f=g)}else if(h>0){if(g>f)return;g>c&&(c=g)}if(g=i-o,!(!h&&g<0)){if(g/=h,h<0){if(g>f)return;g>c&&(c=g)}else if(h>0){if(g<c)return;g<f&&(f=g)}if(g=r-u,!(!p&&g>0)){if(g/=p,p<0){if(g<c)return;g<f&&(f=g)}else if(p>0){if(g>f)return;g>c&&(c=g)}if(g=a-u,!(!p&&g<0)){if(g/=p,p<0){if(g>f)return;g>c&&(c=g)}else if(p>0){if(g<c)return;g<f&&(f=g)}return c>0&&(t[0]=o+c*h,t[1]=u+c*p),f<1&&(n[0]=o+f*h,n[1]=u+f*p),!0}}}}}var hn=1e9,Xn=-hn;function ze(t,n,e,r){function i(l,c){return t<=l&&l<=e&&n<=c&&c<=r}function a(l,c,f,h){var p=0,g=0;if(l==null||(p=o(l,f))!==(g=o(c,f))||s(l,c)<0^f>0)do h.point(p===0||p===3?t:e,p>1?r:n);while((p=(p+f+4)%4)!==g);else h.point(c[0],c[1])}function o(l,c){return G(l[0]-t)<C?c>0?0:3:G(l[0]-e)<C?c>0?2:1:G(l[1]-n)<C?c>0?1:0:c>0?3:2}function u(l,c){return s(l.x,c.x)}function s(l,c){var f=o(l,1),h=o(c,1);return f!==h?f-h:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=Aa(),h,p,g,_,w,y,E,A,x,S,N,T={point:L,lineStart:j,lineEnd:O,polygonStart:F,polygonEnd:z};function L(d,v){i(d,v)&&c.point(d,v)}function q(){for(var d=0,v=0,M=p.length;v<M;++v)for(var k=p[v],$=1,I=k.length,D=k[0],H,J,W=D[0],tt=D[1];$<I;++$)H=W,J=tt,D=k[$],W=D[0],tt=D[1],J<=r?tt>r&&(W-H)*(r-J)>(tt-J)*(t-H)&&++d:tt<=r&&(W-H)*(r-J)<(tt-J)*(t-H)&&--d;return d}function F(){c=f,h=[],p=[],N=!0}function z(){var d=q(),v=N&&d,M=(h=ia(h)).length;(v||M)&&(l.polygonStart(),v&&(l.lineStart(),a(null,null,1,l),l.lineEnd()),M&&wa(h,u,d,a,l),l.polygonEnd()),c=l,h=p=g=null}function j(){T.point=m,p&&p.push(g=[]),S=!0,x=!1,E=A=NaN}function O(){h&&(m(_,w),y&&x&&f.rejoin(),h.push(f.result())),T.point=L,x&&c.lineEnd()}function m(d,v){var M=i(d,v);if(p&&g.push([d,v]),S)_=d,w=v,y=M,S=!1,M&&(c.lineStart(),c.point(d,v));else if(M&&x)c.point(d,v);else{var k=[E=Math.max(Xn,Math.min(hn,E)),A=Math.max(Xn,Math.min(hn,A))],$=[d=Math.max(Xn,Math.min(hn,d)),v=Math.max(Xn,Math.min(hn,v))];Vo(k,$,t,n,e,r)?(x||(c.lineStart(),c.point(k[0],k[1])),c.point($[0],$[1]),M||c.lineEnd(),N=!1):M&&(c.lineStart(),c.point(d,v),N=!1)}E=d,A=v,x=M}return T}}function Wo(){var t=0,n=0,e=960,r=500,i,a,o;return o={stream:function(u){return i&&a===u?i:i=ze(t,n,e,r)(a=u)},extent:function(u){return arguments.length?(t=+u[0][0],n=+u[0][1],e=+u[1][0],r=+u[1][1],i=a=null,o):[[t,n],[e,r]]}}}var ar,or,Zn,jn,rn={sphere:V,point:V,lineStart:Uo,lineEnd:V,polygonStart:V,polygonEnd:V};function Uo(){rn.point=jo,rn.lineEnd=Zo}function Zo(){rn.point=rn.lineEnd=V}function jo(t,n){t*=R,n*=R,or=t,Zn=P(n),jn=b(n),rn.point=Jo}function Jo(t,n){t*=R,n*=R;var e=P(n),r=b(n),i=G(t-or),a=b(i),o=P(i),u=r*o,s=jn*e-Zn*r*a,l=Zn*e+jn*r*a;ar.add(ct(nt(u*u+s*s),l)),or=t,Zn=e,jn=r}function Sa(t){return ar=new rt,yt(t,rn),+ar}var ur=[null,null],Qo={type:"LineString",coordinates:ur};function ve(t,n){return ur[0]=t,ur[1]=n,Sa(Qo)}var gi={Feature:function(t,n){return ye(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(ye(e[r].geometry,n))return!0;return!1}},di={Sphere:function(){return!0},Point:function(t,n){return mi(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(mi(e[r],n))return!0;return!1},LineString:function(t,n){return vi(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(vi(e[r],n))return!0;return!1},Polygon:function(t,n){return yi(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(yi(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(ye(e[r],n))return!0;return!1}};function ye(t,n){return t&&di.hasOwnProperty(t.type)?di[t.type](t,n):!1}function mi(t,n){return ve(t,n)===0}function vi(t,n){for(var e,r,i,a=0,o=t.length;a<o;a++){if(r=ve(t[a],n),r===0||a>0&&(i=ve(t[a],t[a-1]),i>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))<Sn*i))return!0;e=r}return!1}function yi(t,n){return!!_a(t.map(tu),Ma(n))}function tu(t){return t=t.map(Ma),t.pop(),t}function Ma(t){return[t[0]*R,t[1]*R]}function nu(t,n){return(t&&gi.hasOwnProperty(t.type)?gi[t.type]:ye)(t,n)}function Ai(t,n,e){var r=jt(t,n-C,e).concat(n);return function(i){return r.map(function(a){return[i,a]})}}function wi(t,n,e){var r=jt(t,n-C,e).concat(n);return function(i){return r.map(function(a){return[a,i]})}}function br(){var t,n,e,r,i,a,o,u,s=10,l=s,c=90,f=360,h,p,g,_,w=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return jt(Bn(r/c)*c,e,c).map(g).concat(jt(Bn(u/f)*f,o,f).map(_)).concat(jt(Bn(n/s)*s,t,s).filter(function(A){return G(A%c)>C}).map(h)).concat(jt(Bn(a/l)*l,i,l).filter(function(A){return G(A%f)>C}).map(p))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[g(r).concat(_(o).slice(1),g(e).reverse().slice(1),_(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],e=+A[1][0],u=+A[0][1],o=+A[1][1],r>e&&(A=r,r=e,e=A),u>o&&(A=u,u=o,o=A),y.precision(w)):[[r,u],[e,o]]},y.extentMinor=function(A){return arguments.length?(n=+A[0][0],t=+A[1][0],a=+A[0][1],i=+A[1][1],n>t&&(A=n,n=t,t=A),a>i&&(A=a,a=i,i=A),y.precision(w)):[[n,a],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(s=+A[0],l=+A[1],y):[s,l]},y.precision=function(A){return arguments.length?(w=+A,h=Ai(a,i,90),p=wi(n,t,w),g=Ai(u,o,90),_=wi(r,e,w),y):w},y.extentMajor([[-180,-90+C],[180,90-C]]).extentMinor([[-180,-80-C],[180,80+C]])}function eu(){return br()()}function ru(t,n){var e=t[0]*R,r=t[1]*R,i=n[0]*R,a=n[1]*R,o=b(r),u=P(r),s=b(a),l=P(a),c=o*b(e),f=o*P(e),h=s*b(i),p=s*P(i),g=2*st(nt(ti(a-r)+o*s*ti(i-e))),_=P(g),w=g?function(y){var E=P(y*=g)/_,A=P(g-y)/_,x=A*c+E*h,S=A*f+E*p,N=A*u+E*l;return[ct(S,x)*Y,ct(N,nt(x*x+S*S))*Y]}:function(){return[e*Y,r*Y]};return w.distance=g,w}const Mn=t=>t;var He=new rt,cr=new rt,ka,Na,sr,lr,Rt={point:V,lineStart:V,lineEnd:V,polygonStart:function(){Rt.lineStart=iu,Rt.lineEnd=ou},polygonEnd:function(){Rt.lineStart=Rt.lineEnd=Rt.point=V,He.add(G(cr)),cr=new rt},result:function(){var t=He/2;return He=new rt,t}};function iu(){Rt.point=au}function au(t,n){Rt.point=Pa,ka=sr=t,Na=lr=n}function Pa(t,n){cr.add(lr*t-sr*n),sr=t,lr=n}function ou(){Pa(ka,Na)}var an=1/0,Ae=an,kn=-an,we=kn,_e={point:uu,lineStart:V,lineEnd:V,polygonStart:V,polygonEnd:V,result:function(){var t=[[an,Ae],[kn,we]];return kn=we=-(Ae=an=1/0),t}};function uu(t,n){t<an&&(an=t),t>kn&&(kn=t),n<Ae&&(Ae=n),n>we&&(we=n)}var fr=0,hr=0,pn=0,xe=0,Ee=0,Jt=0,pr=0,gr=0,gn=0,$a,ba,xt,Et,dt={point:Wt,lineStart:_i,lineEnd:xi,polygonStart:function(){dt.lineStart=lu,dt.lineEnd=fu},polygonEnd:function(){dt.point=Wt,dt.lineStart=_i,dt.lineEnd=xi},result:function(){var t=gn?[pr/gn,gr/gn]:Jt?[xe/Jt,Ee/Jt]:pn?[fr/pn,hr/pn]:[NaN,NaN];return fr=hr=pn=xe=Ee=Jt=pr=gr=gn=0,t}};function Wt(t,n){fr+=t,hr+=n,++pn}function _i(){dt.point=cu}function cu(t,n){dt.point=su,Wt(xt=t,Et=n)}function su(t,n){var e=t-xt,r=n-Et,i=nt(e*e+r*r);xe+=i*(xt+t)/2,Ee+=i*(Et+n)/2,Jt+=i,Wt(xt=t,Et=n)}function xi(){dt.point=Wt}function lu(){dt.point=hu}function fu(){Ca($a,ba)}function hu(t,n){dt.point=Ca,Wt($a=xt=t,ba=Et=n)}function Ca(t,n){var e=t-xt,r=n-Et,i=nt(e*e+r*r);xe+=i*(xt+t)/2,Ee+=i*(Et+n)/2,Jt+=i,i=Et*t-xt*n,pr+=i*(xt+t),gr+=i*(Et+n),gn+=i*3,Wt(xt=t,Et=n)}function Ra(t){this._context=t}Ra.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:{this._context.moveTo(t,n),this._point=1;break}case 1:{this._context.lineTo(t,n);break}default:{this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,ut);break}}},result:V};var dr=new rt,Xe,za,Ta,dn,mn,Nn={point:V,lineStart:function(){Nn.point=pu},lineEnd:function(){Xe&&Ia(za,Ta),Nn.point=V},polygonStart:function(){Xe=!0},polygonEnd:function(){Xe=null},result:function(){var t=+dr;return dr=new rt,t}};function pu(t,n){Nn.point=Ia,za=dn=t,Ta=mn=n}function Ia(t,n){dn-=t,mn-=n,dr.add(nt(dn*dn+mn*mn)),dn=t,mn=n}let Ei,Se,Si,Mi;class ki{constructor(n){this._append=n==null?La:gu(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(n,e){switch(this._point){case 0:{this._append`M${n},${e}`,this._point=1;break}case 1:{this._append`L${n},${e}`;break}default:{if(this._append`M${n},${e}`,this._radius!==Si||this._append!==Se){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Si=r,Se=this._append,Mi=this._,this._=i}this._+=Mi;break}}}result(){const n=this._;return this._="",n.length?n:null}}function La(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function gu(t){const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);if(n>15)return La;if(n!==Ei){const e=10**n;Ei=n,Se=function(i){let a=1;this._+=i[0];for(const o=i.length;a<o;++a)this._+=Math.round(arguments[a]*e)/e+i[a]}}return Se}function du(t,n){let e=3,r=4.5,i,a;function o(u){return u&&(typeof r=="function"&&a.pointRadius(+r.apply(this,arguments)),yt(u,i(a))),a.result()}return o.area=function(u){return yt(u,i(Rt)),Rt.result()},o.measure=function(u){return yt(u,i(Nn)),Nn.result()},o.bounds=function(u){return yt(u,i(_e)),_e.result()},o.centroid=function(u){return yt(u,i(dt)),dt.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,Mn):(t=u).stream,o):t},o.context=function(u){return arguments.length?(a=u==null?(n=null,new ki(e)):new Ra(n=u),typeof r!="function"&&a.pointRadius(r),o):n},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(a.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return e;if(u==null)e=null;else{const s=Math.floor(u);if(!(s>=0))throw new RangeError(`invalid digits: ${u}`);e=s}return n===null&&(a=new ki(e)),o},o.projection(t).digits(e).context(n)}function mu(t){return{stream:Tn(t)}}function Tn(t){return function(n){var e=new mr;for(var r in t)e[r]=t[r];return e.stream=n,e}}function mr(){}mr.prototype={constructor:mr,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Cr(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),yt(e,t.stream(_e)),n(_e.result()),r!=null&&t.clipExtent(r),t}function Te(t,n,e){return Cr(t,function(r){var i=n[1][0]-n[0][0],a=n[1][1]-n[0][1],o=Math.min(i/(r[1][0]-r[0][0]),a/(r[1][1]-r[0][1])),u=+n[0][0]+(i-o*(r[1][0]+r[0][0]))/2,s=+n[0][1]+(a-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,s])},e)}function Rr(t,n,e){return Te(t,[[0,0],n],e)}function zr(t,n,e){return Cr(t,function(r){var i=+n,a=i/(r[1][0]-r[0][0]),o=(i-a*(r[1][0]+r[0][0]))/2,u=-a*r[0][1];t.scale(150*a).translate([o,u])},e)}function Tr(t,n,e){return Cr(t,function(r){var i=+n,a=i/(r[1][1]-r[0][1]),o=-a*r[0][0],u=(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,u])},e)}var Ni=16,vu=b(30*R);function Pi(t,n){return+n?Au(t,n):yu(t)}function yu(t){return Tn({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Au(t,n){function e(r,i,a,o,u,s,l,c,f,h,p,g,_,w){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*n&&_--){var x=o+h,S=u+p,N=s+g,T=nt(x*x+S*S+N*N),L=st(N/=T),q=G(G(N)-1)<C||G(a-f)<C?(a+f)/2:ct(S,x),F=t(q,L),z=F[0],j=F[1],O=z-r,m=j-i,d=E*O-y*m;(d*d/A>n||G((y*O+E*m)/A-.5)>.3||o*h+u*p+s*g<vu)&&(e(r,i,a,o,u,s,z,j,q,x/=T,S/=T,N,_,w),w.point(z,j),e(z,j,q,x,S,N,l,c,f,h,p,g,_,w))}}return function(r){var i,a,o,u,s,l,c,f,h,p,g,_,w={point:y,lineStart:E,lineEnd:x,polygonStart:function(){r.polygonStart(),w.lineStart=S},polygonEnd:function(){r.polygonEnd(),w.lineStart=E}};function y(L,q){L=t(L,q),r.point(L[0],L[1])}function E(){f=NaN,w.point=A,r.lineStart()}function A(L,q){var F=Vt([L,q]),z=t(L,q);e(f,h,c,p,g,_,f=z[0],h=z[1],c=L,p=F[0],g=F[1],_=F[2],Ni,r),r.point(f,h)}function x(){w.point=y,r.lineEnd()}function S(){E(),w.point=N,w.lineEnd=T}function N(L,q){A(i=L,q),a=f,o=h,u=p,s=g,l=_,w.point=A}function T(){e(f,h,c,p,g,_,a,o,i,u,s,l,Ni,r),w.lineEnd=x,x()}return w}}var wu=Tn({point:function(t,n){this.stream.point(t*R,n*R)}});function _u(t){return Tn({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}function xu(t,n,e,r,i){function a(o,u){return o*=r,u*=i,[n+t*o,e-t*u]}return a.invert=function(o,u){return[(o-n)/t*r,(e-u)/t*i]},a}function $i(t,n,e,r,i,a){if(!a)return xu(t,n,e,r,i);var o=b(a),u=P(a),s=o*t,l=u*t,c=o/t,f=u/t,h=(u*e-o*n)/t,p=(u*n+o*e)/t;function g(_,w){return _*=r,w*=i,[s*_-l*w+n,e-l*_-s*w]}return g.invert=function(_,w){return[r*(c*_-f*w+h),i*(p-f*_-c*w)]},g}function kt(t){return Ir(function(){return t})()}function Ir(t){var n,e=150,r=480,i=250,a=0,o=0,u=0,s=0,l=0,c,f=0,h=1,p=1,g=null,_=ir,w=null,y,E,A,x=Mn,S=.5,N,T,L,q,F;function z(d){return L(d[0]*R,d[1]*R)}function j(d){return d=L.invert(d[0],d[1]),d&&[d[0]*Y,d[1]*Y]}z.stream=function(d){return q&&F===d?q:q=wu(_u(c)(_(N(x(F=d)))))},z.preclip=function(d){return arguments.length?(_=d,g=void 0,m()):_},z.postclip=function(d){return arguments.length?(x=d,w=y=E=A=null,m()):x},z.clipAngle=function(d){return arguments.length?(_=+d?Ea(g=d*R):(g=null,ir),m()):g*Y},z.clipExtent=function(d){return arguments.length?(x=d==null?(w=y=E=A=null,Mn):ze(w=+d[0][0],y=+d[0][1],E=+d[1][0],A=+d[1][1]),m()):w==null?null:[[w,y],[E,A]]},z.scale=function(d){return arguments.length?(e=+d,O()):e},z.translate=function(d){return arguments.length?(r=+d[0],i=+d[1],O()):[r,i]},z.center=function(d){return arguments.length?(a=d[0]%360*R,o=d[1]%360*R,O()):[a*Y,o*Y]},z.rotate=function(d){return arguments.length?(u=d[0]%360*R,s=d[1]%360*R,l=d.length>2?d[2]%360*R:0,O()):[u*Y,s*Y,l*Y]},z.angle=function(d){return arguments.length?(f=d%360*R,O()):f*Y},z.reflectX=function(d){return arguments.length?(h=d?-1:1,O()):h<0},z.reflectY=function(d){return arguments.length?(p=d?-1:1,O()):p<0},z.precision=function(d){return arguments.length?(N=Pi(T,S=d*d),m()):nt(S)},z.fitExtent=function(d,v){return Te(z,d,v)},z.fitSize=function(d,v){return Rr(z,d,v)},z.fitWidth=function(d,v){return zr(z,d,v)},z.fitHeight=function(d,v){return Tr(z,d,v)};function O(){var d=$i(e,0,0,h,p,f).apply(null,n(a,o)),v=$i(e,r-d[0],i-d[1],h,p,f);return c=$r(u,s,l),T=er(n,v),L=er(c,T),N=Pi(T,S),m()}function m(){return q=F=null,z}return function(){return n=t.apply(this,arguments),z.invert=n.invert&&j,O()}}function Lr(t){var n=0,e=B/3,r=Ir(t),i=r(n,e);return i.parallels=function(a){return arguments.length?r(n=a[0]*R,e=a[1]*R):[n*Y,e*Y]},i}function Eu(t){var n=b(t);function e(r,i){return[r*n,P(i)/n]}return e.invert=function(r,i){return[r/n,st(i*n)]},e}function qa(t,n){var e=P(t),r=(e+P(n))/2;if(G(r)<C)return Eu(t);var i=1+e*(2*r-e),a=nt(i)/r;function o(u,s){var l=nt(i-2*r*P(s))/r;return[l*P(u*=r),a-l*b(u)]}return o.invert=function(u,s){var l=a-s,c=ct(u,G(l))*mt(l);return l*r<0&&(c-=B*mt(u)*mt(l)),[c/r,st((i-(u*u+l*l)*r*r)/(2*r))]},o}function Me(){return Lr(qa).scale(155.424).center([0,33.6442])}function Da(){return Me().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Su(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function Mu(){var t,n,e=Da(),r,i=Me().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,o=Me().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,s,l={point:function(h,p){s=[h,p]}};function c(h){var p=h[0],g=h[1];return s=null,r.point(p,g),s||(a.point(p,g),s)||(u.point(p,g),s)}c.invert=function(h){var p=e.scale(),g=e.translate(),_=(h[0]-g[0])/p,w=(h[1]-g[1])/p;return(w>=.12&&w<.234&&_>=-.425&&_<-.214?i:w>=.166&&w<.234&&_>=-.214&&_<-.115?o:e).invert(h)},c.stream=function(h){return t&&n===h?t:t=Su([e.stream(n=h),i.stream(h),o.stream(h)])},c.precision=function(h){return arguments.length?(e.precision(h),i.precision(h),o.precision(h),f()):e.precision()},c.scale=function(h){return arguments.length?(e.scale(h),i.scale(h*.35),o.scale(h),c.translate(e.translate())):e.scale()},c.translate=function(h){if(!arguments.length)return e.translate();var p=e.scale(),g=+h[0],_=+h[1];return r=e.translate(h).clipExtent([[g-.455*p,_-.238*p],[g+.455*p,_+.238*p]]).stream(l),a=i.translate([g-.307*p,_+.201*p]).clipExtent([[g-.425*p+C,_+.12*p+C],[g-.214*p-C,_+.234*p-C]]).stream(l),u=o.translate([g-.205*p,_+.212*p]).clipExtent([[g-.214*p+C,_+.166*p+C],[g-.115*p-C,_+.234*p-C]]).stream(l),f()},c.fitExtent=function(h,p){return Te(c,h,p)},c.fitSize=function(h,p){return Rr(c,h,p)},c.fitWidth=function(h,p){return zr(c,h,p)},c.fitHeight=function(h,p){return Tr(c,h,p)};function f(){return t=n=null,c}return c.scale(1070)}function Ba(t){return function(n,e){var r=b(n),i=b(e),a=t(r*i);return a===1/0?[2,0]:[a*i*P(n),a*P(e)]}}function In(t){return function(n,e){var r=nt(n*n+e*e),i=t(r),a=P(i),o=b(i);return[ct(n*a,r*o),st(r&&e*a/r)]}}var qr=Ba(function(t){return nt(2/(1+t))});qr.invert=In(function(t){return 2*st(t/2)});function ku(){return kt(qr).scale(124.75).clipAngle(180-.001)}var Dr=Ba(function(t){return(t=oa(t))&&t/P(t)});Dr.invert=In(function(t){return t});function Nu(){return kt(Dr).scale(79.4188).clipAngle(180-.001)}function Ln(t,n){return[t,ie(Nr((Z+n)/2))]}Ln.invert=function(t,n){return[t,2*cn(aa(n))-Z]};function Pu(){return Ga(Ln).scale(961/ut)}function Ga(t){var n=kt(t),e=n.center,r=n.scale,i=n.translate,a=n.clipExtent,o=null,u,s,l;n.scale=function(f){return arguments.length?(r(f),c()):r()},n.translate=function(f){return arguments.length?(i(f),c()):i()},n.center=function(f){return arguments.length?(e(f),c()):e()},n.clipExtent=function(f){return arguments.length?(f==null?o=u=s=l=null:(o=+f[0][0],u=+f[0][1],s=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[s,l]]};function c(){var f=B*r(),h=n(va(n.rotate()).invert([0,0]));return a(o==null?[[h[0]-f,h[1]-f],[h[0]+f,h[1]+f]]:t===Ln?[[Math.max(h[0]-f,o),u],[Math.min(h[0]+f,s),l]]:[[o,Math.max(h[1]-f,u)],[s,Math.min(h[1]+f,l)]])}return c()}function On(t){return Nr((Z+t)/2)}function Fa(t,n){var e=b(t),r=t===n?P(t):ie(e/b(n))/ie(On(n)/On(t)),i=e*Be(On(t),r)/r;if(!r)return Ln;function a(o,u){i>0?u<-Z+C&&(u=-Z+C):u>Z-C&&(u=Z-C);var s=i/Be(On(u),r);return[s*P(r*o),i-s*b(r*o)]}return a.invert=function(o,u){var s=i-u,l=mt(r)*nt(o*o+s*s),c=ct(o,G(s))*mt(s);return s*r<0&&(c-=B*mt(o)*mt(s)),[c/r,2*cn(Be(i/l,1/r))-Z]},a}function $u(){return Lr(Fa).scale(109.5).parallels([30,30])}function Pn(t,n){return[t,n]}Pn.invert=Pn;function bu(){return kt(Pn).scale(152.63)}function Ha(t,n){var e=b(t),r=t===n?P(t):(e-b(n))/(n-t),i=e/r+t;if(G(r)<C)return Pn;function a(o,u){var s=i-u,l=r*o;return[s*P(l),i-s*b(l)]}return a.invert=function(o,u){var s=i-u,l=ct(o,G(s))*mt(s);return s*r<0&&(l-=B*mt(o)*mt(s)),[l/r,i-mt(r)*nt(o*o+s*s)]},a}function Cu(){return Lr(Ha).scale(131.154).center([0,13.9389])}var wn=1.340264,_n=-.081106,xn=893e-6,En=.003796,ke=nt(3)/2,Ru=12;function Br(t,n){var e=st(ke*P(n)),r=e*e,i=r*r*r;return[t*b(e)/(ke*(wn+3*_n*r+i*(7*xn+9*En*r))),e*(wn+_n*r+i*(xn+En*r))]}Br.invert=function(t,n){for(var e=n,r=e*e,i=r*r*r,a=0,o,u,s;a<Ru&&(u=e*(wn+_n*r+i*(xn+En*r))-n,s=wn+3*_n*r+i*(7*xn+9*En*r),e-=o=u/s,r=e*e,i=r*r*r,!(G(o)<Sn));++a);return[ke*t*(wn+3*_n*r+i*(7*xn+9*En*r))/b(e),st(P(e)/ke)]};function zu(){return kt(Br).scale(177.158)}function Gr(t,n){var e=b(n),r=b(t)*e;return[e*P(t)/r,P(n)/r]}Gr.invert=In(cn);function Tu(){return kt(Gr).scale(144.049).clipAngle(60)}function Iu(){var t=1,n=0,e=0,r=1,i=1,a=0,o,u,s=null,l,c,f,h=1,p=1,g=Tn({point:function(x,S){var N=A([x,S]);this.stream.point(N[0],N[1])}}),_=Mn,w,y;function E(){return h=t*r,p=t*i,w=y=null,A}function A(x){var S=x[0]*h,N=x[1]*p;if(a){var T=N*o-S*u;S=S*o+N*u,N=T}return[S+n,N+e]}return A.invert=function(x){var S=x[0]-n,N=x[1]-e;if(a){var T=N*o+S*u;S=S*o-N*u,N=T}return[S/h,N/p]},A.stream=function(x){return w&&y===x?w:w=g(_(y=x))},A.postclip=function(x){return arguments.length?(_=x,s=l=c=f=null,E()):_},A.clipExtent=function(x){return arguments.length?(_=x==null?(s=l=c=f=null,Mn):ze(s=+x[0][0],l=+x[0][1],c=+x[1][0],f=+x[1][1]),E()):s==null?null:[[s,l],[c,f]]},A.scale=function(x){return arguments.length?(t=+x,E()):t},A.translate=function(x){return arguments.length?(n=+x[0],e=+x[1],E()):[n,e]},A.angle=function(x){return arguments.length?(a=x%360*R,u=P(a),o=b(a),E()):a*Y},A.reflectX=function(x){return arguments.length?(r=x?-1:1,E()):r<0},A.reflectY=function(x){return arguments.length?(i=x?-1:1,E()):i<0},A.fitExtent=function(x,S){return Te(A,x,S)},A.fitSize=function(x,S){return Rr(A,x,S)},A.fitWidth=function(x,S){return zr(A,x,S)},A.fitHeight=function(x,S){return Tr(A,x,S)},A}function Fr(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(-.013791+r*(.003971*e-.001529*r))),n*(1.007226+e*(.015085+r*(-.044475+.028874*e-.005916*r)))]}Fr.invert=function(t,n){var e=n,r=25,i;do{var a=e*e,o=a*a;e-=i=(e*(1.007226+a*(.015085+o*(-.044475+.028874*a-.005916*o)))-n)/(1.007226+a*(.015085*3+o*(-.044475*7+.028874*9*a-.005916*11*o)))}while(G(i)>C&&--r>0);return[t/(.8707+(a=e*e)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),e]};function Lu(){return kt(Fr).scale(175.295)}function Hr(t,n){return[b(n)*P(t),P(n)]}Hr.invert=In(st);function qu(){return kt(Hr).scale(249.5).clipAngle(90+C)}function Xr(t,n){var e=b(n),r=1+b(t)*e;return[e*P(t)/r,P(n)/r]}Xr.invert=In(function(t){return 2*cn(t)});function Du(){return kt(Xr).scale(250).clipAngle(142)}function Or(t,n){return[ie(Nr((Z+n)/2)),-t]}Or.invert=function(t,n){return[-n,2*cn(aa(t))-Z]};function Bu(){var t=Ga(Or),n=t.center,e=t.rotate;return t.center=function(r){return arguments.length?n([-r[1],r[0]]):(r=n(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?e([r[0],r[1],r.length>2?r[2]+90:90]):(r=e(),[r[0],r[1],r[2]-90])},e([0,0,90]).scale(159.155)}const Gu=Object.freeze(Object.defineProperty({__proto__:null,geoAlbers:Da,geoAlbersUsa:Mu,geoArea:bo,geoAzimuthalEqualArea:ku,geoAzimuthalEqualAreaRaw:qr,geoAzimuthalEquidistant:Nu,geoAzimuthalEquidistantRaw:Dr,geoBounds:To,geoCentroid:Go,geoCircle:Fo,geoClipAntimeridian:ir,geoClipCircle:Ea,geoClipExtent:Wo,geoClipRectangle:ze,geoConicConformal:$u,geoConicConformalRaw:Fa,geoConicEqualArea:Me,geoConicEqualAreaRaw:qa,geoConicEquidistant:Cu,geoConicEquidistantRaw:Ha,geoContains:nu,geoDistance:ve,geoEqualEarth:zu,geoEqualEarthRaw:Br,geoEquirectangular:bu,geoEquirectangularRaw:Pn,geoGnomonic:Tu,geoGnomonicRaw:Gr,geoGraticule:br,geoGraticule10:eu,geoIdentity:Iu,geoInterpolate:ru,geoLength:Sa,geoMercator:Pu,geoMercatorRaw:Ln,geoNaturalEarth1:Lu,geoNaturalEarth1Raw:Fr,geoOrthographic:qu,geoOrthographicRaw:Hr,geoPath:du,geoProjection:kt,geoProjectionMutator:Ir,geoRotation:va,geoStereographic:Du,geoStereographicRaw:Xr,geoStream:yt,geoTransform:mu,geoTransverseMercator:Bu,geoTransverseMercatorRaw:Or},Symbol.toStringTag,{value:"Module"}));function Fu(t){return t}function Hu(t){if(t==null)return Fu;var n,e,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(u,s){s||(n=e=0);var l=2,c=u.length,f=new Array(c);for(f[0]=(n+=u[0])*r+a,f[1]=(e+=u[1])*i+o;l<c;)f[l]=u[l],++l;return f}}function Xu(t,n){for(var e,r=t.length,i=r-n;i<--r;)e=t[i],t[i++]=t[r],t[r]=e}function Ou(t,n){return typeof n=="string"&&(n=t.objects[n]),n.type==="GeometryCollection"?{type:"FeatureCollection",features:n.geometries.map(function(e){return bi(t,e)})}:bi(t,n)}function bi(t,n){var e=n.id,r=n.bbox,i=n.properties==null?{}:n.properties,a=Xa(t,n);return e==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:e,properties:i,geometry:a}:{type:"Feature",id:e,bbox:r,properties:i,geometry:a}}function Xa(t,n){var e=Hu(t.transform),r=t.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],p=0,g=h.length;p<g;++p)f.push(e(h[p],p));c<0&&Xu(f,g)}function a(c){return e(c)}function o(c){for(var f=[],h=0,p=c.length;h<p;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function u(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function s(c){return c.map(u)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=a(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(a);break;case"LineString":h=o(c.arcs);break;case"MultiLineString":h=c.arcs.map(o);break;case"Polygon":h=s(c.arcs);break;case"MultiPolygon":h=c.arcs.map(s);break;default:return null}return{type:f,coordinates:h}}return l(n)}function Yu(t,n){var e={},r={},i={},a=[],o=-1;n.forEach(function(l,c){var f=t.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=n[++o],n[o]=l,n[c]=h)}),n.forEach(function(l){var c=u(l),f=c[0],h=c[1],p,g;if(p=i[f])if(delete i[p.end],p.push(l),p.end=h,g=r[h]){delete r[g.start];var _=g===p?p:p.concat(g);r[_.start=p.start]=i[_.end=g.end]=_}else r[p.start]=i[p.end]=p;else if(p=r[h])if(delete r[p.start],p.unshift(l),p.start=f,g=i[f]){delete i[g.end];var w=g===p?p:g.concat(p);r[w.start=g.start]=i[w.end=p.end]=w}else r[p.start]=i[p.end]=p;else p=[l],r[p.start=f]=i[p.end=h]=p});function u(l){var c=t.arcs[l<0?~l:l],f=c[0],h;return t.transform?(h=[0,0],c.forEach(function(p){h[0]+=p[0],h[1]+=p[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function s(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(p){e[p<0?~p:p]=1}),a.push(h)}}return s(i,r),s(r,i),n.forEach(function(l){e[l<0?~l:l]||a.push([l])}),a}function Ci(t){return Xa(t,Ku.apply(this,arguments))}function Ku(t,n,e){var r,i,a;if(arguments.length>1)r=Vu(t,n,e);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Yu(t,r)}}function Vu(t,n,e){var r=[],i=[],a;function o(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:a})}function u(f){f.forEach(o)}function s(f){f.forEach(u)}function l(f){f.forEach(s)}function c(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":u(f.arcs);break;case"MultiLineString":case"Polygon":s(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(n),i.forEach(e==null?function(f){r.push(f[0].i)}:function(f){e(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}const{geoPath:Wu,...Uu}=Gu,Zu=Uu,Oa=ra(void 0),ju=({width:t=800,height:n=600,projection:e="geoEqualEarth",projectionConfig:r={},children:i})=>{const[a,o]=r.center||[],[u,s,l]=r.rotate||[],[c,f]=r.parallels||[],h=r.scale||null,p=ee(()=>(({projectionConfig:w={},projection:y="geoEqualEarth",width:E=800,height:A=600})=>{if(typeof y=="function")return y;const x=Zu[y]().translate([E/2,A/2]);if(w.center&&x.center(w.center),w.rotate){const[S,N,T]=w.rotate;x.rotate(T===void 0?[S,N]:[S,N,T])}return w.scale&&x.scale(w.scale),w.parallels&&(function(S){return"parallels"in S})(x)&&x.parallels(w.parallels),x})({projectionConfig:{center:typeof a=="number"&&typeof o=="number"?[a,o]:void 0,rotate:typeof u=="number"&&typeof s=="number"?[u,s,l]:void 0,parallels:typeof c=="number"&&typeof f=="number"?[c,f]:void 0,scale:h||void 0},projection:e,width:t,height:n}),[t,n,e,a,o,u,s,l,c,f,h]),g=Eo(p,[p]),_=ee(()=>({width:t,height:n,projection:g,path:Wu().projection(g)}),[t,n,g]);return Q.createElement(Oa.Provider,{value:_},i)},Dt=()=>{const t=So(Oa);if(!t)throw new Error("useMapContext must be used within MapProvider");return t},Ya=qt(({width:t=800,height:n=600,projection:e="geoEqualEarth",projectionConfig:r={},className:i="",children:a,...o},u)=>Q.createElement(ju,{width:t,height:n,projection:e,projectionConfig:r},Q.createElement("svg",{ref:u,viewBox:`0 0 ${t} ${n}`,className:`rsm-svg ${i}`,...o,children:a})));function Ri(t,n){if(!Array.isArray(t)&&"type"in t&&t.type==="Topology"){const r=t.objects[Object.keys(t.objects)[0]],i=Ou(t,r).features;return n?n(i):i}const e=!Array.isArray(t)&&"features"in t?t.features:t;return n?n(e):e}function zi(t){if(Array.isArray(t)||!("type"in t)||t.type!=="Topology")return null;const n=t.objects[Object.keys(t.objects)[0]];return{outline:Ci(t,n,(e,r)=>e===r),borders:Ci(t,n,(e,r)=>e!==r)}}function Ju(t,n){return t?t.map((e,r)=>({...e,rsmKey:`geo-${r}`,svgPath:n(e)})):[]}function Ti(t){return typeof t=="string"}function Qu({geography:t,parseGeographies:n}){const{path:e}=Dt(),[r,i]=Ot({}),a=Ti(t)?t:JSON.stringify(t);Qt(()=>{var l;typeof window<"u"&&t&&(Ti(t)?(l=t,fetch(l).then(c=>{if(!c.ok)throw Error(c.statusText);return c.json()}).catch(c=>{console.log("There was a problem when fetching the data: ",c)})).then(c=>{c&&i({geographies:Ri(c,n),mesh:zi(c)})}):i({geographies:Ri(t,n),mesh:zi(t)}))},[a,n]);const{geographies:o,outline:u,borders:s}=ee(()=>{const l=(function(c,f,h){return c&&f?{outline:{...c,rsmKey:"outline",svgPath:h(c)},borders:{...f,rsmKey:"borders",svgPath:h(f)}}:{}})(r.mesh?.outline,r.mesh?.borders,e);return{geographies:Ju(r.geographies,e),outline:l.outline,borders:l.borders}},[r,e]);return{geographies:o,outline:u,borders:s}}Ya.displayName="ComposableMap";const Ka=qt(({geography:t,children:n,parseGeographies:e,className:r="",...i},a)=>{const{path:o,projection:u}=Dt(),{geographies:s,outline:l,borders:c}=Qu({geography:t,parseGeographies:e});return Q.createElement("g",{ref:a,className:`rsm-geographies ${r}`,...i},s&&s.length>0&&n({geographies:s,outline:l,borders:c,path:o,projection:u}))});Ka.displayName="Geographies";const Va=qt(({geography:t,className:n="",...e},r)=>Q.createElement("path",{ref:r,tabIndex:0,className:`rsm-geography ${n}`,d:t.svgPath,...e}));Va.displayName="Geography";var tc=kr(Va);const Wa=qt(({fill:t="transparent",stroke:n="currentcolor",step:e=[10,10],className:r="",...i},a)=>{const{path:o}=Dt();return Q.createElement("path",{ref:a,d:o(br().step(e)()),fill:t,stroke:n,className:`rsm-graticule ${r}`,...i})});Wa.displayName="Graticule";kr(Wa);const Ua=qt(({id:t="rsm-sphere",fill:n="transparent",stroke:e="currentcolor",strokeWidth:r=.5,className:i="",...a},o)=>{const{path:u}=Dt(),s=ee(()=>u({type:"Sphere"}),[u]);return Q.createElement(Mo,null,Q.createElement("defs",null,Q.createElement("clipPath",{id:t},Q.createElement("path",{d:s}))),Q.createElement("path",{ref:o,d:s,fill:n,stroke:e,strokeWidth:r,style:{pointerEvents:"none"},className:`rsm-sphere ${i}`,...a}))});Ua.displayName="Sphere";kr(Ua);const Za=qt(({coordinates:t,children:n,className:e="",...r},i)=>{const{projection:a}=Dt(),o=a(t);if(!o)return null;const[u,s]=o;return Q.createElement("g",{ref:i,transform:`translate(${u}, ${s})`,className:`rsm-marker ${e}`,...r},n)});Za.displayName="Marker";const nc=qt(({from:t=[0,0],to:n=[0,0],coordinates:e,stroke:r="currentcolor",strokeWidth:i=3,fill:a="transparent",className:o="",...u},s)=>{const{path:l}=Dt(),c={type:"LineString",coordinates:e||[t,n]};return Q.createElement("path",{ref:s,d:l(c),className:`rsm-line ${o}`,stroke:r,strokeWidth:i,fill:a,...u})});nc.displayName="Line";const ec=qt(({subject:t,children:n,connectorProps:e,dx:r=30,dy:i=30,curve:a=0,className:o="",...u},s)=>{const{projection:l}=Dt(),c=l(t),f=(function(g=30,_=30,w=.5){const y=Array.isArray(w)?w:[w,w];return`M0,0 Q${-g/2-g/2*y[0]},${-_/2+_/2*y[1]} ${-g},${-_}`})(r,i,a);if(!c)return null;const[h,p]=c;return Q.createElement("g",{ref:s,transform:`translate(${h+r}, ${p+i})`,className:`rsm-annotation ${o}`,...u},Q.createElement("path",{d:f,fill:"transparent",stroke:"#000",...e}),n)});ec.displayName="Annotation";var rc={value:()=>{}};function Yr(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Jn(e)}function Jn(t){this._=t}function ic(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Jn.prototype=Yr.prototype={constructor:Jn,on:function(t,n){var e=this._,r=ic(t+"",e),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=ac(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++a<o;)if(i=(t=r[a]).type)e[i]=Ii(e[i],t.name,n);else if(n==null)for(i in e)e[i]=Ii(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Jn(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,a;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};function ac(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function Ii(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=rc,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var vr="http://www.w3.org/1999/xhtml";const Li={svg:"http://www.w3.org/2000/svg",xhtml:vr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ie(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),Li.hasOwnProperty(n)?{space:Li[n],local:t}:t}function oc(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===vr&&n.documentElement.namespaceURI===vr?n.createElement(t):n.createElementNS(e,t)}}function uc(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function ja(t){var n=Ie(t);return(n.local?uc:oc)(n)}function cc(){}function Kr(t){return t==null?cc:function(){return this.querySelector(t)}}function sc(t){typeof t!="function"&&(t=Kr(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=new Array(o),s,l,c=0;c<o;++c)(s=a[c])&&(l=t.call(s,s.__data__,c,a))&&("__data__"in s&&(l.__data__=s.__data__),u[c]=l);return new gt(r,this._parents)}function lc(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function fc(){return[]}function Ja(t){return t==null?fc:function(){return this.querySelectorAll(t)}}function hc(t){return function(){return lc(t.apply(this,arguments))}}function pc(t){typeof t=="function"?t=hc(t):t=Ja(t);for(var n=this._groups,e=n.length,r=[],i=[],a=0;a<e;++a)for(var o=n[a],u=o.length,s,l=0;l<u;++l)(s=o[l])&&(r.push(t.call(s,s.__data__,l,o)),i.push(s));return new gt(r,i)}function Qa(t){return function(){return this.matches(t)}}function to(t){return function(n){return n.matches(t)}}var gc=Array.prototype.find;function dc(t){return function(){return gc.call(this.children,t)}}function mc(){return this.firstElementChild}function vc(t){return this.select(t==null?mc:dc(typeof t=="function"?t:to(t)))}var yc=Array.prototype.filter;function Ac(){return Array.from(this.children)}function wc(t){return function(){return yc.call(this.children,t)}}function _c(t){return this.selectAll(t==null?Ac:wc(typeof t=="function"?t:to(t)))}function xc(t){typeof t!="function"&&(t=Qa(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&u.push(s);return new gt(r,this._parents)}function no(t){return new Array(t.length)}function Ec(){return new gt(this._enter||this._groups.map(no),this._parents)}function Ne(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Ne.prototype={constructor:Ne,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Sc(t){return function(){return t}}function Mc(t,n,e,r,i,a){for(var o=0,u,s=n.length,l=a.length;o<l;++o)(u=n[o])?(u.__data__=a[o],r[o]=u):e[o]=new Ne(t,a[o]);for(;o<s;++o)(u=n[o])&&(i[o]=u)}function kc(t,n,e,r,i,a,o){var u,s,l=new Map,c=n.length,f=a.length,h=new Array(c),p;for(u=0;u<c;++u)(s=n[u])&&(h[u]=p=o.call(s,s.__data__,u,n)+"",l.has(p)?i[u]=s:l.set(p,s));for(u=0;u<f;++u)p=o.call(t,a[u],u,a)+"",(s=l.get(p))?(r[u]=s,s.__data__=a[u],l.delete(p)):e[u]=new Ne(t,a[u]);for(u=0;u<c;++u)(s=n[u])&&l.get(h[u])===s&&(i[u]=s)}function Nc(t){return t.__data__}function Pc(t,n){if(!arguments.length)return Array.from(this,Nc);var e=n?kc:Mc,r=this._parents,i=this._groups;typeof t!="function"&&(t=Sc(t));for(var a=i.length,o=new Array(a),u=new Array(a),s=new Array(a),l=0;l<a;++l){var c=r[l],f=i[l],h=f.length,p=$c(t.call(c,c&&c.__data__,l,r)),g=p.length,_=u[l]=new Array(g),w=o[l]=new Array(g),y=s[l]=new Array(h);e(c,f,_,w,y,p,n);for(var E=0,A=0,x,S;E<g;++E)if(x=_[E]){for(E>=A&&(A=E+1);!(S=w[A])&&++A<g;);x._next=S||null}}return o=new gt(o,r),o._enter=u,o._exit=s,o}function $c(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function bc(){return new gt(this._exit||this._groups.map(no),this._parents)}function Cc(t,n,e){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?a.remove():e(a),r&&i?r.merge(i).order():i}function Rc(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,a=r.length,o=Math.min(i,a),u=new Array(i),s=0;s<o;++s)for(var l=e[s],c=r[s],f=l.length,h=u[s]=new Array(f),p,g=0;g<f;++g)(p=l[g]||c[g])&&(h[g]=p);for(;s<i;++s)u[s]=e[s];return new gt(u,this._parents)}function zc(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Tc(t){t||(t=Ic);function n(f,h){return f&&h?t(f.__data__,h.__data__):!f-!h}for(var e=this._groups,r=e.length,i=new Array(r),a=0;a<r;++a){for(var o=e[a],u=o.length,s=i[a]=new Array(u),l,c=0;c<u;++c)(l=o[c])&&(s[c]=l);s.sort(n)}return new gt(i,this._parents).order()}function Ic(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function Lc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function qc(){return Array.from(this)}function Dc(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Bc(){let t=0;for(const n of this)++t;return t}function Gc(){return!this.node()}function Fc(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],a=0,o=i.length,u;a<o;++a)(u=i[a])&&t.call(u,u.__data__,a,i);return this}function Hc(t){return function(){this.removeAttribute(t)}}function Xc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Oc(t,n){return function(){this.setAttribute(t,n)}}function Yc(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Kc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function Vc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Wc(t,n){var e=Ie(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?Xc:Hc:typeof n=="function"?e.local?Vc:Kc:e.local?Yc:Oc)(e,n))}function eo(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Uc(t){return function(){this.style.removeProperty(t)}}function Zc(t,n,e){return function(){this.style.setProperty(t,n,e)}}function jc(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Jc(t,n,e){return arguments.length>1?this.each((n==null?Uc:typeof n=="function"?jc:Zc)(t,n,e??"")):on(this.node(),t)}function on(t,n){return t.style.getPropertyValue(n)||eo(t).getComputedStyle(t,null).getPropertyValue(n)}function Qc(t){return function(){delete this[t]}}function ts(t,n){return function(){this[t]=n}}function ns(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function es(t,n){return arguments.length>1?this.each((n==null?Qc:typeof n=="function"?ns:ts)(t,n)):this.node()[t]}function ro(t){return t.trim().split(/^|\s+/)}function Vr(t){return t.classList||new io(t)}function io(t){this._node=t,this._names=ro(t.getAttribute("class")||"")}io.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function ao(t,n){for(var e=Vr(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function oo(t,n){for(var e=Vr(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function rs(t){return function(){ao(this,t)}}function is(t){return function(){oo(this,t)}}function as(t,n){return function(){(n.apply(this,arguments)?ao:oo)(this,t)}}function os(t,n){var e=ro(t+"");if(arguments.length<2){for(var r=Vr(this.node()),i=-1,a=e.length;++i<a;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?as:n?rs:is)(e,n))}function us(){this.textContent=""}function cs(t){return function(){this.textContent=t}}function ss(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function ls(t){return arguments.length?this.each(t==null?us:(typeof t=="function"?ss:cs)(t)):this.node().textContent}function fs(){this.innerHTML=""}function hs(t){return function(){this.innerHTML=t}}function ps(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function gs(t){return arguments.length?this.each(t==null?fs:(typeof t=="function"?ps:hs)(t)):this.node().innerHTML}function ds(){this.nextSibling&&this.parentNode.appendChild(this)}function ms(){return this.each(ds)}function vs(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ys(){return this.each(vs)}function As(t){var n=typeof t=="function"?t:ja(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function ws(){return null}function _s(t,n){var e=typeof t=="function"?t:ja(t),r=n==null?ws:typeof n=="function"?n:Kr(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function xs(){var t=this.parentNode;t&&t.removeChild(this)}function Es(){return this.each(xs)}function Ss(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Ms(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function ks(t){return this.select(t?Ms:Ss)}function Ns(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Ps(t){return function(n){t.call(this,n,this.__data__)}}function $s(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function bs(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,a;e<i;++e)a=n[e],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):n[++r]=a;++r?n.length=r:delete this.__on}}}function Cs(t,n,e){return function(){var r=this.__on,i,a=Ps(n);if(r){for(var o=0,u=r.length;o<u;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=e),i.value=n;return}}this.addEventListener(t.type,a,e),i={type:t.type,name:t.name,value:n,listener:a,options:e},r?r.push(i):this.__on=[i]}}function Rs(t,n,e){var r=$s(t+""),i,a=r.length,o;if(arguments.length<2){var u=this.node().__on;if(u){for(var s=0,l=u.length,c;s<l;++s)for(i=0,c=u[s];i<a;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(u=n?Cs:bs,i=0;i<a;++i)this.each(u(r[i],n,e));return this}function uo(t,n,e){var r=eo(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function zs(t,n){return function(){return uo(this,t,n)}}function Ts(t,n){return function(){return uo(this,t,n.apply(this,arguments))}}function Is(t,n){return this.each((typeof n=="function"?Ts:zs)(t,n))}function*Ls(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var co=[null];function gt(t,n){this._groups=t,this._parents=n}function qn(){return new gt([[document.documentElement]],co)}function qs(){return this}gt.prototype=qn.prototype={constructor:gt,select:sc,selectAll:pc,selectChild:vc,selectChildren:_c,filter:xc,data:Pc,enter:Ec,exit:bc,join:Cc,merge:Rc,selection:qs,order:zc,sort:Tc,call:Lc,nodes:qc,node:Dc,size:Bc,empty:Gc,each:Fc,attr:Wc,style:Jc,property:es,classed:os,text:ls,html:gs,raise:ms,lower:ys,append:As,insert:_s,remove:Es,clone:ks,datum:Ns,on:Rs,dispatch:Is,[Symbol.iterator]:Ls};function zt(t){return typeof t=="string"?new gt([[document.querySelector(t)]],[document.documentElement]):new gt([[t]],co)}function Ds(t){let n;for(;n=t.sourceEvent;)t=n;return t}function Ht(t,n){if(t=Ds(t),n===void 0&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}const yr={capture:!0,passive:!1};function Ar(t){t.preventDefault(),t.stopImmediatePropagation()}function Bs(t){var n=t.document.documentElement,e=zt(t).on("dragstart.drag",Ar,yr);"onselectstart"in n?e.on("selectstart.drag",Ar,yr):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function Gs(t,n){var e=t.document.documentElement,r=zt(t).on("dragstart.drag",null);n&&(r.on("click.drag",Ar,yr),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function Wr(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function so(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Dn(){}var $n=.7,Pe=1/$n,nn="\\s*([+-]?\\d+)\\s*",bn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",St="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Fs=/^#([0-9a-f]{3,8})$/,Hs=new RegExp(`^rgb\\(${nn},${nn},${nn}\\)$`),Xs=new RegExp(`^rgb\\(${St},${St},${St}\\)$`),Os=new RegExp(`^rgba\\(${nn},${nn},${nn},${bn}\\)$`),Ys=new RegExp(`^rgba\\(${St},${St},${St},${bn}\\)$`),Ks=new RegExp(`^hsl\\(${bn},${St},${St}\\)$`),Vs=new RegExp(`^hsla\\(${bn},${St},${St},${bn}\\)$`),qi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Wr(Dn,Cn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Di,formatHex:Di,formatHex8:Ws,formatHsl:Us,formatRgb:Bi,toString:Bi});function Di(){return this.rgb().formatHex()}function Ws(){return this.rgb().formatHex8()}function Us(){return lo(this).formatHsl()}function Bi(){return this.rgb().formatRgb()}function Cn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Fs.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?Gi(n):e===3?new ft(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?Yn(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?Yn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=Hs.exec(t))?new ft(n[1],n[2],n[3],1):(n=Xs.exec(t))?new ft(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=Os.exec(t))?Yn(n[1],n[2],n[3],n[4]):(n=Ys.exec(t))?Yn(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=Ks.exec(t))?Xi(n[1],n[2]/100,n[3]/100,1):(n=Vs.exec(t))?Xi(n[1],n[2]/100,n[3]/100,n[4]):qi.hasOwnProperty(t)?Gi(qi[t]):t==="transparent"?new ft(NaN,NaN,NaN,0):null}function Gi(t){return new ft(t>>16&255,t>>8&255,t&255,1)}function Yn(t,n,e,r){return r<=0&&(t=n=e=NaN),new ft(t,n,e,r)}function Zs(t){return t instanceof Dn||(t=Cn(t)),t?(t=t.rgb(),new ft(t.r,t.g,t.b,t.opacity)):new ft}function wr(t,n,e,r){return arguments.length===1?Zs(t):new ft(t,n,e,r??1)}function ft(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}Wr(ft,wr,so(Dn,{brighter(t){return t=t==null?Pe:Math.pow(Pe,t),new ft(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?$n:Math.pow($n,t),new ft(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ft(Kt(this.r),Kt(this.g),Kt(this.b),$e(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:Fi,formatHex:Fi,formatHex8:js,formatRgb:Hi,toString:Hi}));function Fi(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}`}function js(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}${Yt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Hi(){const t=$e(this.opacity);return`${t===1?"rgb(":"rgba("}${Kt(this.r)}, ${Kt(this.g)}, ${Kt(this.b)}${t===1?")":`, ${t})`}`}function $e(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Kt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Yt(t){return t=Kt(t),(t<16?"0":"")+t.toString(16)}function Xi(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new At(t,n,e,r)}function lo(t){if(t instanceof At)return new At(t.h,t.s,t.l,t.opacity);if(t instanceof Dn||(t=Cn(t)),!t)return new At;if(t instanceof At)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,u=a-i,s=(a+i)/2;return u?(n===a?o=(e-r)/u+(e<r)*6:e===a?o=(r-n)/u+2:o=(n-e)/u+4,u/=s<.5?a+i:2-a-i,o*=60):u=s>0&&s<1?0:o,new At(o,u,s,t.opacity)}function Js(t,n,e,r){return arguments.length===1?lo(t):new At(t,n,e,r??1)}function At(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}Wr(At,Js,so(Dn,{brighter(t){return t=t==null?Pe:Math.pow(Pe,t),new At(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?$n:Math.pow($n,t),new At(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new ft(Oe(t>=240?t-240:t+120,i,r),Oe(t,i,r),Oe(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new At(Oi(this.h),Kn(this.s),Kn(this.l),$e(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=$e(this.opacity);return`${t===1?"hsl(":"hsla("}${Oi(this.h)}, ${Kn(this.s)*100}%, ${Kn(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Oi(t){return t=(t||0)%360,t<0?t+360:t}function Kn(t){return Math.max(0,Math.min(1,t||0))}function Oe(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}const fo=t=>()=>t;function Qs(t,n){return function(e){return t+e*n}}function tl(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function nl(t){return(t=+t)==1?ho:function(n,e){return e-n?tl(n,e,t):fo(isNaN(n)?e:n)}}function ho(t,n){var e=n-t;return e?Qs(t,e):fo(isNaN(t)?n:t)}const Yi=(function t(n){var e=nl(n);function r(i,a){var o=e((i=wr(i)).r,(a=wr(a)).r),u=e(i.g,a.g),s=e(i.b,a.b),l=ho(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=u(c),i.b=s(c),i.opacity=l(c),i+""}}return r.gamma=t,r})(1);function Ft(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var _r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ye=new RegExp(_r.source,"g");function el(t){return function(){return t}}function rl(t){return function(n){return t(n)+""}}function il(t,n){var e=_r.lastIndex=Ye.lastIndex=0,r,i,a,o=-1,u=[],s=[];for(t=t+"",n=n+"";(r=_r.exec(t))&&(i=Ye.exec(n));)(a=i.index)>e&&(a=n.slice(e,a),u[o]?u[o]+=a:u[++o]=a),(r=r[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,s.push({i:o,x:Ft(r,i)})),e=Ye.lastIndex;return e<n.length&&(a=n.slice(e),u[o]?u[o]+=a:u[++o]=a),u.length<2?s[0]?rl(s[0].x):el(n):(n=s.length,function(l){for(var c=0,f;c<n;++c)u[(f=s[c]).i]=f.x(l);return u.join("")})}var Ki=180/Math.PI,xr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function po(t,n,e,r,i,a){var o,u,s;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*Ki,skewX:Math.atan(s)*Ki,scaleX:o,scaleY:u}}var Vn;function al(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?xr:po(n.a,n.b,n.c,n.d,n.e,n.f)}function ol(t){return t==null||(Vn||(Vn=document.createElementNS("http://www.w3.org/2000/svg","g")),Vn.setAttribute("transform",t),!(t=Vn.transform.baseVal.consolidate()))?xr:(t=t.matrix,po(t.a,t.b,t.c,t.d,t.e,t.f))}function go(t,n,e,r){function i(l){return l.length?l.pop()+" ":""}function a(l,c,f,h,p,g){if(l!==f||c!==h){var _=p.push("translate(",null,n,null,e);g.push({i:_-4,x:Ft(l,f)},{i:_-2,x:Ft(c,h)})}else(f||h)&&p.push("translate("+f+n+h+e)}function o(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:Ft(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function u(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:Ft(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function s(l,c,f,h,p,g){if(l!==f||c!==h){var _=p.push(i(p)+"scale(",null,",",null,")");g.push({i:_-4,x:Ft(l,f)},{i:_-2,x:Ft(c,h)})}else(f!==1||h!==1)&&p.push(i(p)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=t(l),c=t(c),a(l.translateX,l.translateY,c.translateX,c.translateY,f,h),o(l.rotate,c.rotate,f,h),u(l.skewX,c.skewX,f,h),s(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(p){for(var g=-1,_=h.length,w;++g<_;)f[(w=h[g]).i]=w.x(p);return f.join("")}}}var ul=go(al,"px, ","px)","deg)"),cl=go(ol,", ",")",")"),sl=1e-12;function Vi(t){return((t=Math.exp(t))+1/t)/2}function ll(t){return((t=Math.exp(t))-1/t)/2}function fl(t){return((t=Math.exp(2*t))-1)/(t+1)}const hl=(function t(n,e,r){function i(a,o){var u=a[0],s=a[1],l=a[2],c=o[0],f=o[1],h=o[2],p=c-u,g=f-s,_=p*p+g*g,w,y;if(_<sl)y=Math.log(h/l)/n,w=function(T){return[u+T*p,s+T*g,l*Math.exp(n*T*y)]};else{var E=Math.sqrt(_),A=(h*h-l*l+r*_)/(2*l*e*E),x=(h*h-l*l-r*_)/(2*h*e*E),S=Math.log(Math.sqrt(A*A+1)-A),N=Math.log(Math.sqrt(x*x+1)-x);y=(N-S)/n,w=function(T){var L=T*y,q=Vi(S),F=l/(e*E)*(q*fl(n*L+S)-ll(S));return[u+F*p,s+F*g,l*q/Vi(n*L+S)]}}return w.duration=y*1e3*n/Math.SQRT2,w}return i.rho=function(a){var o=Math.max(.001,+a),u=o*o,s=u*u;return t(o,u,s)},i})(Math.SQRT2,2,4);var un=0,vn=0,sn=0,mo=1e3,be,yn,Ce=0,Ut=0,Le=0,Rn=typeof performance=="object"&&performance.now?performance:Date,vo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ur(){return Ut||(vo(pl),Ut=Rn.now()+Le)}function pl(){Ut=0}function Re(){this._call=this._time=this._next=null}Re.prototype=yo.prototype={constructor:Re,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?Ur():+e)+(n==null?0:+n),!this._next&&yn!==this&&(yn?yn._next=this:be=this,yn=this),this._call=t,this._time=e,Er()},stop:function(){this._call&&(this._call=null,this._time=1/0,Er())}};function yo(t,n,e){var r=new Re;return r.restart(t,n,e),r}function gl(){Ur(),++un;for(var t=be,n;t;)(n=Ut-t._time)>=0&&t._call.call(void 0,n),t=t._next;--un}function Wi(){Ut=(Ce=Rn.now())+Le,un=vn=0;try{gl()}finally{un=0,ml(),Ut=0}}function dl(){var t=Rn.now(),n=t-Ce;n>mo&&(Le-=n,Ce=t)}function ml(){for(var t,n=be,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:be=e);yn=t,Er(r)}function Er(t){if(!un){vn&&(vn=clearTimeout(vn));var n=t-Ut;n>24?(t<1/0&&(vn=setTimeout(Wi,t-Rn.now()-Le)),sn&&(sn=clearInterval(sn))):(sn||(Ce=Rn.now(),sn=setInterval(dl,mo)),un=1,vo(Wi))}}function Ui(t,n,e){var r=new Re;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}var vl=Yr("start","end","cancel","interrupt"),yl=[],Ao=0,Zi=1,Sr=2,Qn=3,ji=4,Mr=5,te=6;function qe(t,n,e,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(e in o)return;Al(t,e,{name:n,index:r,group:i,on:vl,tween:yl,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Ao})}function Zr(t,n){var e=_t(t,n);if(e.state>Ao)throw new Error("too late; already scheduled");return e}function Nt(t,n){var e=_t(t,n);if(e.state>Qn)throw new Error("too late; already running");return e}function _t(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Al(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=yo(a,0,e.time);function a(l){e.state=Zi,e.timer.restart(o,e.delay,e.time),e.delay<=l&&o(l-e.delay)}function o(l){var c,f,h,p;if(e.state!==Zi)return s();for(c in r)if(p=r[c],p.name===e.name){if(p.state===Qn)return Ui(o);p.state===ji?(p.state=te,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[c]):+c<n&&(p.state=te,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete r[c])}if(Ui(function(){e.state===Qn&&(e.state=ji,e.timer.restart(u,e.delay,e.time),u(l))}),e.state=Sr,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Sr){for(e.state=Qn,i=new Array(h=e.tween.length),c=0,f=-1;c<h;++c)(p=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++f]=p);i.length=f+1}}function u(l){for(var c=l<e.duration?e.ease.call(null,l/e.duration):(e.timer.restart(s),e.state=Mr,1),f=-1,h=i.length;++f<h;)i[f].call(t,c);e.state===Mr&&(e.on.call("end",t,t.__data__,e.index,e.group),s())}function s(){e.state=te,e.timer.stop(),delete r[n];for(var l in r)return;delete t.__transition}}function ne(t,n){var e=t.__transition,r,i,a=!0,o;if(e){n=n==null?null:n+"";for(o in e){if((r=e[o]).name!==n){a=!1;continue}i=r.state>Sr&&r.state<Mr,r.state=te,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[o]}a&&delete t.__transition}}function wl(t){return this.each(function(){ne(this,t)})}function _l(t,n){var e,r;return function(){var i=Nt(this,t),a=i.tween;if(a!==e){r=e=a;for(var o=0,u=r.length;o<u;++o)if(r[o].name===n){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function xl(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var a=Nt(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}a.tween=i}}function El(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=_t(this.node(),e).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((n==null?_l:xl)(e,t,n))}function jr(t,n,e){var r=t._id;return t.each(function(){var i=Nt(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return _t(i,r).value[n]}}function wo(t,n){var e;return(typeof n=="number"?Ft:n instanceof Cn?Yi:(e=Cn(n))?(n=e,Yi):il)(t,n)}function Sl(t){return function(){this.removeAttribute(t)}}function Ml(t){return function(){this.removeAttributeNS(t.space,t.local)}}function kl(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=n(r=o,e)}}function Nl(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=n(r=o,e)}}function Pl(t,n,e){var r,i,a;return function(){var o,u=e(this),s;return u==null?void this.removeAttribute(t):(o=this.getAttribute(t),s=u+"",o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u)))}}function $l(t,n,e){var r,i,a;return function(){var o,u=e(this),s;return u==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),s=u+"",o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u)))}}function bl(t,n){var e=Ie(t),r=e==="transform"?cl:wo;return this.attrTween(t,typeof n=="function"?(e.local?$l:Pl)(e,r,jr(this,"attr."+t,n)):n==null?(e.local?Ml:Sl)(e):(e.local?Nl:kl)(e,r,n))}function Cl(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Rl(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function zl(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&Rl(t,a)),e}return i._value=n,i}function Tl(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&Cl(t,a)),e}return i._value=n,i}function Il(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Ie(t);return this.tween(e,(r.local?zl:Tl)(r,n))}function Ll(t,n){return function(){Zr(this,t).delay=+n.apply(this,arguments)}}function ql(t,n){return n=+n,function(){Zr(this,t).delay=n}}function Dl(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?Ll:ql)(n,t)):_t(this.node(),n).delay}function Bl(t,n){return function(){Nt(this,t).duration=+n.apply(this,arguments)}}function Gl(t,n){return n=+n,function(){Nt(this,t).duration=n}}function Fl(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?Bl:Gl)(n,t)):_t(this.node(),n).duration}function Hl(t,n){if(typeof n!="function")throw new Error;return function(){Nt(this,t).ease=n}}function Xl(t){var n=this._id;return arguments.length?this.each(Hl(n,t)):_t(this.node(),n).ease}function Ol(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;Nt(this,t).ease=e}}function Yl(t){if(typeof t!="function")throw new Error;return this.each(Ol(this._id,t))}function Kl(t){typeof t!="function"&&(t=Qa(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&u.push(s);return new Lt(r,this._parents,this._name,this._id)}function Vl(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,a=Math.min(r,i),o=new Array(r),u=0;u<a;++u)for(var s=n[u],l=e[u],c=s.length,f=o[u]=new Array(c),h,p=0;p<c;++p)(h=s[p]||l[p])&&(f[p]=h);for(;u<r;++u)o[u]=n[u];return new Lt(o,this._parents,this._name,this._id)}function Wl(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function Ul(t,n,e){var r,i,a=Wl(n)?Zr:Nt;return function(){var o=a(this,t),u=o.on;u!==r&&(i=(r=u).copy()).on(n,e),o.on=i}}function Zl(t,n){var e=this._id;return arguments.length<2?_t(this.node(),e).on.on(t):this.each(Ul(e,t,n))}function jl(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Jl(){return this.on("end.remove",jl(this._id))}function Ql(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Kr(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var u=r[o],s=u.length,l=a[o]=new Array(s),c,f,h=0;h<s;++h)(c=u[h])&&(f=t.call(c,c.__data__,h,u))&&("__data__"in c&&(f.__data__=c.__data__),l[h]=f,qe(l[h],n,e,h,l,_t(c,e)));return new Lt(a,this._parents,n,e)}function tf(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Ja(t));for(var r=this._groups,i=r.length,a=[],o=[],u=0;u<i;++u)for(var s=r[u],l=s.length,c,f=0;f<l;++f)if(c=s[f]){for(var h=t.call(c,c.__data__,f,s),p,g=_t(c,e),_=0,w=h.length;_<w;++_)(p=h[_])&&qe(p,n,e,_,h,g);a.push(h),o.push(c)}return new Lt(a,o,n,e)}var nf=qn.prototype.constructor;function ef(){return new nf(this._groups,this._parents)}function rf(t,n){var e,r,i;return function(){var a=on(this,t),o=(this.style.removeProperty(t),on(this,t));return a===o?null:a===e&&o===r?i:i=n(e=a,r=o)}}function _o(t){return function(){this.style.removeProperty(t)}}function af(t,n,e){var r,i=e+"",a;return function(){var o=on(this,t);return o===i?null:o===r?a:a=n(r=o,e)}}function of(t,n,e){var r,i,a;return function(){var o=on(this,t),u=e(this),s=u+"";return u==null&&(s=u=(this.style.removeProperty(t),on(this,t))),o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u))}}function uf(t,n){var e,r,i,a="style."+n,o="end."+a,u;return function(){var s=Nt(this,t),l=s.on,c=s.value[a]==null?u||(u=_o(n)):void 0;(l!==e||i!==c)&&(r=(e=l).copy()).on(o,i=c),s.on=r}}function cf(t,n,e){var r=(t+="")=="transform"?ul:wo;return n==null?this.styleTween(t,rf(t,r)).on("end.style."+t,_o(t)):typeof n=="function"?this.styleTween(t,of(t,r,jr(this,"style."+t,n))).each(uf(this._id,t)):this.styleTween(t,af(t,r,n),e).on("end.style."+t,null)}function sf(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function lf(t,n,e){var r,i;function a(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&sf(t,o,e)),r}return a._value=n,a}function ff(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,lf(t,n,e??""))}function hf(t){return function(){this.textContent=t}}function pf(t){return function(){var n=t(this);this.textContent=n??""}}function gf(t){return this.tween("text",typeof t=="function"?pf(jr(this,"text",t)):hf(t==null?"":t+""))}function df(t){return function(n){this.textContent=t.call(this,n)}}function mf(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&df(i)),n}return r._value=t,r}function vf(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,mf(t))}function yf(){for(var t=this._name,n=this._id,e=xo(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],u=o.length,s,l=0;l<u;++l)if(s=o[l]){var c=_t(s,n);qe(s,t,e,l,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Lt(r,this._parents,t,e)}function Af(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(a,o){var u={value:o},s={value:function(){--i===0&&a()}};e.each(function(){var l=Nt(this,r),c=l.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(u),n._.interrupt.push(u),n._.end.push(s)),l.on=n}),i===0&&a()})}var wf=0;function Lt(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function xo(){return++wf}var bt=qn.prototype;Lt.prototype={constructor:Lt,select:Ql,selectAll:tf,selectChild:bt.selectChild,selectChildren:bt.selectChildren,filter:Kl,merge:Vl,selection:ef,transition:yf,call:bt.call,nodes:bt.nodes,node:bt.node,size:bt.size,empty:bt.empty,each:bt.each,on:Zl,attr:bl,attrTween:Il,style:cf,styleTween:ff,text:gf,textTween:vf,remove:Jl,tween:El,delay:Dl,duration:Fl,ease:Xl,easeVarying:Yl,end:Af,[Symbol.iterator]:bt[Symbol.iterator]};function _f(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var xf={time:null,delay:0,duration:250,ease:_f};function Ef(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Sf(t){var n,e;t instanceof Lt?(n=t._id,t=t._name):(n=xo(),(e=xf).time=Ur(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],u=o.length,s,l=0;l<u;++l)(s=o[l])&&qe(s,t,n,l,o,e||Ef(s,n));return new Lt(r,this._parents,t,n)}qn.prototype.interrupt=wl;qn.prototype.transition=Sf;const Wn=t=>()=>t;function Mf(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Tt(t,n,e){this.k=t,this.x=n,this.y=e}Tt.prototype={constructor:Tt,scale:function(t){return t===1?this:new Tt(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Tt(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Jr=new Tt(1,0,0);Tt.prototype;function Ke(t){t.stopImmediatePropagation()}function ln(t){t.preventDefault(),t.stopImmediatePropagation()}function kf(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Nf(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Ji(){return this.__zoom||Jr}function Pf(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function $f(){return navigator.maxTouchPoints||"ontouchstart"in this}function bf(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],a=t.invertY(n[0][1])-e[0][1],o=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Cf(){var t=kf,n=Nf,e=bf,r=Pf,i=$f,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],u=250,s=hl,l=Yr("start","zoom","end"),c,f,h,p=500,g=150,_=0,w=10;function y(m){m.property("__zoom",Ji).on("wheel.zoom",L,{passive:!1}).on("mousedown.zoom",q).on("dblclick.zoom",F).filter(i).on("touchstart.zoom",z).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(m,d,v,M){var k=m.selection?m.selection():m;k.property("__zoom",Ji),m!==k?S(m,d,v,M):k.interrupt().each(function(){N(this,arguments).event(M).start().zoom(null,typeof d=="function"?d.apply(this,arguments):d).end()})},y.scaleBy=function(m,d,v,M){y.scaleTo(m,function(){var k=this.__zoom.k,$=typeof d=="function"?d.apply(this,arguments):d;return k*$},v,M)},y.scaleTo=function(m,d,v,M){y.transform(m,function(){var k=n.apply(this,arguments),$=this.__zoom,I=v==null?x(k):typeof v=="function"?v.apply(this,arguments):v,D=$.invert(I),H=typeof d=="function"?d.apply(this,arguments):d;return e(A(E($,H),I,D),k,o)},v,M)},y.translateBy=function(m,d,v,M){y.transform(m,function(){return e(this.__zoom.translate(typeof d=="function"?d.apply(this,arguments):d,typeof v=="function"?v.apply(this,arguments):v),n.apply(this,arguments),o)},null,M)},y.translateTo=function(m,d,v,M,k){y.transform(m,function(){var $=n.apply(this,arguments),I=this.__zoom,D=M==null?x($):typeof M=="function"?M.apply(this,arguments):M;return e(Jr.translate(D[0],D[1]).scale(I.k).translate(typeof d=="function"?-d.apply(this,arguments):-d,typeof v=="function"?-v.apply(this,arguments):-v),$,o)},M,k)};function E(m,d){return d=Math.max(a[0],Math.min(a[1],d)),d===m.k?m:new Tt(d,m.x,m.y)}function A(m,d,v){var M=d[0]-v[0]*m.k,k=d[1]-v[1]*m.k;return M===m.x&&k===m.y?m:new Tt(m.k,M,k)}function x(m){return[(+m[0][0]+ +m[1][0])/2,(+m[0][1]+ +m[1][1])/2]}function S(m,d,v,M){m.on("start.zoom",function(){N(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(M).end()}).tween("zoom",function(){var k=this,$=arguments,I=N(k,$).event(M),D=n.apply(k,$),H=v==null?x(D):typeof v=="function"?v.apply(k,$):v,J=Math.max(D[1][0]-D[0][0],D[1][1]-D[0][1]),W=k.__zoom,tt=typeof d=="function"?d.apply(k,$):d,Pt=s(W.invert(H).concat(J/W.k),tt.invert(H).concat(J/tt.k));return function(vt){if(vt===1)vt=tt;else{var $t=Pt(vt),De=J/$t[2];vt=new Tt(De,H[0]-$t[0]*De,H[1]-$t[1]*De)}I.zoom(null,vt)}})}function N(m,d,v){return!v&&m.__zooming||new T(m,d)}function T(m,d){this.that=m,this.args=d,this.active=0,this.sourceEvent=null,this.extent=n.apply(m,d),this.taps=0}T.prototype={event:function(m){return m&&(this.sourceEvent=m),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(m,d){return this.mouse&&m!=="mouse"&&(this.mouse[1]=d.invert(this.mouse[0])),this.touch0&&m!=="touch"&&(this.touch0[1]=d.invert(this.touch0[0])),this.touch1&&m!=="touch"&&(this.touch1[1]=d.invert(this.touch1[0])),this.that.__zoom=d,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(m){var d=zt(this.that).datum();l.call(m,this.that,new Mf(m,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),d)}};function L(m,...d){if(!t.apply(this,arguments))return;var v=N(this,d).event(m),M=this.__zoom,k=Math.max(a[0],Math.min(a[1],M.k*Math.pow(2,r.apply(this,arguments)))),$=Ht(m);if(v.wheel)(v.mouse[0][0]!==$[0]||v.mouse[0][1]!==$[1])&&(v.mouse[1]=M.invert(v.mouse[0]=$)),clearTimeout(v.wheel);else{if(M.k===k)return;v.mouse=[$,M.invert($)],ne(this),v.start()}ln(m),v.wheel=setTimeout(I,g),v.zoom("mouse",e(A(E(M,k),v.mouse[0],v.mouse[1]),v.extent,o));function I(){v.wheel=null,v.end()}}function q(m,...d){if(h||!t.apply(this,arguments))return;var v=m.currentTarget,M=N(this,d,!0).event(m),k=zt(m.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",J,!0),$=Ht(m,v),I=m.clientX,D=m.clientY;Bs(m.view),Ke(m),M.mouse=[$,this.__zoom.invert($)],ne(this),M.start();function H(W){if(ln(W),!M.moved){var tt=W.clientX-I,Pt=W.clientY-D;M.moved=tt*tt+Pt*Pt>_}M.event(W).zoom("mouse",e(A(M.that.__zoom,M.mouse[0]=Ht(W,v),M.mouse[1]),M.extent,o))}function J(W){k.on("mousemove.zoom mouseup.zoom",null),Gs(W.view,M.moved),ln(W),M.event(W).end()}}function F(m,...d){if(t.apply(this,arguments)){var v=this.__zoom,M=Ht(m.changedTouches?m.changedTouches[0]:m,this),k=v.invert(M),$=v.k*(m.shiftKey?.5:2),I=e(A(E(v,$),M,k),n.apply(this,d),o);ln(m),u>0?zt(this).transition().duration(u).call(S,I,M,m):zt(this).call(y.transform,I,M,m)}}function z(m,...d){if(t.apply(this,arguments)){var v=m.touches,M=v.length,k=N(this,d,m.changedTouches.length===M).event(m),$,I,D,H;for(Ke(m),I=0;I<M;++I)D=v[I],H=Ht(D,this),H=[H,this.__zoom.invert(H),D.identifier],k.touch0?!k.touch1&&k.touch0[2]!==H[2]&&(k.touch1=H,k.taps=0):(k.touch0=H,$=!0,k.taps=1+!!c);c&&(c=clearTimeout(c)),$&&(k.taps<2&&(f=H[0],c=setTimeout(function(){c=null},p)),ne(this),k.start())}}function j(m,...d){if(this.__zooming){var v=N(this,d).event(m),M=m.changedTouches,k=M.length,$,I,D,H;for(ln(m),$=0;$<k;++$)I=M[$],D=Ht(I,this),v.touch0&&v.touch0[2]===I.identifier?v.touch0[0]=D:v.touch1&&v.touch1[2]===I.identifier&&(v.touch1[0]=D);if(I=v.that.__zoom,v.touch1){var J=v.touch0[0],W=v.touch0[1],tt=v.touch1[0],Pt=v.touch1[1],vt=(vt=tt[0]-J[0])*vt+(vt=tt[1]-J[1])*vt,$t=($t=Pt[0]-W[0])*$t+($t=Pt[1]-W[1])*$t;I=E(I,Math.sqrt(vt/$t)),D=[(J[0]+tt[0])/2,(J[1]+tt[1])/2],H=[(W[0]+Pt[0])/2,(W[1]+Pt[1])/2]}else if(v.touch0)D=v.touch0[0],H=v.touch0[1];else return;v.zoom("touch",e(A(I,D,H),v.extent,o))}}function O(m,...d){if(this.__zooming){var v=N(this,d).event(m),M=m.changedTouches,k=M.length,$,I;for(Ke(m),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),$=0;$<k;++$)I=M[$],v.touch0&&v.touch0[2]===I.identifier?delete v.touch0:v.touch1&&v.touch1[2]===I.identifier&&delete v.touch1;if(v.touch1&&!v.touch0&&(v.touch0=v.touch1,delete v.touch1),v.touch0)v.touch0[1]=this.__zoom.invert(v.touch0[0]);else if(v.end(),v.taps===2&&(I=Ht(I,this),Math.hypot(f[0]-I[0],f[1]-I[1])<w)){var D=zt(this).on("dblclick.zoom");D&&D.apply(this,arguments)}}}return y.wheelDelta=function(m){return arguments.length?(r=typeof m=="function"?m:Wn(+m),y):r},y.filter=function(m){return arguments.length?(t=typeof m=="function"?m:Wn(!!m),y):t},y.touchable=function(m){return arguments.length?(i=typeof m=="function"?m:Wn(!!m),y):i},y.extent=function(m){return arguments.length?(n=typeof m=="function"?m:Wn([[+m[0][0],+m[0][1]],[+m[1][0],+m[1][1]]]),y):n},y.scaleExtent=function(m){return arguments.length?(a[0]=+m[0],a[1]=+m[1],y):[a[0],a[1]]},y.translateExtent=function(m){return arguments.length?(o[0][0]=+m[0][0],o[1][0]=+m[1][0],o[0][1]=+m[0][1],o[1][1]=+m[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(m){return arguments.length?(e=m,y):e},y.duration=function(m){return arguments.length?(u=+m,y):u},y.interpolate=function(m){return arguments.length?(s=m,y):s},y.on=function(){var m=l.on.apply(l,arguments);return m===l?y:m},y.clickDistance=function(m){return arguments.length?(_=(m=+m)*m,y):Math.sqrt(_)},y.tapDistance=function(m){return arguments.length?(w=+m,y):w},y}const Rf=ra(void 0),zf={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},Tf=({value:t=zf,children:n})=>Q.createElement(Rf.Provider,{value:t},n);function Qi(t,n,e){const r=(t*e.k-t)/2,i=(n*e.k-n)/2;return[t/2-(r+e.x)/e.k,n/2-(i+e.y)/e.k]}function ta(t,n,e,r,i,a){const o=t([r,i]);return o?{x:n/2-o[0]*a,y:e/2-o[1]*a,k:a}:null}function If({center:t=[0,0],filterZoomEvent:n,onMoveStart:e,onMoveEnd:r,onMove:i,translateExtent:a=[[-1/0,-1/0],[1/0,1/0]],scaleExtent:o=[1,8],zoom:u=1}){const{width:s,height:l,projection:c}=Dt(),[f,h]=t,[p,g]=Ot(()=>ta(c,s,l,f,h,u)??{x:0,y:0,k:1}),_=Bt(null),w=Bt(null),y=Bt(null),E=Bt(!1),[A,x]=a,[S,N]=A,[T,L]=x,[q,F]=o,z=Bt(e),j=Bt(i),O=Bt(r),m=Bt(n);return Qt(()=>{z.current=e,j.current=i,O.current=r,m.current=n}),Qt(()=>{const d=w.current;if(!d)return;const v=zt(d),M=Cf().extent([[0,0],[s,l]]).filter(k=>{if(m.current)return m.current(k);const $=k;return!!k&&!$.ctrlKey&&!$.button}).scaleExtent([q,F]).translateExtent([[S,N],[T,L]]).on("start",k=>{if(!z.current||E.current)return;const $=c.invert?.(Qi(s,l,k.transform));z.current({coordinates:$??void 0,zoom:k.transform.k},k)}).on("zoom",k=>{if(E.current)return;const{transform:$,sourceEvent:I}=k;g({x:$.x,y:$.y,k:$.k,dragging:I}),j.current&&j.current({x:$.x,y:$.y,zoom:$.k,dragging:I},k)}).on("end",k=>{if(E.current)return void(E.current=!1);const $=c.invert?.(Qi(s,l,k.transform));if($){const[I,D]=$;_.current={x:I,y:D,k:k.transform.k}}O.current&&O.current({coordinates:$??void 0,zoom:k.transform.k},k)});y.current=M,v.call(M)},[s,l,S,N,T,L,q,F,c]),Qt(()=>{if(_.current&&f===_.current.x&&h===_.current.y&&u===_.current.k)return;const d=ta(c,s,l,f,h,u);if(!d||!w.current||!y.current)return;const v=zt(w.current);E.current=!0,v.call(y.current.transform,Jr.translate(d.x,d.y).scale(d.k)),g(M=>M.x===d.x&&M.y===d.y&&M.k===d.k?M:d),_.current={x:f,y:h,k:u}},[f,h,u,s,l,c]),{mapRef:w,position:p,transformString:`translate(${p.x} ${p.y}) scale(${p.k})`}}const Lf=qt(({center:t=[0,0],zoom:n=1,minZoom:e=1,maxZoom:r=8,translateExtent:i,filterZoomEvent:a,onMoveStart:o,onMove:u,onMoveEnd:s,className:l="",children:c,...f},h)=>{const{width:p,height:g}=Dt(),{mapRef:_,transformString:w,position:y}=If({center:t,filterZoomEvent:a,onMoveStart:o,onMove:u,onMoveEnd:s,scaleExtent:[e,r],translateExtent:i,zoom:n});return Q.createElement(Tf,{value:{x:y.x,y:y.y,k:y.k,transformString:w}},Q.createElement("g",{ref:_},Q.createElement("rect",{width:p,height:g,fill:"transparent"}),Q.createElement("g",{ref:h,transform:w,className:`rsm-zoomable-group ${l}`,...f},c)))});Lf.displayName="ZoomableGroup";const qf="_header_lm0yk_1",Df="_subtitle_lm0yk_10",Bf="_mapCard_lm0yk_17",Gf="_canvasWrap_lm0yk_28",Ff="_mapSvg_lm0yk_33",Hf="_tooltip_lm0yk_39",Xf="_statsGrid_lm0yk_63",Of="_statCard_lm0yk_73",Yf="_statValue_lm0yk_96",Kf="_statLabel_lm0yk_104",Vf="_loading_lm0yk_111",Wf="_error_lm0yk_118",Uf="_glow_lm0yk_161",et={header:qf,subtitle:Df,mapCard:Bf,canvasWrap:Gf,mapSvg:Ff,tooltip:Hf,statsGrid:Xf,statCard:Of,statValue:Yf,statLabel:Kf,loading:Vf,error:Wf,glow:Uf},na={"Africa/Abidjan":[-4.03,5.32],"Africa/Accra":[-.22,5.55],"Africa/Addis_Ababa":[38.7,9.03],"Africa/Algiers":[3.05,36.78],"Africa/Asmara":[38.88,15.33],"Africa/Bamako":[-8,12.65],"Africa/Bangui":[18.58,4.37],"Africa/Banjul":[-16.65,13.47],"Africa/Bissau":[-15.58,11.85],"Africa/Blantyre":[35,-15.78],"Africa/Brazzaville":[15.28,-4.27],"Africa/Bujumbura":[29.37,-3.38],"Africa/Cairo":[31.25,30.05],"Africa/Casablanca":[-7.58,33.65],"Africa/Ceuta":[-5.32,35.88],"Africa/Conakry":[-13.72,9.52],"Africa/Dakar":[-17.43,14.67],"Africa/Dar_es_Salaam":[39.28,-6.8],"Africa/Djibouti":[43.15,11.6],"Africa/Douala":[9.7,4.05],"Africa/El_Aaiun":[-13.2,27.15],"Africa/Freetown":[-13.25,8.5],"Africa/Gaborone":[25.92,-24.65],"Africa/Harare":[31.05,-17.83],"Africa/Johannesburg":[28,-26.25],"Africa/Juba":[31.62,4.85],"Africa/Kampala":[32.42,.32],"Africa/Khartoum":[32.53,15.6],"Africa/Kigali":[30.07,-1.95],"Africa/Kinshasa":[15.3,-4.3],"Africa/Lagos":[3.4,6.45],"Africa/Libreville":[9.45,.38],"Africa/Lome":[1.22,6.13],"Africa/Luanda":[13.23,-8.8],"Africa/Lubumbashi":[27.47,-11.67],"Africa/Lusaka":[28.28,-15.42],"Africa/Malabo":[8.78,3.75],"Africa/Maputo":[32.58,-25.97],"Africa/Maseru":[27.5,-29.47],"Africa/Mbabane":[31.1,-26.3],"Africa/Mogadishu":[45.37,2.07],"Africa/Monrovia":[-10.78,6.3],"Africa/Nairobi":[36.82,-1.28],"Africa/Ndjamena":[15.05,12.12],"Africa/Niamey":[2.12,13.52],"Africa/Nouakchott":[-15.95,18.1],"Africa/Ouagadougou":[-1.52,12.37],"Africa/Porto-Novo":[2.62,6.48],"Africa/Sao_Tome":[6.73,.33],"Africa/Tripoli":[13.18,32.9],"Africa/Tunis":[10.18,36.8],"Africa/Windhoek":[17.1,-22.57],"America/Adak":[-176.66,51.88],"America/Anchorage":[-149.9,61.22],"America/Anguilla":[-63.07,18.2],"America/Antigua":[-61.8,17.05],"America/Araguaina":[-48.2,-7.2],"America/Argentina/Buenos_Aires":[-58.45,-34.6],"America/Argentina/Catamarca":[-65.78,-28.47],"America/Argentina/Cordoba":[-64.18,-31.4],"America/Argentina/Jujuy":[-65.3,-24.18],"America/Argentina/La_Rioja":[-66.85,-29.43],"America/Argentina/Mendoza":[-68.82,-32.88],"America/Argentina/Rio_Gallegos":[-69.22,-51.63],"America/Argentina/Salta":[-65.42,-24.78],"America/Argentina/San_Juan":[-68.52,-31.53],"America/Argentina/San_Luis":[-66.35,-33.32],"America/Argentina/Tucuman":[-65.22,-26.82],"America/Argentina/Ushuaia":[-68.3,-54.8],"America/Aruba":[-69.97,12.5],"America/Asuncion":[-57.67,-25.27],"America/Atikokan":[-91.62,48.76],"America/Bahia":[-38.52,-12.98],"America/Bahia_Banderas":[-105.25,20.8],"America/Barbados":[-59.62,13.1],"America/Belem":[-48.48,-1.45],"America/Belize":[-88.2,17.5],"America/Blanc-Sablon":[-57.12,51.42],"America/Boa_Vista":[-60.67,2.82],"America/Bogota":[-74.08,4.6],"America/Boise":[-116.2,43.61],"America/Cambridge_Bay":[-105.05,69.11],"America/Campo_Grande":[-54.62,-20.45],"America/Cancun":[-86.77,21.08],"America/Caracas":[-66.93,10.5],"America/Cayenne":[-52.33,4.93],"America/Cayman":[-81.38,19.3],"America/Chicago":[-87.65,41.85],"America/Chihuahua":[-106.08,28.63],"America/Ciudad_Juarez":[-106.48,31.73],"America/Costa_Rica":[-84.08,9.93],"America/Coyhaique":[-72.07,-45.57],"America/Creston":[-116.52,49.1],"America/Cuiaba":[-56.08,-15.58],"America/Curacao":[-69,12.18],"America/Danmarkshavn":[-18.67,76.77],"America/Dawson":[-139.42,64.07],"America/Dawson_Creek":[-120.23,55.77],"America/Denver":[-104.98,39.74],"America/Detroit":[-83.05,42.33],"America/Dominica":[-61.4,15.3],"America/Edmonton":[-113.47,53.55],"America/Eirunepe":[-69.87,-6.67],"America/El_Salvador":[-89.2,13.7],"America/Fort_Nelson":[-122.7,58.8],"America/Fortaleza":[-38.5,-3.72],"America/Glace_Bay":[-59.95,46.2],"America/Goose_Bay":[-60.42,53.33],"America/Grand_Turk":[-71.13,21.47],"America/Grenada":[-61.75,12.05],"America/Guadeloupe":[-61.53,16.23],"America/Guatemala":[-90.52,14.63],"America/Guayaquil":[-79.83,-2.17],"America/Guyana":[-58.17,6.8],"America/Halifax":[-63.6,44.65],"America/Havana":[-82.37,23.13],"America/Hermosillo":[-110.97,29.07],"America/Indiana/Indianapolis":[-86.16,39.77],"America/Indiana/Knox":[-86.62,41.3],"America/Indiana/Marengo":[-86.34,38.38],"America/Indiana/Petersburg":[-87.28,38.49],"America/Indiana/Tell_City":[-86.76,37.95],"America/Indiana/Vevay":[-85.07,38.75],"America/Indiana/Vincennes":[-87.53,38.68],"America/Indiana/Winamac":[-86.6,41.05],"America/Inuvik":[-133.72,68.35],"America/Iqaluit":[-68.47,63.73],"America/Jamaica":[-76.79,17.97],"America/Juneau":[-134.42,58.3],"America/Kentucky/Louisville":[-85.76,38.25],"America/Kentucky/Monticello":[-84.85,36.83],"America/Kralendijk":[-68.28,12.15],"America/La_Paz":[-68.15,-16.5],"America/Lima":[-77.05,-12.05],"America/Los_Angeles":[-118.24,34.05],"America/Lower_Princes":[-63.05,18.05],"America/Maceio":[-35.72,-9.67],"America/Managua":[-86.28,12.15],"America/Manaus":[-60.02,-3.13],"America/Marigot":[-63.08,18.07],"America/Martinique":[-61.08,14.6],"America/Matamoros":[-97.5,25.83],"America/Mazatlan":[-106.42,23.22],"America/Menominee":[-87.61,45.11],"America/Merida":[-89.62,20.97],"America/Metlakatla":[-131.58,55.13],"America/Mexico_City":[-99.15,19.4],"America/Miquelon":[-56.33,47.05],"America/Moncton":[-64.78,46.1],"America/Monterrey":[-100.32,25.67],"America/Montevideo":[-56.21,-34.91],"America/Montserrat":[-62.22,16.72],"America/Nassau":[-77.35,25.08],"America/New_York":[-74.01,40.71],"America/Nome":[-165.41,64.5],"America/Noronha":[-32.42,-3.85],"America/North_Dakota/Beulah":[-101.78,47.26],"America/North_Dakota/Center":[-101.3,47.12],"America/North_Dakota/New_Salem":[-101.41,46.85],"America/Nuuk":[-51.73,64.18],"America/Ojinaga":[-104.42,29.57],"America/Panama":[-79.53,8.97],"America/Paramaribo":[-55.17,5.83],"America/Phoenix":[-112.07,33.45],"America/Port-au-Prince":[-72.33,18.53],"America/Port_of_Spain":[-61.52,10.65],"America/Porto_Velho":[-63.9,-8.77],"America/Puerto_Rico":[-66.11,18.47],"America/Punta_Arenas":[-70.92,-53.15],"America/Rankin_Inlet":[-92.08,62.82],"America/Recife":[-34.9,-8.05],"America/Regina":[-104.65,50.4],"America/Resolute":[-94.83,74.7],"America/Rio_Branco":[-67.8,-9.97],"America/Santarem":[-54.87,-2.43],"America/Santiago":[-70.67,-33.45],"America/Santo_Domingo":[-69.9,18.47],"America/Sao_Paulo":[-46.62,-23.53],"America/Scoresbysund":[-21.97,70.48],"America/Sitka":[-135.3,57.18],"America/St_Barthelemy":[-62.85,17.88],"America/St_Johns":[-52.72,47.57],"America/St_Kitts":[-62.72,17.3],"America/St_Lucia":[-61,14.02],"America/St_Thomas":[-64.93,18.35],"America/St_Vincent":[-61.23,13.15],"America/Swift_Current":[-107.83,50.28],"America/Tegucigalpa":[-87.22,14.1],"America/Thule":[-68.78,76.57],"America/Tijuana":[-117.02,32.53],"America/Toronto":[-79.38,43.65],"America/Tortola":[-64.62,18.45],"America/Vancouver":[-123.12,49.27],"America/Whitehorse":[-135.05,60.72],"America/Winnipeg":[-97.15,49.88],"America/Yakutat":[-139.73,59.55],"Antarctica/Casey":[110.52,-66.28],"Antarctica/Davis":[77.97,-68.58],"Antarctica/DumontDUrville":[140.02,-66.67],"Antarctica/Macquarie":[158.95,-54.5],"Antarctica/Mawson":[62.88,-67.6],"Antarctica/McMurdo":[166.6,-77.83],"Antarctica/Palmer":[-64.1,-64.8],"Antarctica/Rothera":[-68.13,-67.57],"Antarctica/Syowa":[39.59,-69.01],"Antarctica/Troll":[2.53,-72.01],"Antarctica/Vostok":[106.9,-78.4],"Arctic/Longyearbyen":[16,78],"Asia/Aden":[45.2,12.75],"Asia/Almaty":[76.95,43.25],"Asia/Amman":[35.93,31.95],"Asia/Anadyr":[177.48,64.75],"Asia/Aqtau":[50.27,44.52],"Asia/Aqtobe":[57.17,50.28],"Asia/Ashgabat":[58.38,37.95],"Asia/Atyrau":[51.93,47.12],"Asia/Baghdad":[44.42,33.35],"Asia/Bahrain":[50.58,26.38],"Asia/Baku":[49.85,40.38],"Asia/Bangkok":[100.52,13.75],"Asia/Barnaul":[83.75,53.37],"Asia/Beirut":[35.5,33.88],"Asia/Bishkek":[74.6,42.9],"Asia/Brunei":[114.92,4.93],"Asia/Chita":[113.47,52.05],"Asia/Colombo":[79.85,6.93],"Asia/Damascus":[36.3,33.5],"Asia/Dhaka":[90.42,23.72],"Asia/Dili":[125.58,-8.55],"Asia/Dubai":[55.3,25.3],"Asia/Dushanbe":[68.8,38.58],"Asia/Famagusta":[33.95,35.12],"Asia/Gaza":[34.47,31.5],"Asia/Hebron":[35.1,31.53],"Asia/Ho_Chi_Minh":[106.67,10.75],"Asia/Hong_Kong":[114.15,22.28],"Asia/Hovd":[91.65,48.02],"Asia/Irkutsk":[104.33,52.27],"Asia/Jakarta":[106.8,-6.17],"Asia/Jayapura":[140.7,-2.53],"Asia/Jerusalem":[35.22,31.78],"Asia/Kabul":[69.2,34.52],"Asia/Kamchatka":[158.65,53.02],"Asia/Karachi":[67.05,24.87],"Asia/Kathmandu":[85.32,27.72],"Asia/Khandyga":[135.55,62.66],"Asia/Kolkata":[88.37,22.53],"Asia/Krasnoyarsk":[92.83,56.02],"Asia/Kuala_Lumpur":[101.7,3.17],"Asia/Kuching":[110.33,1.55],"Asia/Kuwait":[47.98,29.33],"Asia/Macau":[113.54,22.2],"Asia/Magadan":[150.8,59.57],"Asia/Makassar":[119.4,-5.12],"Asia/Manila":[120.97,14.59],"Asia/Muscat":[58.58,23.6],"Asia/Nicosia":[33.37,35.17],"Asia/Novokuznetsk":[87.12,53.75],"Asia/Novosibirsk":[82.92,55.03],"Asia/Omsk":[73.4,55],"Asia/Oral":[51.35,51.22],"Asia/Phnom_Penh":[104.92,11.55],"Asia/Pontianak":[109.33,-.03],"Asia/Pyongyang":[125.75,39.02],"Asia/Qatar":[51.53,25.28],"Asia/Qostanay":[63.62,53.2],"Asia/Qyzylorda":[65.47,44.8],"Asia/Riyadh":[46.72,24.63],"Asia/Sakhalin":[142.7,46.97],"Asia/Samarkand":[66.8,39.67],"Asia/Seoul":[126.97,37.55],"Asia/Shanghai":[121.47,31.23],"Asia/Singapore":[103.85,1.28],"Asia/Srednekolymsk":[153.72,67.47],"Asia/Taipei":[121.5,25.05],"Asia/Tashkent":[69.3,41.33],"Asia/Tbilisi":[44.82,41.72],"Asia/Tehran":[51.43,35.67],"Asia/Thimphu":[89.65,27.47],"Asia/Tokyo":[139.74,35.65],"Asia/Tomsk":[84.97,56.5],"Asia/Ulaanbaatar":[106.88,47.92],"Asia/Urumqi":[87.58,43.8],"Asia/Ust-Nera":[143.23,64.56],"Asia/Vientiane":[102.6,17.97],"Asia/Vladivostok":[131.93,43.17],"Asia/Yakutsk":[129.67,62],"Asia/Yangon":[96.17,16.78],"Asia/Yekaterinburg":[60.6,56.85],"Asia/Yerevan":[44.5,40.18],"Atlantic/Azores":[-25.67,37.73],"Atlantic/Bermuda":[-64.77,32.28],"Atlantic/Canary":[-15.4,28.1],"Atlantic/Cape_Verde":[-23.52,14.92],"Atlantic/Faroe":[-6.77,62.02],"Atlantic/Madeira":[-16.9,32.63],"Atlantic/Reykjavik":[-21.85,64.15],"Atlantic/South_Georgia":[-36.53,-54.27],"Atlantic/St_Helena":[-5.7,-15.92],"Atlantic/Stanley":[-57.85,-51.7],"Australia/Adelaide":[138.58,-34.92],"Australia/Brisbane":[153.03,-27.47],"Australia/Broken_Hill":[141.45,-31.95],"Australia/Darwin":[130.83,-12.47],"Australia/Eucla":[128.87,-31.72],"Australia/Hobart":[147.32,-42.88],"Australia/Lindeman":[149,-20.27],"Australia/Lord_Howe":[159.08,-31.55],"Australia/Melbourne":[144.97,-37.82],"Australia/Perth":[115.85,-31.95],"Australia/Sydney":[151.22,-33.87],"Europe/Amsterdam":[4.9,52.37],"Europe/Andorra":[1.52,42.5],"Europe/Astrakhan":[48.05,46.35],"Europe/Athens":[23.72,37.97],"Europe/Belgrade":[20.5,44.83],"Europe/Berlin":[13.37,52.5],"Europe/Bratislava":[17.12,48.15],"Europe/Brussels":[4.33,50.83],"Europe/Bucharest":[26.1,44.43],"Europe/Budapest":[19.08,47.5],"Europe/Busingen":[8.68,47.7],"Europe/Chisinau":[28.83,47],"Europe/Copenhagen":[12.58,55.67],"Europe/Dublin":[-6.25,53.33],"Europe/Gibraltar":[-5.35,36.13],"Europe/Guernsey":[-2.54,49.45],"Europe/Helsinki":[24.97,60.17],"Europe/Isle_of_Man":[-4.47,54.15],"Europe/Istanbul":[28.97,41.02],"Europe/Jersey":[-2.11,49.18],"Europe/Kaliningrad":[20.5,54.72],"Europe/Kirov":[49.65,58.6],"Europe/Kyiv":[30.52,50.43],"Europe/Lisbon":[-9.13,38.72],"Europe/Ljubljana":[14.52,46.05],"Europe/London":[-.13,51.51],"Europe/Luxembourg":[6.15,49.6],"Europe/Madrid":[-3.68,40.4],"Europe/Malta":[14.52,35.9],"Europe/Mariehamn":[19.95,60.1],"Europe/Minsk":[27.57,53.9],"Europe/Monaco":[7.38,43.7],"Europe/Moscow":[37.62,55.76],"Europe/Oslo":[10.75,59.92],"Europe/Paris":[2.33,48.87],"Europe/Podgorica":[19.27,42.43],"Europe/Prague":[14.43,50.08],"Europe/Riga":[24.1,56.95],"Europe/Rome":[12.48,41.9],"Europe/Samara":[50.15,53.2],"Europe/San_Marino":[12.47,43.92],"Europe/Sarajevo":[18.42,43.87],"Europe/Saratov":[46.03,51.57],"Europe/Simferopol":[34.1,44.95],"Europe/Skopje":[21.43,41.98],"Europe/Sofia":[23.32,42.68],"Europe/Stockholm":[18.05,59.33],"Europe/Tallinn":[24.75,59.42],"Europe/Tirane":[19.83,41.33],"Europe/Ulyanovsk":[48.4,54.33],"Europe/Vaduz":[9.52,47.15],"Europe/Vatican":[12.45,41.9],"Europe/Vienna":[16.33,48.22],"Europe/Vilnius":[25.32,54.68],"Europe/Volgograd":[44.42,48.73],"Europe/Warsaw":[21,52.25],"Europe/Zagreb":[15.97,45.8],"Europe/Zurich":[8.53,47.38],"Indian/Antananarivo":[47.52,-18.92],"Indian/Chagos":[72.42,-7.33],"Indian/Christmas":[105.72,-10.42],"Indian/Cocos":[96.92,-12.17],"Indian/Comoro":[43.27,-11.68],"Indian/Kerguelen":[70.22,-49.35],"Indian/Mahe":[55.47,-4.67],"Indian/Maldives":[73.5,4.17],"Indian/Mauritius":[57.5,-20.17],"Indian/Mayotte":[45.23,-12.78],"Indian/Reunion":[55.47,-20.87],"Pacific/Apia":[-171.73,-13.83],"Pacific/Auckland":[174.77,-36.87],"Pacific/Bougainville":[155.57,-6.22],"Pacific/Chatham":[-176.55,-43.95],"Pacific/Chuuk":[151.78,7.42],"Pacific/Easter":[-109.43,-27.15],"Pacific/Efate":[168.42,-17.67],"Pacific/Fakaofo":[-171.23,-9.37],"Pacific/Fiji":[178.42,-18.13],"Pacific/Funafuti":[179.22,-8.52],"Pacific/Galapagos":[-89.6,-.9],"Pacific/Gambier":[-134.95,-23.13],"Pacific/Guadalcanal":[160.2,-9.53],"Pacific/Guam":[144.75,13.47],"Pacific/Honolulu":[-157.86,21.31],"Pacific/Kanton":[-171.72,-2.78],"Pacific/Kiritimati":[-157.33,1.87],"Pacific/Kosrae":[162.98,5.32],"Pacific/Kwajalein":[167.33,9.08],"Pacific/Majuro":[171.2,7.15],"Pacific/Marquesas":[-139.5,-9],"Pacific/Midway":[-177.37,28.22],"Pacific/Nauru":[166.92,-.52],"Pacific/Niue":[-169.92,-19.02],"Pacific/Norfolk":[167.97,-29.05],"Pacific/Noumea":[166.45,-22.27],"Pacific/Pago_Pago":[-170.7,-14.27],"Pacific/Palau":[134.48,7.33],"Pacific/Pitcairn":[-130.08,-25.07],"Pacific/Pohnpei":[158.22,6.97],"Pacific/Port_Moresby":[147.17,-9.5],"Pacific/Rarotonga":[-159.77,-21.23],"Pacific/Saipan":[145.75,15.2],"Pacific/Tahiti":[-149.57,-17.53],"Pacific/Tarawa":[173,1.42],"Pacific/Tongatapu":[-175.2,-21.13],"Pacific/Wake":[166.62,19.28],"Pacific/Wallis":[-176.17,-13.3]},ea="https://script.google.com/macros/s/AKfycbxpllCbhqNjqFN02er9WV-0Tv-Y9br13UqXZqGHzSMetAgqKaFX5oFKGHgxji1fxJ6udw/exec",Zf="https://cdn.jsdelivr.net/npm/world-atlas@2/countries-110m.json",Qf=()=>{const[t,n]=Ot(null),[e,r]=Ot(!0),[i,a]=Ot(""),[o,u]=Ot(null),[s,l]=Ot({x:0,y:0});Qt(()=>{document.title="Map - dango"},[]),Qt(()=>{(async()=>{try{const[h,p]=await Promise.all([fetch(`${ea}?type=locations`),fetch(ea)]),g=await h.json(),_=await p.json(),w=g&&g.locations||{},y={};for(const[E,A]of Object.entries(w))!E||E==="Unknown"||na[E]&&(y[E]=A);n({locations:y,total:(_&&_.total)??0,active:(_&&_.active)??0})}catch(h){console.error("Map fetch failed:",h),a("Failed to load map data. Please try again later.")}finally{r(!1)}})()},[]);const c=[];if(t){Math.max(1,...Object.values(t.locations));for(const[f,h]of Object.entries(t.locations)){const p=na[f];if(!p)continue;const g=1.5+Math.min(3,Math.sqrt(h+1)*.6-.8);c.push({tz:f,count:h,coordinates:p,r:g})}}return e?X("div",{className:et.loading,children:"Loading global map..."}):i?X("div",{className:et.error,children:i}):t?X("div",{className:"page-container",children:[X("div",{className:et.header,children:X("div",{children:[X("h2",{className:"section-title",children:"Global User Map"}),X("p",{className:et.subtitle,children:"Purple dots show where installations are located, derived from the timezone each device reports. Hover a dot for details."})]})}),X("div",{className:et.mapCard,children:X("div",{className:et.canvasWrap,children:[X(Ya,{projection:"geoEqualEarth",projectionConfig:{rotate:[0,0,0],scale:105},className:et.mapSvg,children:[X(Ka,{geography:Zf,children:({geographies:f})=>f.map(h=>X(tc,{geography:h,fill:"#1a1a2e",stroke:"#2a2a4a",strokeWidth:.5,style:{default:{outline:"none"},hover:{outline:"none",fill:"#252545"},pressed:{outline:"none"}}},h.rsmKey))}),c.map(f=>X(Za,{coordinates:f.coordinates,onMouseEnter:h=>{u(f),l({x:h.clientX,y:h.clientY})},onMouseMove:h=>{l({x:h.clientX,y:h.clientY})},onMouseLeave:()=>u(null),children:[X("circle",{r:f.r+3,fill:"#a855f7",className:et.glow}),X("circle",{r:f.r,fill:"#a855f7",stroke:"#a855f7",strokeWidth:.8})]},f.tz))]}),o&&X("div",{className:et.tooltip,style:{left:s.x+14,top:s.y-40,position:"fixed"},children:[X("strong",{children:o.tz}),X("span",{children:[o.count," user",o.count===1?"":"s"]})]}),X("div",{className:et.statsGrid,children:[X("div",{className:et.statCard,children:[X(Qr,{name:"users"}),X("div",{children:[X("span",{className:et.statValue,children:t.total}),X("span",{className:et.statLabel,children:"Total Users"})]})]}),X("div",{className:et.statCard,children:[X(Qr,{name:"user-clock"}),X("div",{children:[X("span",{className:et.statValue,children:t.active}),X("span",{className:et.statLabel,children:"Active (24h)"})]})]})]})]})})]}):null};export{Qf as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._shrinkSelect_130sm_1>select{align-self:flex-start;width:auto;max-width:100%}div._tightGrid_130sm_7{grid-template-columns:repeat(auto-fit,minmax(120px,max-content));justify-content:start;gap:var(--space-4)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as t,a as $e,o as Ge,h as me,d as l,T as he,S as ge}from"./vendor-core-8R2fFbyN.js";import{b as pe}from"./vendor-query-BXRECSI6.js";import{B as L,M as we,q as O,Q as Fe,z as Me}from"./index-IZgh1beL.js";import{I as A}from"./vendor-icons-CDMuNDeL.js";import{A as qe}from"./AnimeCard-B5A20jAI.js";import{S as xe}from"./SkeletonGrid-CtHKKMLj.js";import{E as Ue}from"./ErrorMessage-z4f4WGgP.js";import{u as Ye}from"./useMatureConsent-CT7-KfzG.js";import{u as je}from"./useProviders-BsRGONMA.js";import{s as a}from"./Search.module-CMEai-B-.js";import"./useAnimeInfoData-DeuwDSnI.js";import"./QueueOptionsButton-B6BMq66e.js";import"./vendor-ui-CUDCvRS_.js";import"./MediaCard-Be1ST9oj.js";import"./useIsMobile-Dm_b6Ob3.js";const Ke=({isOpen:m,onClose:n,onGrant:q})=>t(we,{isOpen:m,title:"Content Warning",onClose:n,children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("p",{children:"This title contains mature content intended for adult audiences."}),t("p",{children:["By proceeding, you confirm that you are ",t("strong",{children:"18 years of age or older"})," (or the age of majority in your jurisdiction) and wish to view this content."]}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[t(L,{variant:"secondary",onClick:n,children:"Go Back"}),t(L,{onClick:q,children:"I'm 18+, Continue"})]})]})}),Qe="_shrinkSelect_130sm_1",Ve="_tightGrid_130sm_7",z={shrinkSelect:Qe,tightGrid:Ve},We=[{value:"anilist",label:"AniList"},{value:"mal",label:"MAL"}],ze=[{value:"POPULARITY_DESC",label:"Popularity"},{value:"TRENDING_DESC",label:"Trending"},{value:"SCORE_DESC",label:"Score"},{value:"START_DATE_DESC",label:"Newest"},{value:"FAVOURITES_DESC",label:"Favourites"}],He=[{value:"",label:"All Status"},{value:"RELEASING",label:"Currently Airing"},{value:"FINISHED",label:"Finished"},{value:"NOT_YET_RELEASED",label:"Not Yet Released"}],Je=[{value:"",label:"Relevance"},{value:"visits:desc",label:"Most Visited"},{value:"title:asc",label:"Title A-Z"}],Ze={recent:"Latest",popular:"Popular",views:"Most Viewed",rating:"Top Rated",random:"Random"},Xe=[{value:"ALL",label:"All Seasons"},{value:"Winter",label:"Winter"},{value:"Spring",label:"Spring"},{value:"Summer",label:"Summer"},{value:"Fall",label:"Fall"}],ve=m=>m.split("-").map(n=>n&&n[0].toUpperCase()+n.slice(1)).join(" ");function vt(){const m=$e(),[n,q]=Ge(),{hasConsent:x,grant:fe}=Ye();me(()=>{document.title="Mature - dango"},[]);const[i,Se]=l(n.get("provider")||"anilist"),[S,H]=l(n.get("query")||""),[T,U]=l(n.get("query")||""),[d,h]=l(parseInt(n.get("page")||"1",10)||1),[R,Y]=l(()=>{const e=n.get("sortBy");return e||(i==="mal"?"SCORE_DESC":"POPULARITY_DESC")}),[_,J]=l(n.get("sortBy")||""),[b,be]=l(n.get("status")||""),[B,ye]=l(n.get("season")||"ALL"),[k,Ne]=l(n.get("year")||"ALL"),[g,D]=l(n.get("genre")||n.get("genres")||""),[j,Ce]=l(n.get("order")||"recent"),[K,Ae]=l(n.get("studio")||""),[$,Ie]=l(n.get("studio")||""),[Z,X]=l([]),[Q,Pe]=l(!1),[Ee,ee]=l(null),{options:te}=je(),ae=he(()=>te.filter(e=>e.mature&&(e.kind??"anime")==="anime"),[te]),re=he(()=>[...We,...ae.map(e=>({value:e.value,label:e.label}))],[ae]),{data:G}=pe({queryKey:["mature-filters"],queryFn:()=>O("/api/mature/filters"),enabled:x,staleTime:1/0}),c=i==="anilist"||i==="mal",V=c?void 0:G?.providers?.[i],I=V?.browse,P=V?.genres??[],y=V?.orders??[],ne=y.length>0&&!y.includes(j)?y[0]:j,w=!c&&(I?.genre===!0||P.length>0||Z.length>0),p=!c&&(I?.order===!0||y.length>0),N=!c&&I?.studio===!0,ie=!c&&I?.sort===!0,le=c?14:I?.pageSize??14,v=e=>{const r=new URLSearchParams;if(e.provider!=="anilist"&&r.set("provider",e.provider),e.query.trim()&&r.set("query",e.query.trim()),e.page>1&&r.set("page",String(e.page)),e.provider==="anilist")e.sort!=="POPULARITY_DESC"&&r.set("sortBy",e.sort),e.status&&r.set("status",e.status),e.season!=="ALL"&&r.set("season",e.season),e.year!=="ALL"&&r.set("year",e.year);else if(e.provider==="mal")e.sort!=="SCORE_DESC"&&r.set("sortBy",e.sort),e.status&&r.set("status",e.status);else{const s=G?.providers?.[e.provider]?.browse,u=G?.providers?.[e.provider]?.orders??[],o=u.length>0&&!u.includes(e.remoteOrder)?u[0]:e.remoteOrder;(!s||s.sort)&&e.remoteSort&&r.set("sortBy",e.remoteSort),(!s||s.genre)&&e.genre&&r.set("genre",e.genre),(!s||s.order)&&o!==(u[0]??"recent")&&r.set("order",o),(!s||s.studio)&&e.studio.trim()&&r.set("studio",e.studio.trim())}q(r,{replace:!0})},f=(e={})=>({provider:i,query:T,page:d,sort:R,remoteSort:_,status:b,season:B,year:k,genre:g,remoteOrder:j,studio:$,...e}),se=(()=>{const e=new URLSearchParams;return e.set("provider",i),T.trim()&&e.set("query",T.trim()),e.set("page",String(d)),e.set("limit",String(le)),i==="anilist"&&(e.set("sortBy",R),b&&e.set("status",b),B!=="ALL"&&e.set("season",B),k!=="ALL"&&e.set("year",k)),i==="mal"?(e.set("sortBy",R),b&&e.set("status",b)):c||(w&&g&&e.set("genre",g),p&&e.set("order",ne),ie&&_&&e.set("sortBy",_),N&&$.trim()&&e.set("studio",$.trim())),e.toString()})(),{data:C,isLoading:Oe,isError:Le,error:Te}=pe({queryKey:["mature-search",se],queryFn:()=>O(`/api/mature/search?${se}`),enabled:x});me(()=>{const e=C?.genres;!c&&P.length===0&&e&&e.length>0&&X(r=>{const s=new Set(r.map(o=>o.slug)),u=[...r];for(const o of e)o.slug&&!s.has(o.slug)&&(s.add(o.slug),u.push(o));return u.length===r.length?r:u})},[C,i,c,P.length]);const F=(C?.data||[]).map(e=>({...e,isAdult:!0})),oe=C?.hasMore??!1,E=()=>{Fe(),h(1);let e=g;!c&&!p&&S.trim()&&(e=""),D(e),N&&Ie(K),U(S),v(f({query:S,page:1,genre:e,studio:N?K:$}))},Re=e=>{Se(e),h(1),J(""),D(""),X([]),e==="mal"?Y("SCORE_DESC"):e==="anilist"&&Y("POPULARITY_DESC"),U(S),v(f({provider:e,page:1,remoteSort:"",genre:"",query:S}))},_e=e=>{D(e),h(1),e&&(H(""),U("")),v(f({genre:e,page:1,query:e?"":T}))},M=e=>{h(e),v(f({page:e})),window.scrollTo({top:0,behavior:"smooth"})},Be=async(e,r)=>{const s=r.id||r._id;if(i!=="mal"&&!/^\d+$/.test(s)&&(e.preventDefault(),e.stopPropagation(),!Ee)){ee(s);try{if(i!=="anilist"){let o=!1;try{o=(await O("/api/anilist-status"))?.available===!0}catch{o=!1}if(o){const ue=await O(`/api/mature/resolve?title=${encodeURIComponent(r.name)}`);m(`/anime/${ue.id}`);return}const ce=await fetch("/api/mature/allocate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:i,nativeId:s,title:r.name,thumbnail:r.thumbnail})}),de=await ce.json().catch(()=>null);if(!ce.ok||!de?.id)throw new Error("Allocate failed");m(`/anime/${de.id}`);return}const u=await O(`/api/mature/resolve?title=${encodeURIComponent(r.name)}`);m(`/anime/${u.id}`)}catch{Me.error("Could not match this title on AniList")}finally{ee(null)}}},W=new Date().getFullYear(),ke=[{value:"ALL",label:"All Years"},...Array.from({length:W-1980+1},(e,r)=>({value:String(W-r),label:String(W-r)}))],De=P.length>0?P.map(e=>({value:e,label:ve(e)})):Z.map(e=>({value:e.slug,label:e.name}));return x?t("div",{className:"page-container",children:[t("div",{className:a.header,children:[t("h1",{className:a.pageTitle,children:"Mature"}),t("p",{className:a.pageSubtitle,children:"Browse 18+ titles across AniList and streaming providers"})]}),t("div",{className:a.filterContainer,children:[t("div",{className:a.searchBarWrapper,children:[t("div",{className:a.inputIconWrapper,children:[t(A,{name:"search",className:a.searchIcon}),t("input",{type:"text",placeholder:`Search ${re.find(e=>e.value===i)?.label}...`,value:S,onChange:e=>H(e.target.value),onKeyDown:e=>{e.key==="Enter"&&E()},className:a.searchInput})]}),t("div",{className:a.searchActions,children:[t("select",{value:i,onChange:e=>Re(e.target.value),className:a.providerSelect,"aria-label":"Provider",children:re.map(e=>t("option",{value:e.value,children:e.label},e.value))}),t(L,{onClick:E,className:a.searchBtn,children:"Search"}),c&&t("button",{onClick:()=>Pe(!Q),className:`${a.filterToggleBtn} ${Q?a.active:""}`,children:[t(A,{name:"filter"})," Filters"]}),ie&&t("select",{value:_,onChange:e=>{J(e.target.value),h(1),v(f({remoteSort:e.target.value,page:1}))},className:a.providerSelect,"aria-label":"Sort",children:Je.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),(i==="anilist"||i==="mal")&&t("div",{className:`${a.advancedFilters} ${Q?a.show:""}`,children:[t("div",{className:a.filterDivider}),t("div",{className:a.filterGrid,children:[t("div",{className:a.filterItem,children:[t("label",{children:"Sort By"}),t("select",{value:R,onChange:e=>Y(e.currentTarget.value),children:ze.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:a.filterItem,children:[t("label",{children:"Status"}),t("select",{value:b,onChange:e=>be(e.currentTarget.value),children:He.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),i==="anilist"&&t(ge,{children:[t("div",{className:a.filterItem,children:[t("label",{children:"Season"}),t("select",{value:B,onChange:e=>ye(e.currentTarget.value),children:Xe.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:a.filterItem,children:[t("label",{children:"Year"}),t("select",{value:k,onChange:e=>Ne(e.currentTarget.value),children:ke.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]})]}),t("div",{className:a.filterActions,children:t(L,{onClick:E,className:a.searchBtn,children:"Apply Filters"})})]}),!c&&!!G&&(w||p||N)&&t("div",{className:`${a.advancedFilters} ${a.show}`,children:[t("div",{className:a.filterDivider}),t("div",{className:`${a.filterGrid} ${z.tightGrid}`,children:[p&&t("div",{className:`${a.filterItem} ${z.shrinkSelect}`,children:[t("label",{children:"Order"}),t("select",{value:ne,onChange:e=>{Ce(e.target.value),h(1),v(f({remoteOrder:e.target.value,page:1}))},children:(y.length>0?y:["recent"]).map(e=>t("option",{value:e,children:Ze[e]||e},e))})]}),w&&t("div",{className:`${a.filterItem} ${z.shrinkSelect}`,children:[t("label",{children:"Genre"}),t("select",{value:g,onChange:e=>{p?(D(e.target.value),h(1),v(f({genre:e.target.value,page:1}))):_e(e.target.value)},children:[t("option",{value:"",children:"All Genres"}),De.map(e=>t("option",{value:e.value,children:e.label},e.value))]})]}),N&&t("div",{className:a.filterItem,children:[t("label",{children:"Studio"}),t("input",{type:"text",placeholder:"Studio name...",value:K,onChange:e=>Ae(e.target.value),onKeyDown:e=>{e.key==="Enter"&&E()},className:a.searchInput})]})]}),g&&w&&!p&&t("p",{className:a.pageSubtitle,children:["Browsing the ",ve(g)," genre — search text is ignored while a genre is selected."]}),(p||N)&&t("div",{className:a.filterActions,children:t(L,{onClick:E,className:a.searchBtn,children:"Apply Filters"})})]})]}),Le&&t(Ue,{message:Te?.message||"Search failed"}),Oe?t(xe,{count:le}):F.length===0?t("div",{className:a.noResults,children:[t("h3",{children:"No results found"}),t("p",{children:"Try a different query, genre or provider"})]}):t(ge,{children:[t("div",{className:a.resultsHeader,children:[t("h2",{className:a.resultsTitle,children:[C?.total??F.length," result",(C?.total??F.length)===1?"":"s"]}),t("div",{className:a.pagination,children:[t("button",{className:a.pageBtn,disabled:d<=1,onClick:()=>M(d-1),children:[t(A,{name:"chevron-left"})," ",t("span",{children:"Prev"})]}),t("span",{className:a.pageInfo,children:["Page ",t("strong",{children:d})]}),t("button",{className:a.pageBtn,disabled:!oe,onClick:()=>M(d+1),children:[t("span",{children:"Next"})," ",t(A,{name:"chevron-right"})]})]})]}),t("div",{className:a.resultsGrid,children:F.map(e=>t("div",{onClickCapture:r=>Be(r,e),children:t(qe,{anime:e})},`${i}-${e._id}`))}),t("div",{className:a.bottomPagination,children:t("div",{className:a.pagination,children:[t("button",{className:a.pageBtn,disabled:d<=1,onClick:()=>M(d-1),children:[t(A,{name:"chevron-left"})," ",t("span",{children:"Prev"})]}),t("span",{className:a.pageInfo,children:["Page ",t("strong",{children:d})]}),t("button",{className:a.pageBtn,disabled:!oe,onClick:()=>M(d+1),children:[t("span",{children:"Next"})," ",t(A,{name:"chevron-right"})]})]})})]})]}):t(Ke,{isOpen:!0,onClose:()=>m("/"),onGrant:fe})}export{vt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as y,g as T,u as e,S as ee,$ as Ne,h as K,A as x,q as d,N as Ee,a as Se,L as Ie}from"./vendor-core-8R2fFbyN.js";import{a as Re,b as Ae,f as $e,s as Le}from"./vendor-ui-CUDCvRS_.js";import{I as v}from"./vendor-icons-CDMuNDeL.js";import{q as ke,d as Oe,u as ze,a as De,f as Ue,M as Ve,B as Q}from"./index-IZgh1beL.js";import{u as Ge}from"./useIsMobile-Dm_b6Ob3.js";const We="_popupPortal_7glox_1",Ye="_popupContent_7glox_6",je="_popupBackdrop_7glox_31",Fe="_mobile_7glox_38",Xe="_header_7glox_62",qe="_title_7glox_67",He="_body_7glox_87",Je="_metaRow_7glox_94",Ke="_metaItem_7glox_101",Qe="_scoreIcon_7glox_107",Ze="_synopsis_7glox_111",et="_details_7glox_121",tt="_detailItem_7glox_129",nt="_genres_7glox_133",ot="_genre_7glox_133",rt="_footer_7glox_148",st="_primaryAction_7glox_157",at="_watchBtn_7glox_161",ct="_secondaryActions_7glox_184",lt="_watchlistBtn_7glox_189",it="_detailsBtn_7glox_190",dt="_active_7glox_216",ut="_loading_7glox_227",_t="_spinner_7glox_237",R={popupPortal:We,popupContent:Ye,popupBackdrop:je,mobile:Fe,header:Xe,title:qe,body:He,metaRow:Je,metaItem:Ke,scoreIcon:Qe,synopsis:Ze,details:et,detailItem:tt,genres:nt,genre:ot,footer:rt,primaryAction:st,watchBtn:at,secondaryActions:ct,watchlistBtn:lt,detailsBtn:it,active:dt,loading:ut,spinner:_t},ln=({anchorRect:t,onMouseEnter:a,onMouseLeave:c,onRequestClose:l,children:u})=>{const[i]=y(()=>window.matchMedia("(pointer: coarse)").matches),r=T.useMemo(()=>({getBoundingClientRect:()=>t}),[t]),{refs:w,floatingStyles:b}=Re({placement:"right-start",middleware:[$e({fallbackAxisSideDirection:"start"}),Le({padding:20})],whileElementsMounted:Ae});T.useEffect(()=>{w.setPositionReference(r)},[w,r]),T.useEffect(()=>{if(!i)return;const C=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=C}},[i]);const _=e(ee,{children:[i&&e("div",{className:R.popupBackdrop,onClick:()=>l?.()}),e("div",{ref:i?void 0:w.setFloating,className:`${R.popupPortal} ${i?R.mobile:""}`,style:i?void 0:b,onMouseEnter:a,onMouseLeave:c,children:e("div",{className:R.popupContent,children:u})})]});return Ne(_,document.body)},pt=t=>!t||t.trim()===""?!0:t.includes("placeholder");function gt(t,a){const[c,l]=y(a);return K(()=>{l(a)},[a]),K(()=>{if(!pt(a)||!t)return;let u=!1;return ke(`/api/show-meta/${t}`).then(i=>{const r=i?.thumbnail;!u&&r&&r.trim()!==""&&!r.includes("placeholder")&&l(r)}).catch(()=>{}),()=>{u=!0}},[t,a]),{thumbnail:c}}const mt="_cardWrapper_w7bu0_1",ft="_card_w7bu0_1",ht="_cardButton_w7bu0_35",bt="_hoverOverlay_w7bu0_60",Bt="_matureOverlay_w7bu0_81",wt="_posterContainer_w7bu0_91",vt="_horizontal_w7bu0_100",yt="_posterImg_w7bu0_104",Ct="_blurred_w7bu0_116",Mt="_flat_w7bu0_139",xt="_loaded_w7bu0_143",Tt="_posterGradient_w7bu0_147",Pt="_progressSection_w7bu0_167",Nt="_titleSection_w7bu0_174",Et="_title_w7bu0_174",St="_titleText_w7bu0_193",It="_badge_w7bu0_205",Rt="_typeBadge_w7bu0_216 _badge_w7bu0_205",At="_epBadge_w7bu0_225 _badge_w7bu0_205",$t="_airTime_w7bu0_234",Lt="_adultBadge_w7bu0_241 _badge_w7bu0_205",kt="_gated_w7bu0_254",Ot="_notAiredBadge_w7bu0_260 _badge_w7bu0_205",zt="_metaRow_w7bu0_275",Dt="_metaItem_w7bu0_286",Ut="_progressContainer_w7bu0_303",Vt="_progressBar_w7bu0_311",Gt="_timestamp_w7bu0_318",Wt="_removeBtn_w7bu0_323",Yt="_infoBtn_w7bu0_324",jt="_mobileBadges_w7bu0_375",Ft="_mobileBadgeBase_w7bu0_382",Xt="_mobileType_w7bu0_390 _mobileBadgeBase_w7bu0_382",qt="_mobileEp_w7bu0_397 _mobileBadgeBase_w7bu0_382",Ht="_vertical_w7bu0_489",Jt="_placeholder_w7bu0_504",Kt="_placeholderText_w7bu0_513",Qt="_lowEnd_w7bu0_520",n={cardWrapper:mt,card:ft,cardButton:ht,hoverOverlay:bt,matureOverlay:Bt,posterContainer:wt,horizontal:vt,posterImg:yt,blurred:Ct,flat:Mt,loaded:xt,posterGradient:Tt,progressSection:Pt,titleSection:Nt,title:Et,titleText:St,badge:It,typeBadge:Rt,epBadge:At,airTime:$t,adultBadge:Lt,gated:kt,notAiredBadge:Ot,metaRow:zt,metaItem:Dt,progressContainer:Ut,progressBar:Vt,timestamp:Gt,removeBtn:Wt,infoBtn:Yt,mobileBadges:jt,mobileBadgeBase:Ft,mobileType:Xt,mobileEp:qt,vertical:Ht,placeholder:Jt,placeholderText:Kt,lowEnd:Qt},Zt=500,Z=20,en=300;function tn(t){const a=x(null),c=x(null),l=x(!1),u=x({x:0,y:0}),i=x(null),r=d(()=>{c.current&&(clearTimeout(c.current),c.current=null)},[]),w=d(()=>{a.current&&(clearTimeout(a.current),a.current=null)},[]),b=d(s=>{a.current&&clearTimeout(a.current),a.current=setTimeout(s,en)},[]),_=d((s,p=!1)=>{l.current=p,t(s,p)},[t]),C=d((s,p)=>{if(p||s.pointerType==="mouse")return;i.current=s.pointerType,l.current=!1,u.current={x:s.clientX,y:s.clientY};const m=s.currentTarget.getBoundingClientRect();r(),c.current=setTimeout(()=>{c.current=null,_(m,!0)},Zt)},[r,_]),B=d(s=>{if(!c.current)return;const p=Math.abs(s.clientX-u.current.x),m=Math.abs(s.clientY-u.current.y);(p>Z||m>Z)&&r()},[r]),g=d(()=>{r(),i.current=null},[r]),P=d((s,p)=>{s.preventDefault(),s.stopPropagation(),i.current==="touch"?c.current&&(clearTimeout(c.current),c.current=null,_(s.currentTarget.getBoundingClientRect(),!0)):!p&&!l.current&&_(s.currentTarget.getBoundingClientRect())},[_]),A=d(()=>l.current?(l.current=!1,!0):!1,[]);return{longPressFiredRef:l,cancelLongPress:r,clearPopupTimeout:w,schedulePopupClose:b,openViaHold:_,handlePointerDown:C,handlePointerMove:B,handlePointerUpOrCancel:g,handleContextMenu:P,consumeLongPressClick:A}}const z={elements:{poster:{typeBadge:!0,chapterBadge:!0,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!0,meta:!0}}},dn=Ee(({item:t,linkTo:a,hoverIcon:c,progress:l,showProgress:u=!1,metaRow:i,display:r,layout:w="vertical",onRemove:b,showRemoveButton:_,showInfoButton:C=!1,onOpenDetails:B,renderPopup:g,onPopupHoverIntent:P,rawThumbnail:A,enrichedId:s})=>{const p=Se(),m=Ge(),{titlePreference:te}=Oe(),{lowEndMode:M}=ze(),[ne,oe]=y(!1),[re,D]=y(!1),{thumbnail:U}=gt(s,t.thumbnail),[$,V]=y(!1),[G,W]=y(null),Y=o=>{W(o),V(!0)},L=d(()=>{V(!1),W(null)},[]),f=tn(o=>{if(B){B(o);return}g&&Y(o)}),k=d(()=>{f.schedulePopupClose(L)},[f,L]),j=f.clearPopupTimeout,se=o=>{if(m)return;const J=o.currentTarget.getBoundingClientRect();if(B){B(J);return}g&&Y(J)},ae=()=>{g&&k()},ce=()=>{j()},le=()=>{g&&k()},ie=o=>{f.handlePointerDown(o,h)},de=o=>{f.handlePointerMove(o)},F=()=>{f.handlePointerUpOrCancel()},ue=o=>{if(B){o.preventDefault(),o.stopPropagation(),B(o.currentTarget.getBoundingClientRect());return}if(g){f.handleContextMenu(o,h);return}f.handleContextMenu(o,h)},X={...r,elements:{...z.elements,...r?.elements||{},poster:{...z.elements?.poster,...r?.elements?.poster||{}},info:{...z.elements?.info,...r?.elements?.info||{}}}},O=t[te]||t.title,N=X.elements?.poster,E=X.elements?.info,_e=(N?.typeBadge??!0)&&!!t.typeBadge,pe=(N?.chapterBadge??!0)&&!!t.chapterBadge,ge=_??N?.removeButton??!!b,me=N?.adultBadge??!0,fe=E?.mobileBadges??!0,he=E?.progress??!0,be=E?.meta??!0,Be=u&&!!l&&l.percent>0,q=!!t.isAdult,[we,ve]=De("agreedToViewMature","false"),ye=we==="true",[H,S]=T.useState(!1),I=T.useRef(null),Ce=()=>{ve("true"),S(!1),I.current&&(p(I.current),I.current=null)},h=q&&!ye,Me=o=>{if(f.consumeLongPressClick()){o.preventDefault(),o.stopPropagation();return}h&&(o.preventDefault(),o.stopPropagation(),I.current=a,S(!0))},xe=c==="book"?e(v,{name:"book",size:28}):c==="play"?e(v,{name:"play",size:28}):c==="info"?e(v,{name:"info-circle",size:28}):e(v,{name:"info-circle",size:28}),Te=d(o=>{o.preventDefault(),o.stopPropagation(),b&&b(t.id)},[b,t.id]),Pe=A?U??t.thumbnail:Ue(U,M?100:150,M?150:200);return e("div",{className:`${n.cardWrapper} ${M?n.lowEnd:""}`,onMouseEnter:()=>{D(!0),P?.(!0),$&&j()},onMouseLeave:()=>{D(!1),P?.(!1),$&&k()},children:[e(Ie,{to:a,className:`${n.card} ${n[w]} ${h?n.cardButton:""}`,onClick:Me,onContextMenu:ue,onPointerDown:ie,onPointerMove:de,onPointerUp:F,onPointerCancel:F,children:[e("div",{className:n.posterContainer,children:[h&&e("div",{className:`${n.matureOverlay} ${M?n.flat:""}`}),e("img",{src:Pe,alt:O,className:`${n.posterImg} ${ne?n.loaded:""} ${h&&!M?n.blurred:""}`,loading:"lazy",decoding:"async",onLoad:()=>oe(!0)}),!m&&e(ee,{children:[_e&&e("div",{className:n.typeBadge,children:t.typeBadge}),pe&&e("div",{className:n.epBadge,children:[t.chapterBadge,t.airMeta&&e("span",{className:n.airTime,children:t.airMeta})]})]}),me&&q&&e("div",{className:`${n.adultBadge} ${h?n.gated:""}`,children:"18+"}),t.notAired&&e("div",{className:n.notAiredBadge,children:"NOT AIRED"}),!m&&re&&e("div",{className:n.hoverOverlay,children:xe})]}),he&&u&&Be&&l&&e("div",{className:n.progressSection,children:[e("div",{className:n.progressContainer,children:e("div",{className:n.progressBar,style:{width:`${l.percent}%`}})}),e("div",{className:n.timestamp,children:l.label})]}),e("div",{className:n.titleSection,children:[m&&fe&&e("div",{className:n.mobileBadges,children:[!!t.typeBadge&&e("span",{className:n.mobileType,children:t.typeBadge}),t.chapterBadge&&e("span",{className:n.mobileEp,children:t.chapterBadge})]}),E?.title!==!1&&e("div",{className:n.title,title:O,children:e("span",{className:n.titleText,children:O})}),be&&i&&e("div",{className:n.metaRow,children:i})]})]}),H&&e(Ve,{isOpen:H,title:"Content Warning",onClose:()=>S(!1),children:e("div",{style:{padding:"1rem",textAlign:"center"},children:[e("p",{children:"This title contains mature content intended for adult audiences."}),e("p",{children:["By proceeding, you confirm that you are ",e("strong",{children:"18 years of age or older"})," ","(or the age of majority in your jurisdiction) and wish to view this content."]}),e("p",{style:{fontSize:"0.8rem",color:"var(--text-secondary)",marginTop:"1rem"},children:["You can reset this preference at any time in the ",e("strong",{children:"Settings"})," page."]}),e("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[e(Q,{variant:"secondary",onClick:()=>S(!1),children:"Go Back"}),e(Q,{onClick:Ce,children:"I'm 18+, Continue"})]})]})}),ge&&e("button",{className:n.removeBtn,onClick:Te,"aria-label":"Remove",children:e(v,{name:"times",size:10})}),C&&!m&&!h&&e("button",{className:n.infoBtn,onMouseEnter:se,onMouseLeave:ae,"aria-label":"Info",children:e(v,{name:"info",size:11})}),g&&$&&G?g(G,{close:L,onMouseEnter:ce,onMouseLeave:le}):null]})});export{dn as M,ln as a,n as m,R as p};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._popupPortal_7glox_1{z-index:var(--z-popover);pointer-events:none}._popupContent_7glox_6{pointer-events:auto;width:320px;background-color:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:0 10px 30px #00000080;border:1px solid var(--border-secondary);overflow:hidden;display:flex;flex-direction:column;animation:_fadeIn_7glox_1 .2s ease-out;color:var(--text-primary)}@keyframes _fadeIn_7glox_1{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}._popupBackdrop_7glox_31{position:fixed;inset:0;z-index:var(--z-popover);background:#0009}._popupPortal_7glox_1._mobile_7glox_38{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:calc(var(--z-popover) + 1);pointer-events:auto}._popupPortal_7glox_1._mobile_7glox_38 ._popupContent_7glox_6{width:min(340px,calc(100vw - 32px));max-height:85svh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(orientation:landscape)and (max-height:500px){._popupPortal_7glox_1._mobile_7glox_38 ._popupContent_7glox_6{width:min(460px,calc(100vw - 24px));max-height:calc(100svh - 16px)}}._header_7glox_62{padding:var(--space-4);background:linear-gradient(to bottom,rgba(0,0,0,.3),transparent)}._title_7glox_67{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--accent-light)}._altTitle_7glox_78{font-size:var(--font-size-xs);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}._body_7glox_87{padding:0 var(--space-4) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}._metaRow_7glox_94{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-sm)}._metaItem_7glox_101{display:flex;align-items:center;gap:var(--space-1)}._scoreIcon_7glox_107{color:var(--accent-lighter)}._synopsis_7glox_111{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}._details_7glox_121{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-muted)}._detailItem_7glox_129 strong{color:var(--text-secondary)}._genres_7glox_133{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}._genre_7glox_133{background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}._footer_7glox_148{padding:var(--space-4);border-top:1px solid var(--border-secondary);background-color:var(--bg-tertiary);display:flex;flex-direction:column;gap:var(--space-2)}._primaryAction_7glox_157{width:100%}._watchBtn_7glox_161{width:100%;height:48px;background-color:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;transition:all .2s;text-decoration:none;font-size:var(--font-size-base)}._watchBtn_7glox_161:hover{background-color:var(--accent-dark);transform:translateY(-1px)}._secondaryActions_7glox_184{display:flex;gap:var(--space-2)}._watchlistBtn_7glox_189,._detailsBtn_7glox_190{flex:1;height:36px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background-color:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:11px;font-weight:var(--font-weight-semibold);transition:all .2s;text-decoration:none;white-space:nowrap}._watchlistBtn_7glox_189:hover,._detailsBtn_7glox_190:hover{background-color:var(--bg-secondary);border-color:var(--accent);color:var(--accent)}._watchlistBtn_7glox_189._active_7glox_216{background-color:var(--accent);border-color:var(--accent);color:var(--accent-text)}._watchlistBtn_7glox_189._active_7glox_216:hover{background-color:var(--accent-dark);border-color:var(--accent-dark)}._loading_7glox_227{padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);color:var(--text-muted)}._spinner_7glox_237{width:30px;height:30px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:_spin_7glox_237 1s linear infinite}@keyframes _spin_7glox_237{to{transform:rotate(360deg)}}._cardWrapper_w7bu0_1{position:relative;width:100%;height:100%;min-width:0;z-index:1;transition:z-index var(--transition-fast);content-visibility:auto;contain-intrinsic-size:200px 300px;border-radius:var(--radius-md)}._cardWrapper_w7bu0_1:hover{z-index:5}._card_w7bu0_1{display:flex;flex-direction:column;background-color:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;height:100%;min-width:0;box-shadow:none;border:1px solid var(--border-secondary);transition:border-color var(--transition-base),background-color var(--transition-base);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}._cardButton_w7bu0_35{width:100%;padding:0;text-align:left;font:inherit;border:1px solid var(--border-secondary);cursor:pointer}._cardButton_w7bu0_35:focus-visible{outline:2px solid var(--accent);outline-offset:2px}._cardWrapper_w7bu0_1:hover ._card_w7bu0_1,._cardWrapper_w7bu0_1:focus-within ._card_w7bu0_1{border-color:var(--border-accent);background-color:var(--bg-tertiary);box-shadow:var(--shadow-active)}._cardWrapper_w7bu0_1:focus-within{z-index:5}._hoverOverlay_w7bu0_60{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#0f0f1373;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:8;border-radius:var(--radius-md) var(--radius-md) 0 0}._cardWrapper_w7bu0_1:hover ._hoverOverlay_w7bu0_60,._cardWrapper_w7bu0_1:focus-within ._hoverOverlay_w7bu0_60{opacity:1}._cardWrapper_w7bu0_1:has(._matureOverlay_w7bu0_81) ._hoverOverlay_w7bu0_60{display:none}@media(hover:none),(pointer:coarse){._hoverOverlay_w7bu0_60{display:none}}._posterContainer_w7bu0_91{position:relative;width:100%;aspect-ratio:3 / 4;overflow:hidden;background:var(--bg-tertiary);border-radius:var(--radius-md) var(--radius-md) 0 0}._card_w7bu0_1._horizontal_w7bu0_100 ._posterContainer_w7bu0_91{aspect-ratio:16 / 9}._posterImg_w7bu0_104{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease,transform var(--transition-base),filter var(--transition-base);border-radius:var(--radius-md) var(--radius-md) 0 0}._posterImg_w7bu0_104._blurred_w7bu0_116{filter:blur(15px)}._matureOverlay_w7bu0_81{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#00000073;z-index:10;cursor:pointer;flex-direction:column;gap:var(--space-2);padding:var(--space-2);text-align:center;transition:background-color var(--transition-base)}._matureOverlay_w7bu0_81._flat_w7bu0_139{background-color:#000000f2}._posterImg_w7bu0_104._loaded_w7bu0_143{opacity:1}._posterGradient_w7bu0_147{position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.5) 40%,transparent 100%);pointer-events:none;z-index:3}._cardWrapper_w7bu0_1:hover ._posterImg_w7bu0_104{transform:scale(1.05)}._progressSection_w7bu0_167{padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:2px}._titleSection_w7bu0_174{padding:var(--space-3) var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-1)}._title_w7bu0_174{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);line-height:1.3;color:#e2e8f0;height:2.6em;margin-bottom:0;transition:color var(--transition-base);word-break:break-word;min-width:0}._titleText_w7bu0_193{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.6em}._cardWrapper_w7bu0_1:hover ._title_w7bu0_174{color:var(--accent-light)}._badge_w7bu0_205{position:absolute;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);z-index:2;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}._typeBadge_w7bu0_216{top:var(--space-2);left:var(--space-2);background-color:#000000b3;color:#fff;border:1px solid rgba(255,255,255,.1)}._epBadge_w7bu0_225{bottom:var(--space-2);left:var(--space-2);background-color:var(--accent);color:var(--accent-text);border-radius:var(--radius-full)}._airTime_w7bu0_234{margin-left:6px;font-size:12px;opacity:.85;font-weight:500}._adultBadge_w7bu0_241{bottom:var(--space-2);right:var(--space-2);background-color:var(--color-danger);color:#fff;border:none;font-size:14px;padding:5px 10px;z-index:5;box-shadow:0 2px 8px #0006}._posterContainer_w7bu0_91 ._adultBadge_w7bu0_241._gated_w7bu0_254{background-color:#000000bf;border:1px solid rgba(220,53,69,.45);color:#ff4a5a}._notAiredBadge_w7bu0_260{top:var(--space-2);right:var(--space-2);background-color:var(--badge-info-bg);color:var(--badge-info-text);border:none;font-size:11px;font-weight:800;letter-spacing:.06em;padding:4px 8px;z-index:5;box-shadow:0 2px 8px #0006}._metaRow_w7bu0_275{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:#94a3b8;margin-top:auto;min-width:0;height:24px}._metaItem_w7bu0_286{display:flex;align-items:center;gap:var(--space-1);background-color:var(--bg-tertiary);padding:2px var(--space-2);border-radius:var(--radius-sm);transition:background-color var(--transition-base),color var(--transition-base)}._metaItem_w7bu0_286:hover{background-color:var(--bg-elevated);color:var(--text-primary)}._progressContainer_w7bu0_303{width:100%;height:4px;background-color:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}._progressBar_w7bu0_311{height:100%;background:var(--accent);border-radius:var(--radius-sm);transition:width .3s ease}._timestamp_w7bu0_318{font-size:var(--font-size-xs);color:var(--text-muted)}._removeBtn_w7bu0_323,._infoBtn_w7bu0_324{position:absolute;top:var(--space-2);right:var(--space-2);width:28px;height:28px;border-radius:50%;background-color:#0009;color:#fff;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s ease,background-color .15s ease,transform .15s ease;z-index:20;font-size:14px}._cardWrapper_w7bu0_1:hover ._removeBtn_w7bu0_323,._card_w7bu0_1:hover ._removeBtn_w7bu0_323,._cardWrapper_w7bu0_1:hover ._infoBtn_w7bu0_324,._card_w7bu0_1:hover ._infoBtn_w7bu0_324{opacity:1}@media(hover:none),(pointer:coarse){._removeBtn_w7bu0_323,._infoBtn_w7bu0_324{display:none}}._cardWrapper_w7bu0_1 ._removeBtn_w7bu0_323:hover{background-color:color-mix(in srgb,var(--color-danger) 90%,transparent);border-color:color-mix(in srgb,var(--color-danger) 90%,transparent);color:var(--color-danger-text);transform:scale(1.08)}._infoBtn_w7bu0_324:hover{background-color:var(--accent);border-color:var(--accent);color:var(--accent-text);transform:scale(1.08)}._mobileBadges_w7bu0_375{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-1)}._mobileBadgeBase_w7bu0_382{font-size:10px;font-weight:var(--font-weight-bold);padding:1px var(--space-1);border-radius:4px;text-transform:uppercase}._mobileType_w7bu0_390{background-color:#ffffff1a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.1)}._mobileEp_w7bu0_397{background-color:var(--accent);color:var(--accent-text)}@media(max-width:768px){._cardWrapper_w7bu0_1,._card_w7bu0_1{height:auto}._progressSection_w7bu0_167{padding:4px 8px}._titleSection_w7bu0_174{padding:8px 8px 0}._cardWrapper_w7bu0_1 ._title_w7bu0_174{height:2.5em;max-height:2.5em;overflow:hidden;font-size:.82rem;line-height:1.25;color:#e2e8f0}._titleText_w7bu0_193{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.5em;word-break:break-word;color:#e2e8f0}._removeBtn_w7bu0_323,._infoBtn_w7bu0_324{min-width:36px;min-height:36px;width:36px;height:36px;font-size:14px}._mobileBadges_w7bu0_375{justify-content:center;margin-bottom:4px;gap:4px}._metaRow_w7bu0_275{margin-top:auto;justify-content:center;height:20px}._typeBadge_w7bu0_216{display:none}._cardWrapper_w7bu0_1 ._removeBtn_w7bu0_323{opacity:1;background-color:#00000080}._card_w7bu0_1._horizontal_w7bu0_100{flex-direction:row;height:auto;min-height:100px}._card_w7bu0_1._horizontal_w7bu0_100 ._posterContainer_w7bu0_91{width:85px;height:100%;aspect-ratio:auto;flex-shrink:0}._card_w7bu0_1._horizontal_w7bu0_100 ._posterGradient_w7bu0_147{display:none}._card_w7bu0_1._horizontal_w7bu0_100 ._titleSection_w7bu0_174{padding:var(--space-2) var(--space-3);justify-content:center;flex-grow:1}._card_w7bu0_1._vertical_w7bu0_489 ._posterContainer_w7bu0_91{width:100%;aspect-ratio:3 / 4}._card_w7bu0_1._vertical_w7bu0_489 ._titleSection_w7bu0_174{align-items:center;text-align:center}._card_w7bu0_1._vertical_w7bu0_489 ._mobileBadges_w7bu0_375{justify-content:center}}._placeholder_w7bu0_504{width:100%;height:100%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}._placeholderText_w7bu0_513{font-size:2.5rem;font-weight:var(--font-weight-bold);color:var(--text-tertiary);opacity:.3}._cardWrapper_w7bu0_1._lowEnd_w7bu0_520 ._card_w7bu0_1,._cardWrapper_w7bu0_1._lowEnd_w7bu0_520 ._posterImg_w7bu0_104{transition:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._authRow_10tvv_1{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}._btn_10tvv_9{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-quick),opacity var(--transition-fast)}._btn_10tvv_9:hover:not(:disabled){background:var(--accent-light);box-shadow:0 0 12px var(--accent-glow)}._btn_10tvv_9:active:not(:disabled){transform:scale(.96)}._btn_10tvv_9:disabled{opacity:.5;cursor:not-allowed}._btnGhost_10tvv_42{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:1px solid var(--border-primary);border-radius:var(--radius-full);background:#ffffff0a;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-quick),opacity var(--transition-fast)}._btnGhost_10tvv_42:hover:not(:disabled){background:#ffffff14}._btnGhost_10tvv_42:active:not(:disabled){transform:scale(.96)}._btnGhost_10tvv_42:disabled{opacity:.5;cursor:not-allowed}._cookieForm_10tvv_74{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex:1;min-width:280px}._cookieInput_10tvv_83{flex:1;min-width:200px;padding:10px 16px;border:1px solid var(--border-primary);border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);outline:none}._cookieInput_10tvv_83:focus{border-color:var(--accent)}._link_10tvv_99{color:var(--accent);text-decoration:underline;font-weight:600}._link_10tvv_99:hover{opacity:.85}._contentLayout_10tvv_109{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}._mainCol_10tvv_116{min-width:0}._upnextAside_10tvv_120{position:sticky;top:16px;max-height:calc(100vh - 140px);overflow-y:auto;background:#ffffff08;border:1px solid var(--border-primary);border-radius:12px;padding:12px}._upnextHeader_10tvv_131{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}._upnextTitle_10tvv_139{font-size:var(--font-size-sm);font-weight:700;opacity:.9;display:flex;align-items:center;gap:6px;min-width:0}._upnextActions_10tvv_149{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}._nowPlayingLabel_10tvv_156{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;opacity:.55;margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._nowPlayingWrap_10tvv_168{margin-bottom:12px}._likeBtn_10tvv_172{display:inline-flex;align-items:center;justify-content:center;padding:8px;border:0;background:transparent;color:inherit;opacity:.55;cursor:pointer;flex-shrink:0;border-radius:50%}._likeBtn_10tvv_172:hover:not(:disabled){opacity:1;background:#ffffff14}._likeBtn_10tvv_172:disabled{opacity:.3;cursor:not-allowed}._likeActive_10tvv_196{opacity:1;color:var(--accent-light)}@media(max-width:900px){._contentLayout_10tvv_109{grid-template-columns:minmax(0,1fr)}._upnextAside_10tvv_120{position:static;max-height:none;order:-1}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as L,d as b,h as F,g as Ke,u as e,S as w,$ as Qe,o as ze,T as z}from"./vendor-core-8R2fFbyN.js";import{q as P,z as C}from"./index-IZgh1beL.js";import{I as p}from"./vendor-icons-CDMuNDeL.js";import{a as i}from"./Asmr.module-ChUXDZKx.js";import{r as m}from"./Radio.module-DGSZLpKM.js";import{b as J,u as Ce,a as Le}from"./vendor-query-BXRECSI6.js";function Ie(n){if(!Number.isFinite(n)||n<0)return"0:00";const h=Math.floor(n/60),g=Math.floor(n%60);return`${h}:${String(g).padStart(2,"0")}`}const Ye=({track:n,shuffle:h,onToggleShuffle:g,onTrackStep:O,onTrackFailed:be,onClose:ie,liked:Y,likeVisible:W,likePending:ae,onToggleLike:V})=>{const M=L(null),Z=L(!1),[q,R]=b(!1),[he,l]=b(!0),[N,D]=b(!1),[I,B]=b(0),[U,se]=b(0),[T,H]=b(()=>{const r=parseFloat(localStorage.getItem("musicVolume")||"");return Number.isFinite(r)?r:1}),[$,re]=b(()=>localStorage.getItem("musicAutoplay")!=="false"),j=L(T);j.current=T;const S=L($);S.current=$;const f=L(0),E=L(0),A=L(null),K=L("");K.current||(K.current=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`music-${Date.now()}-${Math.random().toString(36).slice(2)}`);const X=`/api/music/audio?videoId=${encodeURIComponent(n.id)}`,G=()=>{A.current&&(window.clearTimeout(A.current),A.current=null)},ee=r=>{const a=M.current;if(!a)return;G(),l(!0),D(!1);const k=()=>{if(a.removeEventListener("loadedmetadata",k),r>5&&Number.isFinite(a.duration)&&r<a.duration-5)try{a.currentTime=r}catch{}};a.addEventListener("loadedmetadata",k),a.src=X,a.load(),a.volume=j.current,a.play().catch(()=>{})},ve=()=>{l(!1),D(!0),be?.(n),S.current&&O(1)},oe=()=>{if(!A.current){if(E.current>=3){ve();return}E.current+=1,A.current=window.setTimeout(()=>{A.current=null,ee(f.current)},5e3)}},ke=()=>{E.current=0,ee(f.current)};F(()=>{f.current=0,E.current=0,R(!1),B(0),se(0);const r=M.current;return ee(f.current),()=>{G(),r&&r.removeAttribute("src")}},[X]),F(()=>{const r=M.current;r&&(r.volume=T)},[T]),F(()=>(document.body.classList.add("asmr-player-open"),()=>document.body.classList.remove("asmr-player-open")),[]);const _=n.thumbnails?.[n.thumbnails.length-1]?.url??null,te=Ke.useCallback(r=>{const a=M.current;fetch("/api/discord/music",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:n.title,artistLabel:n.artists,isPlaying:r,thumbnail:_||"",currentTime:a?.currentTime??0,duration:Number.isFinite(a?.duration??NaN)?a?.duration:0,sessionId:K.current})}).catch(()=>{}),fetch("/api/discord/heartbeat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:K.current})}).catch(()=>{})},[n,_]);F(()=>{te(q)},[te,q,n.id]),F(()=>{if(!q)return;const r=window.setInterval(()=>te(!0),15e3);return()=>window.clearInterval(r)},[q,te]),F(()=>{const r=K.current,a=()=>{if(!r)return;const ye=JSON.stringify({sessionId:r});navigator.sendBeacon?(navigator.sendBeacon("/api/discord/clear",new Blob([ye],{type:"application/json"})),navigator.sendBeacon("/api/discord/heartbeat",new Blob([JSON.stringify({sessionId:r,bye:!0})],{type:"application/json"}))):(fetch("/api/discord/clear",{method:"POST",headers:{"Content-Type":"application/json"},body:ye,keepalive:!0}).catch(()=>{}),fetch("/api/discord/heartbeat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:r,bye:!0}),keepalive:!0}).catch(()=>{}))},k=()=>a(),v=()=>{document.visibilityState==="hidden"&&a()};return window.addEventListener("pagehide",k),window.addEventListener("beforeunload",k),document.addEventListener("visibilitychange",v),()=>{window.removeEventListener("pagehide",k),window.removeEventListener("beforeunload",k),document.removeEventListener("visibilitychange",v),a()}},[]);const pe=()=>{const r=M.current;r&&(r.paused?r.play().catch(()=>{}):r.pause())},[Ne,le]=b(!1);F(()=>{le(!1)},[_]);const ce=`${n.title} — ${n.artists}`,ge=e(w,{children:[e("div",{className:i.playerButtons,children:[e("button",{className:i.playerBtn,onClick:()=>O(-1),"aria-label":"Previous track",children:e(p,{name:"step-backward"})}),e("button",{className:`${i.playerBtn} ${i.playBtn}`,onClick:pe,"aria-label":q?"Pause":"Play",children:q?e(p,{name:"pause"}):e(p,{name:"play"})}),e("button",{className:i.playerBtn,onClick:()=>O(1),"aria-label":"Next track",children:e(p,{name:"step-forward"})}),N&&e("button",{className:i.playerBtn,onClick:ke,title:"Retry playback","aria-label":"Retry playback",children:e(p,{name:"redo"})})]}),e("div",{className:i.seekRow,children:[e("span",{className:i.timeLabel,children:Ie(I)}),e("input",{className:i.seekBar,type:"range",min:0,max:U||0,step:.1,value:Math.min(I,U||0),onChange:r=>{const a=M.current;!a||!Number.isFinite(a.duration)||(a.currentTime=parseFloat(r.target.value),B(a.currentTime))},onPointerDown:()=>{Z.current=!0},onPointerUp:()=>{Z.current=!1},style:{"--played-percent":`${U>0?I/U*100:0}%`},"aria-label":"Seek"}),e("span",{className:i.timeLabel,children:Ie(U)}),he&&!N&&e("span",{className:i.timeLabel,children:"loading…"})]})]}),ue=e(w,{children:[n.thumbnails?.[0]?.url&&!Ne&&e("img",{src:n.thumbnails[0].url,alt:"",className:m.stationThumb,loading:"lazy",decoding:"async",onError:()=>le(!0)}),e("div",{className:i.playerInfo,children:[e("p",{className:i.playerTitle,title:ce,children:ce}),e("p",{className:i.playerTrack,children:n.artists})]}),e("div",{className:i.playerControls,children:ge}),e("div",{className:i.playerRight,children:[T===0?e(p,{name:"volume-mute",className:i.volumeIcon}):T<.5?e(p,{name:"volume-down",className:i.volumeIcon}):e(p,{name:"volume-up",className:i.volumeIcon}),e("input",{className:i.volumeBar,type:"range",min:0,max:1,step:.01,value:T,onChange:r=>{const a=parseFloat(r.target.value);H(a),localStorage.setItem("musicVolume",String(a))},style:{"--volume-percent":`${T*100}%`},"aria-label":"Volume"})]}),e("div",{className:i.playerActions,children:[W&&V&&e("button",{className:`${i.playerBtn} ${Y?i.playerBtnActive:""}`,onClick:V,disabled:ae,title:Y?"Remove from Liked Music":"Add to Liked Music","aria-label":Y?"Remove from Liked Music":"Add to Liked Music","aria-pressed":!!Y,children:e(p,{name:"heart"})}),e("button",{className:`${i.playerBtn} ${h?i.playerBtnActive:""}`,onClick:g,title:h?"Shuffle on":"Shuffle off","aria-label":"Toggle shuffle","aria-pressed":h,children:e(p,{name:"shuffle"})}),e("button",{className:`${i.playerBtn} ${$?i.playerBtnActive:""}`,onClick:()=>{re(r=>(localStorage.setItem("musicAutoplay",String(!r)),!r))},title:$?"Autoplay on: next track plays automatically":"Autoplay off","aria-label":"Toggle autoplay","aria-pressed":$,children:e(p,{name:"forward"})}),e("a",{href:`https://music.youtube.com/watch?v=${encodeURIComponent(n.id)}`,target:"_blank",rel:"noreferrer",title:"Open in YouTube Music","aria-label":"Open in YouTube Music",className:i.playerBtn,style:{display:"inline-flex",alignItems:"center"},children:e(p,{name:"external-link-alt"})}),e("button",{className:i.playerBtn,onClick:ie,"aria-label":"Close player",children:e(p,{name:"times"})})]})]});return Qe(e(w,{children:[e("audio",{ref:M,preload:"none",onPlay:()=>{R(!0),l(!1),D(!1),E.current=0,G()},onPause:()=>R(!1),onWaiting:()=>{N||l(!0)},onPlaying:()=>{l(!1),E.current=0,G()},onTimeUpdate:r=>{const a=r.target.currentTime;f.current=a,G(),Z.current||B(a)},onStalled:()=>{oe()},onLoadedMetadata:r=>{const a=r.target.duration;Number.isFinite(a)&&se(a)},onDurationChange:r=>{const a=r.target.duration;Number.isFinite(a)&&se(a)},onError:()=>{oe()},onEnded:()=>{S.current&&O(1)}}),e("div",{className:i.playerBar,children:ue})]}),document.body)},je=()=>e("div",{style:{marginTop:"0.9rem",paddingTop:"0.9rem",borderTop:"1px dashed var(--border-color)"},children:[e("h4",{style:{margin:"0 0 0.35rem",fontSize:"0.95rem"},children:"Where to get the cookie"}),e("p",{style:{margin:"0 0 0.6rem",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Google marks its login cookies unreadable to page scripts, so this has to come from DevTools — it takes about 20 seconds:"}),e("ol",{style:{margin:"0 0 0.75rem",paddingLeft:"1.25rem",fontSize:"0.85rem",color:"var(--text-secondary)",display:"grid",gap:"0.3rem"},children:[e("li",{children:["Open"," ",e("a",{href:"https://music.youtube.com/",target:"_blank",rel:"noopener noreferrer",children:"music.youtube.com"})," ","and make sure you are logged in."]}),e("li",{children:["Press ",e("kbd",{children:"F12"}),", go to the ",e("strong",{children:"Network"})," tab, and type ",e("kbd",{children:"browse"})," ","in the filter box."]}),e("li",{children:["Click any ",e("kbd",{children:"POST"})," browse entry, then scroll to Request Headers."]}),e("li",{children:[e("strong",{children:"Right-click"})," the ",e("kbd",{children:"Cookie"})," value and choose"," ",e("strong",{children:"Copy value"})," — right-click copies the full unwrapped value, selecting the text by hand truncates it."]}),e("li",{children:"Paste it into the sign-in box above and press Sign in."})]})]}),me=300*1e3,Ge=()=>J({queryKey:["music-auth"],queryFn:()=>P("/api/music/auth/status"),staleTime:30*1e3,refetchInterval:n=>n.state.data?.authenticated?!1:3e3,retry:1}),Je=()=>{const n=Ce();return Le({mutationFn:h=>P("/api/music/auth/start",{method:"POST",body:JSON.stringify({cookie:h})}),onSuccess:()=>{n.invalidateQueries({queryKey:["music-auth"]}),n.invalidateQueries({queryKey:["music-library"]})}})},We=()=>{const n=Ce();return Le({mutationFn:()=>P("/api/music/auth/signout",{method:"POST"}),onSuccess:()=>{n.invalidateQueries({queryKey:["music-auth"]}),n.invalidateQueries({queryKey:["music-library"]})}})},Ve=n=>J({queryKey:["music-search",n],queryFn:()=>P(`/api/music/search?q=${encodeURIComponent(n)}`),enabled:n.trim().length>0,staleTime:me,retry:1}),Ze=n=>J({queryKey:["music-library"],queryFn:()=>P("/api/music/library"),enabled:n,staleTime:me,retry:1}),Xe=n=>J({queryKey:["music-track",n],queryFn:()=>P(`/api/music/track?id=${encodeURIComponent(n||"")}`),enabled:!!n,staleTime:me,retry:1}),et=n=>J({queryKey:["music-playlist",n],queryFn:()=>P(`/api/music/playlist?id=${encodeURIComponent(n||"")}`),enabled:!!n,staleTime:me,retry:1}),tt=n=>J({queryKey:["music-upnext",n],queryFn:()=>P(`/api/music/upnext?id=${encodeURIComponent(n||"")}`),enabled:!!n,staleTime:me,retry:1}),nt=n=>J({queryKey:["music-likes"],queryFn:()=>P("/api/music/likes"),enabled:n,staleTime:120*1e3,retry:1}),it=()=>{const n=Ce();return Le({mutationFn:({id:h,like:g})=>P("/api/music/like",{method:"POST",body:JSON.stringify({id:h,like:g})}),onSuccess:()=>{n.invalidateQueries({queryKey:["music-likes"]}),n.invalidateQueries({queryKey:["music-library"]}),n.invalidateQueries({queryKey:["music-upnext"]})}})},at="_authRow_10tvv_1",st="_btn_10tvv_9",rt="_btnGhost_10tvv_42",ot="_cookieForm_10tvv_74",lt="_cookieInput_10tvv_83",ct="_link_10tvv_99",ut="_contentLayout_10tvv_109",dt="_mainCol_10tvv_116",mt="_upnextAside_10tvv_120",ht="_upnextHeader_10tvv_131",pt="_upnextTitle_10tvv_139",gt="_upnextActions_10tvv_149",yt="_nowPlayingLabel_10tvv_156",ft="_nowPlayingWrap_10tvv_168",bt="_likeBtn_10tvv_172",vt="_likeActive_10tvv_196",y={authRow:at,btn:st,btnGhost:rt,cookieForm:ot,cookieInput:lt,link:ct,contentLayout:ut,mainCol:dt,upnextAside:mt,upnextHeader:ht,upnextTitle:pt,upnextActions:gt,nowPlayingLabel:yt,nowPlayingWrap:ft,likeBtn:bt,likeActive:vt};function $e(n){const h=n.trim();if(!h)return null;const g=h.match(/[?&]v=([A-Za-z0-9_-]{11})/)?.[1]??h.match(/youtu\.be\/([A-Za-z0-9_-]{11})/)?.[1]??null;return g||(/^[A-Za-z0-9_-]{11}$/.test(h)?h:null)}const kt="https://github.com/serifpersia/dango/releases/latest/download/dango-extension.zip",Lt=()=>{const[n,h]=ze(),g=$e(n.get("v")??""),[O,be]=b(""),[ie,Y]=b(""),[W,ae]=b(""),[V,M]=b(!1),[Z,q]=b(()=>localStorage.getItem("musicShuffle")==="true"),[R,he]=b(()=>localStorage.getItem("musicRadio")!=="false"),[l,N]=b(null),[D,I]=b([]),[B,U]=b(null),[se,T]=b({}),H=L([]);H.current=D;const $=L(null);$.current=l;const re=L(!1),j=L(new Set),{data:S}=Ge(),f=Je(),E=We(),A=typeof navigator<"u"?navigator.userAgent:"",K=/android/i.test(A),X=/firefox|fxios/i.test(A)&&!K,G=!X&&!K&&/chrome|chromium|edg|brave/i.test(A),ee=X||G,ve=()=>{if(V)return;M(!0);const t=window.setTimeout(()=>{window.removeEventListener("dango:ytmusic-cookie",s),M(!1),C.error("Helper not detected — install the Dango Helper extension first.")},3e3),s=c=>{window.clearTimeout(t),window.removeEventListener("dango:ytmusic-cookie",s),M(!1);try{const o=JSON.parse(c.detail);if(o?.ok&&o.cookie){const d=o.cookie.replace(/^cookie\s*:\s*/i,"").replace(/^["']+|["']+$/g,"").trim();if(d.includes("…")||d.includes("...")){C.error(`Helper returned a truncated cookie (${d.length} chars) — reload music.youtube.com and Extract again.`);return}ae(d),C.success("Cookie extracted from helper — signing in…"),f.mutate(d)}else o?.error==="NO_COOKIE"?C.error("Helper found no YouTube login — log in on a music.youtube.com tab first."):C.error("Helper request failed — try again.")}catch{C.error("Helper request failed — try again.")}};window.addEventListener("dango:ytmusic-cookie",s),window.dispatchEvent(new CustomEvent("dango:get-ytmusic-cookie"))},{data:oe,isLoading:ke}=Ve(ie),{data:_,isLoading:te}=Ze(S?.authenticated===!0),{data:pe,isLoading:Ne}=et(B?.id??null),{data:le,isLoading:ce}=tt(l?.id??null),{data:ge}=nt(S?.authenticated===!0),ue=it(),Q=z(()=>oe?.tracks||[],[oe]),r=z(()=>_?.playlists||[],[_]),a=z(()=>_?.tracks||[],[_]),k=z(()=>pe?.tracks||[],[pe]),v=z(()=>{const t=le?.tracks||[];return l?t.filter(s=>s.id!==l.id):t},[le,l]),ye=z(()=>new Set(ge?.likedIds||[]),[ge]),Se=t=>se[t.id]??(ye.has(t.id)||t.liked===!0);F(()=>{S?.authenticated!==!0&&T({})},[S?.authenticated]);const Ae=z(()=>[...Q,...k,...a,...v],[Q,k,a,v]),Fe=g&&l?.id!==g&&!Ae.some(t=>t.id===g)?g:null,{data:Me}=Xe(Fe),we=l?.id;F(()=>{document.title=l?`${l.title} - dango`:"Music - dango"},[l]),F(()=>{if(!g){we&&N(null);return}if(we===g)return;const t=o=>{const d=o.find(u=>u.id===g);return d?(N(d),I(u=>u.some(ne=>ne.id===g)?u:o.length>0?o:[d]),!0):!1};if(t(Q)||t(k)||t(a))return;const s=v.find(o=>o.id===g);if(s){N(s),I(o=>o.some(d=>d.id===s.id)?o:[s]);return}const c=Me?.track;c&&c.id===g&&(N(c),I(o=>o.some(d=>d.id===c.id)?o:[c]))},[g,we,Q,k,a,v,Me]);const Te=(t,s)=>{j.current.delete(t.id),N(t),I(s.length>0?s:[t]),h({v:t.id})},Be=t=>{j.current.add(t.id),C.error(`Couldn't play “${t.title}” — skipped.`)},Ee=async()=>{if(re.current)return;const t=H.current,s=t[t.length-1]??$.current;if(s){re.current=!0;try{const c=await P(`/api/music/upnext?id=${encodeURIComponent(s.id)}`),o=new Set(t.map(u=>u.id)),d=(c.tracks||[]).filter(u=>!o.has(u.id)&&!j.current.has(u.id));if(d.length===0){const u=H.current[0];u&&(N(u),h({v:u.id}));return}I([...H.current,...d]),N(d[0]),h({v:d[0].id})}catch{const c=H.current[0];c&&(N(c),h({v:c.id}))}finally{re.current=!1}}},Oe=t=>{const s=H.current,c=$.current;if(!c||s.length===0)return;const o=s.findIndex(x=>x.id===c.id);if(t>0&&R&&(o<0||o===s.length-1)){Ee();return}const d=x=>j.current.has(x.id),u=s.length;let ne;if(Z&&u>1){let x=Math.floor(Math.random()*u);for(let xe=0;xe<u&&(x===o||d(s[x]));xe++)x=Math.floor(Math.random()*u);ne=s[x]}else{const x=t>0?1:-1;let fe=(((o<0?x>0?-1:0:o)+x)%u+u)%u;for(let Re=1;Re<u&&d(s[fe]);Re++)fe=((fe+x)%u+u)%u;ne=s[fe]}N(ne),h({v:ne.id})},qe=()=>{if(R){he(!1),localStorage.setItem("musicRadio","false");return}const t=$.current;if(!t)return;if(v.length===0){C.error("No radio suggestions for this song yet.");return}const s=new Set,c=[];for(const o of[t,...v])s.has(o.id)||(s.add(o.id),c.push(o));he(!0),localStorage.setItem("musicRadio","true"),I(c),C.success(`Radio started — ${v.length} songs queued.`)},_e=t=>{if(S?.authenticated!==!0){C.error("Sign in to like songs.");return}const s=!Se(t);T(c=>({...c,[t.id]:s})),ue.mutate({id:t.id,like:s},{onError:()=>{T(c=>{const o={...c};return delete o[t.id],o}),C.error("Like action failed — try again.")}})},De=()=>{q(t=>(localStorage.setItem("musicShuffle",String(!t)),!t))},Ue=t=>e("button",{className:m.stationRow,onClick:()=>U(t),"aria-label":`Open ${t.title}`,children:[t.thumbnails?.[0]?.url?e("img",{src:t.thumbnails[0].url,alt:"",className:m.stationThumb,loading:"lazy",decoding:"async"}):e("span",{className:m.stationThumbPlaceholder,children:e(p,{name:"headphones"})}),e("span",{className:m.stationMeta,children:[e("span",{className:m.stationName,children:t.title}),t.subtitle&&e("span",{className:m.stationSub,children:t.subtitle})]})]},t.id),de=(t,s,c)=>{const o=l?.id===t.id,d=Se(t),u=[t.album,t.duration].filter(Boolean).join(" · ");return e("div",{className:`${m.stationRow} ${o?m.stationRowActive:""}`,style:{cursor:"default"},children:[e("button",{onClick:()=>c?c(t):Te(t,s),className:m.stationRow,style:{flex:1,minWidth:0,background:"transparent",border:0,padding:0},"aria-label":`Play ${t.title}`,children:[t.thumbnails?.[0]?.url?e("img",{src:t.thumbnails[0].url,alt:"",className:m.stationThumb,loading:"lazy",decoding:"async"}):e("span",{className:m.stationThumbPlaceholder,children:e(p,{name:"headphones"})}),e("span",{className:m.stationMeta,children:[e("span",{className:m.stationName,children:t.title}),e("span",{className:m.stationSub,children:[t.artists,u?` · ${u}`:""]})]})]}),S?.authenticated===!0&&e("button",{className:`${y.likeBtn} ${d?y.likeActive:""}`,onClick:()=>_e(t),disabled:ue.isPending,title:d?"Remove from Liked Music":"Add to Liked Music","aria-label":d?`Remove ${t.title} from Liked Music`:`Add ${t.title} to Liked Music`,"aria-pressed":d,children:e(p,{name:"heart"})}),e("a",{href:`https://music.youtube.com/watch?v=${encodeURIComponent(t.id)}`,target:"_blank",rel:"noreferrer",title:"Open in YouTube Music","aria-label":`Open ${t.title} in YouTube Music`,style:{padding:8,color:"inherit",opacity:.7,flexShrink:0},children:e(p,{name:"external-link-alt"})})]},t.id)},Pe=z(()=>{if(!l)return v;const t=new Set,s=[];for(const c of[l,...v])t.has(c.id)||(t.add(c.id),s.push(c));return s},[l,v]),He=t=>{Te(t,Pe)};return e("div",{className:`${i.page} ${l?i.pageWithPlayer:""}`,children:[e("div",{className:i.header,children:[e("h1",{className:i.pageTitle,children:[e(p,{name:"headphones"})," Music"]}),e("form",{className:i.searchForm,onSubmit:t=>{t.preventDefault();const s=$e(O);s?(Y(""),h({v:s})):Y(O)},children:[e("input",{className:i.searchInput,value:O,onChange:t=>be(t.target.value),placeholder:"Search YouTube Music…","aria-label":"Search music"}),e("button",{className:i.searchBtn,type:"submit","aria-label":"Search",children:e(p,{name:"search"})})]})]}),e("div",{className:y.authRow,children:[S?.authenticated?e(w,{children:[e("span",{className:i.statusMsg,children:["Signed in to YouTube Music",_&&` — ${_.tracks.length} songs, ${_.playlists.length} playlists`]}),e("button",{className:y.btnGhost,onClick:()=>E.mutate(),disabled:E.isPending,children:"Sign out"})]}):e(w,{children:[e("form",{onSubmit:t=>{t.preventDefault();const s=W.replace(/^cookie\s*:\s*/i,"").replace(/^["']+|["']+$/g,"").trim();if(s){if(s.includes("…")||s.includes("...")){C.error("That cookie is truncated (contains …). Right-click the Cookie header → Copy value, not the wrapped preview.");return}s!==W&&ae(s),f.mutate(s)}},className:y.cookieForm,children:[e("input",{className:y.cookieInput,value:W,onChange:t=>ae(t.target.value),placeholder:"Paste music.youtube.com Cookie header…","aria-label":"YouTube Music cookie",type:"password"}),e("button",{className:y.btn,type:"submit",disabled:f.isPending||!W.trim(),children:f.isPending?"Checking…":"Sign in"}),ee&&e("button",{className:y.btnGhost,type:"button",onClick:ve,disabled:V||f.isPending,title:"Read the YouTube Music cookie via the Dango Helper extension (same zip as AnimePahe/JapaneseASMR)",children:V?"Extracting…":"Extract from helper"})]}),ee&&e("p",{className:i.statusMsg,children:["Two ways to sign in: paste the Cookie header manually (steps below), or download"," ",e("a",{href:kt,target:"_blank",rel:"noreferrer",className:y.link,children:"dango-extension.zip"})," ","then"," ",X?e(w,{children:[e("code",{children:"about:debugging"})," → ",e("strong",{children:"This Firefox"})," →"," ",e("strong",{children:"Load Temporary Add-on"})," →"," ",e("code",{children:"dango-extension/firefox/manifest.json"})]}):e(w,{children:[e("code",{children:"chrome://extensions"})," → ",e("strong",{children:"Developer mode"})," →"," ",e("strong",{children:"Load unpacked"})," → ",e("code",{children:"dango-extension/chrome"})]}),", log in on a music.youtube.com tab, and click Extract."]}),e(je,{})]}),f.isSuccess&&e("p",{className:i.statusMsg,children:["Signed in — found ",f.data.tracks," songs and ",f.data.playlists," ","playlists."]}),f.isError&&e("p",{className:i.statusMsg,children:f.error?.message||"Sign-in failed. Paste a fresh Cookie header from music.youtube.com."}),!S?.authenticated&&!f.isError&&!f.isSuccess&&e("p",{className:i.statusMsg,children:"Sign in with your YouTube Music cookie to see your library. Search and playback work without sign-in."})]}),e("div",{className:l?y.contentLayout:void 0,children:[e("div",{className:y.mainCol,children:ie?e(w,{children:[e("h2",{className:m.sectionTitle,children:["Results for “",ie,"”"]}),ke?e("p",{className:i.statusMsg,children:"Searching…"}):Q.length===0?e("p",{className:i.statusMsg,children:"No tracks found."}):e("div",{className:m.stationList,children:Q.map(t=>de(t,Q))})]}):S?.authenticated?e(w,{children:[e("h2",{className:m.sectionTitle,children:"Your library"}),te?e("p",{className:i.statusMsg,children:"Loading library…"}):e(w,{children:[r.length>0&&!B&&e(w,{children:[e("h3",{className:m.sectionTitle,children:"Playlists"}),e("div",{className:m.stationList,children:r.map(t=>Ue(t))})]}),a.length>0&&!B&&e(w,{children:[e("h3",{className:m.sectionTitle,children:["Liked songs (",a.length,")"]}),e("div",{style:{marginBottom:8},children:e("button",{className:y.btnGhost,onClick:()=>Te(a[0],a),"aria-label":"Play all liked songs",children:[e(p,{name:"play"})," Play all"]})}),e("div",{className:m.stationList,children:a.map(t=>de(t,a))})]}),B?e(w,{children:[e("button",{className:y.btnGhost,onClick:()=>U(null),style:{marginBottom:8},children:"← Back to library"}),e("h3",{className:m.sectionTitle,children:B.title}),Ne?e("p",{className:i.statusMsg,children:"Loading playlist…"}):k.length===0?e("p",{className:i.statusMsg,children:"No tracks in this playlist."}):e("div",{className:m.stationList,children:k.map(t=>de(t,k))})]}):null]})]}):e("p",{className:i.statusMsg,children:"Search above, or sign in to see your library."})}),l&&e("aside",{className:y.upnextAside,"aria-label":"Up next",children:[e("div",{className:y.upnextHeader,children:e("span",{className:y.upnextTitle,children:[e(p,{name:"list-ul"})," Up Next"]})}),e("div",{className:y.nowPlayingWrap,children:[e("p",{className:y.nowPlayingLabel,children:"Now playing"}),de(l,D.length>0?D:[l])]}),e("div",{className:y.upnextActions,children:e("button",{className:y.btnGhost,onClick:qe,disabled:!R&&(ce||v.length===0),"aria-pressed":R,title:R?"Stop the radio — the queue will loop instead of fetching more songs":"Queue these suggestions after the current song and keep the mix going",children:R?"Stop radio":"Start radio"})}),ce?e("p",{className:i.statusMsg,children:"Loading suggestions…"}):v.length===0?e("p",{className:i.statusMsg,children:"No suggestions for this song."}):e("div",{className:m.stationList,children:v.map(t=>de(t,Pe,He))})]})]}),l&&e(Ye,{track:l,queue:D,shuffle:Z,onToggleShuffle:De,onTrackStep:Oe,onTrackFailed:Be,onClose:()=>{N(null),h({})},liked:l?Se(l):!1,likeVisible:S?.authenticated===!0,likePending:ue.isPending,onToggleLike:()=>_e(l)})]})};export{Lt as default};
|